在探索本地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地址-这意味着仅匹配> = 128.0.0.0的IP地址。真的吗?我可以相信,除非我得到这个

$ 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”的含义以及为什么该路由胜过默认路由。 br />
EDIT

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似乎是正确的。

评论

什么是路由器型号?

您如何在Mac上执行“ ip route get 198.41.208.137”?还是为此而切换到Linux系统?我碰巧正在为Mac寻找类似的命令。

我很可能在brew中安装了一些东西来获取cli命令。但是我不记得要怎么办

#1 楼

某些VPN将默认网关(/ 0网络掩码)推送为两个/ 1网络:0/1和128/1。由于始终会赢得更具体的路由,因此这将迫使流量通过VPN而不是通过默认网关进行路由。

评论


如果我安装了两个VPN客户端会怎样?我假设会发生的情况是,当我打开VPN 1时就可以了,但是当我打开VPN 2时(假设它也执行0/1 128/1技巧),它将失败,因为这些子网已经在采用。听起来对吗?

–亚历山大·伯德(Alexander Bird)
16年8月29日在19:19

假设两个VPN都使用相同的路由:是的,那么您将拥有两个相等的路由,因此将无法按预期工作。

– Teun Vink♦
16年8月30日在5:07

#2 楼

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

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 netmask