了解 tun0 地址

了解 tun0 地址

我已经做了一些搜索,或多或少了解了tun0界面的作用。我从各种来源得到以下信息,

操作系统通过 tun/tap 设备发送的数据包被传送到用户空间程序,该程序将自身附加到该设备。用户空间程序也可以将数据包传递到 tun/tap 设备中。在这种情况下,tun/tap 设备将这些数据包传递(或“注入”)到操作系统网络堆栈,从而模拟它们从外部源的接收。 tun/tap 接口是纯软件接口,这意味着它们仅存在于内核中,并且与常规网络接口不同,它们没有物理硬件组件(因此没有物理线路连接到它们)。

您可以将 tun/tap 接口视为常规网络接口,当内核决定“在线”发送数据的时刻到来时,它会将数据发送到附加到该接口的某个用户空间程序。

现在,如果我比较eth0和 的输出tun0,我会看到类似的结果。


ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:14:22:50:78:71  
          inet addr:172.16.210.32  Bcast:172.16.255.255  Mask:255.255.0.0
...
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
<snipped>

ifconfig tun0
tun0      Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

现在,如果我们尝试比较两者,我们会发现这些差异,

  1. eth0确实有 MAC 地址,并且可以理解tun0没有。

  2. eth0工作在广播模式,tun0工作在点对点模式。

我有以下几点不明白。

  1. P-t-P:10.8.0.2地址在这种情况下的作用是什么?

  2. 为什么子网掩码设置tun0为255.255.255.255?

答案1

硬件网络链接可以是点对点或点对多点。 ppp 链路是点对点,以太网是点对多点。 tun 可以充当任一角色,在您的情况下,它充当点对点链接。点对多点接口有四个与其关联的地址,具体为 ip 地址(接口的地址)、网络地址、广播地址和网络掩码。点对点链路有两个与其关联的地址,特别是 ip 地址(近端地址)和点对点对等地址(远端地址)。由于点对点链路仅适用于两个地址,因此广播和网络地址以及网络掩码没有有用的数据或标志值。

最后一点 tun 接口可以有 mac 地址,只是没有默认的 mac 地址。

相关内容