想象一下一个由三台计算机组成的网络,它们都连接到一台交换机。我们需要在其中一台计算机上手动填写路由表。
路由表中的网关列必须包含与下一跳相同的信息。但是没有下一跳;所有数据包都直接在计算机之间传输,无需任何中介(它们实际上通过交换机,但没有 IP 地址)。
那么路由表中网关的正确值是多少?
答案1
简短回答:没有任何,您不需要网关就可以使机器进行通信。事实上,您甚至不需要路由或路由表。
如果所有计算机都位于同一个子网中(它们必须位于同一个子网中),则它们不需要网关进行通信。只有当您想要与另一个网络上的机器通信时才需要网关。就像我之前说过的,它们甚至不需要路由。
我建议你读一本关于 IP 的教程或书籍。这可以是一种选择。
答案2
在大多数系统中,对于路由表中的路由,您可以设置接口或提供下一跳(或两者)。
如果仅给出接口,则数据包将通过该接口直接发送到目标主机的 MAC 地址(即,同一子网内主机的数据包)。
如果给出了下一跳,那么数据包将被发送到与该 IP 对应的 MAC 地址,并且使用上面提到的接口路由找出用于发送该数据包的端口。
在不允许为目标提供端口的系统中,您可能可以使用绑定到端口的 IP 地址来识别端口。例如:
您的计算机的 IP 为 10.0.0.2,位于 /24 子网上。您的路由表应如下所示
IP Mask Next hop
10.0.0.0 /24 10.0.0.2 (meaning the NIC 10.0.0.2 is connected to)
10.0.0.2 /32 127.0.0.1 (meaning the loop back interface)
10.0.0.255 /32 10.0.0.2