JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:网络接口和网络虚拟化     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  网络栈概述

此 Oracle Solaris 发行版中的网络配置

Oracle Solaris 中的网络栈

网络设备和数据链路名称

其他链路类型的管理

第 1 部分网络自动配置

2.  NWAM 简介

3.  NWAM 配置和管理(概述)

4.  NWAM 配置文件配置(任务)

5.  NWAM 配置文件管理(任务)

6.  关于 NWAM 图形用户界面

第 2 部分数据链路和接口配置

7.  使用配置文件上的数据链路和接口配置命令

8.  数据链路配置和管理

9.  配置 IP 接口

10.  在 Oracle Solaris 上配置无线接口通信

11.  管理网桥

12.  管理链路聚合

13.  管理 VLAN

14.  IPMP 简介

15.  管理 IPMP

16.  使用 LLDP 交换网络连接信息

第 3 部分网络虚拟化和资源管理

17.  网络虚拟化和资源控制简介(概述)

18.  规划网络虚拟化和资源控制

19.  配置虚拟网络(任务)

虚拟网络任务列表

配置 Oracle Solaris 中网络虚拟化的组件

如何创建虚拟网络接口

如何创建 Etherstub

使用 VNIC 和区域

创建新区域以使用 VNIC

如何创建和配置专用 IP 区域

修改现有区域的配置以使用 VNIC

如何重新配置区域以使用 VNIC

创建专用虚拟网络

如何删除虚拟网络而不删除区域

20.  在虚拟化环境中使用链路保护

21.  管理网络资源

22.  监视网络通信流量和资源使用情况

词汇表

索引

使用 VNIC 和区域

本节说明如何通过配置区域要使用的网络虚拟化组件来部署这些组件。本节提供了两种通过区域使用 VNIC 的方法:

当您首次登录到系统时,您会自动位于其全局区域中。您在全局区域中创建 VNIC。然后,根据这些 VNIC 要由全局区域使用还是由非全局专用类型区域使用,进一步配置这些 VNIC。有关区域的介绍,请参阅《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的"区域概述"

创建新区域以使用 VNIC

如果系统中没有配置的区域,或者您要创建新区域以使用 VNIC,请使用此方法。

要使用 VNIC,必须将一个区域配置为专用 IP 区域。后面的步骤使用 vnic1 配置 zone1。您必须执行相同的步骤来配置 zone2。为清楚起见,提示指示在哪个区域中发出特定命令。但是,提示显示的实际路径可能有所不同,具体取决于您的特定系统的提示设置。

如何创建和配置专用 IP 区域

当创建区域时,您可以设置几个参数。本章提供的区域过程仅关注那些与使区域和 VNIC 共同工作有关的参数。有关区域配置的更多详细信息,请参阅《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的第 II 部分, "Oracle Solaris Zones"

开始之前

确保您已经完成以下任务:

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 对于您创建的每个区域,执行以下步骤。
    1. 启动区域配置实用程序并创建区域。
      global# zonecfg -z zone
      zonecfg:zone> create
    2. 通过定义参数 zonepath 设置起始目录。
      zonecfg:zone> set zonepath=/home/export/zone
    3. 启用自动引导。
      zonecfg:zone> set autoboot=true
    4. 将区域配置为专用 IP 区域。
      zonecfg:zone> set ip-type=exclusive
    5. 将区域的接口设置为指定的 VNIC。
      zonecfg:zone> add net
      zonecfg:zone:net> set physical=vnic
      zonecfg:zone:net> end
      zonecfg:zone>
    6. 验证并提交设置,然后退出区域配置实用程序。
      zonecfg:zone>verify
      zonecfg:zone> commit
      zonecfg:zone> exit
      global#
    7. (可选的)为了验证该区域的信息是正确的,键入以下命令:
      global# zonecfg -z zone info

      注 - 在运行区域配置实用程序时,您可以通过键入以下命令显示相同的信息:

      zonecfg:zone> info

  3. 安装区域。
    global# zoneadm -z zone install

    注 - 安装过程可能需要一些时间。


  4. (可选的)完全安装区域后,检查区域的状态。
    zoneadm list -iv

    注 - -iv 选项列出所有已配置的区域,而不管它们是否正在运行。在此阶段,您刚刚创建的区域的状态将变为“installed”而不是“running”。如果您使用 -v 选项,则仅列出正在运行的区域,而且不包括您刚刚创建的区域。


  5. 启动区域。
    global# zoneadm -z zone boot
  6. (可选的)验证区域现在正在运行。
    global# zoneadm list -v
      
  7. 在区域完全启动后,连接到该区域的控制台。
    # zlogin -C zone
  8. 根据提示提供信息。

    部分信息是终端类型、区域、语言等。大部分信息通过从选项列表中进行选择来提供。通常情况下,缺省选项就足够了,除非您的系统配置有其他要求。

    对于当前过程,您需要提供或验证以下信息:

    • 区域的主机名,例如 zone1

    • 区域的 IP 地址(它基于区域的 VNIC 的 IP 地址)。

    • 是否应启用 IPv6。

    • 具有虚拟网络的系统是否为子网的一部分。

    • IP 地址的网络掩码。

    • 缺省路由,可以是在其上构建虚拟网络的物理接口的 IP 地址。

    为区域提供所需的信息后,该区域将重新启动。

