一、VLAN 间路由
在交换机上划分 VLAN 后,VLAN 间的计算机就无法通信了。VLAN 间的通信需要借助第三层设备,我们可以使用路由器来实现这个功能,如果使用路由器通常会采用单臂路由模式。实践上,VLAN 间的路由大多是通过三层交换机实现的,三层交换机可以看成是路由器加交换机。
1、单臂路由
处于不同 VLAN 的计算机即使它们是在同一交换机上,它们之间的通信也必须使用路由器。可以在每个 VLAN 上都有一个以太网口和路由器连接。采用这种方法,如果要实现 N 个VLAN 间的通信,则路由器需要 N 个以太网接口,同时也会占用了 N 个交换上的以太网接口。单臂路由提供另外一种解决方案。路由器只需要一个以太网接口和交换机连接,交换机的这个接口设置为 Trunk 接口。在路由器上创建多个子接口和不同的 VLAN 连接,子接口是路由器物理接口上的逻辑接口。工作原理如图 15-1,当交换机收到 VLAN1 的计算机发送的数据帧后,从它的 Trunk 接口发送数据给路由器,由于该链路是 Trunk 链路,帧中带有 VLAN1的标签,帧到了路由器后,如果数据要转发到 VLAN2 上,路由器将把数据帧的 VLAN1 标签去掉,重新用 VLAN2 的标签进行封装,通过 Trunk 链路发送到交换机上的 Trunk 接口;交换机收到该帧,去掉 VLAN2 标签,发送给 VLAN2 上的计算机,从而实现了 VLAN 间的通信。
2、三层交换单臂路由实现 VLAN 间的路由时转发速率较慢,实际上在局域网内部多采用三层交换。
三层交换机通常采用硬件来实现,其路由数据包的速率是普通路由器的几十倍。从使用者的角度可以把三层交换机看成是二层交换机和路由器的组合,这个虚拟的路由器和每个 VLAN 都有一个接口进行连接,不过这个接口是 VLAN1 或 VLAN2 接口。Cisco 早些年采用的基于 NetFlow 的三层交换技术;现在 Cisco 主要采用 CEF 技术。CEF 技术中,交换机利用路由表形成转发信息库(FIB),FIB 和路由表是同步的,关键的是它的查询是硬件化,查询速度快得多。除了 FIB,还有邻接表(Adjacency Table),该表和 ARP 表有些类似,主要放置了第二层的封装信息。FIB 和邻接表都是在数据转发之前就已经建立准备好了,这样一有数据要转发,交换机就能直接利用它们进行数据转发和封装,不需要查询路由表和发送 ARP 请求,所以 VLAN 间的路由速率大大提高。