跨设备VLAN通信

技术背景

  • 如下图所示的网络拓扑中,某公司的两台交换机,它们分别是SW1及SW2,
  • 在SW1上创建两个VLAN:10及20(分别将这两个VLAN分配给技术部与会计部),然后将GE0/0/1和GE0/0/2接口加入VLAN 10,那么这两个接口所连接的PC(PC1、PC2)也就加入了VLAN 10,并且它们属于同一个广播域。
  • 将GE0/0/3加入了VLAN 20,则PC3也加入了VLAN 20,属于另一个广播域。
  • 另外交换机SW2上也有技术部与会计部的员工需要接入,因此在SW2上也创建了VLAN 10、20,并且将接口添加到相应的VLAN中。
    在这里插入图片描述

引入问题

  • SW1及SW2都连接着技术部与会计部的员工电脑,这两台交换机可能分布在公司的不同楼层,
  • 公司希望SW1所连接的技术部的员工可以与SW2所连接的技术部的员工进行二层通信,它们应该属于同一个广播域并且使用同一个IP网段,会计部也是同理,
  • 另外公司依然希望SW1所连接的技术部的员工与SW2所连接的会计部是互相隔离的。
  • 上述问题其实是一个涉及VLAN跨交换机通信的问题。

解决方法

  • 传统的以太网数据帧无法标识数据的来源是来自VLAN10还是VLAN20。
  • IEEE 802.1 Q标准(Virtual Bridged Local Area Networks 虚拟桥接局域网标准),该标准定义了实现VLAN标签的方法,使得VLAN能够跨交换机实现。
  • IEEE 802.1 Q标准也常被称为Dot 1 Q标准,它对传统的以太网数据帧进行了修改,在数据帧头部中的源MAC地址和类型字段之间插入4byte的802.1 Q Tag(标记),如下图所示所示。
    在这里插入图片描述

802.1 Q Tag

802.1 Q Tag共计4byte,包含多个字段,每个字段的描述如下:

  1. 标签协议标识符(Tag Protocol Identifier, TPI ):2byte,表示数据帧的类型,如果该字段值为0x8100,则表示该数据帧是802.1 Q帧。
  2. 优先级(Priority, PRI ):3bits,表示帧的优先级。该字段主要用于QoS ( Quality of Service,服务质量)。
  3. 标准格式指示符(Canonical Format Indicator, CFI):1bit,在以太网环境中,这个字段始终为0。
  4. VLAN ID:12bits,该数据帧所属的VLAN-ID。

示例

  • 如下图所示,PC1发送了一份数据帧给PC2,该数据帧被PC1发出时,是传统的以太网数据帧,也被称为无标记帧(Untagged Frame ),主机的网卡通常只能发送和接收无标记帧。
  • 当这个数据帧到达SW1后,由于SW1的GE0/0/1接口己经加入VLAN 10,因此它知道该数据帧归属VLAN 10,于是它将在数据帧头部内插入Tag,在该Tag的VLAN-ID字段中填写数据帧的起源VLAN的ID: 10,于是这个数据帧就变成了一个标记帧(Tagged Frame )。
  • 其实在交换机内部,为了区分不同VLAN的数据帧,数据帧都是以标记帧的形式存在,至于该帧被交换机从某个接口发出去后是否携带Tag,则要视具体的情况而定。
  • 然后交换机在其MAC地址表中查询数据帧的目的MAC地址(只查询与VLAN10关联的表项),最终它发现该数据帧要从GE0/0/4接口送出,而且这个接口连接着干道链路,因此,它将数据帧以标记帧的形式发送出去。
  • SW2的GE0/0/4接口收到这个标记帧后,通过读取Tag中相应的字段,也就知道了这个数据帧所属的VLAN,因此在MAC地址表中查询该帧的目的MAC地址时,只在与VLAN 10关联的表项中查询。
  • 最后SW2将数据帧中的Tag移除,将数据帧还原成无标记帧发送给PC2。
    在这里插入图片描述

接口类型

  • 在VLAN技术被引入交换体系后,数据帧在交换机上的转发都与VLAN息息相关。交换机的二层接口存在多种类型,也被称为链路类型(Link-Type),不同类型的二层接口对VLAN数据帧的处理方式是不同的。
  • 值得注意的是,所有的二层接口无论其类型如何,都有一个缺省VLAN-ID,这个缺省VLAN-ID被称为PVID ( Port Default VLAN ID ),在HW交换机上,PVID缺省为1。
  • 此外,出于提高数据帧处理效率的考虑,在交换机内部,数据帧一律携带Tag。
Access类型
  • Access类型的二层接口通常用于连接终端设备,例如PC、服务器等,这些终端设备的网卡通常只收发无标记帧。
  • 如下图所示中的Port1, Port2, Port3, Port4和Port5都可以配置为Access接口。
  • 当交换机的接口用于连接路由器时,如果路由器的接口工作在三层模式,而且没有部署子接口(Sub-Interface ),则通常情况下交换机侧的接口也会被配置为Access类型,如下图中的Port8。
  • 如果采用基于接口划分VLAN的方式,那么交换机的一个Access接口只能加入一个VLAN,一旦接口加入了特定的VLAN,则该接口所连接的设备也就被视为属于该VLAN。
    在这里插入图片描述
Access接口接收数据帧
  • 接口接收数据帧,指的是一个来自交换机外部的数据帧,从交换机的某个接口到达并进入交换机内部的过程。

