1假设我想从 IP 179.58.10.101 向 179.58.20.11 传输一个帧,当所有设备刚刚打开时,如何为新配置的虚拟 LAN 中的每个交换机构建转发表?所有 PC 都配置了静态 IP 地址。
虚拟局域网配置
交换机并不特别关心,也不会记录在通过交换机端口的帧上使用的任何 IP 地址。交换机只关心 MAC 地址。每次在特定交换机端口上接收到帧时,交换机都会学习该帧的源 MAC 地址。这与 VLAN 的工作方式是,交换机上的每个 VLAN 都有自己独立的 MAC 地址表。
给定以下拓扑,从 HostA 到 HostB 的数据包将在每个交换机之间反弹,从 VLAN 到 VLAN。交换机在接收到帧后,每次都会从每个 VLAN 上每个端口上接收到的每个帧 的源 MAC 地址中学习。
最后,在数据包从 HostA 到 HostB 并返回后,完全填充的 MAC 地址表将如下所示:
顶部开关:
VLAN PORT MAC Address
10 1 aaaa.aaaa.aaaa
10 3 bbbb.bbbb.bbbb
30 5 aaaa.aaaa.aaaa
30 7 bbbb.bbbb.bbbb
50 9 aaaa.aaaa.aaaa
50 11 bbbb.bbbb.bbbb
70 13 aaaa.aaaa.aaaa
70 15 bbbb.bbbb.bbbb
底部开关:
VLAN PORT MAC Address
20 3 aaaa.aaaa.aaaa
20 5 bbbb.bbbb.bbbb
40 7 aaaa.aaaa.aaaa
40 9 bbbb.bbbb.bbbb
60 11 aaaa.aaaa.aaaa
60 13 bbbb.bbbb.bbbb
80 15 aaaa.aaaa.aaaa
80 17 bbbb.bbbb.bbbb
注意 1:我故意没有将 IP 地址放在我的主机上,因为它们完全无关紧要,并且不会影响上述行为。
注意 2:TOP 交换机的端口 3 在 VLAN 10 中。BOTTOM 交换机的端口 3 在 VLAN 20 中。但我们假设它们都是接入端口,因此流量使交换机端口未标记。因此,BOTTOM 交换机不知道(或关心)VLAN 10,而 TOP 交换机不知道(或关心)VLAN 20。
哎呀,你的问题发生了巨大的变化。我将保留我原来的答案,因为我仍然认为它与您的(新)问题有关。但要正确回答它,我必须添加到您的图片中:
在您真正了解交换机如何学习源 MAC 地址之前,您必须了解数据包如何从 HostA(左侧)到 HostB(右侧)。我将数字放在数据包的每个位置以及到达 HostB 的方向。每个位置的 Src/Dst IP/MAC 如下:
** Position 1 **
Src IP : 179.58.10.101 Src MAC: aaaa.aaaa.aaaa
Dst IP : 179.58.20.11 Dst MAC: eeee.eeee.eeee
** Position 2 **
Src IP : 179.58.10.101 Src MAC: aaaa.aaaa.aaaa
Dst IP : 179.58.20.11 Dst MAC: eeee.eeee.eeee
** Position 3 **
Src IP : 179.58.10.101 Src MAC: eeee.eeee.eeee
Dst IP : 179.58.20.11 Dst MAC: bbbb.bbbb.bbbb
** Position 4 **
Src IP : 179.58.10.101 Src MAC: eeee.eeee.eeee
Dst IP : 179.58.20.11 Dst MAC: bbbb.bbbb.bbbb
** Position 5 **
Src IP : 179.58.10.101 Src MAC: eeee.eeee.eeee
Dst IP : 179.58.20.11 Dst MAC: bbbb.bbbb.bbbb
如果您获取此信息,并绘制出交换机在每个步骤中所做的事情,您最终会得到每个交换机的 MAC 地址表,如下所示:
** Switch1 MAC Address Table **
Port facing HostA - VLAN 10 - aaaa.aaaa.aaaa
Port facing Router - VLAN 10 - eeee.eeee.eeee (not learned until HostB responds)
Port facing Router - VLAN 20 - eeee.eeee.eeee
Port facing Switch3 - VLAN 20 - bbbb.bbbb.bbbb (not learned until HostB responds)
** Switch3 MAC Address Table **
Port facing Switch1 - VLAN 20 - eeee.eeee.eeee
Port facing HostB - VLAN 20 - bbbb.bbbb.bbbb (not learned until HostB responds)
(我提供了当 HostB 也响应 HostA 时交换机将在返回路径上学习的内容,但如果您只对交换机如何填充从 HostA 到 HostB 的数据包感兴趣,那么请忽略这些行)
Eddie 唯一遗漏的是当表为空时会发生什么,或者没有给定 MAC 的目标端口。在这种情况下,数据包被单播泛洪到所有端口;它不知道帧属于哪里,所以它被发送到任何地方。