netstat -nr 返回“0/1”——这是什么意思?

网络工程 路由 虚拟专用网
2021-07-25 18:56:26

在探索我的本地openVPN虚拟接口如何utun0工作时,我遇到了以下数据,我不知道如何理解它。(我在 Mac 上)

$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.8.0.5           UGSc           61        0   utun0
default            192.168.7.254      UGSc            7        0     en0
10.8.0.1/32        10.8.0.5           UGSc            1        0   utun0
10.8.0.5           10.8.0.6           UHr           110       12   utun0
54.242.164.191/32  192.168.7.254      UGSc            2        0     en0
...

看起来“0/1”是 CIDR 表示法。那是对的吗?如果是这样,我有后续问题。根据我的理解,接口是根据哪个子网与目标 ip 匹配来选择的。对于 0/1,只有第一位为 0 的 ip 地址才会匹配——这意味着只有 ip 地址 >= 128.0.0.0 会匹配。真的吗?我可以相信,除非我得到这个

$ ip route get 8.8.8.8
8.8.8.8 via 10.8.0.5 dev utun0  src 10.8.0.6

所以现在我真的很困惑“0/1”是什么意思以及为什么这条路线胜过默认路线。

编辑

0/1 实际上意味着 <128.0.0.0,但是,我仍然得到这个:

$ ip route get 198.41.208.137
198.41.208.137 via 10.8.0.5 dev utun0  src 10.8.0.6

所以大于和小于 128.0.0.0 的 ip 地址都通过路由器。如何?为什么?

我也看到了 128/1:

$ netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                10.8.0.5           UGSc           63        0   utun0
default            192.168.7.254      UGSc            5        0     en0
...
128.0/1            10.8.0.5           UGSc           42        0   utun0
...

所以@Teun Vink 似乎是正确的。

2个回答

某些 VPN 将默认网关(/0 网络掩码)推送为两个 /1 网络:0/1 和 128/1。由于更具体的路由总是获胜,这迫使流量通过 VPN 而不是通过默认网关路由。

第一位用于网络掩码而不是地址,该路由表示所有 IP 从 0.0.0.0 开始,网络掩码为 128.0.0.0 所以

Network:   0.0.0.0/1            0 0000000.00000000.00000000.00000000
HostMin:   0.0.0.1              0 0000000.00000000.00000000.00000001
HostMax:   127.255.255.254      0 1111111.11111111.11111111.11111110

Network:   128.0.0.0/1          1 0000000.00000000.00000000.00000000
HostMin:   128.0.0.1            1 0000000.00000000.00000000.00000001
HostMax:   255.255.255.254      1 1111111.11111111.11111111.11111110

路由守护进程使用它知道的最大网络掩码来选择最佳路由。因此,每当您有默认路由时,您总是有另一条具有最大网络掩码的路由,使用 2 net 和 /1 网络掩码