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