Oracle® Solaris Zones 介绍

退出打印视图

更新时间: 2014 年 12 月
 
 

区域网络接口

引导区域时,将在其中自动设置并放置通过 zonecfg 实用程序配置的用于提供网络连接的区域网络接口。

Internet 协议 (Internet Protocol, IP) 层可接受和传送网络包。该层包括 IP 路由、地址解析协议 (Address Resolution Protocol, ARP)、Internet 协议安全体系结构 (Internet Protocol Security Architecture, IPsec) 和 IP 过滤器。

可用于非全局区域的 IP 类型有两种:共享 IP 和专用 IP。专用 IP 是缺省 IP 类型。共享 IP 区域与全局区域共享网络接口。要使用共享 IP 区域,必须通过 ipadm 实用程序完成全局区域中的配置。专用 IP 区域必须有专用的网络接口。如果使用 anet 资源配置专用 IP 区域,将自动创建一个专用 VNIC 并将其分配给该区域。通过使用自动的 anet 资源,不必在全局区域中创建和配置数据链路并将数据链路指定给非全局区域。使用 anet 资源可完成以下任务:

  • 允许全局区域管理员为指定给非全局区域的数据链路选择特定名称

  • 允许多个区域使用同名的数据链路

为了实现向后兼容性,可以向非全局区域指定预配置的数据链路。

有关每种类型的 IP 功能的信息,请参见创建和使用 Oracle Solaris 区域 中的专用 IP 非全局区域中的联网创建和使用 Oracle Solaris 区域 中的共享 IP 非全局区域中的联网


注 -  在 Oracle Solaris 11.2 中确保网络安全 中所述的链路保护可在运行区域的系统上使用。此功能在全局区域中配置。

关于数据链路

数据链路是 OSI 协议栈的第 2 层物理接口,在系统中表示为 STREAMS DLPI (v2) 接口。此类接口可以在 TCP/IP 等协议栈下检测到。数据链路也称为物理接口,例如,网络接口卡 (Network Interface Card, NIC)。数据链路是使用 zonecfg (1M) 配置的 physical 属性。physical 属性可以为 VNIC。

在 Oracle Solaris 11 中,缺省情况下,物理网络设备名称使用通用名称(如 net0),而不是设备驱动程序名称(如 nxge0)。

有关为 solaris 区域使用基于 InfiniBand 的 IP (IP over InfiniBand, IPoIB) 的信息,请参见资源类型属性中的 anet 说明。

关于弹性虚拟交换机和区域

对于连接至弹性虚拟交换机 (Elastic Virtual Switch, EVS) 的设置了 evsvport 属性的 anet 资源,该 anet 资源的属性封装在 evsvport 对中。您不能更改 EVS anet 资源的以下任何属性:

  • mac-address

  • mtu

  • maxbw

  • priority

  • allowed-address

  • vlan-id

  • defrouter

  • lower-link

您只可以为 EVS anet 资源设置以下属性:

  • linkname

  • evs

  • vport

  • configure-allowed-address

您还必须设置 tenant 资源。Tenant 用于名称空间管理。tenant 内定义的 EVS 资源在该租户的命名空间外不可见。

名为 evszone 的区域的以下输入会为名为 tenantA 的租户设置 tenant 资源。zonecfg anet 资源属性为具有 anet 资源(连接至名为 evsa 的 EVS 和名为 vport0 的 VPort)的区域创建 VNIC:

zonecfg:evszone> set tenant=tenantA

zonecfg:evszone> add anet

zonecfg:evszone> set evs=EVSA

zonecfg:evszone> set vport=vport0

有关更多信息,请参见在 Oracle Solaris 11.2 中管理网络虚拟化和网络资源 中的第 5  章 关于弹性虚拟交换机

共享 IP 非全局区域

共享 IP 区域使用全局区域中的现有 IP 接口。区域必须有一个或多个专用 IP 地址。共享 IP 区域与全局区域共享 IP 层配置和状态。如果以下两个条件同时成立,则区域应该使用共享 IP 实例:

  • 非全局区域使用全局区域使用的相同数据链路,而不管全局区域和非全局区域是否在同一子网中。

  • 您不想使用专用 IP 区域提供的其他功能。

使用 zonecfg 命令的 net 资源为共享 IP 区域指定一个或多个 IP 地址。数据链路名称也必须在全局区域中配置。

zonecfg net 资源中,必须设置 addressphysical 属性。defrouter 属性为可选的。

要在全局区域中使用共享 IP 类型联网配置,必须使用 ipadm,而不是自动网络配置。要确定 ipadm 是否正在进行联网配置,请运行以下命令。显示的响应必须为 DefaultFixed

# svcprop -p netcfg/active_ncp svc:/network/physical:default
DefaultFixed

指定给共享 IP 区域的 IP 地址与逻辑网络接口相关联。

可以在全局区域中使用 ipadm 命令来在运行的区域中指定或删除逻辑接口。

要添加接口,请使用以下命令:

global# ipadm set-addrprop -p zone=my-zone net0/addr1