(1)当Access接口收到一个无标记帧时:

  • 交换机会接收这个数据帧,并将数据帧打上接口缺省VLAN的Tag。
  • 如下图(左)所示,假设GE0/0/1接口被配置为Access接口,而且加入了VLAN8,若GE0/0/1收到一个无标记帧,则该帧在进入交换机内部时交换机会为其打上VLAN8的Tag。
    在这里插入图片描述

(2)当Access接口收到一个标记帧时:

  • 如果该帧所携带的VLAN-ID与该接口的缺省VLAN-ID相同,那么交换机将接收这个数据帧,如上图(右)所示;
  • 如果该帧所携带的VLAN-ID与该接口的缺省VLAN-ID不相同,那么交换机将丢弃这个数据帧。
Access接口发送数据帧
  • 接口发送数据帧,指的是一个处于交换机内部的数据帧,被交换机从某个接口发送出去的过程。
  • 当Access接口发送数据帧时,交换机会将数据帧中的Tag剥除,然后再将数据帧从该接口发送出去,也就是说Access接口发送出去的数据帧一定是无标记帧
  • 如下图所示,数据帧在交换机内部是携带Tag的,在该数据帧被发出GE0/0/1接口时,Tag被剥除。
  • 需要注意的是,如果交换机内部存在一个标记帧,而且该帧携带的VLAN-ID不是8,那么它是不能从GE0/0/1接口发出的。
    在这里插入图片描述
Trunk类型
  • 与Access类型的接口相比,Trunk类型的接口是可以接收或者发送多个VLAN的数据帧的接口。
  • 如下图中的Port6及Port7如需承载多VLAN的数据帧,那么就可以配置为Trunk类型。
  • 因此Trunk类型的接口多见于交换机之间互联的接口,当然两台交换机之间的互联接口未必就一定得是Trunk类型。
  • 下图所示的网络拓扑中,如果路由器使用子接口的方式与交换机的Port8对接,那么Port8也可以配置为Trunk接口,因为该接口需要向对端发送标记帧。
    在这里插入图片描述
Trunk接口接收数据帧

(1)Trunk接口收到一个无标记帧时,

  • 首先交换机会将数据帧打上缺省VLAN的Tag,然后检查该VLAN-ID是否在接口允许通过的VLAN-ID列表中,如果允许,则将标记帧接收,反之则丢弃该帧。
  • 如下图(左)所示,接口GE0/0/24被配置为Trunk类型,并且接口的PVID为1(HW以太网交换机缺省时Trunk类型接口的PVID为1,而且VLAN1缺省即被添加到了允许通过的VLAN-ID列表中),一个无标记帧在该接口到达,该帧被标记VLANl的Tag,然后交换机在该接口允许通过的VLAN-ID列表中查询是否有VLAN1,如果有则接收该标记帧,反之则丢弃。

(2)如果Trunk接口收到标记帧,

  • 交换机将判断该帧所携带的VLAN-ID是否在接口允许通过的VLAN-ID列表中,如果允许,则接收这个标记帧,反之则丢弃该帧。
  • 如下图(右)所示,接口GE0/0/24收到一个标记帧,交换机将在接口允许通过的VLAN-ID列表中查询该帧所携带的VLAN-ID(也就是8),如果VLAN8在列表中,那么这个标记帧将被接收,反之则被丢弃。
    在这里插入图片描述
Trunk接口发送数据帧

当Trunk接口在发送数据帧时:

  • 如果该标记帧所携带的VLAN-ID与发送接口的PVID相同,并且该VLAN-ID又在接口允许通过的VLAN-ID列表中,那么这个数据帧的Tag将被剥除,然后从接口发出;
  • 如果该标记帧所携带的VLAN-ID与发送接口的PVID不同,并且该VLAN-ID又在接口允许通过的ULAN-ID列表中,那么这个标记帧将保持原有的Tag,直接从接口发送出去。
  • 如下图(左)所示,当GE0/0/24接口准备发送一个数据帧时,交换机发现数据帧所携带的VLAN-ID为1,与发送接口GE0/0/24的PVID相同,而且VLAN1又在该接口允许通过的VLAN-ID列表中,因此交换机把数据帧的Tag剥除,然后将其从接口GE0/0/24发出。(如果VLAN1不在接口允许通过的VLAN-ID列表中,那么这个帧是不允许从GE0/0/24接口发出的)
  • 如下图(右)所示,交换机准备发送的数据帧的VLAN-ID与发送接口GE0/0/24的PVID不相同,并且VLAN8又在该接口允许通过的VLAN-ID列表中,因此这个数据帧保持原有的Tag,从接口GE0/0/24发出。(如果VLAN8不在该接口允许通过的VLAN-ID列表中,则这个数据帧将不能从该接口发出。)
    在这里插入图片描述
Hybrid类型
  • Hybrid接口也能承载多个VLAN的数据,它与Trunk接口在数据帧的接收行为上大体相同。
  • Trunk接口在发送数据帧时,仅当待发送的数据帧的VLAN-ID与发送接口的PVID相同时,数据帧的Tag才会被移除,除此之外,该接口发送出去的其他VLAN的数据帧都是携带Tag的。
  • hybrid接口发送数据帧的行为则与Tnuik接口有些不同。通过命令可以指定Hybrid接口在发送某个或者某些VLAN的数据帧时不携带Tag。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值