本文核心主题是区分pvid,vlan id,dot1q id,termation vlan id等几个概念。
·请看简要拓扑图
·如上图,我们知道在数据传输中,vlan10一致,放行,通了,结束。我们平时会把接口加入vlan10,trunk放行vlan10,子接口加入vlan10等操作,在口头上各种10都会统称vlan10,混为一谈,但是实际定义上是有一定区别的。
我们从图上先发现几个指令:
1.交换机的端口配置port default vlan 10
2.交换机内部逻辑vlan配置vlan 10
3.运营商边缘路由dot1q termation vlan20,translation add tag 20(图上没体现,外层封装终结vlan,用户无感,后面会讲)
4.核心路由的子接口配置vlan-type dot1q 10
大家请看对照表:
交换机端口 | Port default vlan 10 | 即pvid 10,是交换机物理端口的 id |
交换机内部 | vlan 10 | 即vlan10,是交换机内部的编号为10的逻辑通道 |
运营商边缘 | dot1q termation vlan20 | 即vlan20终结,识别、剥离外层/单层vlan |
运营商边缘 | Tsl add tag 20 | 即vlan20外层封装 |
路由子接口 | vlan-type dot1q 10 | 即vlan10终结,识别、剥离单层vlan |
我们根据拓扑图再来看看数据帧是如何转发的(上一期的排错也已经讲过)
从上图我们可以看到,
1.我们常说的接口划分到vlan10下,实际是把接口的pvid设置为10;
2.我们常说的交换机上创建vlan10,实际是在交换机内部建立vlan 10的逻辑通道;
3.我们常说的Trunk放行vlan10 ,实际是把vlan10标签的数据,通过交换机内部vlan10的逻辑通道交给trunk接口,trunk接口匹配vlan10即转发。
好,到此,我们基本清晰了pvid10、vlan10、trunk放行10的含义。
下面,记录一下标签是什么时候打上,如何打上,什么时候剥离,如何剥离的。
首先要知道,设备端的数据是不参杂标签信息的,也就是说pc1发出和接收的数据包都是没有标签tagged信息的。
首先:pc1 发出数据a。pc1与交换机连接的端口收到数据a,端口发现数据a没有标签信息(untagged),那么端口(port default vlan 10)的pvid就给数据a包装一下。包装成vlan[pvid的值]+数据a,即vlan[10]+数据a
中间省略。。。
运营商环节:
1、vlan[10]+数据a 走上了运营商的线路,抵达运营商的接收边缘,接收边缘封装外层vlan(QinQ技术,解决vlan号不够用,这个一般为运营商操作,用户不涉及),好比数据装进了包装盒,包装盒装上了集装箱,数据变成vlan[20][10]+数据a;
(注:由于vlan标签占用4个字节,32bit位,其中12bit位为vlan编号使用,则限定了vlan编号从[0-4095],只有4000多个,我运营商不能只服务这4000+个业务吧,这么多怎么办?由此诞生的qinq技术,直白点就是皮裤套棉裤,vlan套两层,积数级别放大vlan编号)
2、数据通过运营商内部通道vlan20出站至运营商的发送边缘,发送边缘终结剥离外层vlan20,发送数据vlan[10]+数据a
中间省略。。。
最后的环节:无论如何,到达目的地前的最后一个交换设备时,从端口发给终端的数据是剥离vlan信息的,即只有数据a。