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。 |
| 先剥离帧的PVID Tag,然后再发送。 |
Trunk接口 |
|
|
|
Hybrid接 口 |
|
| 当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过命令设置发送时是否携带 Tag。 |
1.2 VLAN内跨越交换机通信原理
有时属于同一个VLAN的用户主机被连接在不同的交换机上。当VLAN跨越交换机时,就需要交换机间的接口能够同时识别和发送跨越交换机的VLAN报文。这时,需要用到Trunk Link技术。
Trunk Link有两个作用:
- 中继作用
把VLAN报文透传到互联的交换机。
- 干线作用
一条Trunk Link上可以传输多个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 的接口。
- 接口Port3将数据帧发送给主机Host B。
1.3VLAN间通信原理
划分VLAN后,不同VLAN之间不能直接通信。如果要实现VLAN间通信,可以采取以下方案:
- 子接口
如图2所示,DeviceA为支持配置子接口的三层设备,DeviceB为二层交换设备。LAN通过
DeviceB的以太网接口(交换式以太网接口)与DeviceA的以太网接口(路由式以太网接口)
相连。用户主机被划分到两个VLAN:VLAN2和VLAN3。可通过如下配置实现VLAN间互
通。
图2 通过子接口实现VLAN间的通信
- 在DeviceA的以太网接口(与DeviceB相连的以太网接口)上创建2个子接口Port1.1 和Port2.1,并配置802.1Q封装与VLAN2和VLAN3分别对应。
- 配置子接口的IP地址,保证两个子接口对应的IP地址路由可通。
- 将DeviceB与DeviceA相连的以太网接口类型配置为Trunk或Hybrid类型,允许VLAN2 和VLAN3的帧通过。
- 将用户设备的缺省网关设置为所属VLAN对应子接口的IP地址。
- 主机A将主机C的IP地址和自己所在网段进行比较,发现主机C和自己不在同一个子网。
- 主机A发送ARP请求给自己的网关DeviceA,请求网关的MAC地址。
- DeviceA收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLAN2对应子接口的MAC地址。
- 主机A学习到网关的MAC地址。
- 主机A向网关发送目的MAC为子接口MAC地址、目的IP为主机C的IP地址的报文。
- DeviceA收到该报文后进行三层转发,发现主机C的IP地址为直连路由,报文将通过VLAN3关联的子接口进行转发。
- DeviceA作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求主机C的MAC地址。
- 主机C收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到主机C的应答后,就把主机A的报文发送给主机C。主机A之后要发给C的报文都先发送给网关,由网关做三层转发。
1.4 VLANIF接口
三层交换技术是将路由技术与交换技术合二为一的技术,在交换机内部实现了路由,提高了
网络的整体性能。三层交换机通过路由表传输第一个数据流后,会产生一个MAC地址与IP
地址的映射表。当同样的数据流再次通过时,将根据此表直接从二层通过而不是通过三层,
从而消除了路由器进行路由选择而造成的网络延迟,提高了数据包转发效率。
为了保证第一次数据流通过路由表正常转发,路由表中必须有正确的路由表项。因此必须在
三层交换机上部署三层接口并部署路由协议,实现三层路由可达。VLANIF接口由此而产生。
VLANIF接口是三层逻辑接口,可以部署在三层交换机上,也可以部署在路由器上。
在图3所示的网络中,交换机上划分了2个VLAN:VLAN2和VLAN3。可通过如下配置实
现VLAN间互通。
- 在Device上创建2个VLANIF接口并配置VLANIF接口的IP地址,保证两个VLANIF 接口对应的IP地址路由可通。
- 将用户设备的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。
图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的报文都先发送给网关,由网关做三层转发。