跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中使用虚拟网络 Oracle Solaris 11.1 Information Library (简体中文) |
虚拟网络组合使用了区域和虚拟化组件。可根据系统可支持的程度创建尽可能多的区域。每个区域都有自己的虚拟接口。系统中的区域可相互通信。虚拟网络作为一个整体连接到大型外部网络上的目标。
构建虚拟网络包括用于配置 etherstub 或 VNIC 的一个或多个步骤以及用于配置区域的步骤。尽管这些是独立的过程集,但是必须同时执行才能完成虚拟网络的构建。
本节中的过程基于以下假设:
系统上的虚拟网络包含三个区域。这些区域处于不同的配置阶段:第一个区域被创建为新区域,第二个区域已存在于系统上并需要重新配置才能使用 VNIC,第三个区域被指定为专用虚拟网络。因此,这些过程说明了用于为虚拟网络准备区域的各种方式。
系统物理接口的 IP 地址配置为 192.168.3.70
路由器的 IP 地址为 192.168.3.25
在本节的每个过程中,方案中添加了更多的详细信息以便为步骤提供更具体的上下文。
构建虚拟网络时,一些步骤需在全局区域中执行,一些步骤需在非全局区域中执行。为清楚起见,每个过程后面的示例中的提示将指明在哪个区域中发出特定命令。但是,提示显示的实际路径可能有所不同,具体取决于特定于您系统的提示。
在本节中,讨论了以下过程:
此过程介绍了如何使用新 VNIC 配置新区域。请注意,此过程仅包含与网络虚拟化相关的步骤。有关配置区域的更多详细说明,请参阅《Oracle Solaris 11.1 管理:Oracle Solaris Zones、Oracle Solaris 10 Zones 和资源管理》中的第 17 章 "规划和配置非全局区域(任务)"。
此过程假设将虚拟网络的第一个区域创建为一个全新的区域。
请参见如何配置 VNIC 和 Etherstub。但是,对于此特定过程,请省略创建 etherstub 的步骤。
global# zonecfg -z zone
创建区域时,请确保将 ip-type 参数设置为 exclusive,并确保将刚刚创建的 VNIC 指定为区域的物理接口。
global# zoneadm -z zone install
注 - 安装过程可能需要一些时间。
global# zoneadm -z zone boot
# zlogin -C zone
大部分信息通过从选项列表中进行选择来提供。通常,缺省选项即可满足需求。要配置虚拟网络,必须提供或验证以下信息:
区域的主机名,例如 zone1。
区域的 IP 地址(它基于区域的 VNIC 的 IP 地址)。
是否应启用 IPv6。
具有虚拟网络的系统是否为子网的一部分。
IP 地址的网络掩码。
缺省路由,可以是在其上构建虚拟网络的物理接口的 IP 地址。
提供所需的信息后,该区域将重新启动。
示例 2-2 为虚拟网络配置区域
本示例包含用于创建 zone1 的详细步骤。但是,只列出了与创建虚拟网络相关的区域参数。
global # zonecfg -z zone1 zonecfg:zone1> create zonecfg:zone1> set zonepath=/export/home/zone1 zonecfg:zone1> set 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> commit zonecfg:zone1> exit 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 -z zone1 boot 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
此过程中所提及的区域指的是虚拟网络中的第二个区域。该区域已存在,但其当前配置会阻止它成为虚拟网络的一部分。具体地说,该区域的 IP 类型是共享类型,er其当前接口是 net0。这两个配置必须更改。
global# dladm create-vnic [-v vid] -l datalink vnic
其中,vid 指的是为 VNIC 指定的 VLAN ID。仅当将 VNIC 创建为 VLAN 时,才应指定 VLAN ID。
现在请勿配置 VNIC 的接口。将稍后执行此步骤。
global# zonecfg -z zone zonecfg:zone1> set ip-type=exclusive zonecfg:zone1>
zonecfg:zone1> remove net physical=NIC 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# zlogin zone
如果您要为 VNIC 指定一个静态地址,需要键入以下内容:
zone# ipadm create-addr -a address interface
其中,address 可以使用 CIDR 表示法。
示例 2-3 重新配置区域配置以使用 VNIC
在本示例中,zone2 已作为共享区域存在。此外,该区域使用的是系统的主接口,而不是虚拟链路。您需要修改 zone2 才能使用 vnic2。要使用 vnic2,必须首先将 zone2 的 IP 类型更改为专用。请注意,某些输出已截断,以重点显示与虚拟网络相关的信息。
global# dladm create-vnic -l net0 vnic2 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# zoneadm -z zone2 reboot global# zlogin zone2 zone2# ipadm create-ip vnic2 zone2# ipadm create-addr -a 192.168.3.85/24 vnic2 ipadm: vnic2/v4 zone2# exit global# vi /etc/hosts # ::1 localhost 127.0.0.1 localhost 192.168.3.70 loghost #For net0 192.168.3.80 zone1 #using vnic1 192.168.3.85 zone2 #using vnic2
以下过程介绍了如何配置虚拟网络的第三个区域。尽管该区域属于虚拟网络,但外部系统无法对其进行访问。要使隔离区域发送跨越系统的网络通信,则必须使用网络地址转换 (network address translation, NAT)。NAT 将 VNIC 的专用 IP 地址转换为物理网络接口的可路由 IP 地址。但是,专用 IP 地址本身对外部网络不可见。有关 NAT 的更多信息,请参见《在 Oracle Solaris 11.1 中保护网络安全》中的"使用 IP 过滤器的 NAT 功能"。
是否使用 etherstub 是常规虚拟网络与专用虚拟网络之间的主要区别。在专用虚拟网络中,指定给区域的 VNIC 是在 etherstub 上配置的。因此,它们与流经系统的网络通信相互隔离。
以下过程假设该区域已存在,但当前不包含任何关联接口。
global# dladm create-etherstub etherstub
global# dladm create-vnic -l etherstub vnic
现在请勿配置 VNIC 的接口。将稍后执行此步骤。
global# zonecfg -z zone zone# set physical=vnic
zonecfg:zone1 verify zonecfg:zone1> commit zonecfg:zone1> exit global#
# zlogin zone
# ipadm create-ip interface
如果您要为 VNIC 指定一个静态地址,需要键入以下内容:
zone# ipadm create-addr -a address interface
其中,address 可以使用 CIDR 表示法。
# ipadm set-ifprop -p forwarding=on -m ipv4 primary-interface
注 - 在 Oracle Solaris 11 中,主接口通常使用名称 net0。
# svcadm enable network/ipfilter
# zoneadm -z zone reboot
示例 2-4 创建专用虚拟网络配置
在本示例中,将 zone3 配置为要隔离的专用网络。同时,将 NAT 和 IP 转发配置为允许虚拟专用网络向主机外部发送包,但仍对外部网络隐藏其专用地址。已使用专用 IP 类型配置了该区域。但是,未为其指定任何 IP 接口。
global# dladm create-etherstub ether0 global# dladm create-vnic -l ether0 vnic3 global# zonecfg -z zone3 zonecfg:zone3> add net zonecfg:zone3:net> set physical=vnic3 zonecfg:zone3:net> end zonecfg:zone3> verify zonecfg:zone3> commit zonecfg:zone3> exit global# global# zlogin zone3 zone3# ipadm create-ip vnic3 zone3# ipadm create-addr -a 192.168.0.10/24 vnic3 ipadm: vnic3/v4 zone3# exit 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 192.168.3.85 zone2 #using vnic2 192.168.0.10 zone3 #using vnic3 global# ipadm set-ifprop -p forwarding=on -m ipv4 vnic3 global# vi /etc/ipf/ipnat.conf map vnic3 192.168.0.0/24 -> 0/32 portmap tcp/udp auto map vnic3 192.168.0.0/24 -> 0/32 global# svcadm enable network/ipfilter global# zoneadm -z zone3 boot