Dynamic Trunking Protocol(DTP) and Virtual LAN(VLAN)

什么是DTP
Dynamic Trunking Protocol(DTP)动态中断协议,是Cisco的私有协议,该协议主要用来在Switch之
间建立Trunk链路,通过DTP可以让Cisco交换机自动协商指定交换机之间的链路是否形成Trunk。Cisco交
换机以前使用的是ISL协议,目前DTP已经取代了ISL。Trunk Link主要包括Trunk、Dynamic Desirable、
Dynamic Auto这三种模式。

Trunk:
强制接口成为Trunk接口,并且主动诱使对方成为Trunk模式,所以当邻居交换机接口为trunk、desirab
le、auto时会成为Trunk接口。

Dynamic desirable:
主动与对协商成为Trunk接口的可能性,如果邻居接口模式Trunk、desirable、auto之一,则接口将变成
trunk接口工作。如果不能形成trunk模式,则工作在access模式。

Dynamic Auto:
只有邻居交换机主动与自己协商时才会变成Trunk接口,所以它是一种被动模式,当邻居接口为Trunk、desi
rable之一时,才会成为Trunk。如果不能形成trunk模式,则工作在access模式。
Access Mode

1、在介绍DTP的三种模式之前,我们要先讲一下Access Mode,当有设备接入交换机端口,在交换机的默认
配置情况下,交换机会把这个端口设置为Access port。Access Mode只允许1个VLAN的流量通过此端口。所
以如果这个端口要允许多个VLAN的数据通过的话,就要配置成Trunk模式。

2、以下图为例,两台交换机之间的链路配置的是Access Mode,Access VLAN是VLAN 20。在这种情况下,
两台交换机各自的VLAN20内的Server是可以相互通信的。但它们各自的VLAN 30是无法跨交换机通信的。只
能与同处一台交换机的其它主机通信。

3、配置端口为Access模式,允许VLAN20通过,使用以下命令,比如配置e0/0:
Switch1(config)#int e0/0
Switch1(config-if)# switchport mode access
Switch1(config-if)# switchport access vlan 20
Switch1(config-if)# exit
4、我们按照拓扑图把两台交换机配置完毕后如下图,并且把Server的IP也配置好。
5、配置完毕后,在Server上进行验证,你会发现VLAN20的两台主机,虽然连接的在不同的交换机上,但他
们之间是可以Ping通的。但是两个VLAN30的主机只能Piing能和自己在同一个Switch上的主机,并不能Ping
通其它Switch上的主机。
6,在交换机上查看ARP Table,也可以看到SW1中包含SW2中VLSN20的IP地址,但并不包含SW2中的VLAN30
相关的IP地址。说明两台Switch之间只有VLAN20可以通过。
Trunk Mode
1、现在我们已经了解了Access Mode的工作模式。这样就更好理解下面我们要介绍的Trunk Mode。在我们
的拓扑中,要使VLAN20和VLAN30都能够跨交换机通信,就需要配置trunk。

2、在将接口配置为Trunk模式前,需要先设置Trunk的encapsulation,也就是协议的封装方式,封装方式
有ISL和dot1q,前面我们说过ISL已经过时了,所以现在都是配置成dot1q。只需要对交换机互连的接口进行
配置即可。这里我们保持native vlan不变。允许VLAN 1,20,30通过Trunk链路。
switchport trunk encapsulation dot1q
switchport trunk native vlan 1
switchport mode trunk
switchport trunk allowed vlan 1,20,30
3、配置完成后,验证Server3可以ping通Server5,说明Trunk链路生效了。
4、现在拓扑就应该如下图这样,两台交换机中VLAN30的成员就在同一个VLAN当中了。
5、查看ARP以及MAC Table,可以看到所有的MAC和IP都在列表中。
6、通过show interface trunk可以查看端口是跑在Access还是跑在Trunk上。
Show int e0/0 trunk
7、如果一个端口跑在Trunk上,那么在查看VLAN的时候,就不会这个端口的分配信息。反过来讲,如果
show vlan时看到vlan里的port信息,说明这个端口就没有跑在trunk上。如下图,我们看不到e0/0,因为
它跑在trunk上。
DTP模式
1、前面我们介绍了Access 和Trunk。下面我们来介绍一下Dynamic Trunking,也就是DTP。DTP通过DTP
报文来建立Trunk Link,前面我们说过,它有两种模式,Dynamic Desirable和Dynamic Auto。Desirab
le是主动方,Auto是被动方,所以只要有一方是Desirable就可以形成Trunk,如果双方都是Auto模式,则
无法形成Trunk,如果不能形成Trunk,端口会转回Access模式。

