Linux 中网关 IP 的 * 含义是什么?

Linux 中网关 IP 的 * 含义是什么?

更准确地说,运行 netstat -r 后,我得到了以下几行:

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         199.170.12.1    0.0.0.0         UG        0 0          0 eth0
199.170.12.0    *               255.255.254.0   U         0 0          0 eth0

我运行它的原因是我的以太网连接在 Linux 中无法工作,即使它可以在 Windows 上运行(安装在同一台机器上)。我使用的是动态 IP,上次连接工作正常,我没有做任何更改。我首先检查了 ifconfig,一切正常。我检查了 resolv.conf,它指向名称服务器 127.0.1.1(据我所知,这也是正常的)。

我发现唯一可疑的是网关 IP(它可能是正常的,但说实话我以前没有尝试过这个命令,我不知道 * 是什么意思)。

然后连接就修好了(一切都是自动修复的,我什么都没做)。但我还是想问一下。

答案1

这意味着它不需要网关即可到达该子网。这是一个本地子网,因此它不需要下一跳 IP。使用netstat -r,似乎具有更好的上下文友好性。 0.0.0.0目标部分中的 转换为default,而网关部分中的 转换为*

rj@Latitude-E6410:~$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0
192.168.1.0     *               255.255.255.0   U         0 0          0 wlan0

rj@Latitude-E6410:~$ route -n
Kernel IP routing table
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
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

答案2

在Netstat中,-r交换机显示内核路由表。

默认情况下,netstat 会尝试通过执行反向 DNS 查找将 IP 解析为其名称。要使其正常工作,(假设 BIND 为 DNS 服务器)应该有一个包含 PTR 资源记录的反向区域数据文件,该文件将 IP 地址映射到名称。通常,家庭网络(以及许多生产网络)中不会配置此功能。

当 netstat 没有从 DNS 服务器获得任何响应,并且超出了默认的超时值(您可以通过timeout:n/etc/resolv.confwhere n 中指定指令来设置一个,以秒为单位)时,*会出现在网络关键字任何是合适的,相当于0.0.0.0。 的解释*取决于具体情况。 就你的情况而言,就像 Ryan Foley 所说的那样,要访问网络,192.168.1.0/24不需要网关,因为那是你的本地网络。

您可以通过阅读来了解如何解释 netstat 输出及其用法这个博客。该-n开关禁用反向 DNS 查找,从而使 netstat 速度更快。

以下是您遇到的情况可能发生的情况:

  1. 客户端需要从 DHCP 服务器获取 IP。机器启动时,DHCP 协议启动。此对话包括 DHCP DORA(发现、提供、请求、确认)数据包。其中,DHCP 发现是来自机器的广播。根据网络中节点的数量(同一冲突域),DHCP 服务器需要一段时间才能获取此发现数据包并使用包含 IP 的 DHCP 提供进行回复。

  2. 接下来是arp resolution。除非建立了 ARP 表,否则拥有 IP 地址并不能使机器能够通信。这具有 IP 到 MAC 地址的映射。MAC 地址是形成数据包并在物理线路上发送数据包的必要条件(ether)。再次学习本地网络中机器的 MAC 地址涉及 ARP 广播(请求)和单播(回复)。这增加了机器准备好通信的时间。

  3. 延迟的原因包括过多的数据包冲突、TCP 参数协商(如窗口大小、计时器初始化、队列长度等)、目的地的数据包缓冲区已满、交换延迟等等。

相关内容