关于VLAN Tag,PVID的问题

VLAN(Virtual Local Network,虚拟局域网),对于VLAN的划分方法有很多种:基于端口划分,基于MAC地址划分,基于网络协议划分,基于IP地址划分,基于策略划分等等。但是就上述而言,对VLAN的划分就是以交换机为主语的,也就是说,主机并不感知VLAN的存在,那么关于报文中VLAN的标签到底是怎么回事呢?

首先,我们先来说一下交换机的端口。

交换机的端口以三种分类:

  1. Access接口:一般用于接用户计算机,一个Access端口只能属于一个VLAN。
  2. Trunk接口:一般用于交换机之间的互联的端口,trunk口可以属于多个VLAN,可以接受和发送多个VLAN的报文。
  3. Hybrid接口:可以用于交换机之间的连接,也可以用于接用户的计算机,Hybrid端口可以属于多个VLAN,可以接受和发送多个VLAN的报文。

那么对于可以接受和发送多个VLAN的端口来说,就有一个缺省VLAN的概念,什么是缺省VLAN呢?举个例子,当收到一个不知道属于哪个VLAN的报文的时候,Trunk端口或者Hybrid端口怎么对其进行处理呢?就将其设置为缺省VLAN。对于缺省VLAN也有叫做PVID(Port VID),或者Native Vlan的叫法。缺省VLAN可能是不存在的VLAN。

  1. Access端口只属于一个VLAN,则缺省VLAN就是他所在的VLAN,不用设置。
  2. Hybrid端口和Trunk口都属于多个VLAN,所以需要设置缺省VLAN ID。在没有设置的情况下,这个缺省VLAN ID均为1。

所谓VLAN tag就是在以太网帧格式的源MAC和目的IP之间添加了4字节,这四个字节中除了控制位以外,就是12bit的VLAN ID号码。这个报文格式由于是IEEE 802.1Q协议提出的,所以有时候也称为802.1Q帧格式。

端口对于报文的处理,其处理方面分为两种:接受报文、发送报文:

  1. Access端口:
    1. 当收到不带VLAN Tag的报文,则加上端口的PVID;当收到带VLAN Tag的报文,则交换机不做处理,直接丢弃。
    2. 当Access端口向主机发送帧时,会剥离802.1Q的 tag头部,发送普通的以太网帧给主机。
  2. Trunk端口:
    1. 当收到不带VLAN Tag的报文,则打上端口的PVID;如果该帧包含802.1Q的报文头部,查看是否允许进入(缺省VID,所包含VID),如果可以则接收,否则丢弃。
    2. 当发送帧时,比较该帧的VLAN ID与端口PVID,当不同时,且是允许通过的VLAN ID,则保留Tag,直接透传;当相同时,则去掉Tag,发送报文。
  3. Hybrid端口:
    1. 当接收到不带VLAN Tag的报文时,打上端口的PVID;当该帧包含802.1Q报文头部,查看是否允许进入(PVID,所包含VID),如果可以则接收,否则丢弃。
    2. 当发送报文时,当VLAN ID是该端口允许通过的VLAN ID,则发送该报文,并可以通过命令进行配置端口在发送该VLAN报文时候是否携带Tag。
  4. 总的来说,在接受数据的时候,PVID的作用是为不带VLAN Tag的untag报文添加一个PVID 的tag;在发送报文的时候,将带有PVID Tag的报文的VLAN Tag剥离,从而发送一个不带VLAN Tag的untag报文。这也就是主机与交换机相连的时候采用Access端口,主机从属VLAN但是主机不感知VLAN的原因。
  5. Trunk端口和Hybrid端口的最大区别是,Trunk端口在发送报文时候,只有当VLAN Tag=PVID的时候才会发送出不带Tag的报文;而Hybrid端口可以配置发送多个VLAN的报文,且不带VLAN Tag。
  6. 值得一提的是,同一个交换机上Trunk和Hybrid是不允许并存的。对于Hybrid的妙用如下:

    可以看到B与D的通信过程是这样的:

    1. 当D向B发送数据,到了端口2,加上VID=20的标签。交换机发现端口1允许通过VID=20的报文,然后报文到了端口1,端口1对于VID=20的报文是不加标签的,所以,剥离标签到达B。

    2. 当B向D发送数据时候,B的报文进入端口1,打上VID=10的标签。交换机发现端口2允许VID=10的报文,然后报文到达端口2,端口2对于VID=10的报文是不叫标签的,所以,剥离标签到达D。

    3. 对于这次通信的往返,虽能正常通信,但所走的VLAN是不同的。

  • 32
    点赞
  • 186
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值