MPLSVPN实验
MPLSVPN实验
Yang拓扑:
配置接口ip地址以及loopback 0地址:略
目的:CE1和CE2之间不能互访,CE1和CE2可以访问CE3
创建VPN实例
ip vpn-instance CE1
ipv4-family
route-distinguisher 100:1
vpn-target 100:1 export-extcommunity
vpn-target 100:1 import-extcommunity
[PE1-GigabitEthernet0/0/0]ip binding vpn-instance CE1 (接口绑定)
注意:绑定VPN实例后,接口配置会消失,注意重新配置ip
ip vpn-instance CE2
ipv4-family
route-distinguisher 200:1
vpn-target 200:1 export-extcommunity
vpn-target 100:1 import-extcommunity
[PE1-GigabitEthernet0/0/1]ip binding vpn-instance CE2
PE2上创建VPN实例CE3
ip vpn-instance CE3
ipv4-family
route-distinguisher 100:1
vpn-target 100:1 export-extcommunity
vpn-target 100:1 200:1 import-extcommunity
[PE2-GigabitEthernet0/0/1]ip binding vpn-instance CE3
PE2和CE3之间OSPF配置
PE2:
ospf 1 vpn-instance CE3 (注意在vpn实例中)
area 0.0.0.0
network 10.0.56.0 0.0.0.255
CE3:
ospf 1
area 0.0.0.0
network 10.0.56.0 0.0.0.255
配置CE1和PE1之间的EBGP:
CE1:
bgp 100
router-id 1.1.1.1
peer 10.0.12.2 as-number 200
PE1:
bgp 200
router-id 3.3.3.3
[PE1-bgp]ipv4-family vpn-instance CE1 (注意在vpn实例中建立)
[PE1-bgp-CE1]peer 10.0.12.1 as-number 100
查看bgp邻居关系:
[PE1]display bgp vpnv4 vpn-instance CE1 peer
运营商网络之间的OSPF配置
PE1:
ospf 1
area 0.0.0.0
network 10.0.24.0 0.0.0.255
network 3.3.3.3 0.0.0.0
P:
ospf 1
area 0.0.0.0
network 10.0.24.0 0.0.0.255
network 10.0.45.0 0.0.0.255
network 4.4.4.4 0.0.0.0
PE2:
ospf 2 (注意是进程2,因为进程1在VPN实例CE3中使用过了,ospf本地进程唯一)
area 0.0.0.0
network 10.0.45.0 0.0.0.255
network 5.5.5.5 0.0.0.0
运营商网络的MPLS配置
PE1:
mpls lsr-id 3.3.3.3
mpls
mpls ldp
interface GigabitEthernet0/0/2
mpls
mpls ldp
剩余重复操作略
PE1和PE2之间bgp建立
PE2:
bgp 200
peer 3.3.3.3 as-number 200
peer 3.3.3.3 connect-interface LoopBack0
ipv4-family vpnv4
peer 3.3.3.3 enable
PE1同理操作
路由
在CE1上创建loopback 1接口:10.10.10.10
在CE1上network宣告进入bgp进程
查看已经学习到了10.10.10.10网段的路由
此时这条路由可以到达PE2
无法到达CE3
[PE2-ospf-1]import-route bgp
在PE2上ospf 1进程引入bgp,此时CE3可以学习到
(注意是进程1,进程2是运营商网络的ospf,进程1是VPN实例CE3的ospf)
CE3上也添加一条loopback 1
[CE3-LoopBack1]ip address 30.30.30.30 32
[CE3-ospf-1]import-route direct (引入)
将右边ospf引入bgp
[PE2]bgp 200
[PE2-bgp]ipv4-family vpn-instance CE3 (注意在实例中引入)
[PE2-bgp-CE3]import-route ospf 1 (注意指明进程,默认是1)
此时bgp进程中学习到了30.30.30.30网段
在CE1上pingCE3的30.30.30.30(注意ping的时候加源地址-a)
可以通了
CE2的路由
[PE1]ip route-static vpn-instance CE2 2.2.2.2 32 10.0.23.1
添加一条关于VPN实例CE2的静态路由,
PE1上查看CE2实例路由表
可以学习到了
PE1在BGP中引入静态路由
[PE1]bgp 200
[PE1-bgp]ipv4-family vpn-instance CE2 (注意在实例中)
[PE1-bgp-CE2]import-route static
CE2上添加默认路由
[CE2]ip route-static 0.0.0.0 0 10.0.23.2
此时CE2可以ping通CE3的30.30.30.30
实验瑕疵:
[PE1]dis bgp vpnv4 all routing-table
可以看到,10.10.10.10网段可能传递给CE2的VPN实例
但是CE1和CE2之间仍然不能互访,这是因为CE2的2.2.2.2不会传递给CE1的VPN实例
原因:CE1和CE2的RT值设置原因,CE1的export 是100:1,CE2的import是100:1,就导致CE2也会接受CE1传递的VPN实例,但是CE2传递的,CE1不会接受,所以理论上也实现了实验要求,但是不够完美。