外接路由器方法
当外接一台路由器时就要考虑路由器接口数量的问题。路由器的一个物理接口传统上只支持一个逻辑子网或者说一个广播域,这样一来,路由器要为交换机上的每个VLAN单独提供一个物理接口。如果交换机上有100个VLAN的话,就需要路由器100个物理接口,这有点困难。能不能像trunk链路一样使用一条物理链路,在这条物理链路上传输多个VLAN的数据呢?令人高兴的是可以这么做,因为路由器接口(100Mbit/s以上)可以识别VLAN的标记封装。使用路由器的一个物理接口与交换机的trunk端口相连,就可把多个VLAN的数据送达路由器处理,让路由器为不同VLAN的通信做路由(如图11-23所示)。但是对路由器的物理接口要做稍许的处理,即在物理接口上定义子接口(subinterface)。子接口是一种逻辑接口,功能上如同物理接口一样。定义子接口的目的是虚拟地让一个子接口与一个VLAN建立一一对应的关系,即一个子接口连接一个逻辑子网,如同使用物理接口一样的效果。定义了子接口后,还需要在子接口上封装相应的VLAN标记协议(ISL或802.1Q),使子接口能够识别携带标记的数据帧,并能够更改标记。
图 11-23 使用外接路由器解决VLAN间通信
使用三层交换机
解决VLAN之间通信的另一种方法是使用一台具有第3层路由功能的交换机。这种交换机将第2层和第3层的功能集成一起,所以VLAN之间的通信就不需要单独接入一台路由器了。在三层交换机中,路由器和交换机在主板上物理连通,在这个物理通道上设置虚拟的路由器接口与每一个VLAN相连,这些虚拟的接口可以识别携带标记的数据帧,也能够更改标记,为跨越VLAN的通信提供服务。