示例 19-3 通过创建区域和 VNIC 配置基本虚拟网络

本示例整合了以前提供的用于创建区域和 VNIC 以配置虚拟网络的所有步骤。该示例使用 zone1 作为样例区域

该示例基于以下假定:

global# dladm show-phys
LINK   MEDIA      STATE      SPEED  DUPLEX    DEVICE
net0   Ethernet   up         1000   full      e1000g0
net1   Ethernet   unknown    1000   full      bge0

global# dladm show-lnk
LINK      CLASS     MTU    STATE     BRIDGE   OVER
net0   phys      1500   up        --       --
net1      phys      1500   unknown   --       --

global# ipadm show-if
IFNAME   CLASS        STATE     ACTIVE     OVER
lo0      loopback     ok        yes        --
net0     ip           ok        yes        --

global # ipadm show-addr
ADDROBJ        TYPE       STATE     ADDR
lo0/?          static     ok        127.0.0.1/8
net0/v4addr    static     ok        192.168.3.70/24

global # dladm create-vnic -l net0 vnic1

global # dladm show-vnic
LINK      OVER         SPEED        MACADDRESS      MACADDRTYPE
vnic1     net0     1000 Mbps    2:8:20:5f:84:ff     random

global # ipadm create-ip vnic1
global # ipadm create-addr -T static -a 192.168.3.80/24 vnic1/v4address
global # ipadm show-addr
ADDROBJ           TYPE       STATE     ADDR
lo0/?             static     ok        127.0.0.1/8
net0/v4addr       static     ok        192.168.3.70/24
vnic1/v4address   static     ok        192.168.3.80/24

global # cat /etc/hosts
::1             localhost
127.0.0.1       localhost
192.168.3.70    loghost   #For net0
192.168.3.80    zone1  #using vnic1

global # zonecfg -z zone1
zonecfg:zone1> create
zonecfg:zone1> set zonepath=/export/home/zone1
zonecfg:zone1> seet autoboot=true
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1> add net
zonecfg:zone1:net> set physical=vnic1
zonecfg:zone1:net> end
zonecfg:zone1> verify

zonecfg:zone1> info
zonename: zone1
zonepath: /export/home/zone1
brand:    native
autoboot: true
net:
          address not specified
          physical: vnic1

zonecfg:zone1> commit
zonecfg:zone1> exit
global#
global# zoneadm -z zone1 verify
WARNING: /export/home/zone1 does not exist, so it could not be verified.
When 'zoneadm install' is run, 'install' will try to create
/export/home/zone1, and 'verify' will be tried again,
but the 'verify' may fail if:
the parent directory of /export/home/zone1 is group- or other-writable
or
/export/home/zone1 overlaps with any other installed zones.

global# zoneadm -z zone1 install
Preparing to install zone <zone1>
Creating list of files to copy from the global zone.
.
.
Zone <zone1> is initialized.

global# zoneadm list -iv
ID NAME     STATUS      PATH                 BRAND     IP
0  global   running     /                    native   shared
-  zone1    installed   /export/home/zone1   native   excl

global# zoneadm -z zone1 boot
global# zoneadm list -v
ID NAME     STATUS    PATH                 BRAND     IP
0  global   running   /                    native   shared
1  zone1    running   /export/home/zone1   native   excl

