跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
从管理的角度上,管理员在数据链路上创建 IP 接口。数据链路代表开放系统互连 (Open Systems Interconnection, OSI) 模型的第二层中的一个链路对象。物理链路与设备直接关联,并拥有一个设备名称。设备名称实质上是设备实例名称,由驱动程序名称和设备实例编号组成。实例编号的值可以是从 0 到 n,具体取决于系统上有多少 NIC 使用该驱动程序。
以千兆以太网卡为例,它经常用作主机系统和服务器系统上的主 NIC。此 NIC 的一些典型驱动程序名称是 bge 和 e1000g。用作主 NIC 时,千兆以太网接口有一个设备名称,如 bge0 或 e1000g0。其他驱动程序名称是 nge、nxge 等。
在此 Oracle Solaris 发行版中,设备实例名称继续依赖于底层硬件。不过,这些设备上的数据链路不再绑定,可以对其指定有意义的名称。例如,管理员可以对设备实例 e1000g0 上的数据链路指定名称itops0。在此 Oracle Solaris 发行版中,缺省情况下对数据链路提供通用名称。要显示具有通用名称的数据链路与相应的设备实例之间的映射,可使用 dladm sho-phys 子命令。
在系统上第一次安装此 Oracle Solaris 发行版时,Oracle Solaris 自动为系统的所有物理网络设备提供通用链路名称。此名称指定使用 net # 命名约定,其中 # 是实例编号。此实例编号对每个设备递增,例如 net0、net1、net2 等。
通用或灵活的链路名称为网络配置提供了优点,如以下示例所示:
在单个系统中,动态重新配置变得更容易。为给定 NIC 设置的网络配置可以由不同的 NIC 更换继承。
区域迁移在网络设置方面不再过于复杂。如果在迁移之前已为区域的链路指定名称,而目标系统的链路与该链路具有相同的名称,则迁移后的系统中的区域将保留其网络配置。因此,在迁移后无需进行任何额外的网络配置。
通用命名方案有助于进行在系统配置 (System Configuration, SC) 清单中指定的网络配置。所有系统的主网络数据链路通常命名为 net0。因此,对于为 net0 指定一个配置的多个系统,可使用通用 SC 清单。
数据链路管理也变得灵活。您可以进一步定制数据链路的名称,例如用来反映数据链路提供的特定功能,如图 1-2中所示。
下表说明了硬件 (NIC)、设备实例、链路名称以及链路上的接口之间的新对应关系。由 OS 自动提供数据链路的名称。
|
如表中所示,尽管设备实例名称仍基于硬件,数据链路在安装后已由 OS 重命名。
在 Oracle Solaris 中,基于特定标准自动对所有数据链路指定通用名称。所有设备都具有相同的前缀 net。然而,基于以下条件指定实例编号:
物理网络设备是根据介质类型确定次序的,其中某些类型优先于其他类型。介质类型的优先顺序是降序,如下所示:
以太网
IP over IB(无限带宽设备)
Ethernet over IB
WiFi
在设备分组并按介质类型排序后,这些设备会根据其物理位置进一步排序,其中板载设备优先于外围设备。
对基于介质类型和位置具有较高优先级的设备指定较低的实例编号。
根据标准,采用较低的主板或 ioboard、hostbridge、PCIe rootcomplex、总线、设备和功能的以太网设备排在其他设备前面。
要显示链路名称、设备和位置之间的对应关系,使用 dladm show-phys 命令,如下所示:
# dladm show-phys -L LINK DEVICE LOCATION net0 e1000g0 MB net1 e1000g1 MB net2 e1000g2 MB net3 e1000g3 MB net4 ibp0 MB/RISER0/PCIE0/PORT1 net5 ibp1 MB/RISER0/PCIE0/PORT2 net6 eoib2 MB/RISER0/PCIE0/PORT1/cloud-nm2gw-2/1A-ETH-2 net7 eoib4 MB/RISER0/PCIE0/PORT2/cloud-nm2gw-2/1A-ETH-2
Oracle Solaris 在指定链路名称时使用前缀 net。但是,可以改用任何定制前缀,如 eth。如果您愿意,还可以禁用自动指定通用链路名称。
注意 - 定制自动指定通用链路名称的方式必须在安装 Oracle Solaris 之前进行。安装完成后,将无法在不破坏现有配置的情况下定制缺省链路名称。 |
要禁用自动链路命名或要定制链路名称的前缀,在自动安装 (Automated Install, AI) 程序使用的系统配置清单中设置以下属性。
<service name="network/datalink-management" version="1" type="service"> <instance name="default enabled="true"> <property_group name='linkname-policy' type='application'> <propval name='phys-prefix' type='astring' value='net'/> </property_group> </instance> </service
缺省情况下,phys-prefix 的值设置为 net,如强调文字所示。
要禁用自动命名,删除为 phys-prefix 设置的任何值。如果您禁用自动命名,则数据链路名称将基于其相关联的硬件驱动程序,如 bge0、e1000g0 等。
要使用不同于 net 的前缀,指定一个新前缀作为 phys-prefix 的值,如 eth。
如果为 phys-prefix 提供的值无效,则该值将被忽略。数据链路将根据其相关联的硬件驱动程序命名,如 bge0、e1000g0 等。有关有效链路名称的规则,请参见有效链路名称的规则。
在刚安装了此 Oracle Solaris 发行版的系统中,数据链路会自动命名为 net0 至 net N-1,其中 N 表示网络设备的总数。
如果您是从 Oracle Solaris 11 Express 升级到此发行版,则不会这样。在这种升级的系统上,数据链路保留自己在升级之前的名称。这些名称是缺省的基于硬件的名称,或在升级前由管理员指定给数据链路的定制名称。而且,在这些升级后的系统上,随后添加的新网络设备还保留缺省的基于硬件的名称,而不是接收通用名称。升级后的系统的这种行为确保不会有 OS 指定的通用名称与其他基于硬件的名称或管理员在升级前指定的定制名称相混合。
在具有此 Oracle Solaris 发行版的任何系统中,基于硬件的名称和 OS 提供的链路名称都可以替换为您喜欢使用的其他名称。通常情况下,由 OS 指定的缺省链路名称足够用于创建系统的网络配置。但是,如果您选择更改链路名称,注意以下各节中讨论的重要注意事项。
如果您的系统的链路具有基于硬件的名称,至少要使用通用名称重命名这些链路。如果保留链路的基于硬件的名称,以后移除或更换这些物理设备时,可能会产生混乱。
例如,您保留与设备 bge0 相关联的链路名称 bge0。并且在执行所有链路配置时都引用了该链路名称。之后,您可能要用 NIC e1000g 更换 NIC bge。要将以前的设备的链路配置重新应用于新的 NIC e1000g0,您需要将链路名称 bge0 重新指定为 e1000g0。基于硬件的链路名称 bge0 与不同的相关联的 NIC e1000g0 组合可能导致混乱。通过使用不基于硬件的名称,您可以更好地区分相关联的设备的链路。
虽然建议替换基于硬件的链路名称,但是您在重命名链路之前仍必须认真规划。更改设备的链路名称不会将新名称自动传播到所有现有的相关联配置。以下示例说明了更改链路名称的风险:
IP 过滤器配置中的一些规则会应用于特定链路。链路名称更改时,过滤器规则继续引用链路的原始名称。因此,在重命名链路之后,这些规则不再按预期那样起作用。您需要使用新链路名称调整过滤器规则以使其应用于链路。
考虑导出网络配置信息的可能性。如上所述,通过使用 OS 提供的缺省 net # 名称,您可以轻松地迁移区域和将网络配置导出到另一个系统。如果目标系统的网络设备是使用通用名称命名的,如 net0、net1 等,则区域仅继承其名称与指定给该区域的数据链路相匹配的数据链路的网络配置。
因此,作为一般规则,不要随机地重命名数据链路。当重命名数据链路时,确保在更改链路名称后链路的所有相关联的配置继续适用。一些可能会受重命名链路影响的配置如下:
IP 过滤器规则
在配置文件(如 /etc/dhcp.*)中指定的 IP 配置
Oracle Solaris 11 区域
autopush 配置
注 - 当您重命名链路时,无需对 autopush 配置进行任何更改。但是,您必须了解在链路被重命名后配置使用每链路 autopush 属性的方式。有关更多信息,请参见如何在数据链路上设置 STREAMS 模块。
指定链路名称时,遵守以下规则:
链路名称由一个字符串和一个物理连接点 (physical point of attachment, PPA) 编号组成。
该名称必须遵守以下约束:
名称包含 3 到 8 个字符。但是,名称最多可以有 16 个字符。
名称的有效字符有字母数字 (a-z, 0–9) 和下划线 ('_')。
注意 - 不要在链路名称中使用大写字母。 |
每个数据链路在同一时刻只能有一个链路名称。
每个数据链路在系统内必须具有唯一的链路名称。
注 - 作为附加限制,不能使用 lo0 作为灵活的链路名称。此名称保留为用于标识 IP 回送接口。
指定链路名称时,参考网络设置中链路的功能可能很有用。例如,可以将 netmgt0 指定给专用于网络管理的链路。将 Upstream2 用于连接到 ISP 的链路。作为一般规则,为了避免混淆,不要将已知设备的名称指定给您的链路。