一、配置界面:
如果有页面可以添加trunk口和access口,如常规的HCI产品上,交换机通常可以增加新的trunk和access, 新建的时候,配置参数就不一样:
1、trunk:两个配置参数
(1)、vlan范围
(2)、pvid
2、access只有一个配置参数:vlanid
二、名词解释
针对数据包而言:
1、Tag:tag是指vlan的标签,即vlan的id,用于指名数据包属于那个vlan
2、untag指数据包不属于任何vlan,没有vlan标记。
3、pvid,即端口vlan id号,是非标记端口的vlan id 设定,当非标记数据包进入交换机,交换机将检查vlan设定并决定是否进行转发。一个ip包进入交换机端口的时候,如果没有带tag头,且该端口上配置了pvid,那么,该数据包就会被打上相应的tag头!如果进入的ip包已经带有tag头(vlan数据)的话,那么交换机一般不会再增加tag头,即使是端口上配置了pvid号;当非标记数据包进入交换机。
针对交换机端口而言:
若某一端口在vlan设定中被指定为非标记端口untagged port, 所有从此端口转发出的数据包上都没有标记 (untagged)。若有标记的数据包进入交换机,则其经过非标记端口时,标记将被去除。因为目前众多设备并不支持标记数据包,其也无法识别标记数据包,因此,需要将与其连接的端口设定为非标记。
若某一端口在vlan设定中被指定为标记端口tagged port, 所有从此端口转发出的数据包上都将有标记 (tagged)。若有非标记的数据包进入交换机,则其经过标记端口时,标记将被加上。此时,其将使用在ingress 端口上的pvid设定作为增加的标记中的vlan id号
三、使用场景
1、trunk口用于交换机和交换机之间的连接,因为trunk可以同时传送多个
2、Hybrid口,Hybrid口上可以同时传送多个VLAN的包,一般用于交换机之间的链接或交换机于服务器的链 接。
3、Access口,Access口只能属于1个VLAN,一般用于连接计算机的端口。
四、各端口收发数据的区别
端口类型 收发 描述
Access 收报文 判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
发报文 将报文的VLAN信息剥离,直接发送出去
Trunk 收报文 收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃
发报文 比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送
Hybrid 收报文 收到一个报文判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃 发报文 判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送
五、实例分析![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2c993825958b0ceb6d21accd52935d28.png)
备注:bvs可以看成内部处理,trunk则是bvs的物理出口
场景一:trunk到trunk,pvid一样
trunk1的范围和trunk2范围是同一个pvid,同时允许通过的vlan范围一样:
当从pc1往pc2发送报文时
(1)、pc发送icmp request报文,此时,不带tag
(2)、trunk1收到icmp request报文后,检查是否有tag,发现是untag报文,那么会将pvid的tag加到该报文里面
(3)、转发到trunk2上,trunk2此时需要确认是否发送该报文,检查该报文是否有vlantag,发现有vlantag,并且tag和pvid一样,则剥离vlantag,然后发送到pc2
(4)、pc2能收到正常的报文,然后回复icmp reply,然后走(1)->(3)的流程,能正常ping通
、
场景二、trunk到trunk,pvid不一样
trunk1的范围和trunk2范围不是同一个pvid,同时允许通过的vlan范围一样:
从pc1往pc2发送报文
(1)、pc发送icmp request报文,此时,不带tag
(2)、trunk1收到icmp request报文后,检查是否有tag,发现是untag报文,那么会将pvid的tag加到该报文里面
(3)、转发到trunk2上,trunk2此时需要确认是否发送该报文,检查该报文是否有vlantag,发现有vlantag,直接发送
(4)、pc2能收到PC1发送的报文,但是由于带了vlan tag,pc不支持vlan报文解析,所以,不能回报
综上所述,这种情况,不能pc1和pc2不能通
场景三:trunk 到 access,pvid和access是一个值
Trunk1的pvid和access的vlanid一致
1、从trunk1下的pcping到access下的pc
(1)、pc发送icmp request报文,此时,不带tag、
(2)、trunk1收到icmp request报文后,检查是否有tag,发现是untag报文,那么会将pvid的tag加到该报文里面
(3)、转发到access上,access判断报文的tag和自己一致,剥离vlan的头部,发送报文
(4)、pc收到报文后,回复reply报文
(5)、access收到报文后,发现报文没有tag,增加vlantag标记,转发
(6)、trunk剥离vlantag,发送到pc,能ping通
其他场景也类似