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