(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。

 

 

默认vlan1和其他vlan互通_链路

 


    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相关的命令

 


 

默认vlan1和其他vlan互通_数据帧_02

 

下边这两个意味着sw1尝试协商到trunk,

Administrative Mode: dynamic desirable

Administrative Trunking Encapsulation: negotiate

但 Operational Mode: static access 说明协商失败

Operational Trunking Encapsulation: native 说明不加标记

 


 

默认vlan1和其他vlan互通_链路_03

 

下边看配置模式,n-isl 即 negotiated ISL,trunk也支持拓展vlan

 

 

默认vlan1和其他vlan互通_默认vlan1和其他vlan互通_04

 


下边列出连接到其它三个交换机的三个trunk

 


 

默认vlan1和其他vlan互通_数据帧_05

 

下边的 show dtp 显示出全局和单个接口的dtp操作模式 

 


 

默认vlan1和其他vlan互通_链路_06

TOS/TAS/TNS --- Trunk Operating/Administrative/Negotiation Status
TOT/TAT/TNT --- Trunk Operating/Administrative/Negotiation Type


 

默认vlan1和其他vlan互通_默认vlan1和其他vlan互通_07

默认vlan1和其他vlan互通_数据帧_08

 

①.允许,活跃及修剪的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。

 


 

默认vlan1和其他vlan互通_链路_09

 

如果第一列中没有列出命令switchport nonegotiate的话,默认使用DTP协商(DTP协商是启用的)。

 

DTP协商和手动switchport trunk encapsulation 配置trunk类型都可以

 

为了DTP协商成功,两台交换机必须都配置相同的VTP域名,或至少有一台交换机未配置VTP域名(即为NULL)