实现基于MPLS的VPN
Author: 颖奇L'Amore Blog: [www.gem-love.com](https://www.gem-love.com/) 谨以此篇Lab文章感谢我的CCIE引路人——QYT.Ender(周亚军)

Topology: 这里使用R6 R1 R3 R4 R7,其余设备做冗余


R1(PE)环回口:

interface Loopback0    ————运行运营商之间的iGP

ip address 11.1.1.1 255.255.255.255  —32位

ip ospf 110 area 0

end

!

interface Loopback1  ———-模拟另一个公司站点 通过VRF(虚拟路由转发)来与CompanyA分离开

ip vrf forwarding Ender

ip address 1.1.1.1 255.255.255.0

end

R4(PE)相同


1)MPLS域内的IGP(R1、R3和R4)

R1的lo0、E0/0 ,R3的E0/0、e0/2,R4的e0/2和lo0:

ip ospf 110 area 0

![

](http://cdn1.pic.y1ng.vip/iPic/2021-12-09-073512.png)  

2)虚拟路由转发VRF

PE设备上来实现VRF用于隔离客户的路由

ip vrf Ender   ——为公司lo1创建VRF 在整体实验中作用不大

rd 100:100

!

ip vrf QYT   —-CompanyA的路由

rd 100:16

route-target export 100:16   —-RT属性用以收发vpnv4路由

route-target import 100:16

!

interface Ethernet0/1

ip vrf forwarding QYT  ——————-连接Company A的e0/1接口划入QYT这个VRF中

ip address 16.1.1.1 255.255.255.0   —-先VRF再地址,因为划入VRF时接口地址会被移除

end

R4同理:

3)BGP建立VPNV4邻居

目的是使所有VRF在该tunnel中更新路由

R1#sh run s r bgp

router bgp 100

bgp log-neighbor-changes

no bgp default ipv4-unicast    ——关闭BGP默认承载的ipv4的路由

neighbor 44.1.1.1 remote-as 100  —与R4建立邻居

neighbor 44.1.1.1 update-source Loopback0

 !

address-family vpnv4

  neighbor 44.1.1.1 activate   —在VPNV4地质组中建立邻居

  neighbor 44.1.1.1 send-community extended  —-允许传递扩展属性(Route-Target)

exit-address-family

 !

R4#sh run s r b  ——R4同样

router bgp 100

bgp log-neighbor-changes

neighbor 11.1.1.1 remote-as 100

neighbor 11.1.1.1 update-source Loopback0

 !

address-family vpnv4

  neighbor 11.1.1.1 activate

  neighbor 11.1.1.1 send-community extended

exit-address-family

!

效果:  

4)更新VRF路由

R1–R6、R4–R7建立rip并和BGP双向充分发

R1#sh run s rip

router rip

 !

address-family ipv4 vrf QYT

  redistribute bgp 100 metric 2  —-充分发BGP

  network 16.0.0.0

  no auto-summary

  version 2

exit-address-family

  redistribute rip

R1#sh run s bgp

  redistribute bgp 100 metric 2

router bgp 100

bgp log-neighbor-changes

no bgp default ipv4-unicast

neighbor 44.1.1.1 remote-as 100

neighbor 44.1.1.1 update-source Loopback0

 !

address-family vpnv4

  neighbor 44.1.1.1 activate

  neighbor 44.1.1.1 send-community extended

exit-address-family

 !

address-family ipv4 vrf QYT   —–在ipv4 vrf地址族下充分发,而不是VPNv4地址族(vpnv4下做不了)

  redistribute rip  

exit-address-family

R4同理。 效果:  

5)使能MPLS

R1 e0/0,R3 e0/0 e0/2,R4 e0/2分别配置:

(config-if)#mpls ip

此时R3上LDP邻居有2个: 双向tracert: 此时站点之间已经可以通过MPLS VPN通信:   

6)条件性分发标签

默认情况,LDP对所有的IGP和静态路由都分发标签 ,因此引发了标签过多的问题 两种影响标签分发的方式:

  1. no ip cef
  2. no mpls ldp advertise-labels   关闭ldp的分发标签的功能

这里采用方案2 R3:

no mpls ldp advertise-labels

mpls ldp advertise-labels for 20  —-匹配ACL20

access-list 20 permit 11.1.1.1

access-list 20 permit 44.1.1.1

效果:  

7)关闭TTL Propagation(TTL繁衍)

目的是保护运营商设备不被trace发现 默认情的当IP包到达入口PE时,IP包头中的TTL值减1后被复制到新插入的标签TTL中 关闭TTL繁衍可以隐藏运营商设备

no mpls ip propagate-ttl forwarded  —-只对流进PE的流量生效

no mpls ip propagate-ttl local     ——只对本PE生成的流量生效

no mpls ip propagate-ttl      —–对所有流量生效

对比一下关闭TTL Propagation前后的trace效果 Company B向A公司通信 相同效果:

Author: Y1ng
Link: https://www.gem-love.com/2019/12/12/实现基于mpls的vpn/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
【腾讯云】热门云产品首单特惠秒杀,2核2G云服务器45元/年    【腾讯云】境外1核2G服务器低至2折,半价续费券限量免费领取!