VLAN-3-VLAN Trunk:ISL和802.1Q
(1)ISL和802.1Q概念
通过使用VLAN Trunk链路,设备可以通过一条链路发送去往多个vlan的流量。为了知道数据帧属于哪个vlan,发送方会添加原始以太网数据帧的头部,这个头部中包含相关VLAN的VLAN ID字段。
ISL会添加新的26字节头部,以及新的尾部(从而能够使用新的FCS值),然后封装整个原始数据帧。使用执行Trunk行为的设备的源地址(SA)来封装头部,而不使用原始数据帧的源MAC地址。ISL使用组播目的地址(DA)0100.0C00.0000或0300.0C00.0000。
802. 1Q 会在原始数据帧中(在源地址字段后)插入一个4字节的头部,称为标记。原始数据帧的地址保持不变。正常情况下,以太网控制器会希望在源地址字段后,找到以太网类型字段或802.1Q长度字段。对于802.1Q标记,地址字段后的前两个字节记录着以太网类型值0x8100,表示数据帧包含802.1Q的头部。因为802.1Q并不真正封装原始数据帧,因此通常被称为数据帧标记
802.1Q有本征vlan的概念,在Trunk链路上,802.1Q不标记在本征VLAN中发送的数据帧,并且会将所有收到的未标记的数据帧都分配给本征VLAN。本征VLAN特性允许交换机尝试在接口上使用802.1Q Trunk,但如果另一台设备不支持Trunk,本征VLAN的流量仍可以通过链路发送。默认时,本征VLAN是VLAN1,这也是默认的Access VLAN。Trunk链路两端的本征VLAN必须相同;否则就会出现本征VLAN不匹配,从而导致两个VLAN合并。为了检测并尽可能避免本征VLAN不匹配的不良影响,Cisco交换机对PVST+和快速PVST+部署实施了私有化扩展,允许它们检测并阻塞Trunk链路上不匹配的本征VLAN。此扩展将在第3章中进一步描述。Cisco发现协议(Cisco Discovery Protocol,CDP)将检测并报告本征VLAN不匹配的情况。最佳做法是在每个Trunk链路上,将本征VLAN从VLAN1改为其他VLAN,并且不把这个VLAN用于除配置本征VLAN外的其他目的。这就会防止用户进行VLAN跳转攻击,在这种攻击中,用户会发送双标记数据帧,若顶端的标记匹配了Trunk的本征VLAN,Trunk会去除这个顶端标记。
(2)ISL和802.1Q配置
Cisco交换机使用动态Trunk协议(DTP)来动态获知线缆另一端的设备是否希望使用Trunk,若是,使用哪种Trunk协议。
DTP根据接口上定义的DTP模式来获知是否执行Trunk。DTP模式有以下这些。
dynamic auto:接口将自动协商接口模式;然而,偏向于成为Access接口。
dynamic desirable:接口将自动协商接口模式;然而,偏向于成为Trunk接口。
dynamic desirable有更高的优先级---如果两个接口都配置了dynamic,但一个配置为auto,另一个配置为desirable,最终的操作模式将是Trunk。如果两台中任一台同时支持ISL和802.1Q,DTP也会协商Trunk上的封装类型。如果两台设备同时支持两种Trunk类型,他们将选择ISL。如果DTP协商失败,任何使用dynamic模式的接口都将运行为Access接口。
虽然DTP和VTP是独立的协议,但DTP却在其消息中承载VTP域名。只有在两交换机上的VTP域名相同时,或者一台交换机未配置VTP域名时(即使用NULL域名),交换机才能成功协商链路的操作模式。使用VTP域名进行DTP协商,其背后的原因是在不同的VTP域中,可能有不同的VLAN集合,并且在每个VTP域中,相同编号的VLAN可以用作不同目的(这就是网络一开始被划分成几个VTP域的原因——保证VLAN数据库分离且独立)。因此,交换机不应将链路启用为Trunk,因为将VLAN从一个VTP域扩展到另一个VTP域,会导致不良后果。
将DTP模式设置为desirable,它们会动态建立trunk,不过也可以手动配置trunk,并用show验证,下边列出一些与trunk相关的命令
下边这两个意味着sw1尝试协商到trunk,
Administrative Mode: dynamic desirable
Administrative Trunking Encapsulation: negotiate
但 Operational Mode: static access 说明协商失败
Operational Trunking Encapsulation: native 说明不加标记
下边看配置模式,n-isl 即 negotiated ISL,trunk也支持拓展vlan
下边列出连接到其它三个交换机的三个trunk
下边的 show dtp 显示出全局和单个接口的dtp操作模式
TOS/TAS/TNS --- Trunk Operating/Administrative/Negotiation Status
TOT/TAT/TNT --- Trunk Operating/Administrative/Negotiation Type
①.允许,活跃及修剪的vlan
就像上边的 show interface trunk显示了每个类别的vlan,下边是对这三个类别的解释
允许的VLAN:每个Trunk默认允许所有的VLAN。然而,工程师可以从允许的VLAN列表中添加或移除VLAN,使用的命令是switchport trunk allowed。
允许且活跃:为了成为活跃VLAN,首先VLAN必须在Trunk的允许列表中(基于Trunk配置),其次VLAN必须在交换机的VLAN配置中,最后VLAN必须为活跃状态(而不是休眠或本地关闭状态)。在使用PVST+时,STP实例活跃地运行在Trunk上,Trunk负责承载这个类别中列出的VLAN。
活跃且为修剪:这个类别是“允许且活跃”列表的子集,包含VTP修剪的VLAN,以及PVST+认为是阻塞接口的VLAN。
②.Trunk配置的兼容性
在多数生产网络中,整个网络中的交换机Trunk都使用相同的标准配置。例如,与其使用DTP来协商是否使用Trunk,许多工程师会自己配置Trunk接口总是使用Trunk(使用命令switchport mode trunk),而在不应该使用Trunk的接口上禁用DTP。
如果第一列中没有列出命令switchport nonegotiate的话,默认使用DTP协商(DTP协商是启用的)。
DTP协商和手动switchport trunk encapsulation 配置trunk类型都可以
为了DTP协商成功,两台交换机必须都配置相同的VTP域名,或至少有一台交换机未配置VTP域名(即为NULL)