build立VPN连接后,默认添加以下路由规则:
vpn_server_ip previous_default_gateway
这个规则对我来说似乎没用。 为什么添加?
注意:
vpn_server_ip不属于虚拟networking。 例:
在例子中,我将使用'$ route -n'表示法。 在build立VPN连接之前,我有
0.0.0.0 192.168.0.1
之后的路由表如下所示:
193.196.65.76 192.168.0.1 0.0.0.0 192.168.0.1 147.38.45.1 0.0.0.0 iface ppp0
所以我可以理解为什么
147.38.45.1 0.0.0.0 iface ppp0
被添加。 147.38.45.1 VPN中服务器的IP。 但我不明白为什么
193.196.65.76 192.168.0.1
被添加,193.196.65.76是dialin服务器的IP。 也许这只是拨号服务器的IP在VPNnetworking的情况下的预防?!
在解释这个时,接口名称是重要的。 我会创build一个例子并在这里解释。
这是连接到VPN之前的路由表。 我们在10.0.2.0/24networking中有我们的主接口,IP地址为10.0.2.15,默认路由 – > 10.0.2.2。 一切都发生在eth1上。
k@workstation:~$ ip r 10.0.2.0/24 dev eth1 proto kernel scope link src 10.0.2.15 metric 1 default via 10.0.2.2 dev eth1 proto static
这是连接到VPN后的路由表。 join的第一个条目就是你的问题。 通过我们以前的主要网关的VPN端点,通过eth1。 它还为我刚刚获得的新IP地址添加本地networking。 然后它将默认网关更改为通过VPN。
k@workstation:~$ ip r 123.123.123.123 via 10.0.2.2 dev eth1 proto static 10.8.0.21 dev tun0 proto kernel scope link src 10.8.0.22 10.8.0.1 via 10.8.0.21 dev tun0 proto static 10.0.2.0/24 dev eth1 proto kernel scope link src 10.0.2.15 metric 1 default via 10.8.0.21 dev tun0 proto static
该路由可确保到VPN端点的stream量通过物理networking接口stream动,并且不会尝试通过VPN路由它,因为这是不可能的,因为stream量是通过物理networking传输的。
即使主网关没有改变 – VPN软件通常会这样做,以防万一VPN端点位于与新IP地址相同的子网中。 这也是为什么你不能在同一个IP地址上与VPN端点通话,并且在连接build立后期待“本地连接”的原因。
(这个例子是使用OpenVPN制作的)