Cisco IOS EtherChannel Port-channel LACP 冗長化

複数の物理ポートを束ねて1つの論理ポートとして扱うPort-channel(EtherChannel)は、帯域拡張と冗長化の両方を同時に実現できる機能です。リンクが1本故障しても通信を継続でき、複数リンクへの負荷分散によって実効帯域も向上します。

本記事では、CiscoスイッチでのEtherChannel設定例・確認方法・よくある設定ミスと切り分け方法・負荷分散設定まで、現場目線で体系的に解説します。

👷 現場での体験談

スイッチ間のトランクリンクをEtherChannelで2本束ねる作業をしたとき、設定後にshow etherchannel summaryを見るとポートが(P)ではなく(D)(down)になっていました。

原因は片側のスイッチをLACPのpassiveモード同士で設定していたことでした。passive同士ではどちらもネゴシエーションを待つだけで、チャネルが形成されません。片側をactiveに変更した瞬間にチャネルが上がりました。モードの組み合わせルールを事前に知っておくだけで、こういうトラブルは防げます。

Port-channel設定確認構成図
Port-channel設定と確認フロー:LACP設定・確認コマンド・トラブルシュートのポイント

EtherChannelのメリット

📶
帯域の拡張
1Gbps×2本束ねれば論理的に2Gbpsの帯域を確保。実効帯域は負荷分散の仕組みにより単純な倍にはならないが大幅に向上
🔄
リンク冗長化
メンバーポートが1本故障しても残りのポートで通信を継続。切り替え時間はSTPと比べて非常に短い
⚖️
負荷分散
送信元MACや宛先IPなどを基準にして複数リンクへ均等に分散。一方のリンクに偏らない設計が重要
🌐
STPループ対策との共存
STPからはPort-channel全体が1つのリンクとして見えるため、STPがブロックしない

EtherChannelの動作モード

EtherChannelには3種類の動作モードがあります。両端のモードの組み合わせが正しくないとチャネルが形成されません。ここが最もよくある設定ミスのポイントです。

LACP(IEEE 802.3ad)

業界標準規格でCisco以外の機器とも接続可能です。現場での新規構築ではLACPが第一選択です。

自分のモード対向のモードチャネル形成
activeactive✅ 形成される
activepassive✅ 形成される
passiveactive✅ 形成される
passivepassive❌ 形成されない

PAgP(Cisco独自)

Cisco機器同士でのみ使用できます。現在はLACPに置き換わりつつありますが、既存環境では依然使われています。

自分のモード対向のモードチャネル形成
desirabledesirable✅ 形成される
desirableauto✅ 形成される
autoauto❌ 形成されない

ONモード(静的設定)

ネゴシエーションなしで強制的にEtherChannelを形成します。両端とも必ずONに設定する必要があります。ONとLACP・PAgPを混在させるとチャネルが形成されません。

プロトコル対応機器推奨用途注意点
LACPマルチベンダー対応新規構築・マルチベンダー環境passive同士は不可
PAgPCisco機器のみCisco同士の既存環境auto同士は不可
ON両端ONのみ対向がネゴシエーション非対応の場合障害検知が遅い・LAGなしの機器との接続
図1:EtherChannelが形成されない原因の内訳(現場経験ベース)

設定例:LACPでのPort-channel構築

GigabitEthernet0/1とGi0/2を束ねてPort-channel 1を作成します。スイッチ間のトランクリンクに使う構成例です。

Switch# configure terminal

! メンバーポートにトランクとLACPを設定
Switch(config)# interface range GigabitEthernet0/1 - 2
Switch(config-if-range)# switchport mode trunk
Switch(config-if-range)# channel-group 1 mode active
Switch(config-if-range)# exit

! Port-channelインターフェースにもトランクを設定(明示的に)
Switch(config)# interface Port-channel1
Switch(config-if)# switchport mode trunk
Switch(config-if)# exit

Switch(config)# end
Switch# copy running-config startup-config
ℹ Port-channelインターフェースとメンバーポートの設定の関係 CiscoのEtherChannelでは、メンバーポートに設定した内容がPort-channelインターフェースに反映されます。逆に、Port-channelインターフェースへの設定はメンバーポートに継承されます。ただし、明示的に両方に設定することで意図が明確になるため、本番環境では両方に設定することを推奨します。

対向スイッチ側の設定(passive側の例)

! 対向スイッチ:passiveモード(activeと組み合わせることでLACPが機能)
Switch-B(config)# interface range GigabitEthernet0/1 - 2
Switch-B(config-if-range)# switchport mode trunk
Switch-B(config-if-range)# channel-group 1 mode passive
Switch-B(config-if-range)# exit

Switch-B(config)# interface Port-channel1
Switch-B(config-if)# switchport mode trunk

