跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11 联网介绍 Oracle Solaris 11.1 Information Library (简体中文) |
从管理角度看,管理员在数据链路上创建 IP 接口。数据链路代表开放系统互连 (Open Systems Interconnection, OSI) 模型的第二层中的一个链路对象。物理链路与设备直接关联,并拥有一个设备名称。设备名称实质上是设备实例名称,其中包含驱动程序名称和设备实例编号。实例编号的值可以是从 0 到 n-1,具体取决于系统上有多少 NIC 使用该驱动程序。
以千兆以太网卡为例,它经常用作主机系统和服务器系统上的主 NIC。此 NIC 的一些典型驱动程序名称是 bge 和 e1000g。用作主 NIC 时,千兆以太网接口有一个设备名称,如 bge0 或 e1000g0。其他驱动程序名称包括 nge、nxge 等。
在此 Oracle Solaris 发行版中,设备实例名称继续依赖于底层硬件。但是,因为硬件层和软件层分离,这些设备之上的数据链路并没有同样地与硬件绑定。因此,为这些数据链路赋予的名称可以不同于其底层设备名称。
在 Oracle Solaris 11 中,缺省情况下会自动为数据链路提供通用名称。指定此名称时使用 net# 命名约定,其中 # 是实例编号。此实例编号随每个设备递增,例如 net0、net1、net2 等。
通用或灵活的链路名称为网络配置带来了诸多优势,如以下示例所示:
在单个系统中,动态重新配置 (dynamic reconfiguration, DR) 变得更容易。给定 NIC 的网络配置可以由不同的更换 NIC 继承。
在网络设置方面,区域迁移的复杂度降低了。如果目标系统的链路与在迁移之前为区域指定的链路具有相同的名称,则在迁移后的系统中,该区域将保留其网络配置。因此,在迁移后无需对区域进行任何额外的网络配置。
通用命名方案有助于进行在系统配置 (System Configuration, SC) 清单中指定的网络配置。所有系统的主网络数据链路通常命名为 net0。因此,通用 SC 清单可用于在多个系统中为 net0 指定配置。
数据链路管理也变得很灵活。您可以进一步定制数据链路的名称,例如用来反映数据链路提供的特定功能,如图 1-2 中所示。
下表说明了硬件 (NIC)、设备实例、链路名称以及链路上的接口之间的新对应关系。数据链路的名称由 OS 自动提供。
|
如表中所示,尽管设备实例名称仍基于硬件,但在 OS 安装后数据链路已由 OS 重命名。
要显示采用通用名称的数据链路与对应的设备实例之间的映射关系,可使用 dladm show-phys 子命令。例如:
# dladm show-phys LINK MEDIA STATE SPEED DUPLEX DEVICE net2 Ethernet up 1000 full bge2 net0 Ethernet up 1000 full e1000g0 net3 Ethernet up 1000 full nge3 net1 Ethernet up 1000 full e1000g1
在 Oracle Solaris 中,OS 基于特定标准为所有数据链路提供通用名称。所有设备都具有相同的前缀 net。但是,实例编号是基于以下标准指定的:
物理网络设备是根据介质类型确定次序的,其中某些类型优先于其他类型。介质类型按优先级降序排序,如下所示:
以太网
IP over IB(Infiniband 设备)
Ethernet over IB
WiFi
在设备分组并按介质类型排序后,这些设备会根据其物理位置进一步排序,其中板载设备优先于外围设备。
对基于介质类型和位置具有较高优先级的设备,会指定较低的实例编号。
根据这种标准,采用较低的主板、IO 板、主桥、PCIe 根联合体、总线、设备和功能的以太网设备将排在其他设备前面。
要显示链路名称、设备和位置之间的对应关系,可使用 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 之前进行。安装完成后,将无法在不删除现有配置的情况下定制缺省链路名称。 |
要禁用链路自动命名,或要定制链路名称前缀,请在系统配置 (System Configuration, SC) 清单中设置以下属性。SC 清单由 Oracle Solaris 的自动化安装程序 (Automated Installer, 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 11 发行版的系统上,数据链路将自动命名为 net0 到 netN-1,其中 N 代表网络设备总数。
与此相反,如果是由 Oracle Solaris 11 Express 升级而来,则数据链路将保留在升级之前为其设置的名称。这些名称要么是缺省的基于硬件的名称,要么是在升级前由管理员指定给数据链路的定制名称。而且,在这些升级的系统上,随后添加的新网络设备也保留缺省的基于硬件的名称,而不是获得通用名称。升级后系统的这种行为确保不会有 OS 指定的通用名称与其他基于硬件的名称或管理员在升级前指定的定制名称混合使用。
在装有 Oracle Solaris 11 的任何系统中,基于硬件的名称和 OS 提供的链路名称都可以替换为您喜欢使用的其他名称。通常情况下,由 OS 指定的缺省链路名称足够用于创建系统的网络配置。但是,要更改链路名称,请注意以下各节中讨论的一些重要注意事项。
如果您系统的链路具有基于硬件的名称,至少要将这些链路重命名为通用名称。如果保留基于硬件的名称,以后在移除或更换这些物理设备时可能会出现混乱。
例如,您保留与设备 bge0 相关联的链路名称 bge0。并且在执行所有链路配置时都引用了该链路名称。之后,您可能将 NIC bge 更换为 NIC e1000g。要将以前设备的链路配置重新应用于新的 NIC e1000g0,您需要将链路名称 bge0 重新指定给 e1000g0。由于基于硬件的链路名称 bge0 与关联的 NIC e1000g0 不同,这种组合可能导致混乱。通过使用不基于硬件的名称,您可以更好地将链路与相关联的设备进行区分。
尽管替换基于硬件的链路名称是最佳做法,但在重命名链路之前,仍然必须进行周密的规划。更改设备的链路名称不会将新名称自动传播到所有现有的相关联配置。以下示例说明了更改链路名称时的风险:
IP 过滤器配置中的一些规则应用于特定链路。更改链路名称时,这些过滤器规则会继续引用链路的原始名称。因此,在重命名链路之后,这些规则不再发挥预期的作用。您需要使用新链路名称调整过滤器规则,使其应用于链路。
请考虑导出网络配置信息的可能性。如前文所述,通过使用 OS 提供的 net# 缺省名称,您可以轻松地迁移区域并将网络配置导出到另一个系统。如果目标系统的网络设备是使用通用名称命名的,如 net0、net1 等,则区域将仅继承与指定给该区域的数据链路的名称相匹配的那些数据链路的网络配置。
因此,作为一般规则,不要随机地重命名数据链路。当重命名数据链路时,确保在更改链路名称后链路的所有关联配置继续适用。一些可能会受链路重命名影响的配置如下:
IP 过滤器规则
在诸如 /etc/dhcp.* 等配置文件中指定的 IP 配置
Oracle Solaris 11 区域
autopush 配置
注 - 当您重命名链路时,无需对 autopush 配置进行任何更改。但是,您必须了解在链路重命名后,配置使用每链路 autopush 属性的方式。有关更多信息,请参见《在 Oracle Solaris 11.1 中使用固定网络配置连接系统》中的"设置数据链路上的 STREAMS 模块"。
指定链路名称时,请遵守以下规则:
链路名称必须由一个字符串和一个物理连接点 (physical point of attachment, PPA) 编号组成。
链路名称必须遵守以下约束:
名称最好包含 3 到 8 个字符。但是,名称最多可以有 16 个字符。
名称的有效字符有字母数字 (a-z, 0–9) 和下划线 ('_')。
注意 - 不要在链路名称中使用大写字母。 |
每个数据链路在某一时刻只能有一个链路名称。
每个数据链路在系统内必须具有唯一的链路名称。
指定链路名称时,链路在网络设置中的作用可能是很有用的参考信息。例如,可以将 netmgt0 指定给专用于网络管理的链路。将 Upstream2 用于连接到 ISP 的链路。作为一般规则,为了避免混淆,不要将已知设备的名称指定给您的链路。