zlogin -C zone1
What type of terminal are you using?
.
.
.
8) Sun Workstation
9) Televideo 910
10) Televideo 925
11) Wyse Model 50
12) X Terminal Emulator (xterms)
13) CDE Terminal Emulator (dtterm)
14) Other
Type the number of your choice and press Return: 13
.
(More prompts)
..

根据系统提示提供信息。提供以下网络信息:

Hostname: zone1
IP address: 192.168.3.80
System part of a subnet: Yes
Netmask: 255.255.255.0
Enable IPv6: No
Default route: 192.168.3.70
Router IP address: 192.168.3.25

接下来的步骤

您可以使用各种工具观察网络通信流量和获得区域使用情况的统计数据。

如果您需要删除虚拟网络,请参阅如何删除虚拟网络而不删除区域

修改现有区域的配置以使用 VNIC

如果您希望现有区域使用 VNIC,请使用此方法。在这种情况下,区域已有区域名称,并且其主目录或 zonepath 已定义。

如何重新配置区域以使用 VNIC

开始之前

确保您已经完成以下任务:

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 验证区域已正确配置并在系统上运行。
    global# zoneadm list -v

    注 - -v 选项只列出正在运行的区域。要列出所有已配置的区域(包括那些尚未启动的区域),请使用 -iv 选项。


  3. 对于要使用 VNIC 配置的每个区域,请执行以下步骤:
    1. 验证关于该区域的信息。
      global# zonecfg -z zone info

      检查有关 IP 类型和网络接口的信息。网络接口由参数 physical 指定。对于要使用 VNIC 配置的区域,该区域必须是专用 IP 区域,其网络接口必须指定 VNIC。

    2. 如有必要,将共享区域更改为专用 IP 区域。
      global# zonecfg -z zone
      zonecfg:zone1> set ip-type=exclusive
      zonecfg:zone1>
    3. 更改该区域的接口以使用 VNIC。
      zonecfg:zone1> remove net physical=non-vnic-interface
      zonecfg:zone1> add net
      zonecfg:zone1:net> set physical=vnic
      zonecfg:zone1:net> end
      zonecfg:zone1>
    4. 酌情更改其他参数值。
    5. 验证并提交您已经实施的更改,然后退出该区域。
      zonecfg:zone1 verify
      zonecfg:zone1> commit
      zonecfg:zone1> exit
      global#
    6. 重新引导区域。
      global# zoneadm -z zone reboot
    7. 重新引导区域后,验证有关 ip-typephysical 的区域信息是正确的。
      global# zonecfg -z zone info ip-type
      global# zonecfg -z zone info net

      信息必须表明该区域的 IP 类型是专用类型,并且它使用指定的 VNIC。

  4. 登录到区域。
    global# zlogin zone
  5. 使用有效的 IP 地址配置 VNIC。

    如果您要为 VNIC 指定一个静态地址,需要键入以下内容:

    zone# ipadm create-addr -T static -a address addrobj

    其中 address 可以使用 CIDR 表示法,addrobj 需要遵从命名约定 interface/ user-defined-string

  6. (可选的)验证区域内的接口配置。
    zone# ipadm show-if

    zone# ipadm show-addr

示例 19-4 通过将区域配置修改为使用 VNIC 来配置基本虚拟网络

本示例与前面的示例使用相同的系统,其操作也基于相同的假设。假设在此系统中,zone2 已作为共享区域存在。您要修改 zone2 以使用 vnic2

global# dladm show-link
LINK   CLASS     MTU    STATE     BRIDGE   OVER
net0   phys      1500   up        --       --
net1   phys      1500   unknown   --       --
vnic1  vnic      1500   up        --       e1000g0

global# ipadm show-if
IFNAME   CLASS        STATE     ACTIVE     OVER
lo0      loopback     ok        yes        --
net0     ip           ok        yes        --
vnic1    ip           ok        yes        --

global # ipadm show-addr
ADDROBJ           TYPE       STATE     ADDR
lo0/?             static     ok        127.0.0.1/8
net0/v4addr       static     ok        192.168.3.70/24
vnic1/v4address   static     ok        192.168.3.80/24

