交换机连接到路由器时如何学习mac地址?

网络工程 转变 路由器
2021-07-16 23:00:57

假设我们有一个如下图所示的网络,交换机 MAC 表为空,ARP 表也为空。我想从主机 A 向主机 B 发送一个数据包。我想问的问题是交换机学习的顺序和 MAC 地址是什么?

这是我目前所知道的:

主机 1 使用主机 B 的目标 IP (172.30.2.16) 创建数据包并将其发送。

交换机 1 获取数据包并在他的 MAC 表中查找(其为空),然后将其发送到他的所有端口(泛洪),同时将主机 A 的源 MAC 保存在他的 MAC 表中。

数据包到达路由器,路由器将其发送到交换机 2。现在交换机 2 是学习(保存)主机 A MAC 地址(因为它是源 MAC)还是学习了数据包来自的路由器 MAC 并且其端口已连接?

现在交换机 2 泛洪所有端口并从主机 B 得到肯定答复,并在他的表中学习(保存)他的 MAC 地址。现在该过程与主机 A 反向进行。

交换机 1 MAC 表:

端口------源MAC

1------主机A MAC

5------路由器的MAC还是Host B的MAC?

交换机 2 MAC 表:

端口------源MAC

1------主机A MAC还是路由器的MAC?

3------主机B 网络

太感谢了!

2个回答

每个路由器将原始源MAC 地址替换为数据包离开路由器接口的MAC 地址

(in this case, the packet comes in through the red interface 
 and goes out on the brown interface).

于是switch 2Host B学习了路由器棕色接口的MAC地址

他们不知道原始 MAC 地址,也不需要知道。Host B需要回复Host A它时,只需将数据包发送到Host AIP 地址和Router's brown interfaceMAC。

路由器移除传入 IP 数据包周围的帧,并在传递数据包时使用新帧(取决于第 2 层协议)封装该数据包

交换机的 MAC 表由 ARP 填充:

  1. 当主机 A 将要向主机 B 发送数据包时,它会查询其本地路由表。
  2. 路由表表明需要 Router 作为网关来转发数据包。
  3. 路由器通过以太网连接,所以需要学习它的MAC地址。
  4. 主机 A 为路由器的 IP 发送(广播)ARP 请求。
  5. 这会将主机 A 的 MAC 地址传播到广播域中的所有交换机。
  6. 路由器以其 MAC 地址响应,将其 MAC 地址传播到所需路径上的交换机(当响应是单播时)或所有交换机上(当响应是广播时)。
  7. 主机 A 从响应中获知路由器的 MAC 地址
  8. 主机 A 将 IP 数据包封装在寻址到路由器 MAC 的以太网 II 帧中并传输它。
  9. 路由器几乎使用相同的机制将新以太网帧内的数据包转发到主机 B。

确切地说,每台交换机在接收时删除每个(第 2 层)帧周围的(第 1 层)以太网数据包,并在转发时在它周围放置一个新的以太网数据包。因此,第 3 层使用第 2 层进行传输,而第 2 层又使用第 1 层进行传输。第 1 层是位实际移动的地方。