802.1Q VLAN协议和802.1P协议的实现
摘要: 本文主要介绍了802.1Q VLAN协议在以太网交换机中的实现,以及802.1p协议的一些基本内容,有关这两个协议实现的具体细节,参考802.1Q和802.1p协议的相关资料。
一、802.1Q协议
802.1Q协议,即Virtual Bridged Local Area Networks协议,主要规定了VLAN的实现,下面
我们首先讲述一下有关VLAN的基本观念。
Virtual LANs目前发展很快,世界上主要的大网络厂商在他们的交换机设备中都实现了VLAN协议,顾名思义,VLAN就是虚拟局域网,比如对于QuidwayS2403交换机来说,可以将它的24个10M以太网口划分为几个组,比如协议组,ATM组,测试组等,这样,组内的各个用户就象在同一个局域网内(可能协议组的用户位于很多的交换机上,而非一个交换机)一样,同时,不是本组的用户也无法访问本组的成员。
实际上,VLAN成员的定义可以分为4种:
根据端口划分VLAN
这种划分VLAN的方法是根据以太网交换机的端口来划分,比如S2403的1~4端口为VLAN A,5~17为VLAN B,18~24为VLAN C,当然,这些属于同一VLAN的端口可以不连续,如何配置,由管理员决定,如果有多个交换机的话,例如,可以指定交换机 1 的1~6端口和交换机 2 的1~4端口为同一VLAN,即同一VLAN可以跨越数个以太网交换机,根据端口划分是目前定义VLAN的最常用的方法,IEEE 802.1Q协议规定的就是如何根据交换机的端口来划分VLAN。这种划分的方法的优点是定义VLAN成员时非常简单,只要将所有的端口都指定义一下就可以了。它的缺点是如果VLAN A的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。
根据MAC地址划分VLAN
这种划分VLAN的方法是根据每个主机的MAC地址来划分,即对每个MAC地址的主机都配置他属于哪个组。这种划分VLAN的方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,所以,可以认为这种根据MAC地址的划分方法是基于用户的VLAN,这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停的配置。
根据网络层划分VLAN
这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分的,虽然这种划分方法可能是根据网络地址,比如IP地址,但它不是路由,不要与网络层的路由混淆。它虽然查看每个数据包的IP地址,但由于不是路由,所以,没有RIP,OSPF等路由协议,而是根据生成树算法进行桥交换
这种方法的优点是用户的物理位置改变了,不需要重新配置他所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的桢标签来识别VLAN,这样可以减少网络的通信量。
这种方法的缺点是效率,因为检查每一个数据包的网络层地址是很费时的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网桢头,但要让芯片能检查IP桢头,需要更高的技术,同时也更费时。当然,这也跟各个厂商的实现方法有关。
IP组播作为VLAN
IP 组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN,这种划分的方法将VLAN扩大到了广域网,因此这种方法具有更大的灵活性,而且也很容易通过路由器进行扩展,当然这种方法不适合局域网,主要是效率不高,对于局域网的组播,有二层组播协议GMRP。
通过上面可以看出,各种不同的VLAN定义方法有各自的优缺点,所以,很多厂商的交换机都实现了不只一种方法,这样,网络管理者可以根据自己的实际需要进行选择,另外,许多厂商在实现VLAN的时候,考虑到VLAN配置的复杂性,还提供了一定程度的自动配置和方便的网络管理工具。
以前,各个厂商都声称他们的交换机实现了VLAN,但各个厂商实现的方法都不相同,所以彼此是无法互连,这样,用户一旦买了某个厂商的交换机,就没法买其他厂商的了。而现在,VLAN的标准是IEEE 提出的802.1Q协议,只有支持相同的开放标准才能保证网络的互连互通,以及保护网络设备投资。
下面讲述一下VLAN的优点:
减少移动和改变的代价,即所说的动态管理网络,也就是当一个用户从一个位置移动到另一个位置是,他的网络属性不需要重新配置,而是动态的完成,这种动态管理网络给网络管理者和使用者都带来了极大的好处,一个用户,无论他到哪里,他都能不做任何修改地接入网络,这种前景是非常美好的。 当然,并不是所有的VLAN定义方法都能做到这一点。
虚拟工作组,VLAN的最具雄心的目标就是建立虚拟工作组模型,例如,在校园网中,同一个系的就好象在同一个LAN上一样,很容易的互相访问,交流信息,同时,所有的广播包也都限制在该虚拟LAN上,而不影响其他VLAN的人,一个人如果从一个办公地点换到另外一个地点,而他仍然在该系,那么,他的配置无须改变,同时,如果一个人虽然办公地点没有变,但他换了一个系,那么,只需网络管理者那配置一下就行了。这个功能的目标就是建立一个动态的组织环境,当然,这只是一个远大的目标,要实现它,还需要一些其他包括管理等方面的支持。
限制广播包,按照802.1D透明网桥的算法,如果一个数据包找不到路由,那么交换机就会将该数据包向所有的其他端口发送,这就是桥的广播方式的转发,这样的结果,毫无疑问极大的浪费了带宽,如果配置了VLAN,那么,当一个数据包没有路由时,交换机只会将此数据包发送到所有属于该VLAN的其他端口,而不是所有的交换机的端口,这样,就将数据包限制到了一个VLAN内。在一定程度上可以节省带宽。
安全性,由于配置了VLAN后,一个VLAN的数据包不会发送到另一个VLAN,这样,其他VLAN的用户的网络上是收不到任何该VLAN的数据包,从而就确保了该VLAN的信息不会被其他VLAN的人窃听,从而实现了信息的保密。
理论上,VLAN可以扩展到WAN上,但是,这是不明智的做法,因为VLAN允许广播包发送出去,而且它没有很好的路由算法,经常是以广播的形式转发数据包,这样,毫无疑问,极大地浪费了WAN的宝贵的带宽,所以说,将基于端口的,MAC地址和网络地址的VLAN扩展到WAN,是不合理的,而基于多播的VLAN概念则可以灵活有效的扩展到WAN。一般的以太网交换机实现的都是基于端口的VLAN,个别的会实现基于MAC地址和网络层地址的VLAN,而路由器中可以通过IGMP多播协议实现所谓的组播形式的VLAN 。
802.1Q协议定义了基于端口的VLAN模型,这是使用得最多的一种方式。下面我们重点讲述一下交换机芯片是如何实现VLAN的,如果想了解更细节的内容,可以参考802.1Q协议,由于协议文本讲的非常抽象,所以,我们以TI公司的交换芯片为例来讲述,更便于理解。例子中的TNETX4090提供了8个100M以太网口和1个1G以太网口。
如图1所示,每一个支持802.1Q协议的主机,在发送数据包时,都在原来的以太网桢头中的源地址后增加了一个4字节的802.1Q桢头,之后接原来以太网的长度或类型域,关于以太网桢头的封装格式,参见以太网方面的培训教材。