tag,untag以及交换机的各种端口模式是网络工程师调试交换机时接触最频繁的概念。我们来各个击破。 untag、tag都是交换机对报文进行的动作。 Untag Untagged操作一定发生在交换机向外发送数据时,端口配置untagvlan表示上行打上vlan标签,下行剥离vlan标签。 华为S5720 displaycurrentconfigurationinterfaceEthTrunk10 interfaceEthTrunk10 descriptionToxxx portlinktypehybrid qinqvlantranslationenable porthybridtaggedvlan2to99携带该299VLAN标签的报文直接透传 porthybriduntaggedvlan38383932 端口下行(发送给PC)收到带38383932VLAN的报文直接剥离VLAN后发送给PC 上行(数据帧从外部设备流入交换机)没有标签就需要打上相应的38383932VLAN标签 modelacp tag tag表示透传,端口接收到相应VLAN标签的报文直接放行,不做处理。 注意1:数据帧流入交换机相应的端口一定会打上标签然后再将数据帧送入转发进程,即数据帧在交换机内部处理时,均带有vlantag。 (也即交换机内部的数据流动一定是都带有标签的,即使没有配置VLAN,也会使用默认的VLAN1的标签) 注意2:对于华为或华三交换机缺省VLAN称之为“PvidVlan”,而思科交换机缺省VLAN称之为“NativeVlan”(本征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表示非规范格式,应用于TokenRing。 VLANID域,占12bit,用于标示VLAN的归属。 我们都知道,交换机接口类型有三种:access、trunk、hibird(华三、华为专属) Access类型接口 一般用于直接连PC,下行(发送)数据剥离VLAN,不携带VLAN标签,上行(接收)打上access对应的VLAN标签。 H3CSW5130: interfaceGigabitEthernet101 descriptionxx portaccessvlan13上行打上tag13;下行剥离vlantag13,数据帧发送给对端设备(一般连接PC) broadcastsuppressionpps1000广播报文抑制 multicastsuppressionpps1000组播报文抑制 Trunk类型端口: 一般用于交换机之间连接的端口,可以运行携带多个VLAN报文通过(也即可以接收和发送多个VLAN的报文) 端口接收方向看是否携带VLAN标签 H3CSW5130: interfaceBridgeAggregation1trunk一般应用到交换机与交换机的互联接口 descriptionxxxxBri17 portlinktypetrunk undoporttrunkpermitvlan1PVID不透传,防止广播泛洪 porttrunkpermitvlan2to4094透传相应VLAN linkaggregationmodedynamic动态链路聚合 Trunk端口总结: 接收方向:针对从对端交换机发送过来的数据帧交换机从对端收到一个数据帧,先判断是否带Tag。 1、如果不带Tag,则使用该接口上配置的PVID作为Tag打上标签,然后再送入转发进程。 2、如果带Tag,则查看该接口的allowpass列表中是否有该Tag对应的VLAN,有则转发,没有则丢弃。 发送方向:针对从本交换机发往对端交换机方向的数据帧。 1、交换机从其它接口转发到Trunk接口的数据一定带有标签(交换机内部流动的数据帧始终是带有标签),因此交换机会先判断该数据帧的Tag与该Trunk接口配置的PVID是否相等,相等则去掉Tag然后再转发到对端交换机,不相等则直接发送到对端交换机。 (前提是该Trunk接口的allowpass列表中应该有该Tag对应的VLANID)。 Hybrid类型的端口 该类型为华三、华为专有,思科没有这种端口类型。它可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接PC。 Hybrid端口总结: 接收方向:针对从外部设备流入交换机的数据帧交换机从外部设备收到一个数据帧,先判断数据帧是否带Tag 1、如果不带Tag,则使用该端口配置的PVID作为Tag打上标签,然后送入转发进程,查找MAC表转发到相应接口。 2、如果带Tag,则判断该Hybrid接口配置的VLANList中是否允许该Tag对应的VLANID,如果有则接收数据帧送入转发过程,查找MAC表转发到相应接口;如果VLANList 中没有该Tag对应的VLANID,则将该数据帧丢弃。 在设备上允许trunk和hybrid端口同时存在,但是不能将hybrid端口直接改为trunk。 那么hybrid和trunk有什么区别呢? Hybrid端口可以允许多个VLAN的报文发送时不打标签(也即一个接口可以untag多个VLAN),而Trunk端口只允许缺省VLAN(PVID)的报文发送时不打标签 displaycurrentconfigurationinterfaceEthTrunk10 interfaceEthTrunk10 descriptionToxxx portlinktypehybrid qinqvlantranslationenable porthybridtaggedvlan2to99hybrid携带该299VLAN标签的报文直接透传 porthybriduntaggedvlan38383932允许多个VLAN不打标签 modelacp 对于Hybrid类型的端口数据能不能通过该端口,主要看VLANTagList,只要相应的VLANID在VLANList里就会允许通过, 所以处在不同VLAN的接口之间设备只要处在同一IP网段也可以互通(Hybrid端口可以灵活的打通二层的连通性) 那么我提个问题,大家思考下: 有个需求:业务接口需要同时跑不带vlan标签的报文及带vlan111标签的报文,你需要怎么去配置? 该需求我过两天在评论处给出解答。 【笔者为网络工程师,工作多年,希望把自己的经验分享给大家,觉得有用的,可以关注、点赞、转发,如有相同或者不同观点,欢迎评论,谢谢!】 【最近在我的文章里面上了一些尖货,有兴趣的朋友可以去看看哈。(包括网络入门级教程的资料分享)】