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似乎是正确的。
#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
评论
什么是路由器型号?您如何在Mac上执行“ ip route get 198.41.208.137”?还是为此而切换到Linux系统?我碰巧正在为Mac寻找类似的命令。
我很可能在brew中安装了一些东西来获取cli命令。但是我不记得要怎么办