路由器子接口 (RoAS) 上的本地 VLAN

网络工程 思科 转变 VLAN 交换 层2
2021-07-23 08:52:27

我知道本地 VLAN的所有背景信息,在这里重复一下,它们用于“控制流量”,即 CDP/VTP/PAgP/DTP。

在路由器上,可以定义子接口以允许来自连接的交换机的不同 VLAN ID 通过中继进行通信,每个 VLAN ID 将在不同的子网上,子接口充当默认网关,与中继无关。

通常在重要的学习文本和书籍以及论坛上的答案中,总是说您必须在其中一个子接口(或早期场景中的物理接口)上定义本机 VLAN

我的问题是具体为什么我们需要的本地VLAN上的这些子接口的一个定义时不需要连接的VLAN来控制流量(例如层2)传递给对方?

在我设置的每个实验室(PT 和 GNS3)中,我从来没有在子接口上丢失本地 VLAN 的问题:

router(config-subif) #**encapsulation dot1q 1 native** 
3个回答

对于 Cisco 设备,您不需要配置本地 VLAN,建议您不要配置本地 VLAN。链路本地的流量(CDP、VTP、PAgP、DTP 等)仍将在未标记的情况下发送和接收,并且将正常工作。即使配置了本地 VLAN,此流量也永远不会发送到链路之外。

配置本地 VLAN 会带来安全风险,使用 VLAN 1(默认 VLAN 和默认本地 VLAN)也会带来安全风险。如果您没有本地 VLAN,那么任何被欺骗到本地 VLAN 上的流量将永远不会超出单个链接,这限制了可能造成的任何损害。

您永远无法删除 VLAN 1,但您可以使用switchport trunk allowed vlan <list>命令限制中继上允许的 VLAN,并且通过将其从列表中排除来禁止 VLAN 1。

对于 802.1q - IEEE 标准要求对穿过中继的任何帧(即本地 VLAN)进行 VLAN 分配。默认情况下,这是 VLAN 1,但可以更改。

本地 VLAN 本质上承载所有没有关联特定 VLAN 标记的流量。例如,假设您正在使用 cisco 交换机并且只发出以下命令:

config t
int fa0/1
switchport
switchport mode access
no shutdown

此时,该特定接口未分配给特定 VLAN(例如,switchport access vlan 13)。因此,此接口将使用本地 VLAN(无论您将其定义为什么)。

由于 IEEE 规范,使用 802.1q 时必须始终具有本地 VLAN。我个人的意见是,他们是否将其放在那里作为任何发送的帧的“故障安全”,而没有将 VLAN 标记放置在帧内的 802.1q VLAN 标记字段中。

希望这可以帮助。

如果接口充当子网的默认网关,则它具有 IP 地址,不再是“交换机端口”,而是 L3 接口。L3 接口(具有 IP 地址的接口)仅“附加”了 1 个 vlan。这个 vlan 是“未标记的”,在 Cisco 语言中,这意味着本机。本机 vlan 是未标记的 vlan。因此,当您创建 SVI 时,您正在为该 L2 VLAN 创建 L3 实例。

双重标签是一个不同的概念。双重标记是指攻击者将 vlan 标记放在现有 vlan 标记之上。第一个标签在进入开关时被剥离。数据包上仍然有它的底层标签,然后用于将数据包放入相应的vlan;从而允许攻击者访问另一个 vlan。