設定例:PAgPでのPort-channel構築

! PAgPのdesirableモードで設定
Switch(config)# interface range GigabitEthernet0/1 - 2
Switch(config-if-range)# switchport mode trunk
Switch(config-if-range)# channel-group 1 mode desirable
Switch(config-if-range)# exit

Switch(config)# interface Port-channel1
Switch(config-if)# switchport mode trunk
⚠ 新規構築ではLACPを推奨 PAgPはCisco独自プロトコルのためCisco同士にしか使えません。対向機器がCisco以外の場合や今後のマルチベンダー対応を考えると、LACPを選ぶほうが将来の汎用性が高まります。

確認コマンドと出力の読み方

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      Gi0/1(P)  Gi0/2(P)
                                ↑ (SU)    ↑ (P)は正常参加

(問題のある出力例)
1      Po1(SD)        LACP      Gi0/1(D)  Gi0/2(D)
                                ↑ (D)はdown。ポートが参加できていない
フラグ意味正常かどうか
(SU)Layer2(S)・in use(U):Port-channelが稼働中✅ 正常
(P)bundled in port-channel:ポートが正常に参加中✅ 正常
(D)down:ポートがEtherChannelに参加できていない❌ 要調査
(I)stand-alone:ネゴシエーションに失敗し単独で動作❌ 要調査
(s)suspended:設定不一致等でサスペンド状態❌ 要調査

その他の確認コマンド

! Port-channelの詳細情報(LACP状態・メンバーポート)
Switch# show etherchannel 1 detail

! Port-channel1インターフェースの状態確認
Switch# show interfaces Port-channel1

! LACPのネゴシエーション状態を確認
Switch# show lacp 1 internal
Switch# show lacp 1 neighbor

! 負荷分散方式の確認
Switch# show etherchannel load-balance

負荷分散方式の確認と変更

EtherChannelはフローを複数のメンバーポートに分散しますが、同一フローは必ず同じポートを経由します。分散の基準(ハッシュキー)は設定で変更できます。

負荷分散方式分散の基準推奨環境
src-mac送信元MACアドレスL2スイッチ環境(デフォルト)
dst-mac宛先MACアドレス接続先が多様な環境
src-dst-mac送信元+宛先MACアドレスL2環境での均等分散
src-ip送信元IPアドレスL3ルーティング環境
src-dst-ip送信元+宛先IPアドレスL3環境での均等分散(推奨)
! 現在の負荷分散方式を確認
Switch# show etherchannel load-balance

! 負荷分散方式を変更(L3環境では src-dst-ip が均等分散しやすい)
Switch(config)# port-channel load-balance src-dst-ip

EtherChannelが形成されない時の切り分け

症状原因対処
ポートが(D)または(I)になるモードの組み合わせが不正(passive同士・auto同士)片側をactiveまたはdesirableに変更する
ポートが(s)サスペンドになるメンバーポートの設定が不一致(速度/duplex/VLAN/トランク設定)show interfaces Gi0/1
show running-configで設定を比較
片側はON、対向はLACPプロトコルの不一致(ONとLACPは混在不可)両端のプロトコルを統一する
STPがPort-channelをブロックEtherChannelとは別のSTPのブロッキングが発生show spanning-tree vlan [番号]

運用上の注意点

⚙️
メンバーポートの設定を統一
速度・デュプレックス・VLAN設定・トランク設定がすべて一致していること。1つでも異なると(s)サスペンドになる
🔗
両端のプロトコルを統一
LACPはLACP同士、PAgPはPAgP同士、ONはON同士。プロトコルを混在させると形成されない
🌐
トランク設定も統一
許可VLANリスト・ネイティブVLANが両端で一致していることを確認する
⚖️
負荷分散方式を環境に合わせる
L3環境ではsrc-dst-ipを使うと均等に分散しやすい。デフォルトのsrc-macでは偏りが出ることがある

まとめ

Port-channel(EtherChannel)はリンクの冗長化と帯域増強を同時に実現できる機能です。設定自体はシンプルですが、モードの組み合わせと設定の統一がすべての前提条件になります。

  • LACP:active/activeactive/passivepassive同士は不可
  • PAgP:desirable/desirabledesirable/autoauto同士は不可
  • show etherchannel summaryでフラグを確認。(SU)(P)が正常の証
  • メンバーポートの速度・duplex・VLAN・トランク設定が一致していないと(s)サスペンドになる
  • L3環境ではport-channel load-balance src-dst-ipで均等分散を設定する
  • 新規構築ではマルチベンダー対応のLACPを第一選択にする

設定後はshow etherchannel summaryshow lacp neighborで両端のネゴシエーション状態を必ず確認しましょう。

YouTubeでも解説してます