2、通过以下命令将Trunk模式改成DTP,Switch1使用Desirable,Switch2使用Auto模式。
Switch1(config)#int e0/0
Switch1(config-if)# switchport mode dynamic desirable

Switch2(config)#int e0/0
Switch2(config-if)# switchport mode dynamic auto

3、Trunk Mode与Dynamic Desirable Mode的区别。
● Trunk模式也能发送DTP报文,所以Trunk模式可以兼容DTP模式。
● Trunk模式允许手动关掉DTP报文,DTP不可以。
● 关闭命令为switchport nonegotiate。
● Dynamic Desirable Mode如果遇到对方是Access mode,自己也会主动变成Access模式。
● Trunk mode如果遇到对方是Access mode,会坚持自己的Trunk模式。
VLAN
Virtual Local Area Netowrk(VLAN)虚拟局域网,就是把一个实体的LAN分割成多个虚拟的LAN。分割
出来的VLAN是各自独立的。VLAN与VLAN之间互相无法直接沟通。VLAN有两种:ISL和IEEE802.1q,ISL是
思科私有的,只有思科的设备才支持,802.1q开放标准,任何品牌的Switch都支持,由于ISL已经过时,所
以现在我们讲的VLAN都是指IEEE802.1q。 VLAN的配置在我们的文章中经常出现,并且介绍VLAN的文章网上
有很多,所以,这里就不再细说如何创建VLAN,只说一些关建知道,比如Native VLAN、VLAN1、allowed
VLAN等。

关于Native VLAN
Native VLAN是指当Switch把这个VLAN的Packet送到Trunk Link时,是不会放入VLAN Tag的,也就是不
打VLAN标签,除了Native VLAN,其它所有VLAN的数据包在被送上Trunk Link时,都会打上VLAN标签,Sw
itch根据VLAN标准来识别这个数据包是送给哪个VLAN的。那么如果Switch接收到没有VLAN ID的数据包时,
就会认为这个数据包是Native VLAN的。以上说的这些都是默认的状态,Native VLAN也是可以被打上标签
的,通过下面命令来配置,注意这个操作要在网络内所有交换机上操作。
switchport trunk native vlan
查看端口switch port属性
sh int e0/0 switchport
关于VLAN 1
VLAN 1是交换机的预设VLAN,Cisco交换机默认所有端口都属于VLAN 1,因为默认所有端口都是Access
port, 当端口变成Trunk口后,这个口就属于所有VLAN。VLAN 1是交换机的default VLAN,也就是默认
VLAN。交换机一般将Default VLAN和Native VLAN都默认设置为VLAN 1。 这里很容易将Native和Default
混淆,Native是802.1q trunk中的,表示vlan通过trunk时不打标签,而这个trunk接口所认为的Native
VLAN是可以修改的。Default VLAN可以理解为交换机默认的管理VLAN。
如何控制Trunk Link上的VLAN
前面我们在配置时,使用了命令:switchport trunk allowed vlan 1,20,30,意思是说这条Trunk链
路上允许VLAN 1,20,30这三个VLAN通过,除此之外,带有其它所有VLAN ID的数据包都将会被拒绝。如下
图,可以用以下命令参数配置Trunk链路上允许的VLAN。

● WORD:直接写允许通过的VLAN ID,例如
switchport trunk allowed vlan 1,20,30

● Add:在原有设置上再增加允许通过的VLAN
switchport trunk allowed vlan add 40,50

● All:允许全部VLAN通过
switchport trunk allowed vlan all

● Except: 允许全部VLAN通过,但排除掉某些VLAN
switchport trunk allowed vlan except 110-120
这样配置后,允许通过的VLAN范围就是1-109,121-4094

● None:不允许任何VLAN通过
switchport trunk allowed vlan none

● Remove:从现有的允许列表中移除某个或某些VLAN
switchport trunk allowed vlan remove 20
Internal Usage VLAN
1、当一个端口被设置为三层口时,Switch会占用一些VLAN给自己用。如下图,端口改为三层口之前,系统
没有占用任何VLAN,将端口改为三层口后,发现占用了1006。
2、系统占用VLAN这个是无法制止的,但可以将其占有用的VLAN ID改大,这样Switch将会从最大号的
VLAN ID开始占有用,所以,要将端口改为三层口之前,将设置好VLAN占用规则,避免Switch占用了小
号的VLAN ID而影响了自己的VLAN规划。
vlan internal allocation policy descending
3、系统占用的VLAN ID通过show vlan是看不到的。

发表评论