openvpn 和路由表 - 通过隧道接口访问远程 LAN

openvpn 和路由表 - 通过隧道接口访问远程 LAN

答案是问题对我理解 openvpn 使用的路由非常有帮助。但我仍然对隧道接口(下面的 tun0)感到困惑,特别是在访问远程 LAN 方面。

这是路由表:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.172.1.5      128.0.0.0       UG    0      0        0 tun0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth1
10.172.1.1      10.172.1.5      255.255.255.255 UGH   0      0        0 tun0
10.172.1.5      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
128.0.0.0       10.172.1.5      128.0.0.0       UG    0      0        0 tun0
168.1.6.15      192.168.1.1     255.255.255.255 UGH   0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     1      0        0 eth1

我了解,当使用 openvpn 时,它首先转到 10.172.1.1,而不是 10.172.1.5,因为这个单播规则:

10.172.1.1      10.172.1.5      255.255.255.255 UGH   0      0        0 tun0

然后,由于没有针对 10.172.1.1 的规则,因此它将转到 eth1。但是由于 eth1 具有此单播规则:

168.1.6.15      192.168.1.1     255.255.255.255 UGH   0      0        0 eth1

它通向隧道的另一侧,即 168.1.6.15。

在上述问题的答案中,我们可以添加此规则来访问远程 LAN:

10.172.1.0/24 dev tun0  proto kernel  scope link  src 10.172.1.5

但是它如何访问远程 LAN 电脑?它们是否可直接从隧道接口 (tun0) 访问?如果可以,openvpn 如何访问外部(它们是远程的)?因为我假设它在这种情况下不使用 168.1.6.15。是吗?

谢谢您的澄清!

答案1

通过 tun0 设备路由的所有流量(包括流向 10.172.1.0/24 子网的流量,代表远程局域网电脑) 经过加密封装后通过 eth1 接口进行路由。

封装的数据包:

  • 源 IP 在 10.172.1.0/24(tun0 的 IP 地址)
  • 目标 IP 为 10.172.1.0/24

数据包通过 eth1 发送:

  • 源 IP 为 192.168.1.0/24(eth1 IP 地址)
  • 目标 IP:168.1.15

相关内容