本实验通过olive中的logical-system实现,上面拓扑图用到了r1,r2,r3(属于area 0),r4,r5(属于rip).以下是配置实例
olive# show logical-systems r1 { interfaces { em1 { unit 12 { vlan-id 12; family inet { address 10.0.4.5/30; } } unit 13 { vlan-id 13; family inet { address 10.0.4.14/30; } } } lo0 { unit 1 { family inet { address 10.0.0.1/32; } } } } protocols { ospf { area 0.0.0.0 { interface em1.12; interface em1.13; } } } } r2 { interfaces { em2 { unit 21 { vlan-id 12; family inet { address 10.0.4.6/30; } } unit 24 { vlan-id 24; family inet { address 10.0.4.10/30; } } } lo0 { unit 2 { family inet { address 10.0.0.2/32; } } } } protocols { ospf { area 0.0.0.0 { interface em2.21; interface em2.24; } } } } r3 { interfaces { em3 { unit 31 { vlan-id 13; family inet { address 10.0.4.13/30; } } unit 34 { vlan-id 34; family inet { address 10.0.2.5/30; } } unit 35 { vlan-id 35; family inet { address 10.0.2.2/30; } } } lo0 { unit 3 { family inet { address 10.0.0.3/32; } } } } protocols { ospf { export rip-to-ospf3; area 0.0.0.0 { interface em3.31; interface em3.32; interface em3.34; } } rip { group RIP {//RIP为自定义group name,只在本logical-system有效 export ospf-to-rip3;//自定义策略,本logical-system有效 neighbor em3.35;//相当于在这些接口上启用rip } } } policy-options { policy-statement ospf-to-rip3 {//自定义策略,本logical-system有效 term 2 { from interface [ em3.35 em3.31 ];//默认情况下,IS-IS,RIP,OSPF,BGP都自动学习邻居路由,但RIP默认不自动发布从邻居学来的rip信息,所以要通过策略把本地接口em3.31,em3.35通过策略发布到rip中去,而ospf,is-is默认发布从邻居学习到路由。bgp默认将从ebgp学到的路由发布到所有的bgp邻居中去,默认将从ibgp学到的路由发布到ebgp邻居中区 then accept; } term 1 { from protocol ospf;//将r3学到的ospf路由发布到rip中区 then accept; } term 3 { from { route-filter 10.0.2.4/30 exact;//将路由10.0.2.4/30发布到rip中区,exact代表绝对匹配路由表,其他参数longer表示匹配10.0.2.4/30下所有的子网,但不包括其本身;orlonger表示匹配10.0.2.4/30下所有的子网,同时包括其本身; } then accept; } } policy-statement rip-to-ospf3 { term 2 { from { route-filter 10.0.2.4/30 exact; route-filter 10.0.2.0/30 exact; } then accept; } term 1 { from interface em3.31;//将接口em3.31连接的路由发布到ospf中去,相当于本地直连接口重分布 then accept; } } } } r4 { interfaces { em4 { unit 42 { vlan-id 24; family inet { address 10.0.4.9/30; } } unit 43 { vlan-id 34; family inet { address 10.0.2.6/30; } } unit 45 { vlan-id 45; family inet { address 10.0.2.10/30; } } } lo0 { unit 4 { family inet { address 10.0.0.4/32; } } } } protocols { ospf { export rip-to-ospf4; area 0.0.0.0 { interface em4.42; interface em4.43; } } rip { group RIP { export ospf-to-rip4; neighbor em4.45; } } } policy-options { policy-statement ospf-to-rip4 { term 2 { from interface em4.45; then accept; } } policy-statement rip-to-ospf4 { term 1 { from interface em4.45;/frome,then相当于c/c++中的if/then语句from匹配就执行then的动作,不匹配就执行下一条term then accept; } } } } r5 { interfaces { em5 { unit 53 { vlan-id 35; family inet { address 10.0.2.1/30; } } unit 54 { vlan-id 45; family inet { address 10.0.2.9/30; } } } lo0 { unit 5 { family inet { address 10.0.0.5/32; } } } } protocols { rip { group RIP { export rip5; neighbor em5.53; neighbor em5.54; } } } policy-options { policy-statement rip5 { term 2 { from interface [ em5.53 em5.54 ]; then accept; } } } }
olive# run show route logical-system r1 protocol ospf
inet.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.2.0/30 *[OSPF/150] 00:42:05, metric 0, tag 0
> to 10.0.4.13 via em1.13//150表示是ospf外部学习的路由
内部默认为10
10.0.2.4/30 *[OSPF/10] 00:42:05, metric 2
> to 10.0.4.13 via em1.13
10.0.2.8/30 *[OSPF/150] 00:42:05, metric 0, tag 0
> to 10.0.4.6 via em1.12
to 10.0.4.13 via em1.13
10.0.4.8/30 *[OSPF/10] 00:42:11, metric 2
> to 10.0.4.6 via em1.12
224.0.0.5/32 *[OSPF/10] 06:02:53, metric 1
MultiRecv
olive# run show route logical-system r2 protocol ospf
inet.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.2.0/30 *[OSPF/150] 00:44:21, metric 0, tag 0
to 10.0.4.5 via em2.21
> to 10.0.4.9 via em2.24
10.0.2.4/30 *[OSPF/10] 00:44:30, metric 2
> to 10.0.4.9 via em2.24
10.0.2.8/30 *[OSPF/150] 00:44:30, metric 0, tag 0
> to 10.0.4.9 via em2.24
10.0.4.12/30 *[OSPF/10] 00:44:26, metric 2
> to 10.0.4.5 via em2.21
224.0.0.5/32 *[OSPF/10] 06:05:08, metric 1
MultiRecv
[edit]
olive# run show route logical-system r5 protocol rip
inet.0: 10 destinations, 10 routes (10 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.2.4/30 *[RIP/100] 00:46:03, metric 2, tag 0
> to 10.0.2.2 via em5.53www.it165.net
10.0.4.4/30 *[RIP/100] 00:45:14, metric 2, tag 0
> to 10.0.2.2 via em5.53//rip无论从内外部学习的路由都默认为100
10.0.4.8/30 *[RIP/100] 00:45:14, metric 2, tag 0
> to 10.0.2.2 via em5.53
10.0.4.12/30 *[RIP/100] 00:46:00, metric 2, tag 0
> to 10.0.2.2 via em5.53
224.0.0.9/32 *[RIP/100] 00:46:03, metric 1
MultiRecv
本文出自 “Rista” 博客