1、VLAN通信原理

1.1 VLAN基本通信原理

为了提高处理效率,交换机内部的数据帧一律都带有VLAN Tag,以统一方式处理。当一个数据帧进入交换机接口时,如果没有带VLAN Tag,且该接口上配置了PVID(Port Default VLAN ID),那么,该数据帧就会被标记上接口的PVID。如果数据帧已经带有VLAN Tag,那么,即使接口已经配置了PVID,交换机不会再给数据帧标记VLAN Tag。

由于接口类型不同,交换机对帧的处理过程也不同。下面根据不同的接口类型分别介绍。

1 各类型接口对数据帧的处理方式


接口类型


对接收不带Tag的报文处



对接收带Tag的报文处理



发送帧处理过程






Access接口


接收该报文,并打上缺省VLAN的Tag。


  1. 当VLAN ID与缺省 VLAN ID相同时,接收该报文。
  2. 当VLAN ID与缺省 VLAN ID不同时,丢弃该报文。


先剥离帧的PVID Tag,然后再发送。


Trunk接口


  1. 打上缺省VLAN ID,当缺省VLAN ID 在允许通过的VLAN ID列表里时,接收该报文。
  2. 打上缺省VLAN ID,当缺省VLAN ID 不在允许通过的VLAN ID列表里时,丢弃该报文。


  1. 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。
  2. 当VLAN ID不在接允许通过的VLAN ID列表里时,丢弃该报文。


  1. 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。
  2. 当VLAN ID与缺省VLAN ID不同,且是该接口允许通过VLAN ID时,保持原有Tag,发送该报文。


Hybrid接


  1. 打上缺省VLAN ID,当缺省VLAN ID 在允许通过的VLAN ID列表里时,接收该报文。
  2. 打上缺省VLAN ID,当缺省VLAN ID 不在允许通过的 VLAN ID列表里时,丢弃该报文。


  1. 当VLAN ID在接口允许通过VLAN ID列表里时,接收该报文。
  2. 当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。


当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过命令设置发送时是否携带

Tag。


1.2 VLAN内跨越交换机通信原理

有时属于同一个VLAN的用户主机被连接在不同的交换机上。当VLAN跨越交换机时,就需要交换机间的接口能够同时识别和发送跨越交换机的VLAN报文。这时,需要用到Trunk Link技术。

Trunk Link有两个作用:

  1. 中继作用

把VLAN报文透传到互联的交换机。

  1. 干线作用

一条Trunk Link上可以传输多个VLAN的报文。

多个vlan拓扑使用stp的效率不高 多个vlan互相通信_数据帧

1 Trunk Link通信方式示意图

例如在图1所示的网络中,为了让DeviceA和DeviceB之间的链路既支持VLAN2内的用户通讯又支持VLAN3内的用户通讯,需要配置连接接口同时加入两个VLAN。即应配置DeviceA的以太网接口Port2和DeviceB的以太网接口Port1同时加入VLAN2和VLAN3。

当用户主机Host A发送数据给用户主机Host B时,数据帧的发送过程如下:

1.数据帧首先到达DeviceA的接口Port4。

2.接口Port4给数据帧加上Tag,Tag的VID字段填入该接口所属的VLAN的编号2。

3.DeviceA查询自己的MAC地址表中是否存在目的地址为DeviceB的MAC地址的转发表项。

如果存在,  DeviceA将数据帧转发给接口Port2。

如果不存在,DeviceA会将数据帧发送到本设备上除port4接口外的所有属于VLAN2 的接口。

4.接口Port2将帧转发到DeviceB上。

5.DeviceB收到数据帧后,会查询自己的MAC地址表中是否存在目的地址为Host B的MAC地址的转发表项。

如果存在,DeviceB会将数据帧发送给出接口Port3。

如果不存在,DeviceB会将数据帧发送到本设备上除port1接口外的所有属于VLAN2 的接口。

  1. 接口Port3将数据帧发送给主机Host B。

1.3VLAN间通信原理

划分VLAN后,不同VLAN之间不能直接通信。如果要实现VLAN间通信,可以采取以下方案:

  1. 子接口

