使用VLL技术实现多家合作伙伴复用同一条链路做两端数据全透传
个人博客地址
公司A当前租用一条10G跨市运营商光缆,自身业务只用到一半流量,为节省成本,寻求多家合作伙伴共用链路以达到财务需求
合作伙伴需求接入链路全透传,即光缆两端接入点端口逻辑直连
当前有三种方案可以实现上述需求
Vxlan
VLL
VPLS
该篇仅分析使用VLL来实现,Vxlan和VPLS在之后的文档中分析
首先来介绍下VLL技术
VLL基本架构
AC(Attachment Circuit)接入电路
公司A到合作伙伴之间的电路,一般是同机房光纤直连,或者传输线路
VC(Virtual Circuit)虚电路
公司A两端PE间建立的单向虚拟连接,可以使用LDP做为信令或者手动配置
PW(Pseudo Wire)伪线
双线VC组成一条PW,承载合作伙伴数据
Tunnel隧道
用来承载PW,两端PE间的隧道,可以是lsp,GRE隧道等
VLL分类
CCC
CCC方式一般用于本地连接,绑定PE两个端口为一组CCC端口,用于两个本地站点数据交互
martini
martini方式用于异地站点间数据交互,使用LDP信令来用于VC标签交换
SVC
SVC方式同martini控制层面与数据层面,只是不使用LDP做为VC标签交换,使用手动分配VC标签,类似于mpls手动隧道于LDP隧道的区别
VLL控制平面
PE-PE间使用mpls ldp隧道,mpls ldp不在介绍,可见另一篇文档,PE-PE对每一组合作伙伴用户端口分配相同L2VC-ID 同时手动或者使用LDP分配VC标签,PE1收到PE2分发的关于CE1 的VC标签后对比两端L2VC-ID是否相同,如果相同就建立映射关系,建立单向VC
VLL数据平面
PE收到CE的数据后打上对端PE分配的VC标签,查找映射表后在压入公网标签,数据包在mpls链路上传输时依靠公网标签,到达对端PE后根据VC标签转发至相应端口,下文抓包分析
配置举例,使用martini方式建立VLL举例
#ospf部分略 #mpls部分 PE1# mpls lsr-id 1.1.1.1 mpls mpls ldp interface GigabitEthernet0/0/0 ip address 12.1.1.1 255.255.255.0 mpls mpls ldp #P mpls lsr-id 2.2.2.2 mpls mpls ldp interface GigabitEthernet0/0/0 ip address 12.1.1.2 255.255.255.0 mpls mpls ldp interface GigabitEthernet0/0/1 ip address 23.1.1.2 255.255.255.0 mpls mpls ldp #PE2 mpls lsr-id 3.3.3.3 mpls mpls ldp interface GigabitEthernet0/0/1 ip address 23.1.1.3 255.255.255.0 mpls mpls ldp #VLL部分 #PE1 mpls l2vpn mpls ldp remote-peer 3.3.3.3 remote-ip 3.3.3.3 interface GigabitEthernet0/0/3 mpls l2vc 3.3.3.3 101 #PE2 mpls l2vpn mpls ldp remote-peer 1.1.1.1 remote-ip 1.1.1.1 interface GigabitEthernet0/0/3 mpls l2vc 1.1.1.1 101
PE1上查看MPLS LDP状态
查看VLL状态
可以看到分配的VC label 是1026
PE2上查看PE1对应的公网标签为1025
CE2测试pingCE1
抓包分析
抓包可以看到CE2---CE1的数据经过PE2封装后压入MPLS隧道外层标签是1025,内层标签是1026
再转P向PE1转发的数据包
可以看到由于mpls的php(次末跳弹出)机制,数据包到达PE1时只有一层VC标签1026,PE1根据VC标签把数据转发至相应端口
但现网中往往中间的P设备并不支持mpls或者不归我们管理, 此时可以使用GRE隧道来承载PW
#区别使用MPLS承载配置如下 interface Tunnel0/0/0 ip address 192.168.1.1 255.255.255.0 tunnel-protocol gre source 1.1.1.1 destination 3.3.3.3 tunnel-policy t1 tunnel select-seq gre load-balance-number 1 interface GigabitEthernet0/0/3 mpls l2vc 3.3.3.3 101 tunnel-policy t1
抓包观察
可以看到在VC标签外层包裹一层GRE,实际使用中需要根据业务类型来调整MTU大小,否则会极大的影响传输效率
以上就是VLL的整个转发过程,VLL有个缺陷是只能有两个站点间做数据全透传,不支持多个站点,而VPLS支持多个站点间二层互通,后续继续分享VPLS实现方式