OSX 上的 netstat -r 告诉您有关网关的什么信息?

OSX 上的 netstat -r 告诉您有关网关的什么信息?

我注意到路由表有很多我不明白的条目。

路线表为:

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            192.168.0.254      UGSc           28        0     en1
10.8.0.1/32        10.8.0.5           UGSc            1        2    tun0
10.8.0.5           10.8.0.6           UH              2        3    tun0 
127                localhost          UCS             0      284     lo0 
localhost          localhost          UH             10     3663     lo0
169.254            link#5             UCS             0        0     en1
192.168.0          link#5             UCS             4        0     en1
192.168.0.25       localhost          UHS             0        0     lo0
192.168.100        10.8.0.5           UGSc            0        7    tun0

我相信这条路线说的是:

  1. 192.168.100.* 中的所有流量都应路由到 10.8.0.5(!?)
  2. 所有到 10.8.0.5 的流量都应路由到 10.8.0.6(!?)
  3. 所有到 10.8.0.1/32 的流量都应路由到 10.8.0.5(!?)

为什么192.168.100不去10.8.0.1,而是去10.8.0.5,然后从5到6,然后我猜1/32应该匹配6,好像有一个循环。

我无法 ping 10.8.0.5,但我认为那是我在 vnetwork 上的 ip。我无法 ping 10.8.0.6,但我认为那是被屏蔽的,我得到了一些输出“过滤器禁止通信”

ifconfig 显示:

tun0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 10.8.0.6 --> 10.8.0.5 netmask 0xffffffff 
    open (pid 1307)

而且又是 6 -> 5!

注意:从这里开始只是具体内容,以防您需要更多信息来了解路线。

我的设置是: - 笔记本电脑在本地网络(192.168.0..)上,带有路由器(192.168.0.254) - 通过网络(10.8.0...)上的虚拟路由器(10.8.0.1)连接到网络(192.168.100...)上,带有路由器(192.168.100.1) - 192.168.100.200 是远程网络上的服务器

现在,当我“traceroute 192.168.100.200”时,我期望

10.8.0.1(另一端的 VPN 路由器) 192.168.100.1(另一端物理网络上的路由器) 192.168.100.200(主机已到达。)

相反,我只得到一串无尽的*

这与这个问题,但我找不到答案,所以谢谢!

答案1

您读取的路线信息只是部分正确。

tun0 是用于 VPN 的虚拟接口,它使用(用于其自身内部目的)从 10.8.0.6(VPNGW 您这边)到 10.8.0.5(VPNGW 远程那边)的点对点链接。这与“ifconfig tun0”告诉您的内容相同。您不应直接访问这两个地址。

因此,通过 GW 10.8.0.5 路由的任何流量都将进入 VPN 隧道(通过接口 tun0),并在另一端退出 VPN 隧道(当然,假设 VPN 隧道已建立并正常运行,由 pid 1307 运行的 VPN 进程)。

10.8.0.1/32 10.8.0.5 UGSc 1 2 tun0

这意味着发送到主机 10.8.0.1 (/32) 的任何内容都是跨域路由表示法,意思是“仅此一个主机”)将通过 10.8.0.5 的网关进行路由(也就是说,它将进入 VPN 隧道)。

因此,当您 ping 10.8.0.1 时,只有 VPN 隧道正常工作时,它才会工作。这就是它在这里的原因(这样您就可以验证隧道是否正常工作,即使另一端的计算机都没有启动)。

192.168.100 10.8.0.5 UGSc 0 7 tun0

与上文相同,但针对的是整个 C 类网络 192.168.100.*(在 CIDR 中也可以写成“192.168.100.0/24”,而不是更短的“192.168.100”)。这是您设置隧道的主要目的 - 因此您可以通过 VPN 在远程端访问此地址范围。

10.8.0.5 10.8.0.6 UH 2 3 tun0

这一项您搞错了,请注意标志“UH” - 缺少“G”表示这是直接连接的点对点链路,而不是您可以路由数据的网关。因此,这并不意味着 10.8.0.5 的流量将通过 10.8.0.6 发送,而只是意味着 10.8.0.5 在使用 tun0 接口的这台计算机(其 IP 为 10.8.0.6)上是直接可见的。

为什么192.168.100不去10.8.0.1,而是去10.8.0.5,然后从5到6,然后我猜1/32应该匹配6,好像有一个循环。

希望以上信息可以消除这些误解。

我无法 ping 10.8.0.5,但我认为那是我在 vnetwork 上的 ip。我无法 ping 10.8.0.6,但我认为那是被屏蔽的,我得到了一些输出“过滤器禁止通信”

是的,这两个地址由 tun0 接口内部使用,您不应该关心它们(除非您在网络之间运行流量分析器等) - 它们不会像常规地址那样工作。

相关内容