MPLS 实现VPN

原理:mpls使用了两层标签 一层用于打破路由黑洞 一层实现私网互通

B1访问B2 把数据包交给R2

R2查询FIB表 (表中有是否打上标签 标签号是几的信息)于是给数据包打上两层标签 B2的每条路由在R4上都拥有一个不会重复的标签号 这一标签用来区分信息传给B2还是A2 第一层标签 是去往R4的环回(BGP建邻使用的环回)的标签 第二层标签则是给R4看的用于区分不同的路由条目的标签 

R3收到后 查询LFIB表 发现下一跳是3 3作为一个特殊标签 指的是弹出标签 把数据交给R4并且弹出标签 此时如果只有一层标签 弹出后给R4 R4将查询FIB表 而FIB表中是RIB表的延续 并不能区分不同的私有空间

R4收到后 由于弹出一层 剩下的还有一层标签 将查询 LFIB表 将最后一层标签弹出 并通过标签知道下一跳交给R5 于是B1B2成功互通

外层标签由下游提供 内层标签则由BGP邻居提供

数据层面通过标签来区分

控制层面则通过RD和RT区分

RD区分本端的不同VPN        RT则用于确认对端与自己是否在同一个VPN

开始实验:

首先配置网络 合法的ip和路由


[R1-LoopBack0]ip add 192.168.1.1 24
[R1-GigabitEthernet0/0/0]ip add 192.168.2.1 24

[R6-LoopBack0]ip add 192.168.1.1 24
[R6-GigabitEthernet0/0/2]ip add 192.168.2.1 24


[R2]ip vpn-instance B
[R2-vpn-instance-B]ipv4-family 
[R2-vpn-instance-B-af-ipv4]route-distinguisher 1:1          
[R2-vpn-instance-B-af-ipv4]vpn-target 1:1
注:在R2上需要先创建vpn空间再进行ip的配置否则会将IP作用于公网
[R2-GigabitEthernet0/0/1]ip binding vpn-instance B
声明这个接口在vpn空间B
[R2-GigabitEthernet0/0/1]ip add 192.168.2.2 24
[R2-LoopBack0]ip add 2.2.2.2 32

[R2]ip vpn-instance A
[R2-vpn-instance-A]ipv4-family 
[R2-vpn-instance-A-af-ipv4]route-distinguisher 2:2
[R2-vpn-instance-A-af-ipv4]vpn-target 2:2
[R2-GigabitEthernet0/0/2]ip binding vpn-instance A
[R2-GigabitEthernet0/0/2]ip add 192.168.2.2 24
[R2-GigabitEthernet0/0/0]ip add 23.0.0.1 24

[R3-GigabitEthernet0/0/1]ip add 23.0.0.2 24
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-GigabitEthernet0/0/0]ip add 34.0.0.1 24

[R4-LoopBack0]ip add 4.4.4.4 32
[R4-GigabitEthernet2/0/0]ip add 47.0.0.1 24

[R4]ip vpn-instance B
[R4-vpn-instance-B-af-ipv4]route-distinguisher 1:1
[R4-vpn-instance-B-af-ipv4]vpn-target 1:1
[R4-vpn-instance-A-af-ipv4]route-distinguisher 2:2
[R4-vpn-instance-A-af-ipv4]vpn-target 2:2
[R4-GigabitEthernet0/0/2]ip add 47.0.0.2 24
[R4-GigabitEthernet2/0/0]ip binding vpn-instance A
[R4-GigabitEthernet2/0/0]ip add 192.168.3.2 24

[R4-GigabitEthernet0/0/0]ip binding vpn-instance B
[R4-GigabitEthernet0/0/0]ip add 192.168.3.2 24

[R5-LoopBack0]ip add 192.168.4.1 24
[R5-GigabitEthernet0/0/1]ip add 192.168.3.1 24

[R7-GigabitEthernet0/0/0]ip add 192.168.3.1 24
[R7-LoopBack0]ip add 192.168.4.2 24
[R7-GigabitEthernet0/0/2] ip add 47.0.0.1 24

路由:先实现公网互通

[R2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0   
[R3-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 47.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[R7-ospf-1-area-0.0.0.0]network 47.0.0.0 0.0.0.255
4 7之间是公网

 想要7的环回能访问公网需要nat

[R7]acl 2000
[R7-acl-basic-2000]rule permit source 192.168.4.0 0.0.0.255
[R7-GigabitEthernet0/0/2]nat outbound  2000

开始配置mpls域 

[R2]mpls lsr-id 2.2.2.2
[R2]mpls    
Info: Mpls starting, please wait... OK!
[R2-mpls]mpls ldp

在接口上开启

[R4-GigabitEthernet0/0/1]mpls 
[R4-GigabitEthernet0/0/1]mpls ldp
其余操作类似

234上都需要配置

配置bgp 

R2 R4建邻:

[R4]bgp 1  
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 2.2.2.2 as-number 1  
[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R2]bgp 1
[R2-bgp]peer 4.4.4.4 as-number 1
[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0

[R4-bgp]ipv4-family vpnv4
[R4-bgp-af-vpnv4]peer  2.2.2.2 enable 
开启BGP拓展功能 与对端建立连接R2上也同样开启

 现在就差把A1A2B1B2的路由导入到路由器中了

B1B2采取静态方法 A1采取ripA2采取ospf

B1:

[R2]ip route-static vpn-instance B 192.168.1.0 24 192.168.2.1
[R4]ip route-static vpn-instance B 192.168.4.0 24 192.168.3.1
然后通过bgp来传播路由给对端

[R2-bgp]ipv4 vpn-instance B
[R2-bgp-B]import-route static   
[R2-bgp-B]import-route direct 
[R4-bgp]ipv4 vpn-instance B

[R4-bgp-B]import-route static 
[R4-bgp-B]import-route direct 
现在只需要将ce路由器的缺省指向pe

[R1]ip route-static 0.0.0.0 0 192.168.2.2
[R5]ip route-static 0.0.0.0 0 192.168.3.2

 成功互通

R7 ospf 

[R7]ospf 1               
进程号只具有本地意义
[R7-ospf-1]area 0
[R7-ospf-1-area-0.0.0.0] n    
[R7-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R7-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255
[R4]ospf 2 vpn-instance A
[R4-ospf-2-area-0.0.0.0]network 192.168.3.0 0.0.0.255

[R4-bgp]ipv4 vpn-instance A
[R4-bgp-A]import-route ospf 2

R6 RIP

[R6]rip
[R6-rip-1]version 2
[R6-rip-1]network 192.168.1.0
[R6-rip-1]network 192.168.2.0

[R2]rip vpn-instance A

[R2-rip-1]version 2

[R2-rip-1]network 192.168.2.0 
[R2-rip-1]bgp 1
[R2-bgp]ipv4 vpn-instance A
[R2-bgp-A]import-route rip 1

双向重发布

[R2-rip-1]import-route bgp 
[R4-ospf-2]import-route bgp 

 成功访问 

总结一下基本步骤

1 首先配置合法的ip地址 

2 公网的路由要通

3 在pe上创建vrf虚拟路由转发空间 配置好RD RT

4 配置mpls区域在需要打标签的接口上都要开启

5 启动扩展bgp 先正常建邻 然后使用pv4-family vpnv4进行vpn建邻

6 将ce的路由到给pe 需要静态 或者 动态做法

        6.1静态:在pe上使用ip route-static vpn-instance 【vty名称】来添加 然后重发布到bgp中

        6.2动态:在ce上正常配置 动态协议 在pe上使用ospf 2 vpn-instance A配置然后双向重发布

 至此 实验结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值