数据路径中的vlan标签在哪里变化?

网络工程 转变 局域网
2022-02-23 09:33:22

假设我们有一台交换机,我们在 VLAN 10 和 VLAN 20 中有两台主机。现在,如果两台主机尝试使用第 2 层连接相互 ping 通,那么 ping 将不会成功。

考虑 H1 (VLAN 10) ping H2 (VLAN 20) 的时间:

现在,如果我们在场景中添加一个路由器,交换机将广播接收到的流量。流量将通过路由器,路由器将使用 L3 转发表并将数据包发送回交换机。

交换机现在会将数据包发送到 VLAN 20 中的主机。

如果我们在 H1 进行 Wireshark 捕获,我们会得到 VLAN 标记 10,如果我们在 H2 进行 Wireshark 捕获,显然 VLAN 标记是 20。

因此,在此数据路径中的哪个位置添加了新标签。

假设我们没有使用 SVI

拓扑类似于:

       R1
        |
        S1
      /    \
    H1     H2
1个回答

你写的有几处有问题。

如果在主机上捕获,则帧上不会有 VLAN 标记。VLAN 标记用于有多个 VLAN 的中继上,以便网络设备可以分辨哪些帧属于哪个 VLAN。

除非帧是广播帧,否则交换机不会广播。交换机将有一个 MAC 地址表,其中包含来自帧源地址的 MAC 地址,以及源地址从哪个交换机接口进入交换机。交换机会在 MAC 地址表中查找一个帧的目的 MAC 地址,并将该帧发送到相应的接口。如果交换机在表中没有找到目标 MAC 地址,它将将该帧泛洪到同一广播域 (VLAN) 中的所有其他交换机接口。

主机会将目标 IP 地址与主机的 IP 地址和掩码进行比较,以查看它是否在同一网络中。如果目的 MAC 地址在同一网络中,它将使用 ARP 发现目的主机的 MAC 地址,并将其用作帧的目的 MAC 地址。

如果目标主机的 IP 地址在不同的网络中,则主机将使用配置的网关的 MAC 地址作为帧的目标 MAC 地址。

如果交换机和路由器之间的连接是中继,则交换机和路由器都会为非本地 VLAN 标记任何帧。交换机不会在接入端口上包含 VLAN 标记。


编辑:

对于每个 VLAN,路由器将在同一物理接口上具有单独的逻辑接口。对于 Cisco 路由器,它看起来像这样:

interface GigabitEthernet0/0
 description Physical Interface
 no shutdown
!
interface GigabitEthernet0/0.10
 description VLAN 10 Interface
 encapsulation dot1Q 10
 ip address 10.10.10.1 255.255.255.0
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 no shutdown
!
interface GigabitEthernet0/0.20
 description VLAN 20 Interface
 encapsulation dot1Q 20
 ip address 10.20.20.1 255.255.255.0
 no ip redirects
 no ip unreachables
 no ip proxy-arp
 no shutdown
!

接口上的encapsulation命令会将物理接口上的传入帧定向到正确的逻辑接口,并将 VLAN 标记添加到通过物理接口出站的退出逻辑接口的任何帧。

路由器将剥离并丢弃第 2 层帧以获取第 3 层数据包。将数据包切换到新接口后,路由器需要为新接口构建新帧。

当帧被剥离时,由中继到路由器的交换机添加到帧中的 VLAN 标记将丢失。路由器在为新接口构建新帧时,将为新 VLAN 添加标签。那就是更改 VLAN 标记的地方。