多平台统一管理软件接口,如何实现多平台统一管理软件接口
412
2022-10-26
思科设备实现城域网ISIS+BGP+MPLS VPN多域互通实战
【高级】思科设备实现城域网ISIS+BGP+MPLS ×××多域互通实战
实验拓扑:
GNS3 0.8.6 + c3725-adventerprisek9-mz.124-15.T5.p_w_picpath
实验要求:
1. IGP使用ISIS协议,用来承载城域网的直连和环回口路由。
2.通过配置普通BGP协议,承载用户业务路由(大客户和PPPoE拨号),实现互联网路由传递。
3.通过配置BGP/MPLS 的跨域×××实现分公司和总公司之间的私网通信。
实验步骤及验证:
1.接口及ip地址规划:
路由器 |
接口 |
ip地址 |
R1 |
F0/0 |
172.16.0.1/24 |
R1 |
F0/1 |
12.0.0.1/30 |
R1 |
Loopback 0 |
1.1.1.1/32 |
R1 |
Loopback 10 |
10.0.0.1/30 |
R2 |
F0/0 |
12.0.0.2/30 |
R2 |
Loopback 0 |
2.2.2.2/32 |
R2 |
F0/1 |
23.0.0.1/30 |
R3 |
F0/0 |
23.0.0.2/30 |
R3 |
loopback 0 |
3.3.3.3/32 |
R3 |
F0/1 |
34.0.0.1/30 |
R4 |
F0/0 |
34.0.0.2/30 |
R4 |
loopback 0 |
4.4.4.4/32 |
R4 |
F0/1 |
45.0.0.1/30 |
R5 |
F0/0 |
45.0.0.2/30 |
R5 |
loopback 0 |
5.5.5.5/32 |
R5 |
F0/1 |
56.0.0.1/30 |
R6 |
F0/0 |
56.0.0.2/30 |
R6 |
loopback 0 |
6.6.6.6/32 |
R6 |
F0/1 |
67.0.0.1/30 |
R7 |
F0/0 |
67.0.0.2/30 |
R7 |
Loopback 10 |
70.0.0.1/30 |
R7 |
Loopback 0 |
7.7.7.7/32 |
R7 |
F0/1 |
172.16.1.1/24 |
R8 |
Loopback 0 |
192.168.8.1/24 |
R8 |
F0/0 |
172.16.0.2/24 |
R9 |
Loopback 0 |
192.168.9.1/24 |
R9 |
F0/0 |
172.16.1.2/24 |
2.配置脚本:
R1
R1(config-if)#int f0/0
R1(config-if)#ip add172.16.0.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#int lo 10 //模拟R1下挂30位掩码的大客户业务网段//
R1(config-if)#ip add 10.0.0.1 255.255.255.252
R1(config-if)#int lo 0
R1(config-if)#ip add 1.1.1.1 255.255.255.255
R1(config-if)#int f0/1
R1(config-if)#ip add 12.0.0.1 255.255.255.252
R1(config-if)#no sh
R2
R2(config)#int f0/0
R2(config-if)#ip add 12.0.0.2255.255.255.252
R2(config-if)#no sh
R2(config-if)#int lo 0
R2(config-if)#ip add 2.2.2.2255.255.255.255
R2(config-if)#int f0/1
R2(config-if)#ip add 23.0.0.1255.255.255.252
R2(config-if)#no sh
R3
R3(config)#int f0/0
R3(config-if)#ip add 23.0.0.2255.255.255.252
R3(config-if)#no sh
R3(config-if)#int lo 0
R3(config-if)#ip add 3.3.3.3255.255.255.255
R3(config-if)#int f0/1
R3(config-if)#ip add 34.0.0.1255.255.255.252
R3(config-if)#no sh
R4
R4(config)#int f0/0
R4(config-if)#ip add 34.0.0.2255.255.255.252
R4(config-if)#no sh
R4(config-if)#int lo 0
R4(config-if)#ip add 4.4.4.4255.255.255.255
R4(config-if)#int f0/1
R4(config-if)#ip add 45.0.0.1255.255.255.252
R4(config-if)#no sh
R5
R5(config)#int f0/0
R5(config-if)#ip add 45.0.0.2255.255.255.252
R5(config-if)#no sh
R5(config-if)#int lo 0
R5(config-if)#ip add 5.5.5.5255.255.255.255
R5(config-if)#int f0/1
R5(config-if)#ip add 56.0.0.1255.255.255.252
R5(config-if)#no sh
R6
R6(config)#int f0/0
R6(config-if)#ip add 56.0.0.2255.255.255.252
R6(config-if)#no sh
R6(config-if)#int lo 0
R6(config-if)#ip add 6.6.6.6255.255.255.255
R6(config-if)#int f0/1
R6(config-if)#ip add 67.0.0.1255.255.255.252
R6(config-if)#n sh
R7
R7(config)#int f0/0
R7(config-if)#ip add 67.0.0.2255.255.255.252
R7(config-if)#no sh
R7(config-if)#int lo 0
R7(config-if)#ip add 7.7.7.7255.255.255.255
R7(config-if)#int lo 10 //模拟R7下挂30位掩码的大客户业务网段//
R7(config-if)#ip add 70.0.0.1255.255.255.252
R7(config-if)#int f0/1
R7(config-if)#ip add 172.16.1.1255.255.255.0
R7(config-if)#no sh
R8
R8(config)#int lo 0 //模拟A公司分公司的私网网段//
R8(config-if)#ip add 192.168.8.1255.255.255.0
R8(config-if)#int f0/0
R8(config-if)#ip add 172.16.0.2255.255.255.0
R8(config-if)#no sh
R9
R9(config)#int lo 0 //模拟A公司总公司的私网网段//
R9(config-if)#ip add 192.168.9.1255.255.255.0
R9(config-if)#int f0/0
R9(config-if)#ip add 172.16.1.2255.255.255.0
R9(config-if)#no sh
---------------------------以上是ip地址配置----------------------------------
R1
R1(config)#router isis //开启ISIS协议//
R1(config-router)#net 49.0001.0010.0100.1001.00 //根据环回口翻译得出net地址//
R1(config-router)#is-type level-1 //指定为L1型路由器//
R1(config)#int r f0/1 ,lo 0 //在AS内部的互连接口和环回口下通告ISIS//
R1(config-if-range)#ip router isis
R2 //R2上ISIS配置同R1这里就不再赘述了//
R2(config)#router isi
R2(config-router)#net 49.0001.0020.0200.2002.00
R2(config-router)#is-type level-1
R2(config)#int r f0/0 - 1 ,lo 0
R2(config-if-range)#ip router isis
R3 //R3上ISIS配置同R1这里就不再赘述了//
R3(config)#router isis
R3(config-router)#net 49.0001.0030.0300.3003.00
R3(config-router)#is-type level-1
R3(config)#int r f0/0 , lo 0
R3(config-if-range)#ip router isis
R5 //R5上ISIS配置同R1这里就不再赘述了,R5,R6,R7为另一个ISIS AS//
R5(config)#router isis
R5(config-router)#net 49.0002.0050.0500.5005.00
R5(config-router)#is-type level-1
R5(config)#int r f0/1 ,lo 0
R5(config-if-range)#ip router isis
R6 //R6上ISIS配置同R1这里就不再赘述了//
R6(config)#router isis
R6(config-router)#net 49.0002.0060.0600.6006.00
R6(config-router)#is-type level-1
R6(config)#int r f0/0 - 1 ,lo 0
R6(config-if-range)#ip router isis
R7 //R7上ISIS配置同R1这里就不再赘述了//
R7(config)#router isis
R7(config-router)#net 49.0002.0070.0700.7007.00
R7(config-router)#is-type level-1
R7(config)#int r f0/0 ,lo 0
R7(config-if-range)#ip router isis 2
---------------------------以上是IS-IS路由配置及验证----------------------------
R1
R1(config)#router bgp 65001 //开启BGP协议//
R1(config-router)#neighbor 2.2.2.2 remote-as 65001 //指定为IBGP//
R1(config-router)#neighbor 2.2.2.2 update-source lo 0
R1(config-router)#neighbor 3.3.3.3 remote-as 65001
R1(config-router)#neighbor 3.3.3.3 update-source lo 0
R1(config-router)#network 10.0.0.0 mask 255.255.255.252 //通过IBGP传递下挂的30位掩码大客户公网业务网段//
R2 //R2上IBGP配置同R1这里就不再赘述了//
R2(config)#router bgp 65001
R2(config-router)#neighbor 1.1.1.1 remote-as 65001
R2(config-router)#neighbor 1.1.1.1 update-source lo 0
R2(config-router)#neighbor 3.3.3.3 remote-as 65001
R2(config-router)#neighbor 3.3.3.3 update-source lo 0
R2(config-router)#neighbor 1.1.1.1 next-hop-self // R2作为市干设备需要告诉BARS(R1)自己为通过BGP学习到的路由的下一跳//
R2(config-router)#neighbor 1.1.1.1 route-reflector-client //R2作为市干设备需要指定BARS(R1)为自己的路由反射器客户端//
R3 //R3上IBGP配置同R1这里就不再赘述了//
R3(config)#router bgp 65001
R3(config-router)#neighbor 1.1.1.1 remote-as 65001
R3(config-router)#neighbor 1.1.1.1 update-source lo 0
R3(config-router)#neighbor 2.2.2.2 remote-as 65001
R3(config-router)#neighbor 2.2.2.2 update-source lo 0
R3(config-router)#neighbor 1.1.1.1 next-hop-s // R3作为省干设备需要告诉市干(R2),BARS(R1)自己为通过BGP学习到的路由的下一跳//
R3(config-router)#neighbor 2.2.2.2 next-hop-self
R3(config-router)#neighbor 2.2.2.2 route-reflector-client //R3作为省干设备需要指定市干(R2)为自己的路由反射器客户端//
在R3的路由表中可以看到通过IBGP学习到R1下的公网业务网段路由,在R3上可以ping通R1的loopback 10,证明通过IBGP传递路由成功。
R7 //R7上IBGP配置同R1这里就不再赘述了//
R7(config)#router bgp 65002
R7(config-router)#neighbor 6.6.6.6 remote-as 65002
R7(config-router)#neighbor 6.6.6.6 update-source lo 0
R7(config-router)#neighbor 5.5.5.5 remote-as 65002
R7(config-router)#neighbor 5.5.5.5 update-source lo 0
R7(config-router)#network 70.0.0.0 mask 255.255.255.252 //通过IBGP传递下挂的30位掩码大客户公网业务网段//
R6 //R6上IBGP配置同R1这里就不再赘述了//
R6(config)#router bgp 65002
R6(config-router)#neighbor 7.7.7.7 remote-as 65002
R6(config-router)#neighbor 7.7.7.7 update-source lo 0
R6(config-router)#neighbor 5.5.5.5 remote-as 65002
R6(config-router)#neighbor 5.5.5.5 update-source lo 0
R6(config-router)#neighbor 7.7.7.7 next-hop-self // R6作为市干设备需要告诉BARS(R7)自己为通过BGP学习到的路由的下一跳//
R6(config-router)#neighbor 7.7.7.7 route-reflector-client //R6作为市干设备需要指定BARS(R7)为自己的路由反射器客户端//
R5 //R5上IBGP配置同R1这里就不再赘述了//
R5(config)#router bgp 65002
R5(config-router)#neighbor 6.6.6.6 remote-as 65002
R5(config-router)#neighbor 6.6.6.6 update-source lo 0
R5(config-router)#neighbor 7.7.7.7 remote-as 65002
R5(config-router)#neighbor 7.7.7.7 update-source lo R5(config-router)#neighbor6.6.6.6 next-hop-self // R5作为省干设备需要告诉市干(R6),BARS(R7)自己为通过BGP学习到的路由的下一跳//
R5(config-router)#neighbor 7.7.7.7 next-hop-self
R5(config-router)#neighbor 6.6.6.6 route-reflector-client //R5作为省干设备需要指定市干(R6)为自己的路由反射器客户端//
在R5的路由表中可以看到通过IBGP学习到R7下的公网业务网段路由,在R5上可以ping通R7的loopback 10,证明通过IBGP传递路由成功。
------------------------------以上是IBGP配置及验证-------------------------------
R3
R3(config)#ip route 4.4.4.4 255.255.255.255 34.0.0.2
R4
R4(config)#ip route 3.3.3.3 255.255.255.255 34.0.0.1
//R3与R4要建立EBGP邻居关系,所以它们之间要可以通信(网络层可达),需要互指静态路由//
R4
R4(config)#ip route 5.5.5.5 255.255.255.255 45.0.0.2
R5
R5(config)#ip route 4.4.4.4 255.255.255.255 45.0.0.1
//R5与R4要建立EBGP邻居关系,所以它们之间要可以通信(网络层可达),需要互指静态路由//
R3
R3(config)#router bgp 65001
R3(config-router)#neighbor 4.4.4.4 remote-as 65003 //与R4建立EBGP邻居//
R3(config-router)#neighbor 4.4.4.4 update-source lo 0
R3(config-router)#neighbor 1.1.1.1 next-hop-s // R3作为省干设备需要告诉市干(R2),BARS(R1)自己为通过BGP学习到的路由的下一跳//
R3(config-router)#neighbor 2.2.2.2 next-hop-self
R3(config-router)#neighbor 2.2.2.2 route-reflector-client //R3作为省干设备需要指定市干(R2)为自己的路由反射器客户端//
R3(config-router)#neighbor 4.4.4.4 ebgp-multihop 2 //手工配置R3的EBGP跳数限制为2//
R4 //R4需和R3,R5建立EBGP邻居//
R4(config)#router bgp 65003
R4(config-router)#neighbor 3.3.3.3 remote-as 65001
R4(config-router)#neighbor 3.3.3.3 update-source lo 0
R4(config-router)#neighbor 5.5.5.5 remote-as 65002
R4(config-router)#neighbor 5.5.5.5 update-source lo 0
R4(config-router)#neighbor 3.3.3.3 ebgp-multihop 2 //手工配置R4的EBGP跳数限制为2//
R4(config-router)#neighbor 5.5.5.5 ebgp-multihop 2
R5 //R5上EBGP配置同R3这里就不再赘述了//
R5(config)#router bgp 65002
R5(config-router)#neighbor 4.4.4.4 remote-as 65003
R5(config-router)#neighbor 4.4.4.4 update-source lo 0
R5(config-router)#neighbor 4.4.4.4 ebgp-multihop 2
在R7上查看BGP表可以看到到达R1下挂公网业务网段路由已经优化,再查看路由表可以看到该条路由已经放入到路由表中,在R7上以loopback 10为源可以ping通R1的loopback 10,证明实现了BARS下挂的公网业务网段跨越互联网的通信。
-----------------以上为公网路由BGP配置--------------------
R1
R1(config)#ip vrf vpna //在R1上划分×××A(名字见名知意即可)//
R1(config-vrf)#route-target 100:1 //设置路由标记,用于唯一标示该×××的路由//
R1(config-vrf)#rd 100:1 //设置路由撤销标记,用于在发送路由撤销时标示不同的×××//
R1(config)#int f0/0
R1(config-if)#ip vrf forwarding vpna //把接口加入到对应×××中//
R1(config-if)#ip add 172.16.0.1 255.255.255.0 //接口ip地址配置需在划分×××之后进行//
R1(config-if)#no sh
R7 //R7上配置同R1这里就不再赘述了//
R7(config)#ip vrf vpna
R7(config-vrf)#route-target 100:1 //注意:因为本例中需要实现总公司和分公司私网之间的互通所以rt值两端需设置为相同,若两端rt的import(收)和export(发)值不同则为hub-spoke模型//
R7(config-vrf)#rd 100:1
R7(config-vrf)#int f0/1
R7(config-if)#ip vrf forwarding vpna
R7(config-if)#ip add 172.16.1.1 255.255.255.0
R7(config-if)#no sh
R1
R1(config)#ip route vrf vpna 192.168.8.0 255.255.255.0172.16.0.2 //在R1上指一条到达公司私网的静态路由(注意要指明是属于哪个×××的路由)//
R7
R7(config)#ip route vrf vpna 192.168.9.0 255.255.255.0172.16.1.2 //在R7上指一条到达公司私网的静态路由(注意要指明是属于哪个×××的路由)//
R8
R8(config)#ip route 0.0.0.0 0.0.0.0 172.16.0.1
R9
R9(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.1
//R8,R9作为公司的出口设备需要指一条到运营商的默认路由//
注意:如果要实现公司之间私网跨越互联网的通信,首先控制层面要可达即路由可达,所以要在公司接入的BARS/SR设备上通过MPBGP传递×××路由。
R1
R1(config)#router bgp 65001
R1(config-router)#address-family vpnv4 //指定为MPBGP//
R1(config-router-af)#neighbor 3.3.3.3 activate //注意:MPBGP邻居关系建立前提是普通的BGP邻居必须已经建立,这里只要激活下MPBGP邻居就好//
R1(config-router-af)#neighbor 3.3.3.3 send-community extended //指定向MPBGP邻居发送包含RT,RD信息的路由消息//
R1(config-router)#address-family ipv4 vrf vpna //需在指定×××的模式下通过MPBGP通告路由//
R1(config-router-af)#network 172.16.0.0 mask 255.255.255.0
R1(config-router-af)#network 192.168.8.0 mask 255.255.255.0
R3 //R3上MPBGP配置命令及原理同R1,这里不再赘述,需要注意的是R3不但要和R1建立IBGP邻居还要和R4建立EBGP邻居以传递私网路由//
R3(config)#router bgp 65001
R3(config-router)#address-family vpnv4
R3(config-router-af)#neighbor 1.1.1.1 activate
R3(config-router-af)#neighbor 1.1.1.1 send-community extended
R3(config-router-af)#neighbor 4.4.4.4 activate
R3(config-router-af)#neighbor 1.1.1.1 send-community extended
R3(config-router-af)#neighbor 1.1.1.1 next-hop-self //R3需告诉它下挂BARS设备通过MPBGP学习到的路由下一跳为自己,否则BGP会认为路由不可达而不优化//
R3(config)#ip vrf vpna //因为R3需要通过MPBGP传递×××私网路由,所以需要建立相对应的×××信息(RT,RD)//
R3(config-vrf)#route-target 100:1
R3(config-vrf)#rd 100:1
R4 //R4上MPBGP配置命令及原理同R1,这里不再赘述,需要注意的是R4不但要和R3建立EBGP邻居还要和R5建立EBGP邻居以传递私网路由//
R4(config)#router bgp 65003
R4(config-router)#address-family vpnv4
R4(config-router-af)#neighbor 3.3.3.3 activate
R4(config-router-af)#neighbor 3.3.3.3 send-community extended
R4(config-router-af)#neighbor 5.5.5.5 activate
R4(config-router-af)#neighbor 5.5.5.5 send-community extended
R4(config-router)#ip vrf vpna //因为R4需要通过MPBGP传递×××私网路由,所以需要建立相对应的×××信息(RT,RD)//
R4(config-vrf)#route-target 100:1
R4(config-vrf)#rd 100:1
R5 //R5上MPBGP配置命令及原理同R1,这里不再赘述,需要注意的是R5不但要和R4建立EBGP邻居还要和R7建立IBGP邻居以传递私网路由//
R5(config)#router bgp 65002
R5(config-router)#address-family vpnv4
R5(config-router-af)#neighbor 4.4.4.4 activate
R5(config-router-af)#neighbor 4.4.4.4 send-community extended
R5(config-router-af)#neighbor 7.7.7.7 activate
R5(config-router-af)#neighbor 7.7.7.7 send-community extended
R5(config-router-af)#neighbor 7.7.7.7 next-hop-self //R5需告诉它下挂BARS设备通过MPBGP学习到的路由下一跳为自己,否则BGP会认为路由不可达而不优化//
R5(config)#ip vrf vpna //因为R5需要通过MPBGP传递×××私网路由,所以需要建立相对应的×××信息(RT,RD)//
R5(config-vrf)#route-target 100:1
R5(config-vrf)#rd 100:1
R7 //R7上MPBGP配置命令及原理同R1,这里不再赘述,需要注意的是R7不但要和R5建立IBGP邻居还要在相应×××模式下通告×××私网路由//
R7(config)#router bgp 65002
R7(config-router)#address-family vpnv4
R7(config-router-af)#neighbor 5.5.5.5 activate
R7(config-router-af)#neighbor 5.5.5.5 send-community extended
R7(config-router)#address-family ipv4 vrf vpna
R7(config-router-af)#network 172.16.1.0 mask 255.255.255.0
R7(config-router-af)#redistribute static metric 2 //BGP通告路由方式可以采用network命令,另外当设备上静态路由条目较多, 或运行了动态路由协议时可以使用redistribute (路由重分发)的方式//
在R1上查看vpna的BGP表可以看到192.168.9.0的路由已经优化,在vpna的路由表中可以看到通过MPBGP学习到192.168.9.0/24的路由信息,那么控制层面的路由信息有了,数据能通吗?来验证下。
在R8上ping R9的loopback 0不可达,我们来理一下思路,看一下数据的转发过程,首先当一个目标地址为192.168.9.1的数据包从R8发出时会匹配默认路由发到R1上,R1会查找路由表。
因为数据包是从R1的f0/0接口收到的,而f0/0是属于vpna的接口,R1会查看vpna的路由表,发现到192.168.9.0/24子网的下一跳是3.3.3.3,因为3.3.3.3不是R1的直连接口,R1会递归再查看公网路由表来寻找到3.3.3.3的路径。
发现到达3.3.3.3的下一跳是12.0.0.2(R2的f0/0接口),而R2作为公网路由器P设备上根本就没有vpna的相关信息,自然也就不会有vpna的路由192.168.9.0/24的条目,所以数据包到达R2时就会被丢弃。所以我们需要在所有公网路由器的互连接口上开启LDP协议,动态的为数据包交换公网标签,这样一来,公网的路由器在收到一个打上标签的数据包时,只会根据自己的公网标签表来做标签交换转发数据包,不会去查看里面包裹的目标ip地址,相当于通过动态的标签交换构建了一条跨越互联网的MPLS-×××隧道。
实验总结:
1.BGP/MPLS-×××的原理:通过在裹有私网标签的私网数据报文外面再包裹一层公网标签(在接口下开启LDP协议自动分配公网标签),实现双层的标签嵌套,从而使私网数据在公网传输时进行标签查找交换不进行路由查找,相当于通过公网标签交换打通了一条穿越互连网的隧道,使得私网间数据可以跨越互联网传输。
2.BGP/MPLS-×××是通过建立MPBGP邻居关系来传递私网的路由信息,建立MPBGP邻居关系的前提是要先建立普通的BGP邻居关系。
3.BGP/MPLS-×××没用采用任何的加密技术,所以数据在公网传输时是明文的,只能应用于公司私网之间的数据传输不需要加密的场景,如果需要加密传输,可以采用IPSEC-×××技术。我会在手续的文章中介绍。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
评论列表