我使用openconnect连接到我的办公室VPN。 他们推动一些相当糟糕的/积极的路由规则分配所有的私人IP地址空间>。<
连接到我的办公室VPN后,我的主要路由表中包含这些路由(它实际上包含更多,但这些是冲突的子网):
192.168.0.0/24 dev p4p1 proto kernel scope link src 192.168.0.200 192.168.0.0/16 dev tun0 scope link
正如你所看到的,到192.168.0.0/16的所有stream量应该通过tun0路由。 奇怪的是,事实并非如此。
如果我在本地局域网(192.168.0.0/24)上ping一台机器,ICMP数据包到达机器,一切正常,所以我假设到192.168.0.0/24的数据包不通过VPN连接。
我的问题是,Linux内核如何处理冲突子网? 我怀疑它select使用最精确的路线,在这种情况下,192.168.0.0/24。 你能不能指出一个描述这个或提供一些提示的文件?
其实这不是碰撞。 一个子网具有更具体的掩码
192.168.0.0/24 has more specific mask than 192.168.0.0/16
例如,默认网关是默认的,因为它具有较less的特定掩码/ 0。
如果你通过另一个接口添加一条到192.168.0.3/32的路由,它将比其他两条路由具有更多的特定掩码。