VPN(虚拟专线网络
作用:实现广域互联(不同地域局域网之间跨越公网进行互通);
MPLS VPN
设备角色:
PE(运营商边界设备):
CE:VPN用户企业的边界设备
P:运营商
VPN实例
一般一个企业对应一个VPN实例,通过实例名称作为区分;
RD(路由标识符)
作用:用于区分来自不同的VPN实例的私网路由;
原理:会根据私网路由一起在公网上传递;
特点:不同的VPN实例不能配置相同的RD值;
RT(路由目标值)
作用:控制VPN路由的接收,实现VPN实例之间的访问控制;
原理:私网路由在公网上传递时,会携带对应vpn实例的出方向RT,对端PE收到后会对比路由中的出方向RT,与自身连接的VPN实例的入方向RT是否一致,一致则传递进该VPN实例,不一致则不传;
因此,在配置时,需要互通的VPN实例之间的RT值需要交叉一致;
VRF(虚拟路由转发表/VPN实例路由表)
在PE设备上,每个VPN实例都会有一张对应的VRF表,功能跟路由表一致,但是专门用于存放VPN路由;
关键信息:私网标签、vpn实例名称,下一跳/出接口,tunnel id;
display ip routing-table vpn-instance a //查看vpn实例a的路由表
控制层面工作过程:
1、CE会将需要跟对端通信的路由,以普通路由的形式传递给PE;
2、PE会将从CE收到的路由,记录进对应的VRF表项中,记为私网路由;
3、PE会为私网路由,分配一个私网标签,并且将该路由以update报文的形式传递给所有vpnv4邻居;
update报文:携带非ipv4单播路由时,通过mp-reach-NLRI字段携带路由;
NLRI:携带私网路由、掩码、私网标签;
下一跳:以自身作为下一跳;
扩展团体属性:出方向RT;
4、PE收到对端PE发送过来的VPNv4路由时,会做出以下检查:
(1)下一跳是否可达;
(2)下一跳是否存在完整的隧道;
(3)检查VPNv4路由的出方向RT与本设备连接的其他的VPN实例的RT是否一致;
当上述三个条件均满足,则该路由会被学习进VRF表项中,并且BGP VPN路由表中该路由也会显示为有效
配置:
1、CE设备与PE设备建立普通的EBGP/IGP邻居关系,并且宣告/引入需要进行广域互联的路由给PE设备;
CE1:
bgp 700
peer 10.1.17.1 as-number 100
network 8.8.8.8 32
2、PE上创建VPN实例,并且设置RD、RT值;
PE1:
ip vpn-instance a
route-distinguisher 1:1
vpn-target 1:2 export-extcommunity
vpn-target 2:1 import-extcommunity
PE2:
ip vpn-instance b
route-distinguisher 2:2
vpn-target 2:1 export-extcommunity
vpn-target 1:2 import-extcommunity
3、将VPN实例绑定到连接到对应客户的接口下
interface GigabitEthernet0/0/0
ip binding vpn-instance a
ip address 10.1.17.1 24 //绑定完成后,ip地址会清空,需要重新配置
4、在PE上与CE建立BGP/IGP的实例邻居(以BGP为例)
bgp 100
ipv4-family vpn-instance a //进入VPN实例a视图
peer 10.1.17.7 as-number 700 //peer CE设备建立邻居
5、PE1与PE2之间跨跳建立VPNv4邻居
bgp 100
peer 4.4.4.4 as-number 100
peer 4.4.4.4 connect-interface LoopBack0
ipv4-family vpnv4 //进入BGP的VPNv4协议栈
peer 4.4.4.4 enable //与4.4.4.4建立vpnv4邻居
如果想减轻设备负担,可以关闭PE之间的普通ipv4邻居:
BGP 100
ipv4-family unicast
undo peer 4.4.4.4 enable
6、在CE上将BGP引入到IGP
CE2:
isis 1
import-route bgp
display ip vpn-instance verbose //查看VPN实例的配置以及绑定情况
display bgp vpnv4 all peer //查看VPN实例邻居
display bgp vpnv4 all routing-table //查看BGP VPN路由表
display ip routing-table vpn-instance a verbose //查看VRF a详细信息,其中包含私网标签以及tunnel id;
如果PE与CE之间运行IGP(以ospf 3为例)
CE2:
ospf 3 router-id 6.6.6.6
area 0.0.0.0
network 10.1.46.0 0.0.0.255 //与PE建立普通的ospf邻居
import-route isis 1 //将需要传递给对面的私网路由引入到ospf 3
PE2:
ospf 3 router-id 4.4.4.4 vpn-instance b
area 0.0.0.0
network 10.1.46.0 0.0.0.255 //与CE设备建立VPN实例邻居
bgp 100
ipv4-family vpn-instance b
import-route ospf 3 //在BGP中创建vpn实例b视图,引入ospf3
ospf 3
import-route bgp //将bgp引入致ospf 3,使对端的路由,可以传递给CE设备;
CE2:
isis 1
import-route ospf 3 //将ospf 3引入到isis,使对端的路由,可以传递给本企业的设备;