| 跳过导航链接 | |
| 退出打印视图 | |
|
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
本节说明如何通过配置区域要使用的网络虚拟化组件来部署这些组件。本节提供了两种通过区域使用 VNIC 的方法:
创建全新的区域和在这些区域上配置 VNIC
修改现有的区域配置以使用 VNIC。
当您首次登录到系统时,您会自动位于其全局区域中。您在全局区域中创建 VNIC。然后,根据这些 VNIC 要由全局区域使用还是由非全局专用类型区域使用,进一步配置这些 VNIC。有关区域的介绍,请参阅《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的"区域概述"。
如果系统中没有配置的区域,或者您要创建新区域以使用 VNIC,请使用此方法。
要使用 VNIC,必须将一个区域配置为专用 IP 区域。后面的步骤使用 vnic1 配置 zone1。您必须执行相同的步骤来配置 zone2。为清楚起见,提示指示在哪个区域中发出特定命令。但是,提示显示的实际路径可能有所不同,具体取决于您的特定系统的提示设置。
当创建区域时,您可以设置几个参数。本章提供的区域过程仅关注那些与使区域和 VNIC 共同工作有关的参数。有关区域配置的更多详细信息,请参阅《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的第 II 部分, "Oracle Solaris Zones"。
开始之前
确保您已经完成以下任务:
为区域创建了 VNIC,如如何创建虚拟网络接口中所述。
定义了区域名称。
确定了区域起始目录。
确定了要与特定区域相关联的具体 VNIC。
确定了 VNIC 的 IP 地址。
获得了要提供给区域的其他网络信息,如路由器地址。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
global# zonecfg -z zone zonecfg:zone> create
zonecfg:zone> set zonepath=/home/export/zone
zonecfg:zone> set autoboot=true
zonecfg:zone> set ip-type=exclusive
zonecfg:zone> add net zonecfg:zone:net> set physical=vnic zonecfg:zone:net> end zonecfg:zone>
zonecfg:zone>verify zonecfg:zone> commit zonecfg:zone> exit global#
global# zonecfg -z zone info
注 - 在运行区域配置实用程序时,您可以通过键入以下命令显示相同的信息:
zonecfg:zone> info
global# zoneadm -z zone install
注 - 安装过程可能需要一些时间。
zoneadm list -iv
注 - -iv 选项列出所有已配置的区域,而不管它们是否正在运行。在此阶段,您刚刚创建的区域的状态将变为“installed”而不是“running”。如果您使用 -v 选项,则仅列出正在运行的区域,而且不包括您刚刚创建的区域。
global# zoneadm -z zone boot
global# zoneadm list -v
# zlogin -C zone
部分信息是终端类型、区域、语言等。大部分信息通过从选项列表中进行选择来提供。通常情况下,缺省选项就足够了,除非您的系统配置有其他要求。
对于当前过程,您需要提供或验证以下信息:
区域的主机名,例如 zone1。
区域的 IP 地址(它基于区域的 VNIC 的 IP 地址)。
是否应启用 IPv6。
具有虚拟网络的系统是否为子网的一部分。
IP 地址的网络掩码。
缺省路由,可以是在其上构建虚拟网络的物理接口的 IP 地址。
为区域提供所需的信息后,该区域将重新启动。
示例 19-3 通过创建区域和 VNIC 配置基本虚拟网络
本示例整合了以前提供的用于创建区域和 VNIC 以配置虚拟网络的所有步骤。该示例使用 zone1 作为样例区域
该示例基于以下假定:
VNIC:vnic1
区域名称:zone1
区域主目录:/home/export/zone-name。
VNIC 区域指定:vnic1 指定给 zone1
IP 地址:vnic1 使用 192.168.3.80
物理接口 IP 地址:192.168.3.70
路由器地址:192.168.3.25
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
接下来的步骤
您可以使用各种工具观察网络通信流量和获得区域使用情况的统计数据。
要验证网络配置是否正确,请参阅《Oracle Solaris 管理:IP 服务》中的第 5 章 "管理 TCP/IP 网络"。
要监测网络流量,请参阅《Oracle Solaris 管理:IP 服务》中的"使用 snoop 命令监视包传送"。
要管理网络如何使用系统资源,请参阅第 21 章。
要获取用于记帐的统计信息,请参阅第 22 章。
如果您需要删除虚拟网络,请参阅如何删除虚拟网络而不删除区域。
如果您希望现有区域使用 VNIC,请使用此方法。在这种情况下,区域已有区域名称,并且其主目录或 zonepath 已定义。
开始之前
确保您已经完成以下任务:
为区域创建了 VNIC,如如何创建虚拟网络接口中所述。
确定了要与特定区域相关联的具体 VNIC。
确定了 VNIC 的 IP 地址。
获得了要提供给区域的其他网络信息,如路由器地址。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
global# zoneadm list -v
注 - -v 选项只列出正在运行的区域。要列出所有已配置的区域(包括那些尚未启动的区域),请使用 -iv 选项。
global# zonecfg -z zone info
检查有关 IP 类型和网络接口的信息。网络接口由参数 physical 指定。对于要使用 VNIC 配置的区域,该区域必须是专用 IP 区域,其网络接口必须指定 VNIC。
global# zonecfg -z zone zonecfg:zone1> set ip-type=exclusive zonecfg:zone1>
zonecfg:zone1> remove net physical=non-vnic-interface zonecfg:zone1> add net zonecfg:zone1:net> set physical=vnic zonecfg:zone1:net> end zonecfg:zone1>
zonecfg:zone1 verify zonecfg:zone1> commit zonecfg:zone1> exit global#
global# zoneadm -z zone reboot
global# zonecfg -z zone info ip-type global# zonecfg -z zone info net
信息必须表明该区域的 IP 类型是专用类型,并且它使用指定的 VNIC。
global# zlogin zone
如果您要为 VNIC 指定一个静态地址,需要键入以下内容:
zone# ipadm create-addr -T static -a address addrobj
其中 address 可以使用 CIDR 表示法,addrobj 需要遵从命名约定 interface/ user-defined-string。
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
以下过程说明如何禁用区域的虚拟网络,而使区域保持不变。
如果您必须执行以下任意操作,请使用此过程:
在不同的配置中使用现有区域。例如,您可能需要将区域配置为专用网络的一部分,这需要使用 etherstub 来创建区域。
将区域迁移到另一个网络。
将区域移动到不同的区域路径。
克隆区域,如《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的"在同一系统中克隆非全局区域"中所述。
开始之前
此任务假定您正在运行包含专用 IP 区域的虚拟网络。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# 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
对要停止的每个区域分别执行以下命令。
global# zoneadm -z zone-name halt
当您停止该区域时,会删除区域的应用程序环境并终止一些系统活动,如《Oracle Solaris 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的"停止区域"中所述。
# 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 和资源管理》中的"如何引导区域"。
# 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 相关联的区域(而不是全局区域)上创建并启用的。现在,这些非全局区域已停止。
# dladm delete-vnic vnic
例如,您要键入以下内容来删除图 18-1 所示的区域中的 VNIC。
# dladm delete-vnic vnic1 # dladm delete-vnic vnic2