如果路由器不知道将数据包转发到哪里,它们会丢弃数据包吗?

网络工程 路由 路由器 ip IPv4 ARP
2022-02-14 03:01:53

如果一个路由器收到一个IP目的地址不在它的路由表中的数据包,我相信它会把它发送到它的默认端口。

假设我们从表中删除该条目。现在,我认为路由器会发送一个 ARP 请求,以便找到转发它的位置。关于这个过程,我有两个问题:

  • 如果没有 ARP 响应(即没有从路由器到目标地址的路由),它会丢弃它并向源发送 ICMP 消息,说明目标不可达?
  • 在任何情况下,路由器是否会因为目标地址不在其路由表中而丢弃数据包(假设没有“默认”条目)?还是会一直检查是否可以通过 ARP 请求到达目的地?
2个回答

ARP 是一种 LAN 协议,可将第 3 层地址解析为第 2 层地址。与任何主机一样,路由器将对直接连接到 LAN 上的主机使用 ARP。

路由器将查看数据包上的目标地址,并尝试在其路由表中找到匹配项。如果找不到匹配项,它将丢弃数据包并向源发送 ICMP 消息,告诉它没有到目标网络的路由。

默认 IPv4 网络0.0.0.0/0或默认 IPv6 网络::/0包含该协议的每个 IP 地址,并且该协议的每个地址都将匹配到默认网络的路由。在路由表中设置默认路由可防止路由器丢弃目的地未知的数据包。

一旦数据包到达路由器。路由器将验证路由表。如果在路由表中找到到目的地的路由,路由器将根据路由表将数据包转发到下一跳。如果路由显示其直接连接的网络。然后进一步检查 ARP 表并将流量转发到 L2 交换机,在 L2 交换机中验证 MAC 地址表并将数据包转发到特定目的地。

如果路由器的路由表中不存在路由器。路由器只会丢弃数据包。