在现代网络架构中,虚拟局域网(VLAN)是实现逻辑网络分段、增强安全性和优化流量的基石,当需要在不同的交换机之间传递多个VLAN的流量时,如果为每个VLAN都铺设一条物理线路,将是极其低效且不切实际的,这时,中继链路的概念便应运而生,它就像一条多车道的高速公路,允许来自不同VLAN的数据包在同一条物理链路上有序地传输。
什么是中继链路?
中继链路是连接两台网络设备(通常是交换机)的一条点对点链路,它能够承载多个VLAN的流量,为了区分不同VLAN的数据帧,交换机在将这些帧发送到中继链路之前,会给它们“打上”一个标签,这个标签标识了该数据帧所属的VLAN,当对端交换机收到这个带标签的帧后,会根据标签信息将其转发到正确的VLAN。
与之相对的是接入端口,它通常只属于一个VLAN,用于连接终端设备(如个人电脑、打印机等),这些设备发出的流量是不带VLAN标签的。
为了更直观地理解,我们可以看一个简单的对比:
特性 | 接入链路 | 中继链路 |
---|---|---|
用途 | 连接终端用户设备 | 连接交换机之间、交换机与路由器之间 |
承载VLAN数量 | 通常为1个 | 多个(通常为2-4094个) |
数据帧 | 不带VLAN标签(标准以太网帧) | 带有VLAN标签(用于识别VLAN) |
工作模式 | Access模式 | Trunk模式 |
中继协议:ISL vs. 802.1Q
在思科交换机上,实现中继功能主要有两种协议:ISL(Inter-Switch Link)和IEEE 802.1Q。
ISL (Inter-Switch Link):这是思科早期的私有协议,它通过封装整个原始以太网帧并在外部添加一个新的ISL头部和CRC校验来工作,这种方式会增加30字节的开销,由于ISL是思科私有标准,且已被业界淘汰,现代的思科交换机大多已不再支持此协议。
IEEE 802.1Q:这是由IEEE制定的工业标准,也常被称为“dot1q”,与ISL不同,802.1Q不是封装整个帧,而是在原始以太网帧的源MAC地址和类型/长度字段之间插入一个4字节(32位)的标签,这个标签包含了VLAN ID(12位,支持最多4094个VLAN)等信息,由于其开放性和高效性,802.1Q已成为当前配置中继链路的通用标准。
特性 | ISL (Inter-Switch Link) | IEEE 802.1Q |
---|---|---|
标准化 | 思科私有 | IEEE工业标准 |
封装方式 | 封装整个原始帧 | 在帧内插入一个4字节标签 |
帧开销 | 30字节 | 4字节 |
当前状态 | 已基本淘汰 | 行业标准,广泛应用 |
配置思科交换机中继
以下是在思科IOS交换机上配置802.1Q中继链路的典型步骤,假设我们要在交换机的GigabitEthernet0/1
接口上配置中继。
创建VLAN(如果尚未创建)
在配置中继之前,请确保您已经创建了需要通过中继链路传输的VLAN。
Switch> enable
Switch# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# vlan 10
Switch(config-vlan)# name Sales
Switch(config-vlan)# vlan 20
Switch(config-vlan)# name Marketing
Switch(config-vlan)# exit
进入接口配置模式
选择您要配置为中继链路的物理接口。
Switch(config)# interface GigabitEthernet0/1
将接口设置为中继模式
使用switchport mode trunk
命令将接口强制设置为Trunk模式。
Switch(config-if)# switchport mode trunk
指定中继封装协议
对于支持多种封装协议的老型号交换机,需要明确指定使用802.1Q,现代的交换机通常默认使用802.1Q,此步骤可能被省略。
Switch(config-if)# switchport trunk encapsulation dot1q
管理本征VLAN(Native VLAN)
本征VLAN是一个特殊的概念,通过中继链路传输的、属于本征VLAN的流量,在发送时是不带802.1Q标签的,默认情况下,本征VLAN是VLAN 1,为了安全和管理最佳实践,强烈建议将本征VLAN更改为一个未被使用的、专用的VLAN(例如VLAN 99或VLAN 999)。
Switch(config-if)# switchport trunk native vlan 99
注意:链路两端的交换机接口必须配置相同的本征VLAN,否则可能会引发“本征VLAN不匹配”的警告,并可能导致某些流量问题。
定义允许通过的VLAN列表
默认情况下,中继链路允许所有已创建的VLAN通过,出于安全考虑,可以手动配置一个“允许列表”,只让必要的VLAN流量通过。
Switch(config-if)# switchport trunk allowed vlan 10,20,99
您还可以使用add
、remove
和except
等关键字来灵活管理这个列表。
完整配置示例
! 创建VLAN
vlan 10
name Sales
vlan 20
name Marketing
vlan 99
name NATIVE_VLAN
! 配置中继接口
interface GigabitEthernet0/1
description Trunk to Core-Switch
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 99
switchport trunk allowed vlan 10,20,99
spanning-tree portfast trunk
验证与排错
配置完成后,使用以下命令来验证中继链路的状态:
show interfaces trunk
:这是最核心的验证命令,它会显示所有处于中继模式的接口、封装协议、本征VLAN以及允许通过的VLAN列表。show vlan brief
:可以查看VLAN的设置以及哪些端口被分配到哪个VLAN。show running-config interface GigabitEthernet0/1
:查看特定接口的详细运行配置。
如果中继链路无法正常工作,请检查以下几点:
- 两端接口是否都正确配置为
trunk
模式。 - 封装协议是否一致(通常都是dot1q)。
- 本征VLAN ID是否匹配。
- 允许的VLAN列表是否包含了您需要通信的VLAN。
相关问答FAQs
switchport mode trunk
、switchport mode dynamic desirable
和 switchport mode dynamic auto
这三种模式有什么区别?
解答:
这三种模式与思科的动态中继协议(DTP)相关,用于自动协商链路是否成为中继。
switchport mode trunk
:强制将接口设置为Trunk模式,不发送DTP协商报文,无论对端是什么模式,本端都始终是Trunk,这是最明确、最推荐的生产环境配置方式。switchport mode dynamic desirable
:主动模式,接口会主动发送DTP报文,尝试与对端协商建立Trunk链路,如果对端是trunk
、desirable
或auto
模式,链路将成为Trunk。switchport mode dynamic auto
:被动模式,接口处于被动状态,不会主动发起协商,但会响应来自对端的DTP协商请求,只有当对端是trunk
或desirable
模式时,链路才会成为Trunk,如果两端都是auto
模式,链路将成为Access链路。
为了网络的稳定性和可预测性,最佳实践是手动将接口配置为switchport mode trunk
,避免使用动态协商模式。
为什么推荐更改默认的本征VLAN(VLAN 1),而不是继续使用它?
解答:
更改默认的本征VLAN主要出于两个重要原因:安全和管理。
安全风险:VLAN 1是许多网络协议(如CDP、VTP、DTP等)的默认VLAN,攻击者可能利用这一点,通过发送带有VLAN 1标签的恶意流量来尝试进行VLAN跳跃攻击,如果中继链路上的本征VLAN是VLAN 1,那么这些流量是未加标签的,更容易绕过一些安全检查,将本征VLAN更改为一个未被使用的、不承载任何用户流量的“哑VLAN”(如VLAN 999),可以有效隔离这些潜在的协议流量和攻击向量。
管理最佳实践:将VLAN 1保留为默认,但清空其所有成员端口,并禁止其在中继链路上传输用户数据,是一种网络“卫生”习惯,这确保了网络的基础架构更加清晰、可预测,减少了因默认配置引入的未知风险,更改本征VLAN是实现这一目标的关键步骤,它能确保中继链路上传输未打标签流量的VLAN是我们自己定义和控制的,而不是默认的VLAN 1。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/12473.html