不同VLAN之间通信的原理

时间:2024-05-21 13:17:13

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

1.三层VLANIF接口方案

这是一种通过计算机网络体系结构中第三层(网络层)来实现VLAN间通信的解决方案。每个VLAN都可以配置一个三层VLANIF逻辑接口,而这些VLANIF接口就作为对应VLAN内部用户主机的缺省网关,通过三层交换机内部的IP路由功能可以实现同一交换机上不同VLAN的三层互通,不同交换机上不同VLAN间的三层互通需要配置各VLANIF接口所在网段间的路由。

该方案除S1700系列外,其他所有华为S系列交换机均支持。

在图6-20所示的网络中,Device交换机上划分了两个VLAN:VLAN2和VLAN3。可通过如下配置实现VLAN间互通。

(1)在Device上创建两个VLANIF接口并配置VLANIF接口的IP地址,但这两个VLANIF接口对应的IP地址不能在同一网段。

(2)将各VLAN中的用户设备缺省网关设置为所属VLAN对应VLANIF接口的IP地址。

现在仅以位于VLAN 2中的主机A向位于VLAN 3中的主机C发起通信为例,介绍通过VLANIF接口进行VLAN间三层互通的基本原理。具体通信流程如下。

(1)在主机A向主机C发送的数据包到了网络层后,主机A先将包中的目的IP地址-主机C的IP地址和自己所在网段进行比较。

(2)发现主机C和自己不在同一个子网,于是主机A以广播方式在本子网内发送一个ARP请求帧,其目的是查寻自己的网关-VLANIF2接口的MAC地址。

(3)VLANIF2接口经过与ARP请求帧中的目的IP地址进行比较,发现自己的IP地址与其一致,接收该ARP请求帧,然后以单播方式向主机A返回一个ARP应答帧,帧中的源MAC地址即为VLANIF2的MAC地址。

(4)在主机A接收由VLANIF2接口返回的ARP应答帧后从中学习到了VLANIF2接口的MAC地址。

(5)主机A利用所获得的网关VLANIF2接口的MAC地址,重新进行数据帧封装,把帧中的目的MAC改为VLANIF2接口MAC地址,目的IP仍为主机C的IP地址,然后发送给网关-VLANIF2接口。

(6)Device交换机在收到该数据帧后进行三层转发,发现帧中的目的IP地址–主机C的IP地址为直连路由,数据帧直接通过该主机的网关-VLANIF3接口进行转发。

(7)VLANIF3接口作为VLAN 3内主机的网关,在收到数据帧后如果已有主机C的IP地址与MAC地址映射表,则直接发送给主机C,否则VLANIF3接口先在VLAN 3内以广播方式发送一个ARP请求帧,查寻主机C的MAC地址。

(8)主机C在收到ARP广播帧后向VLANIF3接口返回一个ARP应答帧。

(9)VLANIF3接口在收到主机C发来的ARP应答帧后再次进行数据帧封装,把帧中的目的MAC地址改为主机C的真实MAC地址(其他不变),然后把主机A发来的数据帧发送给主机C。这样主机A之后要发给C的数据帧都先发送给网关,由网关-VLANIF3接口做三层转发。

主机C与主机A之间的通信原理一样,最终实现VLAN间的三层互通。

2.三层以太网子接口方案

三层以太网子接口是一种同时具备三层以太网物理接口和二层以太网物理接口双重特性的逻辑接口。即它具有三层以太网物理接口的三层路由功能,同时又具有二层以太网物理接口封装VLAN标签的特性。通过三层以太网子接口就可以实现不同VLAN间的三层互通,也就是我们通常所说的"单臂路由",在三层交换机和路由器中均可实现。

该方案仅5700HI和5710EI子系列、S7700、S9300和S9700系列华为交换机支持。

如图6-21所示,DeviceA为支持配置子接口的三层设备,DeviceB为二层交换设备。LAN通过DeviceB的二层以太网接口与DeviceA的三层以太网接口相连。连接在DeviceB上的用户主机被划分到两个VLAN:VLAN2和VLAN3。这时可通过如下配置实现VLAN间互通。
不同VLAN之间通信的原理(1)在DeviceA与DeviceB相连的三层以太网接口上创建两个子接口Port1.1和Port1.2,并配置802.1Q封装与VLAN2和VLAN3分别对应。

(2)为以上这两个子接口配置与各自所属VLAN对应网段的IP地址。

(3)将DeviceB与DeviceA相连的二层以太网接口类型配置为Trunk或Hybrid类型,并同时允许VLAN2和VLAN3的帧通过。

(4)将VLAN 2和VLAN 3中的用户设备的缺省网关设置为所属VLAN对应三层以太网子接口的IP地址。

现在同样以主机A向主机C发起通信为例介绍三层以太网子接口的VLAN间通信方案的基本原理(其实基本过程与前面介绍的VLANIF接口VLAN间通信方案是一样的,只不过这里的网关是各VLAN所对应的子接口)。具体流程如下。

(1)在主机A向主机C发送的数据包到了网络层后,主机A先将包中的目的IP地址-主机C的IP地址和自己所在网段进行比较。

(2)发现主机C和自己不在同一个子网,于是主机A以广播方式在本子网内发送一个ARP请求帧,其目的是查寻自己的网关VLAN 2对应的Port1.1子接口的MAC地址。

(3)Port1.1子接口经过与ARP请求帧中的目的IP地址进行比较,发现自己的IP地址与其一致,接收该ARP请求帧,然后以单播方式向主机A返回一个ARP应答帧,帧中的源MAC地址即为Port1.1子接口的MAC地址。

(4)主机A接收由Port1.1子接口返回的ARP应答帧后从中学习到该子接口的MAC地址。

(5)主机A利用所获得的网关Port1.1子接口的MAC地址,重新封装数据帧,把目的MAC地址改为Port1.1子接口MAC,目的IP仍为主机C的IP地址,然后发送给网关Port1.1子接口。

(6)DeviceA交换机在收到该数据帧后进行三层转发,发现其目的IP地址-主机C的IP地址为直连路由,数据帧直接通过该主机的网关-VLAN 3对应Port1.2子接口进行转发。

(7)Port1.2子接口作为VLAN 3内主机的网关,在收到数据帧后如果已有主机C的IP地址与MAC地址映射表,则直接发送给主机C,否则Port1.2子接口先在VLAN 3内以广播方式发送一个ARP请求帧,查寻主机C的MAC地址。

(8)主机C在收到ARP广播帧后向Port1.2子接口返回一个ARP应答帧。

(9)Port1.2子接口在收到主机C的ARP应答帧后,再次进行数据帧封装,把帧中的目的MAC地址改为主机C的真实MAC地址(其他不变),然后就把主机A发来的数据帧发送给主机C。这样主机A之后要发给C的数据帧都先发送给网关,由网关-Port1.2子接口做三层转发。

主机C与主机A之间的通信原理一样,最终实现VLAN间的三层互通。

转载自:http://book.51cto.com/art/201312/423175.htm