【IT168 专稿】交换技术是网络技术的重点,我们网络频道已经为读者进行了多次报道。因为其重要,故我们再次进行系统的整理,以供初学者参阅。
交换技术应用连载:交换技术的重要性
交换技术应用连载:构建MAC地址表
交换技术应用连载:广播风暴问题解决
交换技术应用连载:802.1W生成树
交换技术应用连载:虚拟局域网技术
交换技术应用连载: VTP生成树
使用VLAN技术虚拟地构建局域网为网络管理提供了极大的方便,管理员可以独立于地理位置而根据工作组或业务类型组织网络资源。但对于VLAN的管理也带来了附加的工作量。例如在一个园区网中设置VLAN,如果需要增加一个VLAN,网络管理员需要分别在每一台交换机上设置VLAN,这样做一方面是任务量大、繁琐,另一方面是容易造成网络规划的不一致,能够登陆交换机控制台的人员可以在任意一台交换机上添加或删除一个VLAN。
为了在园区网的所有交换机上维持VLAN配置的一致性,VTP(VLAN trunk protocol)协议被开发出来。VTP是一个工作在第二层的协议,通过管理VLAN的增加、删除、以及VLAN的名称变化以获得VLAN配置的一致性,使得在大规模的交换式园区网上VLAN配置的维护更加简单、有效。
交换机的VTP身份
VTP使用"域"(domain)关系组织互连的交换机,并在"域"内的所有交换机上维护VLAN配置信息的一致性。"域"关系是通过域名建立并维护的,一组使用同一个域名的交换机构成一个"域"。一个交换机只能被配置为属于一个VTP域。交换机在域中的身份也有以下3种:
服务器模式(server mode)
客户机模式(client mode)
透明模式(transparent mode)
交换机出厂时的缺省工作模式为服务器模式。
"域"名是由工作在服务器模式下的交换机定义的,服务器模式的交换机还可以创建、修改、删除vlan,可以为所属的VTP域配置全局参数。VTP有它自己的NVRAM,这意味着删除配置文件不能把VTP信息清除。当VLAN的配置信息被修改,该变动会被通告到VTP域中的所有交换机。另外,它也能够根据收到的VTP通告信息与其他交换机进行VLAN配置信息的同步。
工作在客户机模式下的交换机不能创建、修改、删除VLAN,但可以根据接收到的VTP通告信息更新自己的VLAN配置,客户机也可以向域中通告自己当前的VLAN配置信息。
一个工作在透明模式下的交换机不会发送VTP通告,也不会根据接受到VTP信息修改自己的VLAN配置,但可以转发VTP通告信息。工作在透明模式下的交换机可以独立地创建、修改、删除自己的VLAN。
VTP运行原理
VTP通告信息是在交换机的trunk链路上传播的。在VTP通告信息中包含一项称为配置修订版本号(configuration revision)的参数,配置修订版本号的高低代表着VLAN配置信息的新旧程度。高版本号代表更新的VLAN配置信息。只要交换机接收到一个有更高配置修订版本号的更新,它都用该VTP更新中的vlan 信息覆盖当前的vlan信息,所以配置修订版本号在VTP更新中起着非常重要的作用。每当server上修改了VLAN的配置(修改包括创建、删除VLAN和更改VLAN的名称),其配置修订版本号就会加1,然后用新的版本号向域中通告。
如果通告的配置修订版本号比收到该通告的交换机的当前配置版本号高,交换机则使用新的信息更新自己当前的配置。这种更新过程意味着:当server删除了其所有VLAN并使用了更高配置版本号,那么域中的所有具有低配置版本号的设备也将删除他们的VLAN。
提醒:一台在其他域中的server身份的交换机以client身份加入到另一个VTP域中,如果这台交换机携带的配置修订版本号比当前要加入的域中的配置修订版本号高的话,则新client的VLAN数据库将覆盖当前域中serve和client数据库。为此,建议为VTP域设置一个口令(缺省没有口令),这样只有口令匹配的交换机才可以加入域中。
跨VLAN的通信方法
VLAN的两个重要属性是:一个VLAN构成一个广播域;一个VLAN等于一个逻辑的子网。而在连网所用的设备中只有路由器可以分割广播域(或者说隔离广播),路由器也是为不同网络之间通信进行路由和交换数据的设备。所以,从这个角度来说VLAN之间的通信也需要路由器作为中间设备。
通常,使用IP地址规划网络时,通过路由器连接不同的网络使他们之间能够互相访问,这么做面临的问题是如何让主机把要到达外网的数据发送给路由器,解决这个问题的方法是在主机上设置缺省网关。缺省网关实际上是一台路由器,主机将去往非本地网络的数据包发送给它,由它将数据路由到目的地。
既然一个VLAN也是一个网络,那么一个VLAN内的主机如果要和其他VLAN的主机通信,也应该像上述方法一样找一台路由器作为它们的缺省网关,由路由器为它们转发数据。这样的解决方法有两种,一种是交换机外接一台路由器,该路由器专门为VLAN间通信服务,这种方法称为外部路由方法。另外一种是使用一台具有多层交换功能的高端交换机,该交换机具有路由功能。相对于单独外接一台路由器方式来说,这种方法称为内部路由方法。
以上是从三层角度分析,VLAN间的通信需要路由器,从二层角度分析,VLAN间的通信也需要路由器更改数据帧中的标记。例如,当VLAN3的主机和VLAN4的主机通信时,携带标记3的数据从连接VLAN3的路由器接口进入,经路由之后需要从连接VLAN4的接口送出,此时如果数据的标记仍然是3,那么交换机收到后就认为是VLAN3的数据帧,不会把它转发到VLAN4中,这样VLAN3和VLAN4之间仍然不能通信。为了能够让VLAN3的数据到达VLAN4,路由器在送出数据之前必须更换标记,把3改为4。这样交换机才认为是VLAN4的数据,并把它转发到正确的目的地。
外接路由器方法
当外接一台路由器时就要考虑路由器接口数量的问题。路由器的一个物理接口传统上只支持一个逻辑子网或者说一个广播域,这样一来,路由器要为交换机上的每个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的通信提供服务。