Trunking
多个相同vlan跨越交换机通信,可以通过为交换机间的连接端口配置trunk来实现。
废话不说,直接上命令(下面的实验都是在Packet Tracer5.0上完成的,使用的命令也是基于IOS的)
Switchport mode {trunk | nonegotiate | dynamic{atuo | desirable | }}
Trunk: 启用trunk,也发送DTP(dynamic trunk protocol)信号,比较特殊的命令
Nonegotiate: 启用trunkkng,但是禁用DTP,故只能和trunk与nonegotiate组建trunking
Dynamic desirable:主动协商建立trunking,发送并接收DTP信号
Dynamic auto: 被动协商建立trunking,只接收不发送DTP信号
No switchport mode trunk :关闭trunking
实验拓扑如下:
如上图所示,上下pc在同一个vlan里,共有四个(1,2,3,4)
配置如下:
首先在各交换机上创建VLAN,并为vlan1配置管理地址。
Vlan data
Vlan 1 name 001
Vlan 2 name 002
Vlan 3 name 003
Vlan 4 name 004
Int vlna 1
Ip add 10.1.1 .1 255.255.255.0
No sh
下面进入正题
(Swit10)
Conf t
Int fa0/1
Swit mod acc !!!将端口模式配置为access
Swit acc vlan 1 !!!将端口划分到vlan 1
No ip add
No sh
Exit
Int fa0/2
Swit mod acc
Swit acc vlan 2
No ip add
No sh
Exit
Int fa0/3
Siwt mod add
Swit acc vlan 3
No ip add
No sh
Exit
Int fa0/4
Swit mod acc
Swit acc vlan 4
No ip add
No sh
Exit
(将四个端口划分到四个vlan下)
Int g1/1
No ip add
Swit mod trunk !!!将端口模式设置为trunk
Swit trunk allow vlan 1-4 !!!允许通信的vlan为1-4
Swit trunk native vlan 1 !!!本地vlan设为vlan 1,这也是默认设置
No sh
Exit
(配置trunk端口)
另一个接入2950交换机作类似配置。
下面是2960交换机的配置:
Conf t
Int g1/1
No ip add
Swit mod trunk
Swit trunk all vlan 1-4
Swit trunk native 1
No sh
Exit
另外两个端口做类似配置
下面是路由器的配置,使用逻辑连接方式,配置子接口
Int g1/1
No ip add
No sh
Int g1/1.1 !!!建立第一个子接口
Encap dot1q 1 native !!!封装模式为dot1q,本地vlan为vlan1(很重要!)
Ip add 192.168.10.1 255.255.255.0 !!!为该接口下的vlan设置网关
No sh
Int g1/1.2
Encap dot1q 2
Ip add 192.168.20.1 255.255.255.0
No sh
Int g1/1.3
Encap dot1q 3
Ip add 192.168.30.1 255.255.255.0
No sh
Int g1/1.4
Encap dot1q 4
Ip add 192.168.40.1 255.255.255.0
No sh
如此这般,注意些细节问题一个简单的vlan实验差不多就可以完成了。vlan间可以相互通信,如果去掉路由的话,vlan间无法通信,但是vlan内可通信。
下面是几个需要注意的问题:
1.
某些交换机不支持DTP,如CISCO的2950和3500XL,他们总是处于nonegotiate状态,所以他不会和对方的端口协商,只有对方的端口为trunk或者nonegotiate状态时才可能形成trunk
2.
选择一条trunk链路的时候还要注意其封装模式,不同的设备封装情况也差异。配置封装模式的命令为:
Swit trunk encap {isl | dot1q | negotiate}
ISL是在802.Q标准出现之前的许多年就被Cisco制定了并专门用于Cisco设备的一种标准。所有一些比较老的设备只支持ISL。但是这些年一些新的交换机也开始支持802.Q了,对自家的ISL反而不支持了,如2960交换机。
2900XL和2500XL的trunk默认为ISL,2950和一些4000交换机则只支持802.1q,在配置的时候我们注意这点就可以了,敲几个命令试试看可否配置,不可配置的依默认的就可以了。本实验的几台机器都不支持此命令,所以无法使用。
3. native vlan 在两台相连的设备之间必须要设置相同,否则将有非预期的结果,在另一篇转载文章中有说明。因尚未试验验证,故不敢妄下断言。
4.特别注意使用以下命令含义:
switch trunk allow vlan 10
此时的含义是只允许通过VLAN 10
所有当我们连续敲上这样的两条命令的时候
switch trunk allow vlan 10
switch trunk allow vlan 20
他的结果并不是允许vlan 10 和vlan 20 通过,而是只允许vlan 20 通过。这一点要注意!正确的输入命令如下:
switch trunk allow vlan add 10
switch trunk allow vlan add 20
当我们对通过的vlan没有限制要求时,可以直接使用这一句:
switch trunk allow vlan all