这是思科老 CCNA 认证中,一直强调的概念。
在写静态路由时,下一跳 IP
和 出接口
是两个不同的参数,它们用于确定路由数据包的下一跳目标。
静态路由的下一跳 IP 是指,数据包在按照这条路由离开当前路由器时,应该发送到的下一个(设备的) IP 地址。
当静态路由使用下一跳 IP 时,路由器就会根据目标 IP 地址查找下一跳 IP 地址的路由表项,然后将数据包发送到该(下一跳)设备的 IP 地址。
静态路由的出接口,是指数据包按照这条路由离开当前路由器时,应该从当前路由器的哪个物理或逻辑接口发送出去。
当静态路由使用出接口时,路由器就会将数据包发送到与指定接口关联的网络中(不需要知道下一跳设备的 IP 地址)。
在写静态路由时,只指定出接口而不指定下一跳 IP 地址,可能会导致 出接口本身确定不了数据包的下一跳目标。比如,一个接口可能连接到多个目标网络(MA网络),而且不同的目标网络可能有不同的下一跳路由器或网关。
如果在 MA 网络中的静态路由,只指定出接口参数时,路由器就会根据目标 IP 地址查找匹配的路由表项(根据最长前缀匹配原则来决定数据包的下一跳)。这时,由于该路由没有指定下一跳 IP 地址,路由器很可能会选择默认的下一跳 IP。这样做,轻则导致数据包被发送到了错误的地方,重则根本无法路由到目标。
因此,在 MA 网络中写静态路由时,一定要谨慎(若要确保数据包能够正确路由,应该同时指定出接口和下一跳 IP 地址),这样,路由器就能准确知道数据包的下一跳目标是什么。
除非在特定 Point to Point 网络中(明确知道,只有一个可能的下一跳)静态路由才能单独使用出接口参数。