不同VLAN间的通信方式

同一个 VLAN 中的设备可以进行数据链路层的通信,而不同 VLAN 之间的设备通信则需要建立在网络层的基础上。一般有两种方法来实现 VLAN 之间的通信:通过路由器和通过三层交换机。下面分别介绍这两种实现不同 VLAN 之间通信的方法。

通过路由器实现 VLAN 间通信

路由器和交换机的连接方式有两种。一种是把路由器的不同物理接口分别连接到交换机上的每个VLAN,并将交换机上与路由器相连的端口设置为相应VLAN的访问链路,如图:

这种连接方法比较简单,但是网络扩展难度大。每增加一个新的 VLAN,都需要消耗路由器和交换机上的端口,而且还需要重新布设一条网线。而路由器较交换机而言,所提供的端口较少,这使得网络管理的成本增加,因此不推荐此方法。

此外,我们还可以采用单臂路由的方式来实现 VLAN 之间的通信。这种方法是在路由器与交换机相连的那个物理端口上定义多个逻辑子接口,也就是从逻辑上将它分为多个虚拟端口。一个子接口连接一个 VLAN,每个子接口配置相应 VLAN 内的 IP 地址,并封装 802.1Q 协议。同时,在交换机上把与路由器相连的端口设置为 Trunk 端口。在这种方法中,路由器只使用一个端口连接到交换网络中,因此被称为单臂路由,如图

802.1Q VLAN 技术白皮书802.1Q VLAN 技术实现 3-4图3-4 通过单臂路由方式实现VLAN间通信该网络拓扑包含了 3 台主机、一台交换机和一台路由器,路由器和交换机之间配置中继链路Trunk,交换机上设置了 3 个 VLAN,分别是 VLAN10,VLAN20 和 VLAN30。

当 VLAN10 中的主机 A 向 VLAN20 中的主机 B 发送信息时,交换机端口 1 收到主机 A 发出的数据帧,查询自己的 MAC 地址表,然后将数据帧从 Trunk 端口 4 转发出去,并为数据帧添加 VLAN ID=10 的标签。路由器收到数据帧后,发现它属于 VLAN10,因此把它交给负责VLAN10 的子接口,该接口判断数据帧应发往负责 VLAN20 的子接口。负责 VLAN20 的子接口再为数据帧添加 VLAN ID=20 的标签并发回给交换机。交换机收到该数据后查询 MAC 地址表,去掉数据帧中的 VLAN 标签,将它从端口 2 发送给主机 B。这样主机 B 就接收到了主机A发给它的信息。可以看到,通过路由器进行VLAN之间的通信时,信息传输经过以下过程:发送者 -> 交换机 -> 路由器 -> 交换机 -> 接收者,即使通信的双方处在同一台交换机上,也必须经过这样的过程。

802.1Q VLAN 技术白皮书802.1Q VLAN 技术实现 3-4图3-4 通过单臂路由方式实现VLAN间通信该网络拓扑包含了 3 台主机、一台交换机和一台路由器,路由器和交换机之间配置中继链路Trunk,交换机上设置了 3 个 VLAN,分别是 VLAN10,VLAN20 和 VLAN30。当 VLAN10 中的主机 A 向 VLAN20 中的主机 B 发送信息时,交换机端口 1 收到主机 A 发出的数据帧,查询自己的 MAC 地址表,然后将数据帧从 Trunk 端口 4 转发出去,并为数据帧添加 VLAN ID=10 的标签。路由器收到数据帧后,发现它属于 VLAN10,因此把它交给负责VLAN10 的子接口,该接口判断数据帧应发往负责 VLAN20 的子接口。负责 VLAN20 的子接口再为数据帧添加 VLAN ID=20 的标签并发回给交换机。交换机收到该数据后查询 MAC 地址表,去掉数据帧中的 VLAN 标签,将它从端口 2 发送给主机 B。这样主机 B 就接收到了主机A发给它的信息。可以看到,通过路由器进行VLAN之间的通信时,信息传输经过以下过程:发送者 -> 交换机 -> 路由器 -> 交换机 -> 接收者,即使通信的双方处在同一台交换机上,也必须经过这样的过程。一般这种拓扑适用于小型网络,在已有的二层交换机的基础上,只需要购买一台路由器就能实现不同 VLAN 之间的通信。

通过三层交换机实现 VLAN 间通信

802.1Q VLAN 技术白皮书802.1Q VLAN 技术实现 3-4图3-4 通过单臂路由方式实现VLAN间通信该网络拓扑包含了 3 台主机、一台交换机和一台路由器,路由器和交换机之间配置中继链路Trunk,交换机上设置了 3 个 VLAN,分别是 VLAN10,VLAN20 和 VLAN30。当 VLAN10 中的主机 A 向 VLAN20 中的主机 B 发送信息时,交换机端口 1 收到主机 A 发出的数据帧,查询自己的 MAC 地址表,然后将数据帧从 Trunk 端口 4 转发出去,并为数据帧添加 VLAN ID=10 的标签。路由器收到数据帧后,发现它属于 VLAN10,因此把它交给负责VLAN10 的子接口,该接口判断数据帧应发往负责 VLAN20 的子接口。负责 VLAN20 的子接口再为数据帧添加 VLAN ID=20 的标签并发回给交换机。交换机收到该数据后查询 MAC 地址表,去掉数据帧中的 VLAN 标签,将它从端口 2 发送给主机 B。这样主机 B 就接收到了主机A发给它的信息。可以看到,通过路由器进行VLAN之间的通信时,信息传输经过以下过程:发送者 -> 交换机 -> 路由器 -> 交换机 -> 接收者,即使通信的双方处在同一台交换机上,也必须经过这样的过程。一般这种拓扑适用于小型网络,在已有的二层交换机的基础上,只需要购买一台路由器就能实现不同 VLAN 之间的通信。3.3.2 通过三层交换机实现 VLAN 间通信使用路由器来实现 VLAN 之间的通信,VLAN 之间的流量会集中到路由器和交换机互连的中继链路部分,这部分就容易成为速度的瓶颈。而三层交换机采用的是“一次路由,多次转发”的机制,能实现数据的高速转发,因此采用三层交换机来实现 VLAN 之间的通信更适合用于中大型网络,此时三层交换机可作为整个网络的核心。图 3-5所示即为通过三层交换机进行VLAN 之间通信的一个简单示意图。

图中,有一个三层交换机,连接了 4 台主机,分别属于 VLAN10 和 VLAN20。当主机 A(192.168.1.2)与主机 D(192.168.2.2)要通信时,主机 A 发送一个数据帧。三层交换机的交换模块接收该数据帧之后查询 MAC 地址表,为它添加一个 VLAN ID=10 的标签,然后转发给路由模块。路由模块接收数据帧后会通过 VLAN 信息判断将此数据交给 VLAN10 接口来处理。VLAN10 接口判断将数据帧交给 VLAN20 接口,VLAN20 接口再将数据帧转发回交换模块,最终数据帧中的 VLAN 信息被去掉后转发到主机 D。

可以看到,三层交换机进行 VLAN 间通信也会经过“发送者 -> 交换模块 -> 路由模块 ->交换模块 -> 接收者”这样几个过程。但三层交换机一旦转发过一组目的 IP 相同的数据包之后,就会把该信息缓存,以后相同的数据包就能进行直接转发,而不需要通过路由处理了。由于交换模块对于数据包的二层转发速率远高于三层的路由模块,因此,通过三层交换机实现 VLAN 之间的通信能极大提高网络的数据转发效率,从而解决网络瓶颈的问题。

退出移动版
ICP备案号:晋ICP备18007549号-1
站长微信:15534641008