经典VLAN学习笔记(下)

1. IEEE802.1Q与ISL

汇聚方式:在交换机的汇聚链接上,可以通过对数据帧附加VLAN信息,构建跨越多台交换机的VLAN。附加VLAN信息的方法,最具有代表性的有:

IEEE802.1Q
ISL

现在就让我们看看这两种协议分别如何对数据帧附加VLAN信息。

IEEE802.1Q:

IEEE802.1Q,俗称“Dot One Q”,是经过IEEE认证的对数据帧附加VLAN识别信息的协议。在此,请大家先回忆一下以太网数据帧的标准格式。IEEE802.1Q所附加的VLAN识别信息,位于数据帧中“发送源MAC地址”与“类别域(Type Field)”之间。具体内容为2字节的TPID和2字节的TCI,共计4字节。在数据帧中添加了4字节的内容,那么CRC值自然也会有所变化。这时数据帧上的CRC是插入TPID、TCI后,对包括它们在内的整个数据帧重新计算后所得的值。

而当数据帧离开汇聚链路时,TPID和TCI会被去除,这时还会进行一次CRC的重新计算。TPID的值,固定为0x8100。交换机通过TPID,来确定数据帧内附加了基于IEEE802.1Q的VLAN信息。而实质上的VLAN ID,是TCI中的12位元。由于总共有12位,因此最多可供识别4096个VLAN。基于IEEE802.1Q附加的VLAN信息,就像在传递物品时附加的标签。因此,它也被称作“标签型VLAN(Tagging VLAN)”。

ISL(Inter Switch Link):

ISL,是Cisco产品支持的一种与IEEE802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。使用ISL后,每个数据帧头部都会被附加26字节的“ISL包头(ISL Header)”,并且在帧尾带上通过对包括ISL包头在内的整个数据帧进行计算后得到的4字节CRC值。换而言之,就是总共增加了30字节的信息。在使用ISL的环境下,当数据帧离开汇聚链路时,只要简单地去除ISL包头和新CRC就可以了。由于原先的数据帧及其CRC都被完整保留,因此无需重新计算CRC。

ISL有如用ISL包头和新CRC将原数据帧整个包裹起来,因此也被称为“封装型VLAN(Encapsulated VLAN)”。需要注意的是,不论是IEEE802.1Q的“Tagging VLAN”,还是ISL的“Encapsulated VLAN”,都不是很严密的称谓。不同的书籍与参考资料中,上述词语有可能被混合使用,因此需要大家在学习时格外注意。并且由于ISL是Cisco独有的协议,因此只能用于Cisco网络设备之间的互联。

2. VLAN间路由
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时的情况类似,我们还是会遇到“该如何连接路由器与交换机”这个问题。路由器和交换机的接线方式,大致有以下两种:

1. 将路由器与交换机上的每个VLAN分别连接
2. 不论VLAN有多少个,路由器与交换机都只用一条网线连接

最容易想到的,当然还是“把路由器和交换机以VLAN为单位分别用网线连接”了。将交换机上用于和路由器互联的每个端口设为访问链接,然后分别用网线与路由器上的独立端口互联。如下图所示,交换机上有2个VLAN,那么就需要在交换机上预留2个端口用于与路由器互联;路由器上同样需要有2个端口;两者之间用2条网线分别连接。

如果采用这个办法,大家应该不难想象它的扩展性很成问题。每增加一个新的VLAN,都需要消耗路由器的端口和交换机上的访问链接,而且还需要重新布设一条网线。而路由器,通常不会带有太多LAN接口的。新建VLAN时,为了对应增加的VLAN所需的端口,就必须将路由器升级成带有多个LAN接口的高端产品,这部分成本、还有重新布线所带来的开销,都使得这种接线法成为一种不受欢迎的办法。

那么,第二种办法“不论VLAN数目多少,都只用一条网线连接路由器与交换机”呢?当使用一条网线连接路由器与交换机、进行VLAN间路由时,需要用到汇聚链接。

具体实现过程为:首先将用于连接路由器的交换机端口设为汇聚链接,而路由器上的端口也必须支持汇聚链路。双方用于汇聚链路的协议自然也必须相同。接着在路由器上定义对应各个VLAN的“子接口(Sub Interface)”。尽管实际与交换机连接的物理端口只有一个,但在理论上我们可以把它分割为多个虚拟端口。VLAN将交换机从逻辑上分割成了多台,因而用于VLAN间路由的路由器,也必须拥有分别对应各个VLAN的虚拟接口。

采用这种方法的话,即使之后在交换机上新建VLAN,仍只需要一条网线连接交换机和路由器。用户只需要在路由器上新设一个对应新VLAN的子接口就可以了。与前面的方法相比,扩展性要强得多,也不用担心需要升级LAN接口数不足的路由器或是重新布线。

本文出自 Frank's Blog

版权声明:


本文链接:经典VLAN学习笔记(下)
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

留言哦

blonde teen swallows load.xxx videos