此过程说明了如何创建专用虚拟网络并使其能够跨系统发送网络通信。尽管该区域是虚拟网络的一部分,但外部系统无法对其进行访问。要使隔离区域能够跨系统发送网络通信,则必须使用网络地址转换 (network address translation, NAT)。NAT 将 VNIC 的专用 IP 地址转换为物理网络接口的可路由 IP 地址。但是,专用 IP 地址对外部网络不可见。有关 NAT 的更多信息,请参见在 Oracle Solaris 11.2 中确保网络安全 中的使用 IP 过滤器的 NAT 功能。
是否使用 etherstub 是虚拟网络与专用虚拟网络之间的主要区别。在专用虚拟网络中,指定给区域的 VNIC 是在 etherstub 上配置的,并且与流经系统的网络通信隔离开来。
以下过程假设该区域已存在,但当前不包含任何关联接口。
global# dladm create-etherstub etherstub
global# dladm create-vnic -l etherstub VNIC
您将在此过程的后半部分配置 VNIC 的接口。
global# zonecfg -z zone zonecfg:zone> add net zonecfg:zone:net> set physical=VNIC zonecfg:zone:net> end
zonecfg:zone> verify zonecfg:zone> commit zonecfg:zone> exit
global# zoneadm -z zone reboot
global# zlogin zone
zone# ipadm create-ip interface
zone# ipadm create-addr -a address interface
zone# ipadm create-addr -T dhcp interface
zone# exit
global# ipadm set-ifprop -p forwarding=on -m ipv4 primary-interface
global# svcadm enable network/ipfilter
global# zoneadm -z zone reboot
在本示例中,将 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# zoneadm -z zone3 reboot 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# pfedit /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# pfedit /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 reboot