ether channelの設定方法についてまとめます。PAgP, LACP程度の概念だけでなく、Load BalancingアルゴリズムやLACP decision makerなどのより深い動作も理解しておきましょう。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Switch(config)# port-channel load-balance [< dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac >] Switch(config)# lacp system-priority priority <priority> Switch(config-if)# channel-group <num> mode [< active | auto | desirable | on | passive >] Switch(config-if)# pagp learn-method [< aggregation-port | physical-port >] Switch(config-if)# pagp port-priority <priority> Switch(config-if)# lacp port-priority <priority>
構成図
下記構成で動作確認を行います。
f0/13-15 +------------+ +------------+ | +----------+ | | SW 1 +----------+ SW 2 | | +----------+ | +------------+ +------------+ f0/13-15
[SW1] vlan 10,20 ! interface Vlan10 ip address 192.168.10.1 255.255.255.0 ! interface Vlan20 ip address 192.168.20.1 255.255.255.0 [SW2] vlan 10,20 ! interface Vlan10 ip address 192.168.10.2 255.255.255.0 ! interface Vlan20 ip address 192.168.20.2 255.255.255.0
設定全文は下記ファイルです。詳細設定は下記を参照ください。
仕様説明
基本設定
以下のコマンドでether channelを定義する事ができます。なお、non-silentは対抗機がPAgP対応している場合に使用可能なオプションです。対抗機からのPAgPフレームがない場合はdown状態にする事で片方向リンク障害を検知する事ができます。
Switch(config-if)# channel-group <num> mode [< active | auto [non-silent] | desirable [non-silent] | on | passive >]
なお、物理interfaceとport channel interfaceの設定は必ず一致させるように注意して下さい。例えば、物理interfaceがrouted port(no switchport)ならば、port channel interfaceもrouted portになるように設定する必要があります。設定例は以下の通りです。
interface range FastEthernet 0/13 - 15 switchport trunk encapsulation dot1q switchport mode trunk channel-group 12 mode on ! interface Port-channel12 switchport trunk encapsulation dot1q switchport mode trunk
ロードバランスアルゴリズム
以下のコマンドで、channelをロードバランスするアルゴリズムを決定する事ができます。
Switch(config)# port-channel load-balance [< dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac >]
PAgP legacy 対応
catalyst switchには、”pagp learn-method”, “port-priority”という下位互換のためのコマンドが存在します。これらコマンドは基本的に投入する必要はありませんが、cat 1900 seriesのようなlegacy機器と接続する場合はこれらコマンドが必要です。
switchのMAC addressを学習する方式として、以下2方式が存在します。legacy機器と接続する場合は、physical leanerを設定する必要があります。設定コマンドは以下の通りです。
learning method | 説明 |
---|---|
aggregation-port learner | 論理port(channel)に基づくMAC addressの学習を行います。 殆どの機器のデフォルト設定は、aggregation-port learnerです。 |
physical-port learner | 物理portに基づくMAC addressの学習を行います。 cat 1900のようなlegacy機器はaggregation-port learnerのみ対応しております。 |
Switch(config-if)# pagp learn-method [< aggregation-port | physical-port >]
physical-port learnerを使用する場合は、”channelになりやすさ”の優先度を定義する事ができます。以下のコマンドでpriorityを定義する事ができ、値が大きいほどchannelになりやすくなります。
Switch(config-if)# pagp port-priority <priority>
physical-port learnerを使用する場合は、MAC address tableがフラッピングしないようロードバランシングアルゴリズムをsrc-macとして下さい。
Switch(config)# port-channel load-balance src-mac
LACP decision maker
LACPは最大16個まで設定可能で、そのうち最大8個までがActiveになる事ができます。どのinterfaceがActiveになるかはpriorityに基づいて決定します。
LACPはLACP sys-idが小さいスイッチがどのinterfaceがActiveになるかの決定権を持ちます。LACP sys-idは16bitのLACP system priorityと32bitのMAC addressによって構成されます。LADP system priorityの設定コマンドは以下の通りです。
Switch(config)# lacp system-priority priority <priority>
LACPの決定権を取得したスイッチは、LACP port idが小さいportをLACPのメンバーとします。LACP port idは16bitのLACP port priorityとport番号によって構成されます。LACP port priorityの設定コマンドは以下の通りです。
Switch(config-if)# lacp port-priority <priority>
基本設定
設定投入
SW1, SW2間でchannelを構成します。
[SW1, SW2] interface range FastEthernet 0/13 - 15 switchport trunk encapsulation dot1q switchport mode trunk channel-group 12 mode on ! interface Port-channel12 switchport trunk encapsulation dot1q switchport mode trunk
動作確認
channelが形成された事を確認します。以下showコマンドで”P”と出力される事を確認します。
[SW1] SW1#show etherchannel summary Flags: D - down P - bundled in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator M - not in use, minimum links not met u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 1 Number of aggregators: 1 Group Port-channel Protocol Ports ------+-------------+-----------+----------------------------------------------- 12 Po12(SU) - Fa0/13(P) Fa0/14(P) Fa0/15(P) SW1#
SW1, SW2間の疎通も確認しておきましょう。
[SW1] SW1#ping 192.168.10.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/9 ms SW1#ping 192.168.20.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/5/9 ms SW1#
ロードバランスアルゴリズム
設定投入
以下コマンドでロードバランシングアルゴリズムを変更します。
[SW1, SW2] port-channel load-balance src-dst-ip
動作確認
以下showコマンドにより、ロードバランシングアルゴリズムが変わった事を確認します。
[SW1] SW1#show etherchannel load-balance EtherChannel Load-Balancing Configuration: src-dst-ip EtherChannel Load-Balancing Addresses Used Per-Protocol: Non-IP: Source XOR Destination MAC address IPv4: Source XOR Destination IP address IPv6: Source XOR Destination IP address SW1#
PAgP legacy 対応
設定投入
Legacy機器とのPAgP接続を担保する設定例は以下の通りです。
[SW1, SW2] port-channel load-balance src-mac ! interface range FastEthernet 0/13 - 15 channel-group 12 mode desirable pagp learn-method physical-port ! interface FastEthernet0/13 pagp port-priority 255
動作確認
showコマンドにより設定を確認します。Learning MethodやPAgP Priorityが変化している事が読み取れます。
[SW1] SW1#show pagp internal Flags: S - Device is sending Slow hello. C - Device is in Consistent state. A - Device is in Auto mode. d - PAgP is down Timers: H - Hello timer is running. Q - Quit timer is running. S - Switching timer is running. I - Interface timer is running. Channel group 12 Hello Partner PAgP Learning Group Port Flags State Timers Interval Count Priority Method Ifindex Fa0/13 SC U6/S7 H 30s 1 255 Phy 5012 Fa0/14 SC U6/S7 H 30s 1 128 Phy 5012 Fa0/15 SC U6/S7 H 30s 1 128 Phy 5012 SW1#
LACP decision maker
設定投入
Legacy機器とのPAgP接続を担保する設定例は以下の通りです。
[SW1] lacp system-priority 1 ! interface range FastEthernet 0/13 - 15 no channel-group 12 channel-group 12 mode active ! interface FastEthernet0/14 lacp port-priority 0 [SW2] interface range FastEthernet 0/13 - 15 no channel-group 12 channel-group 12 mode active
動作確認
以下のdebugを有効にし、po12をshut/no shutします。f0/14, f0/13, f0/15と、LACP port priorityが小さい順にchannelに加わっている様子が読み取れます。
[SW1] SW1#debug etherchannel event PAgP/LACP Shim Events debugging is on SW1# SW1#conf t Enter configuration commands, one per line. End with CNTL/Z. SW1(config)#inter SW1(config)#interface Port-channel 12 SW1(config-if)#shutdown SW1(config-if)# <omitted> SW1(config-if)#no shutdown <omitted> SW1(config-if)# *Mar 1 00:54:29.929: FEC: pagp_switch_add_port_to_agport_list: afb->nports++ = 1 [Fa0/14] *Mar 1 00:54:29.929: FEC: lacp_switch_add_port_to_agport_internal: Fa0/14 added to aggregator Po12 list SW1(config-if)# *Mar 1 00:54:31.708: FEC: pagp_switch_add_port_to_agport_list: afb->nports++ = 2 [Fa0/13] *Mar 1 00:54:31.708: FEC: lacp_switch_add_port_to_agport_internal: Fa0/13 added to aggregator Po12 list *Mar 1 00:54:31.884: FEC: pagp_switch_add_port_to_agport_list: afb->nports++ = 3 [Fa0/15] *Mar 1 00:54:31.884: FEC: lacp_switch_add_port_to_agport_internal: Fa0/15 added to aggregator Po12 list SW1(config-if)# *Mar 1 00:54:32.613: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/14, changed state to up *Mar 1 00:54:32.714: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/13, changed state to up *Mar 1 00:54:33.008: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/15, changed state to up SW1(config-if)# *Mar 1 00:54:33.595: %LINK-3-UPDOWN: Interface Port-channel12, changed state to up *Mar 1 00:54:34.602: %LINEPROTO-5-UPDOWN: Line protocol on Interface Port-channel12, changed state to up SW1(config-if)#