要删除接口,请使用以下命令之一:

global# ipadm set-addrprop -p zone=global net0/addr

或者:

global# ipadm reset-addrprop -p zone net0/addr1 

有关更多信息,请参见创建和使用 Oracle Solaris 区域 中的共享 IP 网络接口

专用 IP 非全局区域

专用 IP 是非全局区域的缺省联网配置。

专用 IP 区域具有其自己的 IP 相关状态以及一个或多个专用数据链路。

可以在专用 IP 区域中使用以下功能:

  • DHCPv4 和 IPv6 无状态地址自动配置

  • IP 过滤器,包括网络地址转换 (network address translation, NAT) 功能

  • IP 网络多路径 (IP Network Multipathing, IPMP)

  • IP 路由

  • ipadm,用于设置 TCP/UDP/SCTP 和 IP/ARP 级别可调参数

  • IP 安全 (IP security, IPsec) 和 Internet 密钥交换 (Internet Key Exchange, IKE),可自动提供用于 IPsec 安全关联的验证加密材料

有两种配置专用 IP 区域的方式:

  • 使用 zonecfg 实用程序的 anet 资源在引导区域时自动为区域创建临时 VNIC,然后在区域停止时删除它。

  • 在全局区域中预先配置数据链路,然后使用 zonecfg 实用程序的 net 资源将其指定给专用 IP 区域。数据链路使用 net 资源的 physical 属性指定。physical 属性可以为 VNIC。没有设置 net 资源的 address 属性。

缺省情况下,专用 IP 区域可以在关联接口上配置和使用任何 IP 地址。(可选)可以使用 allowed-address 属性指定逗号分隔的 IP 地址列表。专用 IP 区域不能使用 allowed-address 列表中没有的 IP 地址。此外,将在引导区域时自动为专用 IP 区域永久配置 allowed-address 列表中的所有地址。如果不需要此接口配置,则必须将configure-allowed-address 属性设置为 false。缺省值为 true

注意,通过指定的数据链路,可使用 snoop 命令。

可以将 dladm 命令与 show-linkprop 子命令一起使用,以显示正在运行的专用 IP 区域的数据链路分配。可以将 dladm 命令与 set-linkprop 子命令一起使用,以将其他数据链路指定给正在运行的区域。有关用法示例,请参见创建和使用 Oracle Solaris 区域 中的在独占 IP 非全局区域中管理数据链路

在已指定自己的数据链路集的正在运行的专用 IP 区域中,可以使用 ipadm 命令来配置 IP,包括添加或删除逻辑接口的能力。通过使用 sysconfig(1M) 手册页中所述的 sysconfig 接口,可以按全局区域的设置方式对区域中的 IP 配置进行设置。

专用 IP 区域的 IP 配置仅可在全局区域中使用 zlogin 命令进行查看。

global# zlogin zone1 ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
nge0/v4           dhcp     ok           10.134.62.47/24
lo0/v6            static   ok           ::1/128
nge0/_a           addrconf ok           fe80::2e0:81ff:fe5d:c630/10

非全局区域对可靠数据报套接字的支持

专用 IP 和共享 IP 非全局区域都支持可靠数据报套接字 (Reliable Datagram Socket, RDS) IPC 协议。RDSv3 驱动程序作为 SMF 服务 rds 启用。缺省情况下,安装后禁用此服务。通过区域管理员授予的相应授权,可以在给定非全局区域中启用该服务。在执行 zlogin 后,可以在要运行 rds 的每个区域中启用 rds。

示例 2-1  如何在非全局区域中启用 rds 服务
  1. 要在专用 IP 或共享 IP 区域中启用 RDSv3 服务,请执行 zlogin 并执行 svcadm enable 命令:

    # svcadm enable rds
  2. 验证 rds 是否已启用:

    # svcs rds
        STATE          STIME    FMRI
        online         22:50:53 svc:/system/rds:default

有关更多信息,请参见 svcadm(1M) 手册页。

共享 IP 非全局区域和专用 IP 非全局区域之间的安全差异

在共享 IP 区域中,此区域中的应用程序(包括超级用户)不能发送带有源 IP 地址的包,只能发送通过 zonecfg 实用程序指定给该区域的包。此类型的区域不能发送和接收任意数据链路(第 2 层)包。

但是,对于专用 IP 区域,zonecfg 会将指定数据链路的一切权限都授予该区域。因此,在专用 IP 区域中,超级用户或具有所需权限配置文件的用户可以如同在全局区域中一样,在这些数据链路上发送欺骗性包。可以通过设置 allowed-address 属性来禁用 IP 地址欺骗。对于 anet 资源,可以通过设置 link-protection 属性来启用其他保护(例如,mac-nospoofdhcp-nospoof)。

同时使用共享 IP 和专用 IP 非全局区域

共享 IP 区域总是与全局区域共享 IP 层,而专用 IP 区域总是有其自己的 IP 层实例。共享 IP 区域和专用 IP 区域都可在同一计算机中使用。