系统管理指南:IP 服务

已配置的隧道

隧道连接接口具有以下格式:


ip.tun ppa

ppa 是物理连接点。

在系统启动时,隧道连接模块 (tun) 会由 ifconfig 命令推入 IP 的顶层,从而创建一个虚拟接口。推送操作可通过创建相应的 hostname6.* 文件来实现。

例如,要创建通过 IPv4 网络封装 IPv6 包的隧道(即 IPv6 over IPv4 隧道),可以创建以下文件名:


/etc/hostname6.ip.tun0

在对接口进行检测之后,此文件的内容将传递到 ifconfig。此文件内容将变成配置点对点隧道所必需的参数。


示例 11–11 IPv6 Over IPv4 隧道的 hostname6.ip.tun0 文件

下面举例说明 hostname6.ip.tun0 文件中的各项:


tsrc 10.10.10.23 tdst 172.16.7.19 up
addif 2001:db8:3b4c:1:5678:5678::2 up

在此示例中,源和目标 IPv4 地址用作自动配置 IPv6 链路本地地址的标记。这些地址分别是 ip.tun0 接口的源和目标。配置了两个接口。配置了 ip.tun0 接口。还配置了一个逻辑接口 ip.tun0:1。该逻辑接口的源和目标 IPv6 地址由 addif 命令指定。

当系统在多用户模式下启动后,这些配置文件的内容将会原封不动地传递到 ifconfig示例 11–11 中的项与以下各项等效:


# ifconfig ip.tun0 inet6 plumb
# ifconfig ip.tun0 inet6 tsrc 10.0.0.23 tdst 172.16.7.19 up
# ifconfig ip.tun0 inet6 addif 2001:db8:3b4c:1:5678:5678::2 up

下面显示了此隧道的 ifconfig -a 输出:


ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,
  NONUD,IPv6> mtu 1480 index 6
        inet tunnel src 10.0.0.23  tunnel dst 172.16.7.19
        inet6 fe80::c0a8:6417/10 --> fe80::c0a8:713
ip.tun0:1: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 
  index 5
        inet6 2001:db8:3b4c:1:5678:5678::2 

可以使用以下语法,通过向配置文件中添加一些行来配置更多的逻辑接口:


addif IPv6-source IPv6-destination up

注 –

当隧道的任意一端是通过隧道通告一个或多个前缀的 IPv6 路由器时,不必在隧道配置文件中使用 addif 命令。可能只有 tsrctdst 才是必需的,因为所有其他地址都是自动配置的。


在某些情况下,需要为特定的隧道手动配置特定的源和目标链路本地地址。可通过更改配置文件的第一行来包括这些链路本地地址。下面是示例行:


tsrc 10.0.0.23 tdst 172.16.7.19 fe80::1/10 fe80::2 up

请注意,源链路本地地址的前缀长度为 10。在此示例中,ip.tun0 接口与以下内容类似:


ip.tun0: flags=2200850<UP,POINTOPOINT,RUNNING,MULTICAST,NONUD,IPv6> mtu 1480 
index 6
        inet tunnel src 10.0.0.23  tunnel dst 172.16.7.19
        inet6 fe80::1/10 --> fe80::2

要建立通过 IPv6 网络封装 IPv6 包的隧道(即 IPv6 over IPv6 隧道),可以创建以下文件名:


/etc/hostname6.ip6.tun0

示例 11–12 IPv6 over IPv6 隧道的 hostname6.ip6.tun0 文件

下面举例说明通过 IPv6 网络进行的 IPv6 封装的 hostname6.ip6.tun0 文件中的各项:


tsrc 2001:db8:3b4c:114:a00:20ff:fe72:668c 
        tdst 2001:db8:15fa:25:a00:20ff:fe9b:a1c3
fe80::4 fe80::61 up

要建立通过 IPv6 网络封装 IPv4 包的隧道(即 IPv4 over IPv6 隧道),可以创建以下文件名:


/etc/hostname.ip6.tun0

示例 11–13 IPv4 Over IPv6 隧道的 hostname.ip6.tun0 文件

下面举例说明通过 IPv6 网络进行的 IPv4 封装的 hostname.ip6.tun0 文件中的各项:


tsrc 2001:db8:3b4c:114:a00:20ff:fe72:668c 
         tdst 2001:db8:15fa:25:a00:20ff:fe9b:a1c3
10.0.0.4 10.0.0.61 up

要建立通过 IPv4 网络封装 IPv4 包的隧道(即 IPv4 over IPv4 隧道),可以创建以下文件名:


/etc/hostname.ip.tun0

示例 11–14 IPv4 Over IPv4 隧道的 hostname.ip.tun0 文件

下面举例说明通过 IPv4 网络进行的 IPv4 封装的 hostname.ip.tun0 文件中的各项:


tsrc 172.16.86.158 tdst 192.168.86.122
10.0.0.4 10.0.0.61 up

有关 tun 的具体信息,请参见 tun(7M) 手册页。有关在转换到 IPv6 的过程中隧道连接概念的一般说明,请参见IPv6 隧道概述。有关隧道配置过程的说明,请参见针对 IPv6 支持配置隧道所需的任务(任务列表)