MPLSVPN实验

拓扑:

QQ截图20240701192326

配置接口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进程

dis bgp vpnv4 all routing-table

查看已经学习到了10.10.10.10网段的路由

QQ截图20240701184638

此时这条路由可以到达PE2

无法到达CE3

[PE2-ospf-1]import-route bgp

在PE2上ospf 1进程引入bgp,此时CE3可以学习到

(注意是进程1,进程2是运营商网络的ospf,进程1是VPN实例CE3的ospf)

QQ截图20240701185128

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)

QQ截图20240701190120

此时bgp进程中学习到了30.30.30.30网段

在CE1上pingCE3的30.30.30.30(注意ping的时候加源地址-a)

QQ截图20240701190246

可以通了

CE2的路由

[PE1]ip route-static vpn-instance CE2 2.2.2.2 32 10.0.23.1

添加一条关于VPN实例CE2的静态路由,

PE1上查看CE2实例路由表

QQ截图20240701190835

可以学习到了

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

QQ截图20240701192215

实验瑕疵:

[PE1]dis bgp vpnv4 all routing-table

QQ截图20240701192933

可以看到,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不会接受,所以理论上也实现了实验要求,但是不够完美。