global # dladm create-vnic -l net0 vnic2
global # dladm show-vnic
LINK      OVER        SPEED        MACADDRESS          MACADDRTYPE
vnic1     net0     1000 Mbps    2:8:20:5f:84:ff     random
vnic2     net0     1000 Mbps    2:8:20:54:f4:74     random

global# zoneadm list -v
ID NAME     STATUS    PATH                 BRAND     IP
0  global   running   /                    native   shared
1  zone1    running   /export/home/zone1   native   excl
2  zone2    running   /export/home/zone2   native   shared

global# zonecfg -z zone2 info
zonename: zone2
zonepath: /export/home/zone2
brand: native
autoboot: true
bootargs:
pool: z2-pool
limitpriv:
scheduling-class:
ip-type: shared
hostid:
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
inherit-pkg-dir:
        dir: /etc/crypto
net:
        address not specified
        physical: e1000g0
        defrouter not specified
global#


global# zonecfg -z zone2
zonecfg:zone1> set ip-type=exclusive
zonecfg:zone1> remove net physical=net0
zonecfg:zone1> add net
zonecfg:zone1:net> set physical=vnic2
zonecfg:zone1:net> end
zonecfg:zone1> verify
zonecfg:zone1> commit
zonecfg:zone1> exit
global#

global# zonecfg -z zone2 info ip-type
ip-type: exclusive
global#

global# zonecfg -z zone2 info net
net:
        address ot specified
        physical: vnic2
        defrouter not specified
global#

global# zlogin zone2
zone2# ipadm create-ip vnic2
zone2# ipadm create-addr -T static -a 192.168.3.85/24 vnic2/v4address

zone2# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
vnic2/v4address   static   ok           192.168.3.85/24

zone1# exit
global#

global# vi /etc/hosts
#
::1             localhost
127.0.0.1       localhost
192.168.3.70    loghost   #For e1000g0
192.168.3.80    zone1   #using vnic1
192.168.3.85    zone2   #using vnic2

接下来的步骤

您可以进一步配置网络设置以定制系统资源的使用,也可以使用各种工具观察网络通信流量和获得关于资源使用情况的统计数据。

如果您需要删除虚拟网络,请参阅如何删除虚拟网络而不删除区域

创建专用虚拟网络

本节中的示例说明如何在单个系统上配置专用虚拟网络。专用虚拟网络和虚拟专用网络 (virtual private networks, VPN) 不同。VPN 软件会在两个端点系统之间创建一个安全的点对点链路。由本节中的任务配置的专用网络是一个集成的虚拟网络,外部系统无法对其进行访问。

要允许专用网络的区域向主机外部发送数据包,需要配置网络地址转换 (network address translation, NAT) 设备。NAT 将 VNIC 的专用 IP 地址转换为物理网络接口的可路由 IP 地址,但不向外部网络公开专用 IP 地址。以下示例中还包含路由配置。

示例 19-5 创建专用虚拟网络配置

以下示例与前面的示例使用相同的系统,也基于相同的假设。特别是,目前将 zone1 zone2 配置为虚拟网络。假设系统中已存在 zone3。您将修改 zone3 使其成为与网络的其余部分隔离的专用网络。然后,您将 NAT 和 IP 转发配置为允许虚拟专用网络向主机外部发送数据包,但仍对外部网络隐藏其专用地址。

global# dladm create-etherstub stub0

global# dladm create-vnic -l etherstub0 vnic3
global# dladm show-vnic
LINK      OVER        SPEED        MACADDRESS          MACADDRTYPE
vnic1     net0     1000 Mbps    2:8:20:5f:84:ff     random
vnic2     net0     1000 Mbps    2:8:20:54:f4:74     random
vnic3     stub0          0 Mbps    2:8:20:6b:8:ab      random

global# vi /etc/hosts
#
::1             localhost
127.0.0.1       localhost
192.168.3.70    loghost   #For e1000g0
192.168.3.80    zone1   #using vnic1
192.168.3.85    zone2   #using vnic2

在此阶段,您将 zone3 修改为 vnic3 上的专用 IP 区域。

global# zonecfg -z zone3
zonecfg:zone3> set ip-type=exclusive
zonecfg:zone3> remove net physical=e1000g0
zonecfg:zone3> add net
zonecfg:zone3:net> set physical=vnic3
zonecfg:zone3:net> end
zonecfg:zone3> vereify
zonecfg:zone3> commit
zonecfg:zone3> exit
global#

