1.同一物理交换机中的VLAN
其实理解VLAN这个技术术语的关键就是要理解“虚拟”这两个字。“虚拟”表示VLAN所组成的是一个虚拟,或者说是逻辑LAN,并不是一个物理LAN。交换机内部中的各个VLAN可以理解为一个个虚拟交换机,如图8-1所示。
图8-1 一台物理交换机中划分的多个VLAN
其实我们只要把一个VLAN看成一台交换机(只不过它是虚拟交换机),以前许多问题就比较好理解了,因为虚拟交换机与物理交换机具有相同的基本属性。同一物理交换机上的不同VLAN之间就像永远不可能有物理连接,只有逻辑连接的不同物理交换机一样,是肯定不能直接相互通信的,即使这些不同VLAN中的成员都处于同一IP网段。这时图8-1我们就可以看成是五台永远没有物理连接关系的物理交换机。
位于同一VLAN中的成员就相当于同一物理交换机上的成员一样,不同情况仍都可以按照物理交换机来处理。如同一VLAN中的成员都属于同一个网段,则没什么,肯定可以相到通信,就像同一物理交换机上连接同一网段的各个用户一样。如果同一VLAN内部的成员是处于不同网段,则相当于一台物理交换机上连接处于不同网段的用户一样,这时肯定得通过路由,或者网关配置来实现相互通信了。这个网关就是VLAN的SVI接口。
2.不同物理交换机中的VLAN
因为一个VLAN中的成员不是依据成员的物理位置来划分,所以通常是位于网络中的不同交换机上,也就是说一个VLAN可以跨越多台物理交换机,这就是VLAN的中继(Trunk)功能,如图8-2所示。这时我们就不要总按照物理交换机来看待用户的分布了,而是要从VLAN角度来看待了。如图8-2所示中,就不要把它当成两台物理交换机,而是要把它当成是五台相互有物理连接关系(就是两台物理交换机间的那个连接)的物理交换机了。
图8-2 不同物理交换机上的相同VLAN
在不同交换机上可以有相同的VLAN,而且这些不同物理交换机上的相同VLAN间是相通的,可以相互访问的(当然这得在物理交换机连接的端口允许这些VLAN数据包通过,这就是在第4章所介绍的Trunk端口的功能了)。
在同一物理交换机上的不可能存在两个相同的VLAN,但在不同交换机上可以存在多个相同的VLAN,而默认情况下只有相同VLAN中的成员才可以直接通信(不需要路由和桥接),所以在同一物理交换机上默认情况下各VLAN间是不能直接通信的,即使它们都位于同一IP网段。但在不同物理交换机上的相同VLAN却是可以直接通信的,只要物理交换机间的连接端口允许相应VLAN数据包通过学习即可,因为位于不同物理交换机上的相同VLAN的连接就是利用物理交换机间的物理连接。
3. VLAN间的互访
VLAN是二层协议,VLAN的虚拟,或者逻辑属性决定了这些VLAN之间没有物理二层连接(只有逻辑连接),各自彼此独立,相当于一个个独立的二层交换网络一样。在不可能进行二层互访的情况下,我们只能通过三层来解决它们之间的连接问题。我们知道一个独立交换网络要与另一个独立交换网络进行三层连接,有两种方式:一种通过网关,另一种就是通过路由。在不同VLAN间的逻辑连接也有这两种方式,其中每个VLAN的那个交换机虚拟接口(SVI)就是对应VLAN成员的网关。为每SVI配置好IP地址,这个IP地址就是对应VLAN成员的网关IP地址。这种通过SVI进行的VLAN间成员互访的基本结构如图8-3所示。每个VLAN成员与其他VLAN中的成员进行通信都必须通过双方作为各自VLAN成员网关的SVI。而每个VLAN中的成员端口一般都是二层访问端口,直接连接PC用户的。
通过路由方式来实现不同VLAN间的连接可以理解为在图8-2中两SVI间加了一个提供路由功能的设备,可以是路由器(通过静态路由或各种路由协议实现),也可以是有三层交换模块的三层交换机(通过开启IP路由功能实现)。但各个VLAN对外还是以各自的SVI呈现的,各VLAN内部还是以二层的MAC地址进行寻址的。当然这是在假设相同VLAN中的成员都是在同一网段的情况下,如果这些成员不在同一网段,则需要像一台物理交换机上连接了多个网段的主机一样配置路由来实现VLAN内部各成员的相互通信。