在 Oracle® Solaris 11.2 中管理 TCP/IP 网络、IPMP 和 IP 隧道

退出打印视图

更新时间: 2014 年 7 月
 
 

如何创建和配置 IP 隧道

  1. 成为 root 角色。
  2. 创建隧道。
    # dladm create-iptun [-t] -T type -a [local|remote]=addr,... tunnel-link
    –t

    创建临时隧道。缺省情况下,该命令将创建一个持久性隧道。

    如果要在隧道中配置一个持久性 IP 接口,则必须创建一个持久性隧道并且不使用 –t 选项。

    –T type

    指定要创建的隧道的类型。创建所有隧道类型都需要此参数。

    –a [local|remote]=address,...

    指定对应于本地地址和远程隧道地址的字面值 IP 地址或主机名。这些地址必须有效并且已在系统中创建。取决于隧道的类型,仅指定一个地址或同时指定本地和远程地址。如果指定本地和远程地址,则必须使用逗号分隔这两个地址。

    • IPv4 隧道需要有本地和远程 IPv4 地址才能正常工作。

    • IPv6 隧道需要有本地和远程 IPv6 地址才能正常工作。

    • 6to4 隧道需要有本地 IPv4 地址才能正常工作。


    注 -  对于持久性 IP 隧道数据链路配置,如果对地址使用主机名,这些主机名将保存在配置存储中。在后续系统引导期间,如果名称解析到的 IP 地址不同于创建隧道时使用的 IP 地址,则隧道将获取新配置。
    tunnel-link

    指定 IP 隧道链路。如果此发行版的网络链路管理中支持有意义的名称,则隧道名称不再限制为要创建的隧道类型。相反,可以为隧道指定任何通过管理方式选择的名称。隧道名称由字符串和物理连接点 (physical point of attachment, PPA) 编号组成,例如 mytunnel0。有关管理有意义名称的指定的规则,请参见在 Oracle Solaris 11.2 中配置和管理网络组件 中的有效链路名称的规则

  3. (u53ef选) 设置跃点限制或封装限制的值。
    # dladm set-linkprop -p [hoplimit=value] [encaplimit=value] tunnel-link
    hoplimit

    指定 IPv6 上隧道的隧道接口的跃点限制。hoplimit 与 IPv4 上隧道的 IPv4 生存时间 (time to live, TTL) 字段等效。

    encaplimit

    指定包允许的嵌套隧道的级数。此选项仅适用于 IPv6 隧道。

    hoplimitencaplimit 属性设置的值必须处于可接受的范围内。hoplimitencaplimit 属性为隧道链路属性。因此,与其他链路属性一样,这些属性通过相同的 dladm 子命令管理。您使用的子命令为 dladm set-linkpropdladm reset-linkpropdladm show-linkprop

  4. 创建隧道上的 IP 接口。
    # ipadm create-ip tunnel-interface

    其中,tunnel-interface 使用与隧道链路相同的名称。

  5. 为隧道接口指定本地和远程 IP 地址。
    # ipadm create-addr [-t] -a local=address,remote=address interface

    其中,interface 指定隧道接口。

    有关更多信息,请参见 ipadm(1M) 手册页和在 Oracle Solaris 11.2 中配置和管理网络组件

  6. (u53ef选) 验证隧道的 IP 接口配置的状态。
    # ipadm show-addr interface
示例 5-1  在 IPv4 隧道上创建 IPv6 接口

以下示例演示如何创建持久性 IPv6 over IPv4 隧道。

# dladm create-iptun -T ipv4 -a local=192.0.2.23,remote=203.0.113.14 private0
# dladm set-linkprop -p hoplimit=200 private0
# ipadm create-ip private0
# ipadm create-addr -T addrconf private0
private0/v6
# ipadm show-addr private0/
ADDROBJ           TYPE     STATE        ADDR
private0/v6       addrconf ok fe80::c000:217->fe80::cb00:710e

要添加备用地址,请使用相同语法。例如,可以按如下所示添加全局地址:

# ipadm create-addr -a local=2001:db8:4728::1,remote=2001:db8:4728::2 private0
private0/v6a
# ipadm show-addr private0/
ADDROBJ           TYPE     STATE        ADDR
private0/v6       addrconf ok fe80::c000:217->fe80::cb00:710e
private0/v6a      static   ok 2001:db8:4728::1->2001:db8:4728::2

请注意,IPv6 地址的前缀 2001:db8 为特殊的 IPv6 前缀,专门用于文档示例。

示例 5-2  在 IPv4 隧道上创建 IPv4 接口

以下示例演示如何创建持久性 IPv4 over IPv4 隧道。

# dladm create-iptun -T ipv4 -a local=192.0.2.23,remote=203.0.113.14 vpn0
# ipadm create-ip vpn0
# ipadm create-addr -a local=10.0.0.1,remote=10.0.0.2 vpn0
vpn0/v4
# ipadm show-addr vpn0/
ADDROBJ           TYPE     STATE        ADDR
vpn0/v4           static   ok 10.0.0.1->10.0.0.2

您可以进一步配置 IPsec 策略来为流经此隧道的包提供安全连接。有关信息,请参见在 Oracle Solaris 11.2 中确保网络安全 中的第 7  章 配置 IPsec

示例 5-3  在 IPv6 隧道上创建 IPv6 接口

以下示例演示如何创建持久性 IPv6 over IPv6 隧道。

# dladm create-iptun -T ipv6 -a local=2001:db8:feed::1234,remote=2001:db8:beef::4321 tun0
# ipadm create-ip tun0
# ipadm create-addr -T addrconf tun0
tun0/v6
# ipadm show-addr tun0/
ADDROBJ           TYPE     STATE        ADDR
tun0/v6           addrconf ok fe80::1234->fe80::4321

要添加地址(例如全局地址或替代本地和远程地址),请按如下所示使用 ipadm 命令:

# ipadm create-addr -a local=2001:db8:cafe::1,remote=2001:db8:cafe::2 tun0
tun0/v6a
# ipadm show-addr tun0/
ADDROBJ           TYPE     STATE        ADDR
tun0/v6           addrconf ok fe80::1234->fe80::4321
tun0/v6a          static   ok 2001:db8:cafe::1->2001:db8:cafe::2