基本说明

基本说明

谁能为我澄清网关分配?

0.0.0.0添加网关和分配特定 IP 地址作为网关有什么区别?

答案1

0.0.0.0具有“未指定”的具体含义。在网关的上下文中,这大致翻译为“没有”。当然,这假设网络是本地连接的,因为没有中间跃点。机器将从该接口发送数据包,就像发送到连接到该网段的机器一样,这在以太网中意味着将使用目标主机的 MAC 地址,而不是下一跳网关的 MAC 地址。

作为目的地,0.0.0.0/0它是特殊的:如果没有网络位,则网络号中也不能有任何内容。所以,自然是无法确定的。对于前缀匹配,它会屏蔽所有位,因此所有地址都在0.0.0.0/0;内。因此,它在路由表中表示“默认网关”。它也是最不特定的可能路线,因此优先考虑特定性的选择将选择任何其他可用的内容并0.0.0.0/0作为最后的手段进行匹配。

然而,坚持你的问题,是的,它确实有特殊的含义。这意味着网络在该接口上进行本地连接,不需要更多的跃点即可到达该接口。

答案2

来自维基百科页面0.0.0.0:

摘抄

在互联网协议版本 4 中,地址 0.0.0.0 是不可路由的元地址,用于指定无效、未知或不适用的目标。带内信令的应用是为无效的数据赋予特殊含义。

来自维基百科页面默认路由

摘抄

Internet 协议版本 4 (IPv4) 中的默认路由被指定为 CIDR 表示法中的零地址 0.0.0.0/0,通常称为四零路由。子网掩码为 /0,它有效地指定所有网络,并且是可能的最短匹配。与任何其他路由都不匹配的路由查找将回退到该路由。同样,在 IPv6 中,默认路由由 ::/0 指定。

在网络的最高层级网段中,管理员通常会将给定主机的默认路由指向与网络服务提供商有连接的路由器。因此,目的地在组织局域网之外的数据包(通常是互联网或广域网中的数据包)将被转发到与该提供商有连接的路由器。

默认路由指向的设备通常称为默认网关,它通常执行其他功能,例如数据包过滤、防火墙或代理服务器操作。

例子

根据你的提问,我假设你有这样的情况:

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.1.254   0.0.0.0         UG        0 0          0 eth0

这就是说,对于每个网络目标(192.168.1.0 或 169.254.0.0),默认网关是 0.0.0.0 目标,如果数据包是不是发往该特定网络内的任何地址。对于 0.0.0.0 目标,请使用 IP 地址 192.168.1.254。

这些规则的作用是将与我们所知的任何路由都不匹配的所有流量汇集到默认路由。

几个例子

假设我们有一个 IP 为 192.168.1.110 的数据包。检查第一条规则并且该 IP 与该网络匹配,因此它被传递。

如果我们有一个数据包 150.12.13.1,则第三条规则将生效,数据包将被路由到 192.168.1.254。

答案3

看,0.0.0.0 仅用于路由表中,而不用于分配给主机。

主机(具有 IP 地址的计算机)维护路由表来解决如何将消息发送到正确的位置。

场景 1:PC-A 想要向同一网络上的 PC-B 发送消息:

1) PC-A 检查其路由表以查看是否有与目标 IP 地址匹配的内容。 2) 路由表显示目的地在同一网络内,找到连接到该网络的接口,然后将消息从该接口直接转发到目的地。

场景 2:PC-A 想要向 REMOTE NETORK(不是同一网络)上的 Server-Z 发送消息:

1) PC-A 检查其路由表,但找不到匹配项(当然,因为主机不跟踪远程网络上的主机——这是路由器的工作)。

2) 但是,PC 配置有映射到路由器(其他、远程、不同网络的默认网关)的四零 IP 地址和子网掩码,如下所示:

(0.0.0.0 0.0.0.0 192.168.0.1 接口)

零是什么意思?这意味着没有。因此,如果您的计算机不跟踪远程主机的位置,并且每次要发送消息时都会检查其路由表,以查看是否需要将其发送到同一(本地)网络,或者是否需要将其发送到远程网络,那么它如何将消息发送到远程网络呢?

它将数据包发送到路由器,并让路由器完成沿着最佳路径路由数据包的工作。因此,主机/PC/计算机需要知道,如果它在路由表中找不到向何处发送消息的条目(又名 0.0.0.0),那么它就知道将其发送到路由器,即 IP与(0.0.0.0 0.0.0.0 192.168.0.1 接口)条目关联的地址,并使用与其连接的关联接口/NIC/网络适配器。

因此,主机和路由器上的路由表使用 0.0.0.0 来了解在找到零个如何到达目的地的匹配项时将某些内容发送到何处,并且必须将 0.0.0.0 映射到路由器的 IP 地址和接口以到达该路由器。

答案4

基本说明

0.0.0.0 具有特殊含义默认网关但也匹配 0.0.0.0目的地入口。

乍一看,您可能会认为无论如何一切都通过默认网关进行。然而,要完全理解这个概念,您必须在具有多个网络接口(以太网、Wi-Fi、蓝牙等)的设备的上下文中看待它。

作为网关

当指定网关为 0.0.0.0 时,表示:读取以 0.0.0.0 为目的地的行,并通过该接口路由数据包。

但是,当您有第二个或更多网络接口时,您可以将这些网络接口之一的 IP 指定为网关而不是 0.0.0.0,并且数据包将通过它们进行路由。

作为目的地

解析路由表以搜索最具体的目的地(匹配最大的前缀号)。

至少,如果没有找到更具体的目标,您将始终匹配 0.0.0.0/0(CIDR 表示法相当于 0.0.0.0,掩码为 0.0.0.0),因为如果您在目标 IP 和mask 0.0.0.0,它匹配任何IP地址,包括0.0.0.0 IP本身。

这就是为什么 0.0.0.0 被用作默认网关条目,并且当您有多个可能的网关(设备上有多个网络接口)时特别有用。

相关内容