如何了解OpenVPN客户端上的路由表


13

我只是设置了OpenVPN,它按预期工作。但是,客户端的路由表使我无休止。这是路由表:

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
10.8.0.1        10.8.0.5        255.255.255.255 UGH   0      0        0 tun0
54.202.18.143   10.0.2.2        255.255.255.255 UGH   0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0
0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

因此,让我们逐行进行剖析

  1. 任何发往的数据包10.8.0.5都没有网关,将使用tun0
  2. 任何发往的数据包都10.8.0.1将通过以下方式10.8.0.5用作网关tun0
  3. 任何发往的数据包都54.202.18.143将通过以下方式10.0.2.2用作网关eth0
  4. 任何发往目的地的数据包10.0.2.0/24都没有网关,将使用eth0
  5. 让我们忽略169.254.0.0部分
  6. 所有其他数据包(发往0.0.0.0)将10.8.0.5通过用作默认网关tun0这是默认网关,不是吗?
  7. 任何发往的数据包128.0.0.0/7将通过以下方式10.8.0.5用作默认网关tun0
  8. 所有其他数据包(0.0.0.0)将通过以下方式10.0.2.2用作默认网关eth0

问题:

  • 如果考虑第6点和第8点,我是否有2个默认网关?(虽然只能有1个默认网关,所以我知道我错了,但无法证明理由)(可能已回答,请参见下文
  • 考虑到第1点和第2点,要做的事情10.8.0.1实际上并不是通过tun0使用任何网关。这个对吗?
  • 考虑到第3点和第4点,要做的54.202.18.143并不是真正通过via使用任何网关eth0。这个对吗?

更新...

阅读本文之后,我发现了更多信息。现在,以下几行对我来说很有意义:

0.0.0.0         10.8.0.5        128.0.0.0       UG    0      0        0 tun0
128.0.0.0       10.8.0.5        128.0.0.0       UG    0      0        0 tun0

因此,第一行定义0.0.0.0/128.0.0.0,第二行定义128.0.0.0/128.0.0.0。实质上:

0.0.0.0/128.0.0.0 = 0.0.0.0/1 = 0.0.0.0 TO 127.255.255.255
128.0.0.0/128.0.0.0 = 128.0.0.0/1 = 128.0.0.0 TO 255.255.255.255

因此,以上2条路由覆盖了整个IPv4地址范围[0.0.0.0 TO 255.255.255.255]。OpenVPN是添加默认路由而不替换原始默认路由的一种聪明方法,该默认路由将通过路由tun0

所以我想我对第一个问题有一个答案:

如果考虑第6点和第8点,我是否有2个默认网关?

不,只有一个默认网关,即:

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

2
第一0.0.0.0条路由具有Genmask 128.0.0.0,它可能不会使其成为默认路由。我不得不说,尽管我丝毫不知道这个面罩意味着什么以及路线是什么:/
Martin von Wittich 2014年

另外要awarfe该路由128.0.0.0你的内部网络是很奇怪的,因为它的公网IP或保留我不“T remeber但在这两种情况下,这是奇怪的。
Kiwy

128.0.0.0部分来自openvpn。在这里
slayedbylucifer 2014年

您应该将“ UPDATE”变成这样的答案:一个答案帮助我理解了同样的问题:)
WoJ 2016年

@slayedbylucifer 128.0.0.0的解释似乎已经精简,并且没有可用的存档。您是否碰巧有关于此的在线链接?
SaAtomic

Answers:


4

如果考虑第6点和第8点,我是否有2个默认网关?(虽然只能有1个默认网关,所以我知道我错了,但无法证明理由)(可能已回答,请参见下文)

第6行定义范围0.0.0.0-127.255.255.255,第7行定义范围128.0.0.0-255.255.255.255。

如果考虑第6点和第8点,我是否有2个默认网关?

不,只有一个默认网关,即:

0.0.0.0         10.0.2.2        0.0.0.0         UG    0      0        0 eth0

考虑到第1点和第2点,用于10.8.0.1的任何东西实际上并没有通过tun0使用任何网关。这个对吗?

并非不正确,发往10.8.0.1的数据包将被路由到10.8.0.5(可通过第一行设置的tun0 lan 访问)。
如果网络掩码不是255.255.255.255,则表示您是正确的

考虑到第3点和第4点,用于54.202.18.143的任何东西实际上并没有通过eth0使用任何网关。这个对吗?

并非不正确,发往54.202.18.143的数据包将被路由到10.0.2.2(这是eth0 lan 上的另一台主机,可通过第4行访问)


第一个问题由您自己回答,我只是希望答案是完整的,因此我再次提及。
Arash
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.