跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
Oracle Solaris 支持将网络接口组织到链路聚合中。链路聚合由系统上配置在一起作为单个逻辑单元的若干接口组成。链路聚合也称为中继,它在 IEEE 802.3ad Link Aggregation Standard(IEEE 802.3ad 链路聚合标准)中进行了定义。
IEEE 802.3ad 链路聚合标准提供了一种方法,可将多个全双工以太网链路的容量组合到单个逻辑链路中。然后此链路聚合组被视为单个链路,实际上也是这样。
增加了带宽-将多个链路的容量组合到一个逻辑链路中。
自动故障转移/故障恢复-将来自故障链路的通信转移到聚合中的工作链路。
负载平衡-传入和传出通信都是根据用户选择的负载平衡策略(如源和目标 MAC 或 IP 地址)进行指定的。
支持冗余-可以使用并行聚合来配置两个系统。
改进了管理-所有接口作为一个单元进行管理。
减少了网络地址池消耗-可以将一个 IP 地址指定给整个聚合。
基本链路聚合拓扑涉及由一组物理接口组成的单个聚合。在以下情况下,可能使用基本链路聚合:
对于运行具有分布式大通信流量的应用程序的系统,可以将聚合专用于该应用程序的通信流量。
对于具有有限的 IP 地址空间但仍需要很大带宽的站点,大的接口聚合仅需要一个 IP 地址。
对于需要隐藏内部接口的存在的站点,聚合的 IP 地址对外部应用程序隐藏其接口。
图 12-1 显示了承载常见 Web 站点的服务器的聚合。该站点需要增加带宽以满足 Internet 用户和站点数据库服务器之间的查询通信流量。出于安全目的,必须对外部应用程序隐藏服务器上各个接口的存在。解决方法是使用 IP 地址为 192.168.50.32 的聚合 aggr1。此聚合由三个接口(bge0 至 bge2)组成。这些接口专用于发出通信流量以响应用户查询。来自所有接口的包流量上的传出地址是aggr1 的 IP 地址,即 192.168.50.32。
图 12-1 基本链路聚合的拓扑
图 12-2 描述具有两个系统的本地网络,其中每个系统都配置了一个聚合。这两个系统由交换机连接在一起。如果需要通过交换机运行聚合,则该交换机必须支持聚合技术。对于高可用性和冗余系统,此类型的配置尤其有用。
在该图中,系统 A 具有的聚合由两个接口(即 bge0 和 bge1)组成。这些接口通过聚合端口连接到交换机。系统 B 具有的聚合由四个接口(即 e1000g0 至 e1000g3)组成。这些接口也连接到交换机上的聚合端口。
图 12-2 具有交换机的链路聚合拓扑
背对背链路聚合拓扑涉及两个单独的系统,这两个系统通过电缆直接互连,如下图所示。这两个系统运行并行聚合。
图 12-3 基本的背对背聚合拓扑
在此图中,系统 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 地址是唯一的。
某些设备不能满足 IEEE 802.3ad 链路聚合标准支持链路状态通知的要求。这种支持必须存在,才能将端口连接到聚合或从聚合中分离。不支持链路状态通知的设备只能通过使用 dladm create-aggr 命令的 -f 选项进行聚合。对于此类设备,始终将链路状态报告为 UP(活动)。有关使用 -f 选项的信息,请参见如何创建链路聚合。
可以对链路聚合指定灵活名称。可以将任何有意义的名称指定给链路聚合。有关灵活名称或定制名称的更多信息,请参见网络设备和数据链路名称。Oracle Solaris 早期发行版通过您指定给聚合的 key 值来标识链路聚合。有关此方法的说明,请参见链路聚合概述。虽然该方法仍有效,但是您最好使用定制名称来标识链路聚合。
与所有其他数据链路配置类似,链路聚合是使用 dladm 命令管理的。
下表中提供了有关管理链路聚合的各个过程的链接。
|
开始之前
注 - 链路聚合仅对以相同速度运行的全双工点对点链路起作用。确保聚合中的接口符合此要求。
如果要在聚合拓扑中使用交换机,请确保在该交换机上执行了以下操作:
配置了要用作聚合的端口
以主动模式或被动模式配置 LACP(如果交换机支持 LACP)
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# dladm show-link
如果数据链路正在使用,则 dladm show-link 的输出中的 STATE 字段将表明该链路为 up(活动)。因此:
# dladm show-link LINK CLASS MTU STATE BRIDGE OVER qfe3 phys 1500 up -- --
如果数据链路正在使用,则 ipadm show-if 语法的输出中将包含该链路上的 IP 接口。因此:
# ipadm show-if IFNAME CLASS STATE ACTIVE OVER lo0 loopback ok yes -- qfe3 ip ok no --
注 - 即使输出显示 offline(脱机)状态,数据链路仍在使用中,因为该链路上存在 IP 接口。
# ipadm delete-ip interface
其中
指定在该链路上创建的 IP 接口。
# dladm create-aggr [-f] -l link1 -l link2 [...] aggr
强制创建聚合。当试图聚合不支持链路状态通知的设备时,使用此选项。
指定要聚合的数据链路。
指定要分配给聚合的名称。
# ipadm create-ip interface
# ipadm create-addr interface -T static -a IP-address addrobj
其中 interface 应该采用聚合的名称,并且 addrobj 使用命名约定 interface/user-defined-string。
聚合的状态应该是 UP。
# dladm show-aggr
示例 12-1 创建链路聚合
本示例显示用于创建具有两个数据链路(subvideo0 和 subvideo1)的链路聚合的命令。配置在系统重新引导后仍持久存在。
# dladm show-link LINK CLASS MTU STATE BRIDGE OVER subvideo0 phys 1500 up -- ---- subvideo1 phys 1500 up46 -- ---- # ipadm delete-ip subvideo0 # ipadm delete-ip subvideo1 # dladm create-aggr -l subvideo0 -l subvideo1 video0 # ipadm create-ip video0 # ipadm create-addr -T static -a 10.8.57.50/24 video/v4 # dladm show-aggr LINK POLICY ADDRPOLICY LACPACTIVITY LACPTIMER FLAGS video0 L4 auto off short -----
当显示链路信息时,列表中包含该链路聚合。
# dladm show-link LINK CLASS MTU STATE BRIDGE OVER subvideo0 phys 1500 up -- ---- subvideo1 phys 1500 up -- ---- video0 aggr 1500 up -- subvideo0, subvideo1
此过程说明如何对聚合定义进行以下更改:
修改聚合的策略
更改聚合的模式
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# dladm modify-aggr -P policy-key aggr
表示策略 L2、L3 和 L4 中的一个或多个,如策略和负载平衡中所述。
指定要修改其策略的聚合。
# dladm modify-aggr -L LACP-mode -T timer-value aggr
指示运行聚合的 LACP 模式。值包括 active、passive 和 off。如果交换机在被动模式下运行 LACP,请务必为聚合配置主动模式。
指示 LACP 计时器值(short 或 long)。
示例 12-2 修改链路聚合
本示例说明如何将聚合 video0 的策略修改为 L2,然后打开主动 LACP 模式。
# dladm modify-aggr -P L2 video0 # dladm modify-aggr -L active -T short video0 # dladm show-aggr LINK POLICY ADDRPOLICY LACPACTIVITY LACPTIMER FLAGS video0 L2 auto active short -----
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# ipadm delete-ip interface
# dladm add-aggr -l link [-l link] [...] aggr
其中 link 表示要添加到聚合的数据链路。
例如,在图 12-3 所示的配置的情况下,您可能需要添加或修改电缆连接并重新配置交换机以容纳附加的数据链路。参考交换机文档,在交换机上执行任何重新配置任务。
示例 12-3 将链路添加到聚合
本示例说明如何将链路添加到聚合 video0。
# dladm show-link LINK CLASS MTU STATE BRODGE OVER subvideo0 phys 1500 up -- ---- subvideo1 phys 1500 up -- ---- video0 aggr 1500 up -- subvideo0, subvideo1 net3 phys 1500 unknown -- ---- # ipadm delete-ip video0 # dladm add-aggr -l net3 video0 # dladm show-link LINK CLASS MTU STATE BRIDGE OVER subvideo0 phys 1500 up -- ---- subvideo1 phys 1500 up -- ---- video0 aggr 1500 up -- subvideo0, subvideo1, net3 net3 phys 1500 up -- ----
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# dladm remove-aggr -l link aggr-link
示例 12-4 从聚合中删除链路
本示例说明如何从聚合 video0 中删除链路。
dladm show-link LINK CLASS MTU STATE OVER subvideo0 phys 1500 up -- ---- subvideo1 phys 1500 up -- ---- video0 aggr 1500 up -- subvideo0, subvideo1, net3 net3 phys 1500 up -- ---- # dladm remove-aggr -l net3 video0 # dladm show-link LINK CLASS MTU STATE BRIDGE OVER subvideo0 phys 1500 up -- ---- subvideo1 phys 1500 up -- ---- video0 aggr 1500 up -- subvideo0, subvideo1 net3 phys 1500 unknown -- ----
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
# ipadm delete-ip IP-aggr
其中 IP-aggr 是链路聚合上的 IP 接口。
# dladm delete-aggr aggr
示例 12-5 删除聚合
本示例删除聚合 video0。该删除具有永久性。
# ipadm delete-ip video0 # dladm delete-aggr video0