global# zonecfg -z zone3 info ip-type
ip-type: exclusive
global#

global# zonecfg -z zone3 info net
net:
        address ot specified
        physical: vnic3
        defrouter not specified
global#

global# zlogin zone3
zone3# ipadm create-ip vnic3
zone3# ipadm create-addr -T static -a 192.168.0.10/24 vnic3/privaddr

zone3# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
vnic3/privaddr    static   ok           192.168.0.10/24
zone3# exit

global# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
net0/v4addr       static   ok           192.168.3.70/24
vnic1/v4address   static   ok           192.168.3.80/24
vnic2/v4address   static   ok           192.168.3.85/24
vnic3/privaddr    static   ok           192.168.0.10/24

global# vi /etc/hosts
::1             localhost
127.0.0.1       localhost
192.168.3.70    loghost   #For e1000g0
192.168.3.80    zone1   #using vnic1
192.168.3.85    zone2   #using vnic2
192.168.0.10    zone3   #using vnic3

global# routeadm
              Configuration   Current              Current
                     Option   Configuration        System State
---------------------------------------------------------------
               IPv4 routing   enabled              enabled
               IPv6 routing   disabled             disabled
            IPv4 forwarding   disabled             disabled
            IPv6 forwarding   disabled             disabled

           Routing services   "route:default ripng:default"

global# ipadm set-ifprop -p forwarding=yes -m ipv4 e1000g0

global# vi /etc/ipf/ipnat.conf
map e1000g0 192.168.0.0/24 -> 0/32  portmap tcp/udp auto
map e1000g0 192.168.0.0/24 -> 0/32

global# svcadm enable network/ipfilter

global# zoneadm -z zone1 boot
global# zoneadm -z zone2 boot
global# zoneadm -z zone3 boot

如何删除虚拟网络而不删除区域

以下过程说明如何禁用区域的虚拟网络,而使区域保持不变。

如果您必须执行以下任意操作,请使用此过程:

开始之前

此任务假定您正在运行包含专用 IP 区域的虚拟网络。

  1. 成为管理员。

    有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"

  2. 验证当前配置的区域的状态。
    # zoneadm list -v

    将显示类似于以下内容的信息:

    ID  NAME     STATUS       PATH                           BRAND            IP
     0  global   running      /                              native           shared
     1  zone1    running      /export/home/zone1             native           excl 
     2  zone2    running      /export/home/zone2             native           excl
     3  zone3    running      /export/home/zone3             native           excl
  3. 停止虚拟网络的专用 IP 区域。

    对要停止的每个区域分别执行以下命令。

    global# zoneadm -z zone-name halt

    当您停止该区域时,会删除区域的应用程序环境并终止一些系统活动,如《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的"停止区域"中所述。

  4. 验证区域已停止。
    # zoneadm list -iv
    ID NAME             STATUS     PATH                           BRAND    IP
       0 global           running    /                              native   shared
       - zone1            installed  /export/home/zone1             native   excl
       - zone2            installed  /export/home/zone2             native   excl
       - zone3            installed  /export/home/zone3             native   excl

    请注意,虽然区域仍处于已安装状态,但它们已不再运行。要重新引导一个已停止的区域,请参阅《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的"如何引导区域"

  5. 列出为已停止的区域配置的 VNIC。
    # dladm show-vnic
    LINK        OVER             SPEED  MACADDRESS         MACADDRTYPE
    vnic1       net0      1000 Mbps  2:8:20:5f:84:ff    random
    vnic2       net1     1000 Mbps  2:8:20:54:f4:74    random
    vnic3       stub0    1000 MBps  2:8:20:c2:39:38    random

    生成的输出显示 VNIC 仍被配置为全局区域中的数据链路。但是,其对应的 IP 接口是在与这些 VNIC 相关联的区域(而不是全局区域)上创建并启用的。现在,这些非全局区域已停止。

  6. 删除 VNIC。
    # dladm delete-vnic vnic

    例如,您要键入以下内容来删除图 18-1 所示的区域中的 VNIC。

    # dladm delete-vnic vnic1
    # dladm delete-vnic vnic2