VLAN
间路由的必要性
根据目前为止学习的知识,我们已经知道两台计算机即使连接在同一台交换机上,只要所属的
VLAN
不同就无法直接通信
。接下来我们将要学习的就是如何在不同的
VLAN
间进行路由,使分属不同
VLAN
的主机能够互相通信。
首先,先来复习一下为什么不同
VLAN
间不通过路由就无法通信。在
LAN
内的通信,必须在数据帧头中指定通信目标的
MAC
地址。而为了获取
MAC
地址,
TCP/IP
协议下使用的是
ARP
。
ARP
解析
MAC
地址的方法,则是通过广播。也就是说,如果广播报文无法到达,那么就无从解析
MAC
地址,亦即无法直接通信。
计算机分属不同的
VLAN
,也就意味着分属不同的广播域,自然收不到彼此的广播报文。因此,属于不同
VLAN
的计算机之间无法直接互相通信。为了能够在
VLAN
间通信,需要利用
OSI
参照模型中更高一层——网络层的信息(
IP
地址)来进行路由。关于路由的具体内容,以后有机会再详细解说吧。
路由功能,一般主要由路由器提供。但在今天的局域网里,我们也经常利用带有路由功能的交换机——三层交换机(
Layer 3 Switch
)来实现。接下来就让我们分别看看使用路由器和三层交换机进行
VLAN
间路由时的情况。
使用路由器进行
VLAN
间路由
在使用路由器进行
VLAN
间路由时,与构建横跨多台交换机的
VLAN
时的情况类似,我们还是会遇到“该如何连接路由器与交换机”这个问题。路由器和交换机的接线方式,大致有以下两种:
l
将路由器与交换机上的每个
VLAN
分别连接
l
不论
VLAN
有多少个,路由器与交换机都只用一条网线连接
最容易想到的,当然还是“把路由器和交换机以
VLAN
为单位分别用网线连接”了。将交换机上用于和路由器互联的每个端口设为访问链接,然后分别用网线与路由器上的独立端口互联。如下图所示,交换机上有
2
个
VLAN
,那么就需要在交换机上预留
2
个端口用于与路由器互联;路由器上同样需要有
2
个端口;两者之间用
2
条网线分别连接。
如果采用这个办法,大家应该不难想象它的扩展性很成问题。每增加一个新的
VLAN
,都需要消耗路由器的端口和交换机上的访问链接,而且还需要重新布设一条网线。而路由器,通常不会带有太多
LAN
接口的
。新建
VLAN
时,为了对应增加的
VLAN
所需的端口,就必须将路由器升级成带有多个
LAN
接口的高端产品,这部分成本、还有重新布线所带来的开销,都使得这种接线法成为一种不受欢迎的办法。
那么,第二种办法“不论
VLAN
数目多少,都只用一条网线连接路由器与交换机”呢?当使用一条网线连接路由器与交换机、进行
VLAN
间路由时,需要用到汇聚链接
。
具体实现过程为:首先将用于连接路由器的交换机端口设为汇聚链接,而路由器上的端口也必须支持汇聚链路。双方用于汇聚链路的协议自然也必须相同。接着在路由器上定义对应各个
VLAN
的“子接口(
Sub Interface
)”
。尽管实际与交换机连接的物理端口只有一个,但在理论上我们可以把它分割为多个虚拟端口。
VLAN
将交换机从逻辑上分割成了多台,因而用于
VLAN
间路由的路由器,也必须拥有分别对应各个
VLAN
的虚拟接口。
采用这种方法的话,即使之后在交换机上新建
VLAN
,仍只需要一条网线连接交换机和路由器。用户只需要在路由器上新设一个对应新
VLAN
的子接口就可以了。与前面的方法相比,扩展性要强得多,也不用担心需要升级
LAN
接口数不足的路由器或是重新布线。