我无法理解路由表的概念以及它们允许您做什么以及如何做。
具体来说,我尝试允许一个子网(192.168.1.X)上的设备与另一个子网(192.168.160.X)上的设备通信。
当我进入路由器时,我能够找到看似相关的“高级路由”菜单。但是,我不知道应该输入什么,也不知道我是否在正确的位置。
不过,作为一个更宽泛的问题,路由表是如何工作的?虽然我正在尝试具体完成一项特定任务,但我也想了解路由表的更广泛概念及其工作原理。我读过相关内容,但我不太明白它是如何付诸实践的。
答案1
- 目的地:192.168.160.0
- 掩码:255.255.255.0
- 网关:[知道到 192.168.160.0/24 的路由的路由器本地接口的 IP]
- 接口:[退出到包含上述网关的网络的接口]
本质上,路由表条目表示:“要到达 [目的地/掩码],请将数据包从 [接口] 发送到 IP [网关]。”
答案2
路由表中的条目表明,要到达子网 X 中的任何内容,都可以通过接口 Y。每当系统想要向 IP 发送流量时,都会查阅该条目。
您的 NIC 有一个 IP 地址和一个子网掩码。因此,您可以根据此信息在路由表中获取一个免费条目。例如,如果您的 IP 是 192.168.2.1,而您的子网掩码是 255.255.255.0,那么如果您想访问 192.168.2.X 上的其他任何内容,您可以通过 192.168.2.1 的接口。(这些称为“直接连接”路由)
任何具有执行 TCP/IP 的 NIC 的设备都至少有一个包含至少一个或两个条目的小型路由表。
如果您有两块网卡连接到两个不同的网络,那么您将有两个条目。假设您有第二个网卡,其 IP 为 192.168.3.1,子网掩码为 255.255.255.0。因此,您将在路由表中获得另一个免费条目。
拥有默认路由很有用,您可以手动设置一个或通过 DHCP 分配一个。
当系统试图弄清楚如何发送数据包时,它将遍历所有路由表条目并匹配具有最高子网的条目(具有最多 1 位的子网 - 255 = 8 位)。
如果找不到匹配项,它会将其发送到指定为默认路由的 IP 和接口。
因此,如果我们有两个 NIC 和一个默认路由,由于默认路由通常设置为子网掩码 0.0.0.0,因此它是最后匹配的。因此,如果我们将流量发送到 192.168.3.2,由于路由表的原因,它将从该子网上的 NIC 发出。
如果不是以 192.168.2.X 或 192.168.3.X 开头的 IP,它将尝试转到默认路由的 IP,通常是面向 Internet 的接口。(从技术上讲,默认路由不是必需的。如果没有默认路由,此时发送数据会失败。)
像您这样的路由器至少有 3 个 NIC,“WAN”、“LAN”端口(所有这些端口通常都桥接并作为一个 NIC 运行)和“WLAN”AP。
当然,说到高级和复杂的事情,您还可以做一些事情,例如,子网 192.168.8.X 可通过 192.168.20.1 访问(当然,另一端最好有一个知道它的路由器),当然还可以进行复杂的手动和完全静态路由。RIP、OSPF 和 IS-IS 等根据来自“上级”路由器的信息修改路由器的路由表。
答案3
互联网 (IPv4/IPv6) 的工作方式是,数据包可以在服务器之间任意路由。路由表的作用是指定这些数据包应如何通信。
对于家庭网络,设置通常非常简单:将所有数据包发送到路由器,然后路由器将其发送到 Internet(WAN 接口),或者发送到路由器后面的另一个系统(NAT 后面,LAN/WLAN 接口)。
如果两个子网都直接连接到路由器,则需要告诉 1.x 设备如何到达 160.x 设备,反之亦然。因此:
- 路由器需要知道如何到达两个子网(这就是您所展示的对话框的目的)。
- 1.x 系统将正确路由 1.x 流量,并将 160.x 流量传递到其默认网关(在本例中为路由器)。
- 160.x 系统在收到 1.x 系统的请求后,会将流量传递到其默认网关(希望是同一个路由器)。如果远程系统无法到达同一个路由器,则需要为其设置路由表。