当目的MAC地址未知时,交换机会做什么?

网络工程 路由 ipv4 ipv6 MAC地址 IP地址
2021-07-15 19:48:12

假设我刚刚通过家庭/办公室 LAN 网络将我的计算机连接到互联网。然后我继续 ping google.com。当然,DNS 会将 google.com 转换为目的 IP 地址,但是目的 MAC 地址是如何知道的呢?请解释数据包如何到达 Google 的服务器以及响应如何返回。

2个回答

我觉得你很困惑。任何不在 LAN 上的目标的目标 MAC 地址是源主机中配置的网关的 MAC 地址。

MAC 地址是第 2 层地址,它们仅在您的第 2 层 LAN 上相关,甚至使用。第 3 层地址,例如 IPv4 或 IPv6 地址,用于与另一个 LAN 上的主机进行通信。

ARP(地址解析协议)用于将第 3 层地址解析为第 2 层地址,以便在 LAN 上进行通信。主机会维护一个 ARP 缓存,但如果缓存中没有三层地址的条目,主机将发送带有该三层地址的 ARP 请求以查找相应的二层地址。

ARP 请求:“谁有这个三层地址的二层地址?

ARP 回复:“我愿意,这是那个第 3 层地址的第 2 层地址。

如果目标三层地址在不同的三层网络上,主机将使用其配置网关的二层地址,如果它没有网关的二层地址,它将使用 ARP。

数据包是第 3 层数据报,它们不包含第 2 层地址,第 2 层地址包含在封装第 3 层数据包的第 2 层帧中。数据包由称为路由器的第 3 层设备路由。路由器在路由数据包之前从第 3 层数据包中剥离第 2 层帧,它们将为数据包旅程的下一段构建新的第 2 层帧。对路由的完整讨论太大而无法在此讨论。

你的标题实际上是一个不同的问题。交换机根本不涉及第 3 层,因此它们不使用 ARP。交换机维护 MAC 地址表以将交换机接口与 MAC 地址相关联。每次帧进入交换机接口时,交换机都会更新或创建源 MAC 地址和它到达的接口的 MAC 地址表条目。交换机将使用此 MAC 地址表查找目标 MAC 地址,以查看它是否具有该帧的目标接口。如果不是,它会将帧泛洪到所有其他接口。

当交换机的 mac 地址表中没有目标 mac 地址时,它会将帧泛洪到除接收端口之外的所有其他端口。但是,如果发送主机没有目的 mac 地址,它将使用 ARP(地址解析协议)来解析或获取目的 mac 地址,如果目的主机位于其他网络如 Internet,发送主机将使用路由器的 mac 地址作为目的 mac 地址,路由器将转发数据包,最后一个路由器将使用 ARP 将帧传送到目的主机。