同一VLAN内的通信

接下来,我们继续学习使用汇聚链路连接交换机与路由器时,VLAN间路由是如何进行的。如下图所示,为各台计算机一级路由器的子接口设定IP地址。

命令同一个vlan配置两个ip 同一个vlan中的成员_IP


 红色VLAN(VLAN ID=1)的网络地址为192.168.1.0/24,蓝色VLAN(VLAN ID=2)的网络地址为192.168.2.0/24。各计算机的MAC地址分别为A/B/C/D,路由器汇聚链接端口的MAC地址为R。交换机通过对各端口所连计算机MAC地址的学习,生成如下的MAC地址列表。

命令同一个vlan配置两个ip 同一个vlan中的成员_链路_02


计算机A发出ARP请求信息,请求解析B的MAC地址。交换机收到数据帧后,检索MAC地址列表中与收信端口同属一个VLAN的表项。结果发现,计算机B连接在端口2上,于是交换机将数据帧转发给端口2,最终计算机B收到该帧。收发信双方同属一个VLAN之内的通信,一切处理均在交换机内完成。

命令同一个vlan配置两个ip 同一个vlan中的成员_命令同一个vlan配置两个ip_03


不同VLAN间通信时的数据流程。

接下来是这一讲的核心内容,不同VLAN间的通信。让我们来考虑一下计算机A与计算机C之间通信时的情况。

命令同一个vlan配置两个ip 同一个vlan中的成员_数据帧_04


计算机A从通信目标的IP地址(192.168.2.1)得出C与本机不属于同一个网段。因此会向设定的默认网关(default Gateway)转发数据帧,在发送数据帧之前,需要先用ARP获取路由器的MAC地址。

得到路由器的MAC地址R后,接下来就是按照图中,所示的步骤发送往C去的数据帧。1的数据帧中,目标MAC地址是路由器的地址R,但内含的目标IP地址,仍是最终要通讯的对象C的地址。这一部分的内容,涉及到局域网内经过路由器转发时的通信步骤,有机会再详细解说吧。

交换机在端口1上收到1的数据帧后,检索MAC地址列表中,与端口1同属一个VLAN的表项。由于汇聚链路被看作属于所有的VLAN,因此这时交换机的端口6也属于被参照对象。这样交换机就知道王MAC地址R发送数据帧,需要端口6准发。

从端口6发送数据帧时,由于它是汇聚链接,因此会被附加上VLAN识别信息。由于原先是来自红色VLAN的数据帧,因此如图中②所示,会被加上红色VLAN的识别信息后进入汇聚链路。路由器收到②的数据帧后,确认其VLAN识别信息,由于它是属于红色VLAN的数据帧,因此交由负责红色VLAN的子接口接收。 接着,根据路由器内部的路由表,判断该向哪里中继。

 由于目标网络192.168.2.0/24是蓝色VLAN,,且该网络通过子接口与路由器直连,因此只要从负责蓝色VLAN的子接口转发就可以了。这时,数据帧的目标MAC地址被改写成计算机C的目标地址;并且由于需要经过汇聚链路转发,因此被附加了属于蓝色VLAN的识别信息。这就是图中③的数据帧。

  交换机收到③的数据帧后,根据VLAN标识信息从MAC地址列表中检索属于蓝色VLAN的表项。由于通信目标——计算机C连接在端口3上、且端口3为普通的访问链接,因此交换机会将数据帧除去VLAN识别信息后(数据帧④)转发给端口3,最终计算机C才能成功地收到这个数据帧。

  进行VLAN间通信时,即使通信双方都连接在同一台交换机上,也必须经过:

  发送方——交换机——路由器——交换机——接收方