tag,untag以及交换机的各种端口模式是网络工程师调试交换机时接触最频繁的概念。我们来各个击破。
Untag
Untagged操作一定发生在交换机向外发送数据时,端口配置untag vlan表示上行打上vlan标签,下行剥离vlan标签。
//华为S5720
interface Eth-Trunk10
description To xxx
port link-type hybrid
qinq vlan-translation enable
port hybrid tagged vlan 2 to 99 //携带该2-99VLAN标签的报文直接透传
port hybrid untagged vlan 3838 3932
//端口下行(发送给PC)收到带3838 3932VLAN 的报文直接剥离VLAN后发送给PC
//上行(数据帧从外部设备流入交换机)没有标签就需要打上相应的3838 3932 VLAN 标签
mode lacp
tag
tag表示透传,端口接收到相应VLAN标签的报文直接放行,不做处理。
注意1:数据帧流入交换机相应的端口一定会打上标签然后再将数据帧送入转发进程,即数据帧在交换机内部处理时,均带有vlan tag。
(也即交换机内部的数据流动一定是都带有标签的,即使没有配置VLAN,也会使用默认的VLAN 1的标签)
注意2:对于华为或华三交换机缺省VLAN称之为“Pvid Vlan”,而思科交换机缺省VLAN称之为“Native Vlan” (本征VLAN)
802.1Q
封装VLAN标签的协议,区别与思科私有的ISL协议。
带802.1Q的帧是在标准以太网帧上插入了4个字节的标识。
其中包含:
2个字节的协议标识符(TPID),当前置0x8100的固定值,表明该帧带有802.1Q的标记信息。
2个字节的标记控制信息(TCI),包含了三个域。
Priority域,占3bits,表示报文的优先级,取值0到7,7为最高优先级,0为最低优先级。该域被802.1p采用。
规范格式指示符(CFI)域,占1bit,0表示规范格式,应用于以太网;1表示非规范格式,应用于Token Ring。
VLAN ID域,占12bit,用于标示VLAN的归属。
我们都知道,交换机接口类型有三种:access、trunk、hibird(华三、华为专属)
Access类型接口
一般用于直接连PC,下行(发送)数据剥离VLAN,不携带VLAN标签,上行(接收)打上access 对应的VLAN标签。
//H3C-SW 5130:
interface GigabitEthernet1/0/1
description xx
port access vlan 13 //上行打上tag 13 ; 下行剥离vlan tag13 ,数据帧发送给对端设备(一般连接PC)
broadcast-suppression pps 1000 //广播报文抑制
multicast-suppression pps 1000 //组播报文抑制
Trunk类型端口:
一般用于交换机之间连接的端口,可以运行携带多个VLAN报文通过(也即可以接收和发送多个VLAN的报文)
端口接收方向看是否携带VLAN标签
//H3C-SW 5130:
interface Bridge-Aggregation1 //trunk一般应用到交换机与交换机的互联接口
description xxxx-Bri17
port link-type trunk
undo port trunk permit vlan 1 //PVID 不透传,防止广播泛洪
port trunk permit vlan 2 to 4094 //透传相应VLAN
link-aggregation mode dynamic //动态链路聚合
#
Trunk 端口总结:
接收方向:针对从对端交换机发送过来的数据帧交换机从对端收到一个数据帧,先判断是否带 Tag。
1、如果不带 Tag,则使用该接口上配置的 PVID 作为 Tag 打上标签,然后再送入转发进程。
2、如果带 Tag,则查看该接口的 allow-pass 列表中是否有该 Tag 对应的 VLAN,有则转发,没有则丢弃。
1、交换机从其它接口转发到 Trunk 接口的数据一定带有标签(交换机内部流动的数据帧始终是带有标签),因此交换机会先判断该数据帧的 Tag 与该 Trunk 接口配置的 PVID 是否相等,相等则去掉 Tag 然后再转发到对端交换机,不相等则直接发送到对端交换机。
(前提是该 Trunk 接口的 allow-pass 列表中应该有该 Tag 对应的 VLAN ID)。
Hybrid类型的端口
该类型为华三、华为专有,思科没有这种端口类型。它可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接PC。
Hybrid 端口总结:
接收方向:针对从外部设备流入交换机的数据帧交换机从外部设备收到一个数据帧,先判断数据帧是否带 Tag
1、如果不带 Tag,则使用该端口配置的 PVID 作为 Tag 打上标签,然后送入转发进程,查找 MAC 表转发到相应接口。
2、如果带 Tag,则判断该 Hybrid 接口配置的 VLAN List 中是否允许该 Tag 对应的 VLAN ID,如果有则接收数据帧送入转发过程,查找 MAC 表转发到相应接口;如果 VLAN List
中没有该 Tag 对应的 VLAN ID,则将该数据帧丢弃。
在设备上允许trunk 和hybrid 端口同时存在,但是不能将hybrid 端口直接改为trunk。
那么hybrid和trunk有什么区别呢?
Hybrid端口可以允许多个VLAN的报文发送时不打标签(也即一个接口可以untag多个VLAN),而Trunk端口只允许缺省VLAN(PVID)的报文发送时不打标签
interface Eth-Trunk10
description To xxx
port link-type hybrid
qinq vlan-translation enable
port hybrid tagged vlan 2 to 99 //hybrid 携带该2-99VLAN标签的报文直接透传
port hybrid untagged vlan 3838 3932 //允许多个VLAN不打标签
mode lacp
//对于Hybrid类型的端口数据能不能通过该端口,主要看VLAN Tag List,只要相应的VLAN ID在VLAN List里就会允许通过,
//所以处在不同VLAN的接口之间设备只要处在同一IP网段也可以互通(Hybrid端口可以灵活的打通二层的连通性)
那么我提个问题,大家思考下:
有个需求:业务接口需要同时跑不带vlan标签的报文及带vlan111标签的报文,你需要怎么去配置?
该需求我过两天在评论处给出解答。
【笔者为网络工程师,工作多年,希望把自己的经验分享给大家,觉得有用的,可以关注、点赞、转发,如有相同或者不同观点,欢迎评论,谢谢!】
【最近在我的文章里面上了一些尖货,有兴趣的朋友可以去看看哈。(包括网络入门级教程的资料分享)】