VPN 连接网络接口说明

VPN 连接网络接口说明

我想确切地知道当我与公司的 VPN 建立连接时发生了什么。

当我连接(使用 OpenVPN)时,我通过使用看到以下网络接口ifconfig

utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
        inet 10.8.0.18 --> 10.8.0.17 netmask 0xffffffff

这看起来与其他网络接口不同,因为它有两个由“-->”分隔的 IP 地址。

问题)

这两个数字中哪一个是我的实际 IP 地址?那么另一个是什么?网络掩码又是什么0xffffffff?似乎没有留下任何地址空间来识别网络上的各个主机。

我知道这有点儿像多个问题,但它们似乎都密切相关,所以我想我会问一下它们。

答案1

这是一个点对点接口,也称为隧道或对等接口。它不像 Wi-Fi 或以太网等“共享介质”接口那样,通过使用第 2 层 MAC 地址将您连接到多个设备。相反,它就像一条两端都有主机的电缆。

(实际上最初这样的接口意味着运行 PPP 或类似协议的串行链路电缆。但对于tun*utun*接口,“另一端”是 VPN 程序。

点对点接口上没有第 2 层标头、没有 MAC 地址、也没有 ARP,因为通过它发送的所有内容都到达同一目的地(“对等”主机)。

似乎没有留下任何地址空间来识别网络上的各个主机。

事实上并非如此可以说是“子网掩码”;它只是两个单独的地址。这是点对点链接的常见配置,尽管并非点对点链接所独有。

对于“普通”接口,像在 eth0 上一样配置带子网掩码的地址实际上只是“我的地址是,我还有一个在线路由”192.168.1.3/24的简写。在线路由是通过组合地址和子网掩码得出的。192.168.1.3192.168.1.0/24 dev eth0

对于点对点接口,这实际上是同一个概念。您的示例表示“我的地址是,10.8.0.18并且我还有一个在线路由10.8.0.17/32 dev utun3。”在这种情况下,自动生成的路由是 /32,表示只有一个主机 - “对等体”。

(注意:我的示例使用 Linux iproute2 风格的语法。)

所以最终这两种配置风格的区别就在于自动路线。

事实上,在其他一些操作系统中(例如Linux)任何接口可以使用子网样式或 PtP 样式配置。VPN 和其他点对点隧道通常具有传统子网掩码,因为自动生成的路由对它们来说很有意义(即使没有实际的 MAC 子网)。在极少数情况下,普通以太网接口可能会使用 PtP 样式X --> Y配置,因为它们位于奇怪的网络上。


顺便说一句,您可能在点对点接口上看到的另一种配置是 /31,这是一个总共只有两个地址的子网,并且两个都是主机地址 - /31 前缀实际上不受通常的“netid 和广播保留”规则的约束(尽管并非所有操作系统都已更新以了解这一点)。

相关内容