一、实验拓扑
二、实验需求
1、某企业总公司和分公司运行 BGP 实现路由互通,另外还有办事处运行 RIPv2。总公司和分公司之间通过两条线路相连。企业内有 A 流和 B 流两种流量,如图所示
2、按照图示配置 IP 地址,除 R7 外,所有路由配置 Loopback0 口 IP 地址用于 OSPF 的 Router-id 和 IBGP 建立邻居,地址格式为X.X.X.X/32,X为设备编号
3、总公司和分公司内部配置 OSPF,仅用于实现 BGP 的 TCP 可达,不允许宣告业务网段
4、办事处和总公司之间配置 RIPv2
5、适当调整链路 Cost,避免产生等价路由
6、总公司和分公司配置 BGP 实现路由互通,总公司在 AS 65001,分公司在 AS 65002,各自 AS 内部使用对等体组建立可靠的 IBGP 全连接,AS 之间使用直连接口建立 EBGP 邻居,总公司和分公司的业务网段宣告在 BGP 中
7、为了实现总公司和分公司的流量负载均衡,要求通过修改 AS_path,使 A 流数据经过 R2 和 R4,B 流数据经过 R3 和 R5
8、在 R2 上配置 RIP 和 BGP 的双向引入,要求办事处的 A 流和 B 流都能与总公司互通,但办事处与分公司之间只有 A 流能够互通
9、不允许业务网段出现协议报文,不允许出现不相关的 RIP 协议报文
10、随着公司业务发展,后续可能会有其他分公司通过 R2 或 R3 接入总公司;不允许分公司之间互访,所以要求总公司只能对分公司发布属于本 AS 的路由
三、实验步骤
1、配置 总公司 和 分公司 的内部OSPF
[ r1]ospf 1 rou 1.1.1.1 //使用ospf进程1使用的router-id(只针对本ospf使用的router-id),也可以选择配置全局router-id(后面需使用到router-id的协议会自动使用配置的全局router-id)
[ r1-ospf-1]a 0
[ r1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0 //配置环回口,IBGP需求用环回口建立
[ r1-ospf-1-area-0.0.0.0]net 10.0.0.0 0.0.0.3
[ r1-ospf-1-area-0.0.0.0]net 10.0.0.4 0.0.0.3
[ r2-ospf-1]ospf 1 rou 2.2.2.2
[ r2-ospf-1]a 0
[ r2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[ r2-ospf-1-area-0.0.0.0]net 10.0.0.0 0.0.0.3
[ r2-ospf-1-area-0.0.0.0]net 10.0.0.8 0.0.0.3
[ r3]ospf 1 rou 3.3.3.3
[ r3-ospf-1]a 0
[ r3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[ r3-ospf-1-area-0.0.0.0]net 10.0.0.8 0.0.0.3
[ r3-ospf-1-area-0.0.0.0]net 10.0.0.4 0.0.0.3
[ r4]ospf 1 rou 4.4.4.4
[ r4-ospf-1]a 0
[ r4-ospf-1-area-0.0.0.0]net 10.0.0.20 0.0.0.3
[ r4-ospf-1-area-0.0.0.0]net 10.0.0.24 0.0.0.3
[ r4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[ r5]ospf 1 rou 5.5.5.5
[ r5-ospf-1]a 0
[ r5-ospf-1-area-0.0.0.0]net 5.5.5.5 0.0.0.0
[ r5-ospf-1-area-0.0.0.0]net 10.0.0.20 0.0.0.3
[ r5-ospf-1-area-0.0.0.0]net 10.0.0.28 0.0.0.3
[ r6]ospf 1 rou 6.6.6.6
[ r6-ospf-1]a 0
[ r6-ospf-1-area-0.0.0.0]net 6.6.6.6 0.0.0.0
[ r6-ospf-1-area-0.0.0.0]net 10.0.0.24 0.0.0.3
[ r6-ospf-1-area-0.0.0.0]net 10.0.0.28 0.0.0.3
2、RIPv2配置
[ r2]rip 1
[ r2-rip-1]u sum //关闭rip的自动聚合
[ r2-rip-1]v 2 //使用rip 2版本,多使用v 2版本
[ r2-rip-1]net 10.0.0.0 //宣告网段
[ r7]rip 1
[ r7-rip-1]u sum
[ r7-rip-1]v 2
[ r7-rip-1]net 10.0.0.0
3、避免等价路由
[ r1]int g0/1
[ r1-GigabitEthernet0/1]ospf cost 66 //查看到该路由器有等价路由,在接口下配置ospf cost更改其ospf开销值以达到目的
[ r3]int g0/1
[ r3-GigabitEthernet0/1]ospf cost 66
[ r4]int g0/0
[ r4-GigabitEthernet0/0]ospf cost 66
[ r6]int g0/1
[ r6-GigabitEthernet0/1]ospf cost 66
4、建立 EBGP 和 IBGP,宣告 总公司 和 分公司 的业务网段
[ r1]bgp 65001 //创建bgp 65001
[ r1-bgp-default]group in internal //创建IBGP对等体组,配置方便(internal是IBGP,external是EBGP)
[ r1-bgp-default]peer 2.2.2.2 group in //与对端设备建立IBGP(使用了环回口建立)
,并将其加入到in组中
[ r1-bgp-default]peer 3.3.3.3 group in
[ r1-bgp-default]peer in con l0 //IBGP使用环回口建立邻居关系时,需要更改发送源地址为本地的环回口
[ r1-bgp-default]ad ipv4 //进入ipv4地址族
[ r1-bgp-default-ipv4]peer in en
//对组in开启bgp建立邻居的功能
[ r1-bgp-default-ipv4]peer in next //配置in组的下一跳为本地地址
[ r2]bgp 65001
[ r2-bgp-default]peer 10.0.0.14 as 65002 //建立EBGP邻居,as编号为65002
[ r2-bgp-default]group in internal
[ r2-bgp-default]peer 1.1.1.1 group in //直接对组进行配置
[ r2-bgp-default]peer 3.3.3.3 group in
[ r2-bgp-default]peer in con l0 //用环回口建立IBGP需要更改源为环回口
[ r2-bgp-default]ad ipv4
[ r2-bgp-default-ipv4]pe in en //对组使能
[ r2-bgp-default-ipv4]pe 10.0.0.14 en
[ r2-bgp-default-ipv4]pe in ne
[ r3]bgp 65001
[ r3-bgp-default]peer 10.0.0.18 as 65002
[ r3-bgp-default]group in in
[ r3-bgp-default]pe 1.1.1.1 g in
[ r3-bgp-default]pe 2.2.2.2 g in
[ r3-bgp-default]pe in con l0
[ r3-bgp-default]ad ipv4
[ r3-bgp-default-ipv4]pe in en
[ r3-bgp-default-ipv4]pe 10.0.0.18 en
[ r3-bgp-default-ipv4]pe in next //IBGP更改下一跳
[ r4]bgp 65002
[ r4-bgp-default]pe 10.0.0.13 as 65001
[ r4-bgp-default]group in in
[ r4-bgp-default]pe 5.5.5.5 g in
[ r4-bgp-default]pe 6.6.6.6 g in
[ r4-bgp-default]pe in con l0
[ r4-bgp-default]ad ipv4
[ r4-bgp-default-ipv4]pe in en
[ r4-bgp-default-ipv4]pe 10.0.0.13 en
[ r4-bgp-default-ipv4]pe in ne
[ r5]bgp 65002
[ r5-bgp-default]pe 10.0.0.17 as 65001
[ r5-bgp-default]group in in
[ r5-bgp-default]pe 4.4.4.4 g in
[ r5-bgp-default]pe 6.6.6.6 g in
[ r5-bgp-default]pe in con l0
[ r5-bgp-default]ad ipv4
[ r5-bgp-default-ipv4]pe in en
[ r5-bgp-default-ipv4]pe 10.0.0.17 en
[ r5-bgp-default-ipv4]pe in ne
[ r6]bgp 65002
[ r6-bgp-default]g in in
[ r6-bgp-default]pe 4.4.4.4 g in
[ r6-bgp-default]pe 5.5.5.5 g in
[ r6-bgp-default]pe in con l0
[ r6-bgp-default]ad ipv4
[ r6-bgp-default-ipv4]pe in en
[ r6-bgp-default-ipv4]pe in next
[ r1]bgp 65001
[ r1-bgp-default]ad ipv4
[ r1-bgp-default-ipv4]net 192.168.0.0 24
[ r1-bgp-default-ipv4]net 172.16.0.0 24
[ r6-bgp-default-ipv4]net 192.168.1.0 24
[ r6-bgp-default-ipv4]net 172.16.1.0 24
5、A流走R2/4,B流走R3/5,修改其AS_PATH
[ r3]acl ba 2000 //建立基本acl 2000
[ r3-acl-ipv4-basic-2000]ru pe sou 192.168.0.0 0.0.0.255 //匹配源地址192.168.0.0/24
[ r3-acl-ipv4-basic-2000]route-p as pe no 10 //创建路由策略as,允许模式,节点10
[ r3-route-policy-as-10]if ip ad ac 2000 //配置匹配条件,调用acl 2000
[ r3-route-policy-as-10]ap as 65001 65001 //配置执行动作,将as-path加长(加上65001 65001),建议将as-path加长时使用真实经过的as
[ r3-route-policy-as-10]route-p as pe no 20 //配置空节点,因为ROTUE-POLICY默认规则是deny
[ r3-route-policy-as-20]bgp 65001
[ r3-bgp-default]ad ipv4
[ r3-bgp-default-ipv4]pe 10.0.0.18 route-p as ex //对10.0.0.18调用route-policy as进行发布
[ r4]acl ba 2000
[ r4-acl-ipv4-basic-2000]ru pe sou 172.16.1.0 0.0.0.255
[ r4-acl-ipv4-basic-2000]route- as pe no 10
[ r4-route-policy-as-10]if ip ad ac 2000
[ r4-route-policy-as-10]ap as 65002 65002
[ r4-route-policy-as-10]route-p as pe no 20
[ r4-route-policy-as-20]bgp 65002
[ r4-bgp-default]ad ipv4
[ r4-bgp-default-ipv4]pe 10.0.0.13 route-p as ex
[ r5]acl ba 2000
[ r5-acl-ipv4-basic-2000]ru pe sou 192.168.1.0 0.0.0.255 //配置acl进行抓取
[ r5-acl-ipv4-basic-2000]route-p as pe no 10
[ r5-route-policy-as-10]if ip ad ac 2000 //如果满足acl2000
[ r5-route-policy-as-10]ap as 65002 65002 //执行动作
[ r5-route-policy-as-10]route-p as pe no 20 //空节点
[ r5-route-policy-as-20]bgp 65002
[ r5-bgp-default]ad ipv4
[ r5-bgp-default-ipv4]pe 10.0.0.17 route-p as ex
[ r2]acl ba 2000
[ r2-acl-ipv4-basic-2000]ru pe sou 172.16.0.0 0.0.0.255
[ r2-acl-ipv4-basic-2000]route-p as pe node 10
[ r2-route-policy-as-10]if ip ad ac 2000
[ r2-route-policy-as-10]ap as 65001 65001
[ r2-route-policy-as-10]route-p as pe no 20
[ r2-route-policy-as-20]bgp 65001
[ r2-bgp-default]ad ipv4
[ r2-bgp-default-ipv4]pe 10.0.0.14 route-p as ex
6、在 R2 上配置 RIP 和 BGP 的双向引入,要求办事处的 A 流和 B 流都能与总公司互通,但办事处与分公司之间只有 A 流能够互通
[ r2]acl ba 2001
[ r2-acl-ipv4-basic-2000]ru pe sou 192.168.0.0 0.0.1.255
[ r2-acl-ipv4-basic-2000]ru pe sou 172.16.0.0 0.0.0.255
[ r2-acl-ipv4-basic-2000]route-p btr per node 10
[ r2-route-policy-btr-10]if ip ad acl 2001
[ r2-route-policy-btr-10]rip 1
[ r2-rip-1]im bgp allow-ibgp route-p btr //在rip中进行bgp路由引入至rip时使用btr路由策略进行引入,allow-ibgp是引入bgp所有路由,而import bgp只引入bgp从外部学习到的路由,不引入本地发布的路由
[ r2-bgp-default-ipv4]import-route rip
7、不允许业务网段出现协议报文,不允许出现不相关的 RIP 协议报文
[ r2-rip-1]si g0/0
[ r2-rip-1]si g0/1
[ r2-rip-1]si g0/2
8、总公司只能对分公司发布属于本 AS 的路由
[ r2]ip as-path 1 permit ^$ //创建as-path规则1,允许本as路由。^$为通配符,代表本地as
[ r2]bgp 65001
[ r2-bgp-default]ad ipv4
[ r2-bgp-default-ipv4]pe 10.0.0.14 as-path-acl 1 export //对10.0.0.14调用as-path-acl 1进行发布路由
[ r3]ip as-path 1 permit ^$
[ r3]bgp 65001
[ r3-bgp-default]ad ipv4
[ r3-bgp-default-ipv4]pe 10.0.0.18 as-path-acl 1 export
四、实验结果
1、OSPF邻居关系
[ r6-ospf-1]dis ospf pe | include GE
4.4.4.4 10.0.0.25 1 31 Full/DR GE0/0
5.5.5.5 10.0.0.29 1 37 Full/DR GE0/1
[ r1]dis ospf pe | include GE
2.2.2.2 10.0.0.2 1 34 Full/DR GE0/0
3.3.3.3 10.0.0.6 1 36 Full/DR GE0/1
2、BGP邻居关系
[ r6]dis bgp pe ipv4
BGP local router ID: 192.168.1.1
Local AS number: 65002
Total number of peers: 2 Peers in established state: 2
* - Dynamically created peer
Peer AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
4.4.4.4 65002 4 3 0 0 00:00:52 Established
5.5.5.5 65002 3 4 0 0 00:00:50 Established
[ r1]dis bgp pe ipv4 | include E
2.2.2.2 65001 47 46 0 0 00:39:57 Established
3.3.3.3 65001 42 43 0 0 00:37:39 Established
[ r2]dis bgp pe ipv4 | include 10
10.0.0.14 200 39 47 0 0 00:34:20 Established
[ r4]dis bgp pe ipv4 | include 10
10.0.0.13 100 47 40 0 0 00:34:36 Established
3、无RIP协议报文
配置前:
配置后:
4、A流走R2/4,B流走R3/5
[ r1]tracert -a 192.168.0.1 192.168.1.1
traceroute to 192.168.1.1 (192.168.1.1) from 192.168.0.1, 30 hops at most, 40 bytes each packet, press CTRL+C to break
1 10.0.0.2 (10.0.0.2) 1.000 ms 0.000 ms 0.000 ms
2 10.0.0.14 (10.0.0.14) 1.000 ms 1.000 ms 1.000 ms
3 10.0.0.22 (10.0.0.22) 1.000 ms 1.000 ms 0.000 ms
4 10.0.0.30 (10.0.0.30) 1.000 ms 1.000 ms 2.000 ms
[ r6]tracert -a 172.16.1.1 172.16.0.1
traceroute to 172.16.0.1 (172.16.0.1) from 172.16.1.1, 30 hops at most, 40 bytes each packet, press CTRL+C to break
1 10.0.0.25 (10.0.0.25) 1.000 ms 2.000 ms 1.000 ms
2 10.0.0.22 (10.0.0.22) 0.000 ms 1.000 ms 0.000 ms
3 10.0.0.17 (10.0.0.17) 1.000 ms 1.000 ms 1.000 ms
4 10.0.0.5 (10.0.0.5) 1.000 ms 1.000 ms 1.000 ms