本章包含有关网络接口的任务和信息:
本章中的信息介绍从 Solaris 10 1/06 发行版开始的接口配置。如果使用 Solaris 10 的最初发行版 3/05,请参阅在 Solaris 10 3/05 中管理接口。有关 Oracle Solaris : 新增功能的完整列表以及 Oracle Solaris : 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》。
在 Solaris 10 1/06 中,引入了以下新功能:
在如何在安装系统后配置物理接口中,介绍了用于查看接口状态的新增 dladm 命令。
VLAN 支持已扩展到 GLDv3 接口,如管理虚拟局域网所述。
在链路聚合概述中介绍了链路聚合支持。
在 Solaris 10 7/07 中,/etc/inet/ipnodes 已过时。只能对早期 Solaris 10 发行版使用 /etc/inet/ipnodes,如以下各个过程中所述。
下表列出了配置网络接口的各种任务,包括 VLAN 和链路聚合等特殊配置。此表中包含对各项任务要完成的工作的说明,以及当前文档中详细介绍用于执行任务的特定步骤的章节。
任务 |
说明 |
参考 |
---|---|---|
检查系统上接口的状态。 |
列出系统上的所有接口,并检查已检测哪些接口。 | |
在安装系统后添加单个接口。 |
通过配置其他接口将系统更改为多宿主主机或路由器。 | |
SPARC: 检查接口的 MAC 地址是否唯一。 |
确保接口是使用其出厂安装的 MAC 地址而不是系统 MAC 地址(仅限 SPARC)配置的。 | |
规划虚拟局域网 (Virtual Local Area Network, VLAN)。 |
在创建 VLAN 之前执行必要的规划任务。 | |
配置 VLAN。 |
在网络上创建和修改 VLAN。 | |
计划聚合。 |
在配置聚合前先设计聚合并执行必要的规划任务。 | |
配置聚合。 |
执行各种与链路聚合相关的任务。 | |
规划并配置 IPMP 组。 |
为属于 IPMP 组的接口配置故障转移和故障恢复。 |
安装 Oracle Solaris : 后,您可能会在系统上配置或管理接口以达到以下目的:
升级系统使其成为多宿主主机。有关更多信息,请参阅配置多宿主主机。
将主机更改为路由器。有关配置路由器的说明,请参阅配置 IPv4 路由器。
将接口配置为 VLAN 的一部分。有关更多信息,请参阅管理虚拟局域网。
将接口配置为聚合的成员。有关更多信息,请参阅链路聚合概述。
将接口添加到 IPMP 组。有关配置 IPMP 组的说明,请参阅配置 IPMP 组。
本节包含有关配置单个网络接口的信息(从 Solaris 10 1/06 发行版开始)。有关将接口配置到以下分组之一的信息,请参阅以下各节:
从 Solaris 10 1/06 开始,此过程说明如何确定系统上当前可用的接口及其状态。此过程还显示当前已检测哪些接口。如果使用的是早期的 Solaris 10 3/05,请参阅如何获取有关特定接口的信息。
在要配置接口的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
确定当前在系统上安装了哪些接口。
# dladm show-link |
此步骤使用 dladm 命令(该命令在 dladm(1M) 手册页中详述)。此命令报告它找到的所有接口驱动程序,而不管接口当前是否已配置。
确定当前在系统上已检测哪些接口。
# ifconfig -a |
ifconfig 命令具有许多附加功能,其中包括检测接口。有关更多信息,请参阅 ifconfig(1M) 手册页。
以下示例说明 dladm 命令显示的状态。
# dladm show-link ce0 type: legacy mtu: 1500 device: ce0 ce1 type: legacy mtu: 1500 device: ce1 bge0 type: non-vlan mtu: 1500 device: bge0 bge1 type: non-vlan mtu: 1500 device: bge1 bge2 type: non-vlan mtu: 1500 device: bge2 |
dladm show-link 的输出指示本地主机可以使用四个接口驱动程序。可以针对 VLAN 配置 ce 和 bge 接口。但是,只有非 VLAN 类型的 GLDV3 接口才可以用于链路聚合。
以下示例说明 ifconfig -a 命令显示的状态。
# ifconfig -a lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 3 inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255 ether 0:3:ba:7:84:5e bge0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4>mtu 1500 index 2 inet 10.8.57.39 netmask ffffff00 broadcast 10.8.57.255 ether 0:3:ba:29:fc:cc |
ifconfig -a 命令的输出仅显示两个接口(ce0 和 bge0)的统计信息。此输出说明仅检测了 ce0 和 bge0,而且它们可以由网络通信流量使用。可以在 VLAN 中使用这些接口。由于已检测 bge0,无法在聚合中再使用此接口。
使用下一过程来配置接口。如果使用的是 Solaris 10 3/05 发行版,则应使用如何在安装后添加物理接口(仅适用于 Solaris 10 3/05)中的过程。
确保要配置的物理接口已安装在系统上。有关安装另行购买的 NIC 硬件的信息,请参阅 NIC 附带的制造商说明。
如果刚安装了接口,则在继续下一任务之前应执行重新配置引导。
在要配置接口的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
确定当前在系统上安装了哪些接口。
# dladm show-link |
# ifconfig interface plumb up |
例如,对于 qfe0,请键入:
# ifconfig qfe0 plumb up |
使用 ifconfig 命令显式配置的接口在重新引导后不会继续存在。
将 IPv4 地址和网络掩码指定给接口。
# ifconfig interface IPv4-address netmask+netmask |
例如,对于 qfe0,请键入:
# ifconfig qfe0 192.168.84.3 netmask + 255.255.255.0 |
可以使用传统的 IPv4 表示法或 CIDR 表示法指定 IPv4 地址。
验证新配置的接口是否已检测并配置,或者是否带有 "UP" 标志。
# ifconfig -a |
检查所显示的每个接口的状态行。确保状态行上的输出包含 UP 标志,例如:
qfe0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 |
(可选)要使接口配置在重新引导后继续存在,请执行以下步骤:
为要配置的每个接口创建 /etc/hostname.interface 文件。
例如,要添加 qfe0 接口,请创建以下文件:
# vi /etc/hostname.qfe0 |
如果为同一接口创建备用主机名文件,则备用文件也必须遵循命名格式 hostname.[0-9]*,如 hostname.qfe0.a123。诸如 hostname.qfe0.bak 或 hostname.qfe0.old 之类的名称无效,且会在系统引导期间被脚本忽略。
也请注意,一个给定的接口只能有一个相应的主机名文件。如果用有效的文件名为接口创建一个备用主机名文件,例如 /etc/hostname.qfe 和 /etc/hostname.qfe.a123,则引导脚本会尝试同时引用这两个主机名文件的内容来进行配置,因而会产生错误。要避免这些错误,请为给定配置中不使用的主机名文件使用无效的文件名。
编辑 /etc/hostname.interface 文件。
至少将接口的 IPv4 地址添加到该文件。可以使用传统的 IPv4 表示法或 CIDR 表示法指定接口的 IP 地址。还可以将网络掩码和其他配置信息添加到该文件。
有关如何将 IPv6 地址添加到接口,请参阅修改主机和服务器的 IPv6 接口配置。
对于 Solaris 10 11/06 和 Oracle Solaris 10 的早期发行版,将新接口的项添加到 /etc/inet/ipnodes 文件中。
将新接口的项添加到 /etc/inet/hosts 文件中。
执行重新配置引导。
# reboot -- -r |
验证是否已配置在 /etc/hostname. interface 文件中创建的接口。
# ifconfig -a |
有关示例,请参阅示例 6–2。
该示例说明如何将接口 qfe0 和 qfe1 配置为主机。这些接口在重新引导后仍继续存在。
# dladm show-link eri0 type: legacy mtu: 1500 device: eri0 qfe0 type: legacy mtu: 1500 device: qfe0 qfe1 type: legacy mtu: 1500 device: qfe1 qfe2 type: legacy mtu: 1500 device: qfe2 qfe3 type: legacy mtu: 1500 device: qfe3 bge0 type: non-vlan mtu: 1500 device: bge0 # vi /etc/hostname.qfe0 192.168.84.3 netmask 255.255.255.0 # vi /etc/hostname.qfe1 192.168.84.72 netmask 255.255.255.0 # vi /etc/inet/hosts # Internet host table # 127.0.0.1 localhost 10.0.0.14 myhost 192.168.84.3 interface-2 192.168.84.72 interface-3 For Solaris 10 11/06 and earlier releases:# vi /etc/inet/ipnodes 10.0.0.14 myhost 192.168.84.3 interface-2 192.168.84.72 interface-3 |
此时,可以重新引导系统。
# reboot -- -r |
引导系统后,验证接口配置。
ifconfig -a # ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 eri0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.14netmask ff000000 broadcast 10.255.255.255 ether 8:0:20:c1:8b:c3 qfe0:flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 192.168.84.3 netmask ffffff00 broadcast 192.255.255.255 ether 8:0:20:c8:f4:1d qfe1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 4 inet 192.168.84.72 netmask ffffff00 broadcast 10.255.255.255 ether 8:0:20:c8:f4:1e |
有关如何在接口上配置 IPv6 地址,请参阅如何启用当前会话的 IPv6 接口。
有关如何使用 IP 网络多路径 (IP Network Multipathing, IPMP) 为接口设置故障转移检测和故障恢复,请参阅第 31 章。
使用此过程可删除物理接口。如果使用的是早期的 Solaris 10 3/05,请参阅如何删除物理接口(仅适用于 Solaris 10 3/05)。
在要删除接口的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
删除物理接口。
# ifconfig interface down unplumb |
例如,要删除接口 qfe1,可键入:
# ifconfig qfe1 down unplumb |
使用此过程配置 MAC 地址。
一些应用程序要求主机上的每个接口都具有唯一的 MAC 地址。但是,每个基于 SPARC 的系统都具有系统范围的 MAC 地址,缺省情况下所有接口都使用该地址。以下是在 SPARC 系统上可能希望为接口配置出厂安装的 MAC 地址的两种情况。
对于链路聚合,应该在聚合配置中使用接口的出厂设置 MAC 地址。
对于 IPMP 组,组中的每个接口都必须具有唯一的 MAC 地址。这些接口必须使用其出厂安装的 MAC 地址。
EEPROM 参数 local-mac-address? 确定 SPARC 系统上的所有接口使用系统范围的 MAC 地址还是其唯一 MAC 地址。以下过程说明如何使用 eeprom 命令检查 local-mac-address? 的当前值以及更改它的值(如有必要)。
在要配置接口的系统上,承担主管理员角色或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
确定系统上的所有接口当前是否都使用系统范围的 MAC 地址。
# eeprom local-mac-address? local-mac-address?=false |
在此示例中,对 eeprom 命令的响应 local-mac-address?=false 表示所有接口确实使用了系统范围的 MAC 地址。local-mac-address?=false 的值必须先更改为 local-mac-address?=true,然后接口才能成为 IPMP 组的成员。对于聚合,也应该将 local-mac-address?=false 更改为 local-mac-address?=true。
如有必要,请按如下所示更改 local-mac-address? 的值:
# eeprom local-mac-address?=true |
重新引导系统时,具有出厂安装的 MAC 地址的接口现在使用这些出厂设置,而不是系统范围的 MAC 地址。没有出厂设置的 MAC 地址的接口继续使用系统范围的 MAC 地址。
检查系统上所有接口的 MAC 地址。
查找多个接口具有相同 MAC 地址的情况。在此示例中,所有接口都使用系统范围的 MAC 地址 8:0:20:0:0:1。
ifconfig -a lo0: flags=1000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.112 netmask ffffff80 broadcast 10.0.0.127 ether 8:0:20:0:0:1 ce0: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.114 netmask ffffff80 broadcast 10.0.0.127 ether 8:0:20:0:0:1 ce1: flags=1004843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.0.0.118 netmask ffffff80 broadcast 10.0.0.127 ether 8:0:20:0:0:1 |
仅当多个网络接口仍具有相同 MAC 地址时,才继续执行下一步。否则,转到最后一步。
如有必要,请手动配置其余的接口,以便所有接口都具有唯一的 MAC 地址。
在 /etc/hostname.interface 文件中为特定接口指定唯一的 MAC 地址。
在步骤 4 的示例中,需要用本地管理的 MAC 地址配置 ce0 和 ce1。例如,要用本地管理的 MAC 地址 06:05:04:03:02 重新配置 ce1,可将以下行添加到 /etc/hostname.ce1 中:
ether 06:05:04:03:02 |
要防止手动配置的 MAC 地址与网络中的其他 MAC 地址冲突所带来的任何风险,必须始终配置本地管理的 MAC 地址,如 IEEE 802.3 标准定义的那样。
也可以使用 ifconfig ether 命令为当前会话配置接口的 MAC 地址。但是,使用 ifconfig 直接进行的任何更改在重新引导后都不会保留。有关详细信息,请参阅 ifconfig(1M) 手册页。
重新引导系统。
网络接口提供系统和网络之间的连接。基于 Oracle Solaris : 的系统可以具有两种类型的接口:物理接口和逻辑接口。物理接口由软件驱动程序和连接网络介质(如以太网电缆)的连接器组成。可以对物理接口进行分组,以达到管理性或可用性目的。逻辑接口是在现有物理接口上配置的,通常用于在物理接口上添加地址和创建隧道端点。
逻辑网络接口在使用它们的任务 (如 IPv6 任务、IPMP 任务、DHCP 任务和其他任务)中说明。
大多数计算机系统至少有一个由制造商在主系统板上内置的物理接口。一些系统也可能具有多个内置接口。
除了内置接口外,您可以向系统添加另行购买的接口。另行购买的接口称为网络接口卡 (network interface card, NIC)。应按照制造商的说明安装 NIC。
NIC 也称为网络适配器。
在系统安装过程中,Oracle Solaris : 安装程序检测物理安装的任何接口并显示每个接口的名称。至少必须配置接口列表中的一个接口。在安装过程中配置的第一个接口成为主网络接口。主网络接口的 IP 地址与系统的已配置主机名(存储在 /etc/nodename 文件中)关联。但是,可以在安装过程中或稍后配置任何其他接口。
每个物理接口都由唯一的设备名称标识。设备名称的语法如下:
<driver-name><instance-number> |
Oracle Solaris : 系统上的驱动程序名称可能包括 ce、hme、bge、e1000g 和许多其他驱动程序名称。变量 instance-number 可以具有从零到 n 的值,具体取决于在系统上安装了多少个该驱动程序类型的接口。
以 100BASE-TX 快速以太网接口为例,该接口通常用作主机系统和服务器系统上的主网络接口。此接口的一些典型驱动程序名称是 eri、qfe 和 hme。在用作主网络接口时,快速以太网接口具有诸如 eri0 或 qfe0 之类的设备名称。
诸如 eri 和 hme 之类的 NIC 只有一个接口。但是,许多品牌的 NIC 有多个接口。例如,Quad 快速以太网 (qfe) 卡具有四个接口:从 qfe0 到 qfe3。
必须先对接口进行检测,之后它才能在系统和网络之间传递通信流量。检测过程涉及将接口与设备名称进行关联。然后,设置流以使 IP 协议可以使用该接口。物理接口和逻辑接口都必须进行检测。使用 ifconfig 命令的适当语法,作为引导序列的一部分或显式地检测接口。
在安装过程中配置接口时,将自动检测该接口。如果在安装过程中决定不在系统上配置其他接口,则不会检测这些接口。
从 Solaris 10 1/06 发行版开始,Oracle Solaris : 支持以下两种类型的接口:
传统接口-这些接口是 DLPI 接口和 GLDv2 接口。一些传统接口类型是 eri、qfe 和 ce。使用 dladm show-link 命令检查接口状态时,这些接口将被报告为“传统”。
非 VLAN 接口-这些接口是 GLDv3 接口。
目前以下接口类型支持 GLDv3: bge、xge 和 e1000g。
如果使用的是早期的 Solaris 10 3/05,请参阅配置 VLAN(仅适用于 Solaris 10 3/05)。
虚拟局域网 (virtual local area network, VLAN) 是在 TCP/IP 协议栈的数据链路层上对局域网的细分。可以为采用交换机技术的局域网创建 VLAN。通过将用户组指定给 VLAN,可以加强整个本地网络的网络管理和安全性。还可以将同一系统上的接口指定给不同的 VLAN。
如果需要实现以下目的,请考虑将本地网络划分为多个 VLAN:
创建工作组的逻辑分区。
例如,假定某楼层的所有主机都连接到一个基于交换的本地网络。可以为该楼层的每个工作组创建单独的 VLAN。
对各个工作组强制实施不同的安全策略。
例如,财务部和信息技术部的安全需求大不相同。如果这两个部门的系统共享同一本地网络,则可以为每个部门创建单独的 VLAN。然后,基于每个 VLAN 强制实施适当的安全策略。
将工作组拆分为易管理的广播域。
使用 VLAN 可减小广播域的大小并提高网络效率。
使用交换 LAN 技术,可以将本地网络中的系统组织到 VLAN 中。将本地网络划分为 VLAN 之前,必须先获取支持 VLAN 技术的交换机。可以对交换机上的所有端口进行配置,使其为单个 VLAN 或多个 VLAN 提供服务,具体取决于 VLAN 拓扑设计。配置交换机端口的过程因交换机制造商而异。
下图显示了子网地址为 192.168.84.0 的局域网。此 LAN 已细分为三个 VLAN:红 VLAN、黄 VLAN 和蓝 VLAN。
LAN 192.168.84.0 上的连通性由交换机 1 和交换机 2 处理。红 VLAN 包含会计工作组中的系统。人力资源工作组的系统位于黄 VLAN 中。信息技术工作组的系统被指定给蓝 VLAN。
局域网中的每个 VLAN 都由 VLAN 标记或 VLAN ID (VID) 标识。VID 是在 VLAN 配置过程中指定的。VID 是一个介于 1 和 4094 之间的 12 位标识符,为每个 VLAN 提供唯一标识。在图 6–1 中,红 VLAN 的 VID 是 789,黄 VLAN 的 VID 是 456,蓝 VLAN 的 VID 是 123。
配置交换机使其支持 VLAN 时,需要为每个端口指定 VID。端口上的 VID 必须与指定给该端口所连接的接口的 VID 相同,如下图所示。
图 6–2 显示了连接到不同 VLAN 的多台主机。两台主机属于同一个 VLAN。在此图中,三台主机的主网络接口连接到交换机 1。主机 A 是蓝 VLAN 的成员。因此,主机 A 的接口配置为 VID 123。此接口连接到交换机 1 上的端口 1,该端口随后被配置为 VID 123。主机 B 是 VID 为 456 的黄 VLAN 的成员。主机 B 的接口连接到交换机 1 上的端口 5,该端口随后被配置为 VID 456。最后,主机 C 的接口连接到交换机 1 上的端口 9。蓝 VLAN 被配置为 VID 123。
该图还显示了一台主机也可以属于多个 VLAN。例如,主机 A 通过主机的接口配置了两个 VLAN。第二个 VLAN 被配置为 VID 456,并连接到端口 3,而端口 3 也被配置为 VID 456。因此,主机 A 同是蓝 VLAN 和黄 VLAN 的成员。
在 VLAN 配置过程中,必须指定 VLAN 的物理连接点(即 PPA)。使用以下公式可以获得 PPA 值:
driver-name + VID * 1000 + device-instance |
请注意,device-instance 编号必须小于 1000。
例如,若要将 ce1 接口配置为 VLAN 456 的一部分,则创建以下 PPA:
ce + 456 * 1000 + 1= ce456001 |
使用以下过程可规划网络上的 VLAN。
检查本地网络拓扑,并确定在何处划分 VLAN 比较合适。
有关此类拓扑的基本示例,请参阅图 6–1。
创建 VID 的编号方案,并将 VID 指定给每个 VLAN。
VLAN 编号方案可能已存在于网络中。如果是这样,则必须在现有的 VLAN 编号方案中创建 VID。
在每个系统上,确定哪些接口将是特定 VLAN 的成员。
并非系统上的所有接口都一定要在同一 VLAN 上进行配置。
检查接口与网络交换机的连接。
记下每个接口的 VID 以及每个接口所连接到的交换机端口。
用与所连接到的接口相同的 VID 配置交换机的每个端口。
有关配置说明,请参阅交换机制造商的文档。
如果使用的是早期的 Solaris 10 3/05,请参阅配置 VLAN(仅适用于 Solaris 10 3/05)。
目前,Oracle Solaris : 在以下接口类型上支持 VLAN:
ce
bge
xge
e1000g
对于传统接口类型,只有 ce 接口可以成为 VLAN 的成员。可以在同一 VLAN 中配置不同类型的接口。
可以配置多个 VLAN 到 IPMP 组中。有关 IPMP 组的更多信息,请参阅IPMP 接口配置。
如果使用的是 Solaris 10 3/05,则应使用如何配置静态 VLAN(仅适用于 Solaris 10 3/05)中的过程。
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
确定正在系统上使用的接口的类型。
# dladm show-link |
以下输出显示可用的接口类型:
ce0 type: legacy mtu: 1500 device: ce0 ce1 type: legacy mtu: 1500 device: ce1 bge0 type: non-vlan mtu: 1500 device: bge0 bge1 type: non-vlan mtu: 1500 device: bge1 bge2 type: non-vlan mtu: 1500 device: bge2 |
# ifconfig interface-PPA plumb IP-address up |
例如,可以使用以下命令,将新 IP 地址为 10.0.0.2 的接口 ce1 配置到 VID 为 123 的 VLAN 中:
# ifconfig ce123001 plumb 10.0.0.2 up |
您可以将 IPv4 和 IPv6 地址指定给 VLAN,就像您对其他接口所执行的那样。
(可选)要使 VLAN 设置在重新引导后继续存在,请为配置为 VLAN 的一部分的每个接口创建 hostname.interface-PPA 文件。
# cat hostname.interface-PPA IPv4-address |
在交换机上,设置 VLAN 标记和 VLAN 端口,使之与在系统上设置的 VLAN 相对应。
此示例说明如何将设备 bge1 和 bge2 配置到 VID 为 123 的 VLAN 中。
# dladm show-link ce0 type: legacy mtu: 1500 device: ce0 ce1 type: legacy mtu: 1500 device: ce1 bge0 type: non-vlan mtu: 1500 device: bge0 bge1 type: non-vlan mtu: 1500 device: bge1 bge2 type: non-vlan mtu: 1500 device: bge2 # ifconfig bge123001 plumb 10.0.0.1 up # ifconfig bge123002 plumb 10.0.0.2 up # cat hostname.bge123001 10.0.0.1 # cat hostname.bge123002 10.0.0.2 # ifconfig -a lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 bge123001: flags=201000803<UP,BROADCAST,MULTICAST,IPv4,CoS> mtu 1500 index 2 inet 10.0.0.1 netmask ff000000 broadcast 10.255.255.255 ether 0:3:ba:7:84:5e bge123002:flags=201000803 <UP,BROADCAST,MULTICAST,IPv4,CoS> mtu 1500 index 3 inet 10.0.0.2 netmask ff000000 broadcast 10.255.255.255 ether 0:3:ba:7:84:5e ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4>mtu 1500 index 4 inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255 ether 0:3:ba:7:84:5e # dladm show-link ce0 type: legacy mtu: 1500 device: ce0 ce1 type: legacy mtu: 1500 device: ce1 bge0 type: non-vlan mtu: 1500 device: bge0 bge1 type: non-vlan mtu: 1500 device: bge1 bge2 type: non-vlan mtu: 1500 device: bge2 bge123001 type: vlan 123 mtu: 1500 device: bge1 bge123002 type: vlan 123 mtu: 1500 device: bge2 |
最初的 Oracle Solaris 10 发行版和更早的 Oracle Solaris : 版本不支持链路聚合。要为这些早期的 Oracle Solaris : 发行版创建链路聚合,请使用 Sun Trunking,如《Sun Trunking 1.3 Installation and Users Guide》所述。
Oracle Solaris : 支持将网络接口组织到链路聚合中。链路聚合由系统上配置在一起作为单个逻辑单元的若干接口组成。链路聚合也称为中继,它在 IEEE 802.3ad Link Aggregation Standard(IEEE 802.3ad 链路聚合标准) 中进行了定义。
IEEE 802.3ad 链路聚合标准提供了一种方法,可将多个全双工以太网链路的容量组合到单个逻辑链路中。然后此链路聚合组被视为单个链路,实际上也是这样。
增加了带宽-将多个链路的容量组合到一个逻辑链路中。
自动故障转移/故障恢复-将来自故障链路的通信转移到聚合中的工作链路。
负载平衡-传入和外发通信都是根据用户选择的负载平衡策略(如源和目标 MAC 或 IP 地址)进行分配的。
支持冗余-可以使用并行聚合来配置两个系统。
改进了管理-所有接口作为一个单元进行管理。
减少了网络地址池消耗-可以将一个 IP 地址指定给整个聚合。
基本链路聚合拓扑涉及由一组物理接口组成的单个聚合。在以下情况下,可能使用基本链路聚合:
对于运行具有分布式大通信流量的应用程序的系统,可以将聚合专用于该应用程序的通信流量。
对于具有有限的 IP 地址空间但仍需要很大带宽的站点,大的接口聚合仅需要一个 IP 地址。
对于需要隐藏内部接口的存在的站点,聚合的 IP 地址对外部应用程序隐藏其接口。
图 6–3 显示了承载常见 Web 站点的服务器的聚合。该站点需要增加带宽以满足 Internet 用户和站点数据库服务器之间的查询通信流量。出于安全目的,必须对外部应用程序隐藏服务器上各个接口的存在。解决方案是使用 IP 地址为 192.168.50.32 的聚合 aggr1。此聚合由三个接口(bge0 至 bge2)组成。这些接口专用于发出通信流量以响应用户查询。来自所有接口的包流量上的传出地址是aggr1 的 IP 地址,即 192.168.50.32。
图 6–4 描述具有两个系统的本地网络,其中每个系统都配置了一个聚合。这两个系统由交换机连接在一起。如果需要通过交换机运行聚合,则该交换机必须支持聚合技术。对于高可用性和冗余系统,此类型的配置尤其有用。
在该图中,系统 A 具有的聚合由两个接口(即 bge0 和 bge1)组成。这些接口通过聚合端口连接到交换机。系统 B 具有的聚合由四个接口(即 e1000g0 至 e1000g3)组成。这些接口也连接到交换机上的聚合端口。
背对背链路聚合拓扑涉及两个单独的系统,这两个系统通过电缆直接互连,如下图所示。这两个系统运行并行聚合。
在此图中,系统 A 上的设备 bge0 直接链接到系统 B 上的 bge0,依此类推。这样,系统 A 和 B 可以支持冗余和高可用性,以及这两个系统之间的高速通信。每个系统还将接口 ce0 配置为用于本地网络内的通信流。
背对背链路聚合最常见的应用是镜像数据库服务器。这两个服务器需要一起更新,因此需要很大的带宽、高速通信流和可靠性。最常使用背对背链路聚合的是数据中心。
如果计划使用链路聚合,请考虑定义传出通信的策略。此策略可以指定希望如何在聚合的可用链路之间分配包,从而建立负载平衡。以下是可能用于聚合策略的层说明符及其意义:
L2-通过散列每个包的 MAC (L2) 头来确定传出链路
L3-通过散列每个包的 IP (L3) 头来确定传出链路
L4-通过散列每个包的 TCP、UDP 或其他 ULP (L4) 头来确定传出链路
这些策略的任意组合也是有效的。缺省策略是 L4。有关更多信息,请参阅 dladm(1M) 手册页。
如果聚合拓扑涉及通过交换机的连接,则必须注意此交换机是否支持链路聚合控制协议 (link aggregation control protocol, LACP)。如果交换机支持 LACP,则必须为交换机和聚合配置 LACP。但是,可以定义运行 LACP 的以下模式之一:
关闭模式-聚合的缺省模式。不生成 LACP 包(称为 LACPDU)。
主动模式-系统按固定的时间间隔(您可以指定该时间间隔)生成 LACPDU。
被动模式-系统仅在从交换机收到 LACPDU 时才生成 LACPDU。如果聚合和交换机均在被动模式下进行配置,则它们无法交换 LACPDU。
有关语法信息,请参见 dladm(1M) 手册页和交换机制造商文档。
链路聚合配置必须符合以下要求:
必须使用 dladm 命令配置聚合。
已检测的接口不能成为聚合的成员。
聚合中的所有接口必须以相同的速度和全双工模式运行。
必须将 EEPROM 参数 local-mac-address? 中的 MAC 地址值设置为 "true"。有关说明,请参阅如何确保接口的 MAC 地址是唯一的。
链路聚合仅对以相同速度运行的全双工点对点链路起作用。确保聚合中的接口符合此要求。
如果要在聚合拓扑中使用交换机,请确保在该交换机上执行了以下操作:
配置了要用作聚合的端口
以主动模式或被动模式配置 LACP(如果交换机支持 LACP)
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
确定当前在系统上安装了哪些接口。
# dladm show-link |
确定已检测哪些接口。
# ifconfig -a |
# dladm create-aggr -d interface -d interface [...]key |
表示要成为聚合一部分的接口的设备名称。
是标识聚合的编号。最小的密钥编号是 1。不允许将零用作密钥。
例如:
# dladm create-aggr -d bge0 -d bge1 1 |
配置并检测新创建的聚合。
# ifconfig aggrkey plumb IP-address up |
例如:
# ifconfig aggr1 plumb 192.168.84.14 up |
# dladm show-aggr |
将看到以下输出:
key: 1 (0x0001) policy: L4 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state bge0 0:3:ba:7:b5:a7 1000 Mbps full up attached bge1 0:3:ba:8:22:3b 0 Mbps unknown down standby |
该输出显示已创建一个密钥为 1、策略为 L4 的聚合。
(可选)使链路聚合的 IP 配置在重新引导后继续存在。
对于具有 IPv4 地址的链路聚合,创建一个 /etc/hostname.aggrkey 文件。对于基于 IPv6 的链路聚合,创建一个 /etc/hostname6.aggrkey 文件。
将链路聚合的 IPv4 或 IPv6 地址输入到该文件中。
例如,您可以为在本过程中创建的聚合创建以下文件:
# vi /etc/hostname.aggr1 192.168.84.14 |
执行重新配置引导。
# reboot -- -r |
验证您在 /etc/hostname.aggrkey 文件中输入的链路聚合配置是否已配置。
# ifconfig -a . . aggr1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 192.168.84.14 netmask ff000000 broadcast 192.255.255. |
此示例说明用于创建具有两个设备(即 bge0 和 bge1)的链路聚合的命令,以及命令的输出。
# dladm show-link ce0 type: legacy mtu: 1500 device: ce0 ce1 type: legacy mtu: 1500 device: ce1 bge0 type: non-vlan mtu: 1500 device: bge0 bge1 type: non-vlan mtu: 1500 device: bge1 bge2 type: non-vlan mtu: 1500 device: bge2 # ifconfig -a lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255 ether 0:3:ba:7:84:5e # dladm create-aggr -d bge0 -d bge1 1 # ifconfig aggr1 plumb 192.168.84.14 up # dladm show-aggr key: 1 (0x0001) policy: L4 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state bge0 0:3:ba:7:b5:a7 1000 Mbps full up attached bge1 0:3:ba:8:22:3b 0 Mbps unknown down standby # ifconfig -a lo0: flags=2001000849 <UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 ce0: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.84.253 netmask ffffff00 broadcast 192.168.84.255 ether 0:3:ba:7:84:5e aggr1: flags=1000843 <UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 192.168.84.14 netmask ff000000 broadcast 192.255.255.255 ether 0:3:ba:7:84:5e |
请注意,用于聚合的两个接口以前没有经过 ifconfig 检测。
此过程说明如何对聚合定义进行以下更改:
修改聚合的策略
更改聚合的模式
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# dladm modify-aggr -Ppolicy key |
表示策略 L2、L3 和 L4 中的一个或多个,如策略和负载平衡中所述。
是标识聚合的编号。最小的密钥编号是 1。不允许将零用作密钥。
如果 LACP 正运行在聚合中的设备所连接到的交换机上,则修改该聚合使其支持 LACP。
如果交换机在被动模式下运行 LACP,请务必为聚合配置主动模式。
# dladm modify-aggr -l LACP mode -t timer-value key |
指示运行聚合的 LACP 模式。值包括 active、passive 和 off。
指示 LACP 计时器值(short 或 long)。
是标识聚合的编号。最小的密钥编号是 1。不允许将零用作密钥。
此示例说明如何将聚合 aggr1 的策略修改为 L2,并在随后打开活动 LACP 模式。
# dladm modify-aggr -P L2 1 # dladm modify-aggr -l active -t short 1 # dladm show-aggr key: 1 (0x0001) policy: L2 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state bge0 0:3:ba:7:b5:a7 1000 Mbps full up attached bge1 0:3:ba:8:22:3b 0 Mbps unknown down standby |
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# dladm remove-aggr -d interface |
此示例说明如何删除聚合 aggr1 的接口。
# dladm show-aggr key: 1 (0x0001) policy: L2 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state bge0 0:3:ba:7:b5:a7 1000 Mbps full up attached bge1 0:3:ba:8:22:3b 0 Mbps unknown down standby # dladm remove-aggr -d bge1 1 # dladm show-aggr key: 1 (0x0001) policy: L2 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state bge0 0:3:ba:7:b5:a7 1000 Mbps full up attached |
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
删除聚合。
# dladm delete-aggr key |
是标识聚合的编号。最小的密钥编号是 1。不允许将零用作密钥。
此示例说明如何删除聚合 aggr1。
# dladm show-aggr key: 1 (0x0001) policy: L2 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state # dladm delete-aggr -d 1 |
与通过接口配置 VLAN 的方式一样,也可以基于链路聚合创建 VLAN。管理虚拟局域网中对 VLAN 进行了介绍。本节综合介绍了如何配置 VLAN 和链路聚合。
首先使用有效的 IP 地址配置链路聚合。请记下聚合的 key 的值,在通过聚合创建 VLAN 时将需要该值。要创建链路聚合,请参阅如何创建链路聚合。
如果先前已经创建链路聚合,请获取该聚合的密钥。
# dladm show-aggr |
通过链路聚合创建 VLAN。
# ifconfig aggrVIDkey plumb |
其中
VLAN 的 ID
要基于其创建 VLAN 的链路聚合的密钥。密钥必须采用 3 位格式。例如,如果聚合的密钥是 1,那么 VLAN 名称中所包含的密钥号为 001。
重复步骤 2,通过聚合创建其他 VLAN。
使用有效的 IP 地址配置 VLAN。
要创建持久的 VLAN 配置,请将 IP 地址信息添加到相应的 /etc/hostname.VLAN 配置文件。
在此示例中,基于链路聚合配置了两个 VLAN。dladm show-aggr 命令的输出指示链路聚合的密钥是 1。为 VLAN 指定的 VID 分别为 193 和 194。
# dladm show-aggr key: 1 (0x0001) policy: L4 address: 0:3:ba:7:84:5e (auto) device address speed duplex link state bge0 0:3:ba:7:b5:a7 1000 Mbps full up attached bge1 0:3:ba:8:22:3b 0 Mbps unknown down standby # ifconfig aggr193001 plumb # ifconfig aggr193001 192.168.10.5/24 up # ifconfig aggr194001 plumb # ifconfig aggr194001 192.168.10.25/24 up # vi /etc/hostname.aggr193001 192.168.10.5/24 # vi /etc/hostname.aggr194001 192.168.10.25/24 |