使用 0.0.0.0 作为默认网关?

Sum*_*han -1 linux routing gateway

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0
Run Code Online (Sandbox Code Playgroud)

为什么这里使用0.0.0.0作为网关?0.0.0.0 作为网关意味着什么?

根据我的理解,当数据包与路由表中的任何其他条目(表中的第一个条目)不匹配时,0.0.0.0 用作默认路由。其他两个条目使用 0.0.0.0 作为网关。这有点混乱?

Lad*_*ada 6

0.0.0.0 根据它所在的列有不同的含义。

的组合DestinationGenmask创建一个IP地址范围。在 CIDR 表示法中,您是:

0.0.0.0/0
169.254.0.0/16
192.168.1.0/24
Run Code Online (Sandbox Code Playgroud)

发送 IP 数据包时,目的地与这些范围相匹配,并相应地选择网关。该范围0.0.0.0/0匹配所有 IPv4 地址。此行是您的默认网关,如果没有其他范围匹配,则将使用该行。您的默认网关是192.168.1.1.

对于目的地是本地的数据包,不需要网关,数据包被发送到交换机直接发送到正确的机器。(集线器与交换机的细节在这里并不重要。重要的部分是本地数据包不需要网关。)

Gateway此输出的列中,0.0.0.0表示没有网关,应在本地发送数据包。


这里有对 Linux 路由的简单介绍,这里对 Linux 路由的深入了解