はじめに
Cisco Catalyst スイッチで複数の物理リンクを束ねる EtherChannel は、スイッチ間接続の冗長化と帯域確保の定番技術です。ただ、設定時には channel-group コマンドで 5 つのモード(active / passive / desirable / auto / on)から選択する必要があり、「どれを選ぶべきか」「対向とどう組み合わせれば成立するのか」で迷いやすいポイントになっています。モードの選択を誤ると、LAG が成立しないだけでなく、構成によってはブリッジングループを引き起こすおそれもあります。
この記事では、Catalyst 9000 系(IOS-XE)を基準に、EtherChannel の設定手順と確認コマンドを整理します。
- EtherChannel の 3 方式(LACP / PAgP / on)と 5 つのモードの違い
- モードの組み合わせによる成立可否と、避けるべき組み合わせ
- L2 / L3 EtherChannel の設定手順(
channel-groupの実行例) show etherchannel summaryとshow lacp neighborによる確認方法- PAgP から LACP への移行手順
結論を先に述べると、新規設計では LACP を両端 active モードで構成することを推奨します。設定後は show etherchannel summary のフラグで束ねられた状態(P)を確認します。on モード(静的)は、対向機器が LACP に対応していない場合に限定して使い、ネゴシエーションを行うモードとは決して混在させないことが重要です。
なお、リンクアグリゲーション自体の仕組み(静的と LACP の障害検出の違い、ハッシュ分散の原理など)は、関連記事『リンクアグリゲーションの仕組みと方式の違い』で解説しています。本記事は Catalyst での設定手順に焦点を絞ります。
EtherChannel の基本と 3 つのモード(LACP / PAgP / on)
EtherChannel は、Catalyst スイッチにおけるリンクアグリゲーションの機能名です。束ねられた論理インターフェースはポートチャネル(Port-channel)と呼ばれ、STP や上位設定からは 1 つのポートとして扱われます。
構成方式は、使用するプロトコルによって 3 つに分かれます。channel-group コマンドで指定するモードとの対応は以下のとおりです。
| 方式 | プロトコル | モード | 動作 |
|---|---|---|---|
| LACP | IEEE 802.1AX(旧 802.3ad)標準 | active | 自分から LACP ネゴシエーションを開始する |
| passive | 対向からの LACP パケットに応答のみ行う | ||
| PAgP | Cisco 独自 | desirable | 自分から PAgP ネゴシエーションを開始する |
| auto | 対向からの PAgP パケットに応答のみ行う | ||
| 静的 | なし | on | ネゴシエーションなしで強制的に束ねる |
モードの組み合わせと成立可否
EtherChannel が成立するかどうかは、両端のモードの組み合わせで決まります。公式ドキュメントの記述に基づく成立可否は以下のとおりです。
| 自機器\対向 | active | passive | desirable | auto | on |
|---|---|---|---|---|---|
| active | 成立 | 成立 | × | × | × |
| passive | 成立 | 不成立 | × | × | × |
| desirable | × | × | 成立 | 成立 | × |
| auto | × | × | 成立 | 不成立 | × |
| on | × | × | × | × | 成立 |
このマトリクスから読み取るべきポイントは 3 つあります。
- 受け身同士(passive-passive、auto-auto)は成立しない
-
どちらもネゴシエーションを開始しないため、LAG は形成されません。片側を必ず active(PAgP なら desirable)にする必要があります。
- LACP と PAgP は相互接続できない
-
両者はプロトコルとして互換性がなく、active-desirable のような組み合わせでは成立しません。両端で同じプロトコルに揃える必要があります。
- on モードは on 同士でのみ使用し、ネゴシエーションモードと混在させない
-
最も注意すべきはこの点です。on モードのポートを desirable などのネゴシエーションモードのポートに接続すると、LAG が成立しないだけでは済まず、公式ドキュメントでもループの危険性が明記されています。
参考: Catalyst 6500 Release 15.4SY Software Configuration Guide(Cisco 公式)
“a bridge loop is created and a broadcast storm can occur”
(ブリッジングループが形成され、ブロードキャストストームが発生するおそれがあります)
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst6500/ios/15-4SY/config_guide/sup6T/15_3_sy_swcg_6T/etherchannel.pdfon モード側はネゴシエーションを待たずに即座にポートを束ねて転送を開始する一方、対向側は通常ポートとして動作するため、L2 ループが形成されうるという理屈です。on モードを使う場合は、必ず両端そろって on に設定し、結線前に両側の設定を完了させておくことを推奨します。
新規設計では LACP を推奨する理由
3 方式のうち、新規設計で選択すべきは LACP です。理由は次の 4 つです。
- IEEE 標準プロトコルのため、FortiGate や Linux サーバーなど他メーカー機器との接続にも同じ方式を使える
- PAgP は Cisco 独自であることに加え、NX-OS(Nexus シリーズ)ではサポートされておらず、Cisco 製品間でも使える範囲が狭まっている
- LACPDU による障害検出があり、リンクダウンを伴わない障害にも対応できる
- 対向の設定不一致時に、ポートを suspended 状態にして事故を防ぐ保護動作がある
モードは両端とも active に設定することを推奨します。passive を含む構成でも成立はしますが、両端 active であれば、どちらか一方の機器がリプレースされた場合でもネゴシエーション開始側が必ず存在する状態を維持できます。
LACP による EtherChannel の設定手順
この章では、Catalyst 9300(IOS-XE 17.x)を例に、LACP による EtherChannel の設定手順を解説します。L2(スイッチポート)と L3(ルーテッドポート)では設定の流れが異なるため、それぞれ分けて説明します。
事前確認(メンバーポートの一致条件)
EtherChannel に参加させるポートは、設定パラメータが揃っていることが前提です。公式ドキュメントでは、LACP は同一の設定を持つポート同士をグループ化すると説明されています。
参考: Layer 2 Configuration Guide, Cisco IOS XE 17.15.x(Cisco 公式)
“LACP groups the ports with the same speed, duplex mode, native VLAN, VLAN range”
(LACP は、速度、デュプレックスモード、ネイティブ VLAN、VLAN 範囲が同一のポートをグループ化します)
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/17-15/configuration_guide/lyr2/b_1715_lyr2_9300_cg/configuring_etherchannels.html
設定前に確認すべき主な一致条件は以下のとおりです。
| 確認項目 | 条件 |
|---|---|
| 速度・デュプレックス | 全メンバーポートで同一であること |
| スイッチポートモード | 全メンバーがアクセスまたはトランクで統一されていること |
| アクセス VLAN | アクセスポートの場合、同一 VLAN に所属していること |
| ネイティブ VLAN・許可 VLAN 範囲 | トランクポートの場合、両方が一致していること(許可 VLAN 範囲が異なるとチャネルは形成されない) |
| 既存設定の残骸 | 過去の設定(音声 VLAN 等、EtherChannel 非対応の設定)が残っていないこと |
既存ポートを流用する場合は、show running-config interface で各ポートの設定を見比べ、差分がない状態にしてから channel-group を投入することを推奨します。メンバーポートの設定不一致は、EtherChannel が組めない原因として最も頻度が高いポイントです。
なお、EtherChannel 構成後の設定変更は、物理ポートではなくポートチャネルインターフェース(interface port-channel)に対して行います。ポートチャネルへの設定は全メンバーポートに反映されますが、物理ポート個別への設定はそのポートにしか反映されず、意図しない不一致の原因になります。
L2 EtherChannel の設定例(channel-group)
2 台のスイッチ間で、Gi1/0/1 と Gi1/0/2 をトランクポートとして束ね、Port-channel 1 を構成する例です。
Switch(config)# interface range gigabitEthernet 1/0/1 - 2
Switch(config-if-range)# switchport mode trunk
Switch(config-if-range)# channel-group 1 mode active
Creating a port-channel interface Port-channel 1L2 EtherChannel の場合、channel-group コマンドの投入によってポートチャネルインターフェース(Po1)が自動的に作成されます。事前に interface port-channel 1 を手動で作成する必要はありません。
対向側のスイッチにも同じ手順で設定を投入します。前章で述べたとおり、モードは両端とも active を推奨します。
Switch2(config)# interface range gigabitEthernet 1/0/1 - 2
Switch2(config-if-range)# switchport mode trunk
Switch2(config-if-range)# channel-group 1 mode activeなお、チャネルグループ番号(この例では 1)は両端で一致している必要はなく、機器ごとに独立した番号を使用できます。ただし、運用上の分かりやすさから、可能であれば両端で揃えておくことを推奨します。
設定後、トランクの許可 VLAN の変更などは Po1 に対して行います。
Switch(config)# interface port-channel 1
Switch(config-if)# switchport trunk allowed vlan 10,20,30L3 EtherChannel の設定例
コアスイッチ間の接続などで、EtherChannel を L3(ルーテッドポート)として構成する場合は、L2 と手順の順序が異なる点に注意が必要です。公式ドキュメントでは、先にポートチャネルインターフェースを手動で作成することが明記されています。
参考: Command Reference, Cisco IOS XE Gibraltar 16.11.x(Cisco 公式)
“Manually configure the port-channel logical interface before putting the interface into the channel group.”
(インターフェースをチャネルグループに参加させる前に、ポートチャネル論理インターフェースを手動で設定してください)
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9300/software/release/16-11/command_reference/b_1611_9300_cr/layer_2_3_commands.html
手順は次の 2 段階です。
Switch(config)# interface port-channel 2
Switch(config-if)# no switchport
Switch(config-if)# ip address 172.16.1.1 255.255.255.252Switch(config)# interface range gigabitEthernet 1/0/23 - 24
Switch(config-if-range)# no switchport
Switch(config-if-range)# no ip address
Switch(config-if-range)# channel-group 2 mode activeL3 EtherChannel で注意すべきポイントは 2 つあります。
- IP アドレスはポートチャネルインターフェースにのみ設定し、物理ポートには設定しないこと。物理ポート側は
no ip addressの状態で参加させます。 - 物理ポート側にも
no switchportを投入し、ポートチャネルと L2 / L3 のモードを一致させること。モードが不一致のポートはチャネルに参加できません。
設定後の確認コマンド
EtherChannel は設定を投入して終わりではなく、意図どおりに束ねられているかの確認が重要です。この章では、正常性確認の基本となる 2 つのコマンドと、出力の読み方を解説します。
show etherchannel summary の見方(フラグの読み方)
最初に実行すべきは show etherchannel summary です。全 EtherChannel の状態を 1 行ずつ一覧できます。
Switch# 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
(省略)
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------
1 Po1(SU) LACP Gi1/0/1(P) Gi1/0/2(P)確認すべきポイントは、ポートチャネル自体のフラグとメンバーポートのフラグの 2 段階です。
正常状態: L2 EtherChannel なら Po1(SU)(S: Layer2、U: 使用中)、L3 なら Po2(RU) と表示され、全メンバーポートに (P)(束ねられて転送中)が付きます。
異常時に見るべきフラグは以下のとおりです。
| フラグ | 状態 | 主な原因 |
|---|---|---|
| (D) | ダウン | 物理リンク障害、ケーブル・SFP の問題 |
| (I) | スタンドアロン | 対向から LACPDU の応答がなく、独立ポートとして動作。対向側の設定漏れやプロトコル不一致が典型 |
| (s) | サスペンド | メンバーポート間の設定不一致(速度・デュプレックス・VLAN 等)や、LACP ネゴシエーション不成立により停止 |
| (w) | 集約待ち | ネゴシエーション進行中。長時間続く場合は要調査 |
suspended への遷移は、対向からの応答がない場合の保護動作として公式ドキュメントに記載されています。
参考: Layer 2 Configuration Guide, Cisco IOS XE 17.14.x, Catalyst 9200(Cisco 公式)
“ports in the port channel are moved to suspended state”
(ポートチャネル内のポートはサスペンド状態へ移行します)
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst9200/software/release/17-14/configuration_guide/lyr2/b_1714_lyr2_9200_cg/configuring_etherchannels.html
(I) スタンドアロン状態のポートは、EtherChannel に束ねられないまま通常ポートとして BPDU やデータを送受信します。STP で保護されていないトポロジーではループの原因になりうるため、放置は禁物です。
なお、束ねられた後のトラフィックがどの物理リンクを通っているかの確認(ロードバランスの偏りの分析)については、関連記事『EtherChannel ロードバランスの仕組みと振り分け先の確認方法』で詳しく解説しています。
show lacp neighbor での対向状態の確認
LACP 構成の場合、show lacp neighbor で対向機器の情報を確認できます。自機器の設定が正しくても LAG が組めない場合、対向がどう見えているかの切り分けに有効です。
Switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Admin Oper Port Port
Port Flags Priority Dev ID Age key Key Number State
Gi1/0/1 SA 32768 70b3.17xx.xxxx 12s 0x0 0x1 0x102 0x3D確認ポイントは 3 つです。
- 対向の情報が表示されているか: Partner 欄が空、または表示されない場合、対向から LACPDU が届いていません。対向側の設定漏れ、モード不一致(両端 passive 等)、経路上の問題が疑われます。
- Flags の意味:
A/Pは対向のモード(アクティブ / パッシブ)、S/Fは対向が要求している LACPDU レート(slow / fast)を示します。 - Dev ID(System ID): 意図した対向機器の MAC アドレスかを確認します。配線ミスで別の機器と繋がっているケースの検出に役立ちます。
静的(on モード)で構成する場合の注意点
on モード(静的 LAG)で構成した場合、show etherchannel summary の Protocol 欄は -(ハイフン)と表示されます。ここで注意すべきは、静的 LAG では両端の整合性を検証する仕組みが存在しないという点です。自機器側でメンバーポートに (P) が付いていても、それは「対向と正しく束ねられていること」の保証にはなりません。
このリスクに対する Catalyst 側の防御機能が EtherChannel ミスコンフィグガードです。STP の BPDU を利用して対向の設定不整合を検出し、該当ポートを err-disabled 状態にして事故を防ぎます。
参考: Catalyst 3750-X Software Configuration Guide, Configuring Optional Spanning-Tree Features(Cisco 公式)
“EtherChannel guard places the switch interfaces in the error-disabled state”
(EtherChannel ガードは、スイッチのインターフェースを error-disabled 状態にします)
https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750x_3560x/software/release/12-2_55_se/configuration/guide/3750xscg/swstpopt.html
機能の有効状態は show spanning-tree summary の「EtherChannel misconfig guard」行で確認でき、無効の場合は次のコマンドで有効化します。
Switch(config)# spanning-tree etherchannel guard misconfigerr-disabled になったポートは、設定修正後に該当インターフェースの shutdown / no shutdown で復旧させるか、errdisable recovery cause channel-misconfig による自動復旧を設定しておきます。on モードを使う構成では、このガード機能の有効化と、結線前に両端の設定を完了させる運用をセットで推奨します。
LACP 非対応機器(YAMAHA RTX・NEC IX 等)と接続するケース
on モードを使う実務上の主なケースは、対向機器が LACP に対応していない場合です。国内の拠点ネットワークでは、YAMAHA RTX や NEC IX(いずれも静的 LAG のみ対応)と Catalyst を接続する構成が該当します。
この構成では次の 3 点に注意が必要です。
- Catalyst 側は
channel-group <番号> mode onで設定し、LACP モード(active / passive)と混在させないこと - 静的 LAG はリンクダウンを伴わない障害を検出できないため、障害検出の限界を設計時に織り込むこと
- NEC IX のように帯域増速をサポートしない機器では、冗長化目的に限定した設計とすること
異メーカー間の LAG 接続で注意すべきポイントの全体像は、別記事『LAG のメーカー相互接続の注意点』で解説します。
PAgP から LACP への移行手順
既存環境で PAgP(desirable / auto)が使われている場合、IEEE 標準である LACP への移行を検討する場面があります。特に、Nexus への機器更新を控えている場合や、他メーカー機器との接続を新たに追加する場合は、移行の優先度が上がります。
移行時の通信影響を抑えるポイント
channel-group のモードは、コマンドを再投入することで変更できます。ただし、モード変更時の瞬断や再ネゴシエーションによる影響について、Cisco 公式ドキュメントに明確な記述は見当たりませんでした。このため、本記事では影響を断定せず、安全側に倒した手順を提案します。
- 基本方針
-
全ポートを一括で切り替えるのではなく、メンテナンスウィンドウを確保した上で、1 メンバーポートずつ切り替えることを推奨します。これにより、仮に切替時に瞬断が発生しても、残りのメンバーポートが通信を継続でき、影響を最小限にとどめられます。
- 手順の一例(Po1 が Gi1/0/1・Gi1/0/2 の 2 ポート構成の場合)
-
- 対向機器側の対応するポートを PAgP(desirable)から LACP(active)へ先に切り替える
- Catalyst 側で、まず Gi1/0/1 のみモードを変更する
Switch(config)# interface GigabitEthernet1/0/1 Switch(config-if)# channel-group 1 mode activeshow etherchannel summaryで Gi1/0/1 が(P)として再度束ねられたことを確認する- 問題がなければ Gi1/0/2 も同様に切り替える
Switch(config)# interface GigabitEthernet1/0/2 Switch(config-if)# channel-group 1 mode active- 最終的に Protocol 欄が
LACPに変わっていることをshow etherchannel summaryで確認する
なお、対向機器も含めて全面的に機器更新を行うタイミングであれば、新規構築として最初から LACP で設計する方がシンプルです。既存の PAgP 環境を稼働させたまま移行する場合に、上記の段階的な手順が有効になります。
移行後は、本記事で解説した確認コマンド(show etherchannel summary、show lacp neighbor)で正常性を確認してください。
まとめ
Cisco Catalyst の EtherChannel は、モード(active / passive / desirable / auto / on)の組み合わせによって成立可否が決まり、特に on モードとネゴシエーションモードの混在はループのリスクを伴います。新規設計では両端 active の LACP を基本とし、設定後は show etherchannel summary と show lacp neighbor で状態を確認することが、安定した運用につながります。
- EtherChannel は 5 つのモードの組み合わせで成立可否が決まる
- on モードとネゴシエーションモードの混在はブリッジングループのおそれがある
- L3 EtherChannel はポートチャネル作成後に
no switchportを投入する順序で構成する show etherchannel summaryのフラグ(P / I / s / w)で状態を素早く判別できる- 静的構成では EtherChannel ミスコンフィグガードの有効化を推奨
- LACP 非対応機器との接続では on モードを両端に統一する
- PAgP から LACP への移行はメンテナンスウィンドウ内で 1 ポートずつ切り替える
以上、最後までお読みいただきありがとうございました。
