0.0.0.0作为网关是什么意思?


56

谁能为我澄清网关分配?

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


您是在谈论0.0.0.0作为目标网关吗?还是将0.0.0.0作为默认网关的网络?我以前从未看过0.0.0.0作为实际目的地,但将其视为路由表中列出的网络。
kurtm

@kurtm:我询问分配0.0.0.0作为网关并分配特定的IP地址作为网关。
2013年

是的 我明白了slm的答案。我的系统不打印0.0.0.0,而是替换一些更有意义的东西。下面的答案应对此进行解释。
kurtm

Answers:


42

0.0.0.0具有特定含义“未指定”。在网关的上下文中,这大致翻译为“不存在”。当然,这假定网络是本地连接的,因为没有中间跃点。

作为目的地,0.0.0.0/0很特殊:如果没有网络位,则网络号中也将没有任何内容。因此,它自然是未指定的。

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


26

在Wikipedia页面上,0.0.0.0

摘抄

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

在Wikipedia页面上,Default Route

摘抄

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

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

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

在您的询问中,我将假定您具有以下内容:

$ 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。


因此,在此示例中,所有流量都将转到192.168.1.254
Timothy Pulliam '18年

4

您看,0.0.0.0仅在路由表中使用-不能分配给主机。

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

方案1:PC-A希望在同一网络上向PC-B发送消息:

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

方案2:PC-A希望在远程NETORK(不是同一网络)上向Server-Z发送消息:

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

2)但是,PC的四位IP地址和子网掩码配置为映射到您的路由器(通往OTHER,REMOTE,DIFFERENT网络的默认网关),如下所示:

(0.0.0.0 0.0.0.0 192.168.0.1接口)

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

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

因此,主机和路由器上的路由表使用0.0.0.0来知道在找到与目的地的匹配项为零时必须向哪里发送消息,并且必须将其映射到路由器的IP地址和接口才能到达该路由器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.