一个初学者问题,我最近在 Cisco CCNA R&S 200-125 官方证书指南中读到,数据包离开 PC 时的目标 IP 为 PC2(目标),但如果 PC2 位于同一子网中,则 PC2 的 MAC或使用路由器接口的MAC(默认网关),对吗?
那么,为什么我们在路由器接口中需要 IP,而 IP 地址在旅途中始终保持不变,而 MAC 正在变化呢?这导致了另一个问题(它们是两个相关的,我确信我有一个误解)。为什么我们在上面提到的使用 MAC 时使用默认网关 IP?
一个初学者问题,我最近在 Cisco CCNA R&S 200-125 官方证书指南中读到,数据包离开 PC 时的目标 IP 为 PC2(目标),但如果 PC2 位于同一子网中,则 PC2 的 MAC或使用路由器接口的MAC(默认网关),对吗?
那么,为什么我们在路由器接口中需要 IP,而 IP 地址在旅途中始终保持不变,而 MAC 正在变化呢?这导致了另一个问题(它们是两个相关的,我确信我有一个误解)。为什么我们在上面提到的使用 MAC 时使用默认网关 IP?
你回答你自己的问题:
...数据包离开 PC 时的目标 IP 为 PC2(目标),但 PC2 的 MAC 位于同一子网或路由器接口的 MAC 的情况下
发送节点查询其本地路由表以找出将 IP 数据包传递到何处。此路由决策基于 IP 地址。然后,下一跳 IP 地址将转换为基于 MAC 的 L2 网络的下一跳 MAC 地址。
为什么像我上面提到的那样使用 MAC 时我们使用默认网关 IP
(不一定是默认的)网关是通向目的地的路由器跃点。它需要接收数据包才能转发它,因此您需要指示本地网段将其带到那里。
远程目的地的 MAC 对发送者来说是未知的,并且它在它自己的 L2 段之外没有任何意义。
为什么我们在使用 MAC 时使用默认网关 IP?
完全正确的是,根据其链接地址来描述下一跳路由器同样有意义。但就像历史一样,它的设计方式并非如此。为了保持每一层的关注点分开,用IP地址来描述下一跳路由器更有意义,而让下层整理出任何可能的寻址或链接以将其发送出去。
请记住,并非所有链接都是以太网;事实上,大多数长途链接都不是任何类型的以太网。许多点对点技术没有寻址。
但
在路由器中通过接口指定下一跳是很常见的:
ip route 0.0.0.0 0.0.0.0 Dialer1
ip route 172.30.20.0 255.255.255.0 Tunnel0
这是因为在点对点链接上没有 IP 地址是很常见的——在点对点链接上你真的根本不需要任何地址。
还有一些“代理 ARP”情况,我们没有告诉客户端它的路由器是什么,而是对它撒谎并告诉它目标 IP 地址将被发送到本地 LAN 地址,就像你正在考虑的那样。它不是很优雅,我最后一次看到它在现实生活中使用是在 1990 年代。(思科文档)