跳过导航链接 | |
退出打印视图 | |
系统管理指南:IP 服务 Oracle Solaris 10 8/11 Information Library (简体中文) |
1. Oracle Solaris TCP/IP 协议套件(概述)
5. 配置 TCP/IP 网络服务和 IPv4 寻址(任务)
25. Oracle Solaris 中的 IP 过滤器(概述)
注 - 最初的 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-3 基本链路聚合的拓扑
图 6-4 描述具有两个系统的本地网络,其中每个系统都配置了一个聚合。这两个系统由交换机连接在一起。如果需要通过交换机运行聚合,则该交换机必须支持聚合技术。对于高可用性和冗余系统,此类型的配置尤其有用。
在该图中,系统 A 具有的聚合由两个接口(即 bge0 和 bge1)组成。这些接口通过聚合端口连接到交换机。系统 B 具有的聚合由四个接口(即 e1000g0 至 e1000g3)组成。这些接口也连接到交换机上的聚合端口。
图 6-4 具有交换机的链路聚合拓扑
背对背链路聚合拓扑涉及两个单独的系统,这两个系统通过电缆直接互连,如下图所示。这两个系统运行并行聚合。
图 6-5 基本的背对背聚合拓扑
在此图中,系统 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 的聚合。
例如,您可以为在本过程中创建的聚合创建以下文件:
# vi /etc/hostname.aggr1 192.168.84.14
# reboot -- -r
# 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.
示例 6-4 创建链路聚合
此示例说明用于创建具有两个设备(即 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,请务必为聚合配置主动模式。
# dladm modify-aggr -l LACP mode -t timer-value key
指示运行聚合的 LACP 模式。值包括 active、passive 和 off。
指示 LACP 计时器值(short 或 long)。
是标识聚合的编号。最小的密钥编号是 1。不允许将零用作密钥。
示例 6-5 修改链路聚合
此示例说明如何将聚合 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
示例 6-6 删除聚合中的接口
此示例说明如何删除聚合 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。不允许将零用作密钥。
示例 6-7 如何删除聚合
此示例说明如何删除聚合 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
# ifconfig aggrVIDkey plumb
其中
VLAN 的 ID
要基于其创建 VLAN 的链路聚合的密钥。密钥必须采用 3 位格式。例如,如果聚合的密钥是 1,那么 VLAN 名称中所包含的密钥号为 001。
示例 6-8 通过链路聚合配置多个 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