如图2所示,DeviceA为支持配置子接口的三层设备,DeviceB为二层交换设备。LAN通过

DeviceB的以太网接口(交换式以太网接口)与DeviceA的以太网接口(路由式以太网接口)

相连。用户主机被划分到两个VLAN:VLAN2和VLAN3。可通过如下配置实现VLAN间互

通。

多个vlan拓扑使用stp的效率不高 多个vlan互相通信_多个vlan拓扑使用stp的效率不高_02

2 通过子接口实现VLAN间的通信

  1. 在DeviceA的以太网接口(与DeviceB相连的以太网接口)上创建2个子接口Port1.1 和Port2.1,并配置802.1Q封装与VLAN2和VLAN3分别对应。
  2. 配置子接口的IP地址,保证两个子接口对应的IP地址路由可通。
  3. 将DeviceB与DeviceA相连的以太网接口类型配置为Trunk或Hybrid类型,允许VLAN2 和VLAN3的帧通过。
  4. 将用户设备的缺省网关设置为所属VLAN对应子接口的IP地址。
  5. 主机A将主机C的IP地址和自己所在网段进行比较,发现主机C和自己不在同一个子网。
  6. 主机A发送ARP请求给自己的网关DeviceA,请求网关的MAC地址。
  7. DeviceA收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLAN2对应子接口的MAC地址。
  8. 主机A学习到网关的MAC地址。
  9. 主机A向网关发送目的MAC为子接口MAC地址、目的IP为主机C的IP地址的报文。
  10. DeviceA收到该报文后进行三层转发,发现主机C的IP地址为直连路由,报文将通过VLAN3关联的子接口进行转发。
  11. DeviceA作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求主机C的MAC地址。
  12. 主机C收到网关发送的ARP广播后,对此请求进行ARP应答。
  13. 网关收到主机C的应答后,就把主机A的报文发送给主机C。主机A之后要发给C的报文都先发送给网关,由网关做三层转发。

1.4 VLANIF接口

三层交换技术是将路由技术与交换技术合二为一的技术,在交换机内部实现了路由,提高了

网络的整体性能。三层交换机通过路由表传输第一个数据流后,会产生一个MAC地址与IP

地址的映射表。当同样的数据流再次通过时,将根据此表直接从二层通过而不是通过三层,

从而消除了路由器进行路由选择而造成的网络延迟,提高了数据包转发效率。

为了保证第一次数据流通过路由表正常转发,路由表中必须有正确的路由表项。因此必须在

三层交换机上部署三层接口并部署路由协议,实现三层路由可达。VLANIF接口由此而产生。

VLANIF接口是三层逻辑接口,可以部署在三层交换机上,也可以部署在路由器上。

在图3所示的网络中,交换机上划分了2个VLAN:VLAN2和VLAN3。可通过如下配置实

现VLAN间互通。

  1. 在Device上创建2个VLANIF接口并配置VLANIF接口的IP地址,保证两个VLANIF 接口对应的IP地址路由可通。
  2. 将用户设备的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。

多个vlan拓扑使用stp的效率不高 多个vlan互相通信_IP_03

3 通过VLANIF接口实现VLAN间的通信

主机A和C的通信过程如下:

1、主机A将主机C的IP地址和自己所在网段进行比较,发现主机C和自己不在同一个子网。

2、主机A发送ARP请求给自己的网关Device,请求网关的MAC地址。

3、Device收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLANIF2的MAC地址。

4、主机A学习到网关的MAC地址。

5、主机A向网关发送目的MAC为VLANIF接口MAC地址、目的IP为主机C的IP地址的报文。

6、Device收到该报文后进行三层转发,发现主机C的IP地址为直连路由,报文将通过VLANIF3接口进行转发。

7、Device作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求主机C的MAC地址。

8、主机C收到网关发送的ARP广播后,对此请求进行ARP应答。

9、网关收到主机C的应答后,就把主机A的报文发送给主机C。主机A之后要发给C的报文都先发送给网关,由网关做三层转发。