👷 現場での体験談

金融系のデータセンターで働いていた頃、コアスイッチのアップリンクが単一ポートで構成されていることに気づき、すぐにEtherChannelによる冗長化を提案しました。最初はLACPとPAgPの違いを理解せずに設定を試み、片方のスイッチがPAgP onlyモデルだったため接続が確立せず、深夜メンテナンスで冷や汗をかいた経験があります。

それ以来、EtherChannelの設定前には必ず両端の機器仕様を確認し、プロトコルの互換性チェックを怠らないようにしています。正しく設定できれば帯域も2倍、4倍と増やせるだけでなく、障害時の自動フェイルオーバーも実現できる素晴らしい技術です。

ネットワークの帯域不足や単一障害点の解消は、企業ネットワークにおける重要な課題です。Cisco CatalystスイッチのEtherChannel機能を使えば、複数の物理ポートを論理的に束ねて帯域を増強し、同時に冗長性も確保できます。本記事では、EtherChannelの基本概念から実際の設定手順、トラブルシューティングまでを実務目線で詳しく解説します。

EtherChannelの基本概念と導入メリット
EtherChannelとは何か

EtherChannel(イーサチャネル)は、Ciscoが開発した技術で、2つ以上の物理的なイーサネットリンクを1つの論理的なリンクとして束ねる機能です。Port Channel(ポートチャネル)やLink Aggregation(リンクアグリゲーション)とも呼ばれ、IEEE 802.3adとして標準化されています。

通常、スイッチ間を複数のケーブルで接続すると、スパニングツリープロトコル(STP)によって冗長リンクの一部がブロックされ、実際には1本のリンクしか使えません。しかしEtherChannelを使用することで、最大8本のリンクを同時にアクティブ状態で利用でき、帯域の有効活用と冗長性の両立が可能になります。

導入による具体的なメリット

EtherChannelを導入することで得られる主なメリットは以下の通りです。

図1: EtherChannel導入による効果比較

帯域拡張効果
95%
冗長性向上
90%
負荷分散
85%
設定の簡素化
70%

実務における主要なメリットを以下の表にまとめました。

メリット項目詳細説明効果レベル
帯域の増加4本の1Gbpsリンクで最大4Gbpsの帯域を実現可能非常に高
リンク冗長化1本のリンクが切断されても残りのリンクで通信継続
負荷分散トラフィックを複数リンクに自動分散してボトルネック解消
管理の簡素化論理インターフェースとして一元管理が可能
コスト効率既存の1Gbpsポートを束ねて10Gbps機器購入を延期可能
LACP・PAgP・Staticモードの違いと選択基準
3つのEtherChannelプロトコル

CiscoのEtherChannelには、リンクを束ねるための3つの方式があります。それぞれに特徴があり、接続する機器や要件に応じて適切なものを選択する必要があります。

各プロトコルの特徴を比較表で確認しましょう。

プロトコル標準規格主な特徴推奨用途
LACPIEEE 802.3ad業界標準、マルチベンダー対応、動的ネゴシエーション最も推奨
PAgPCisco独自Cisco機器専用、古い機器での互換性Cisco間のみ
Static (On)なしプロトコルなし、強制バンドル、ネゴシエーション不可特殊用途のみ
LACP(Link Aggregation Control Protocol)

LACPは、IEEE 802.3adとして標準化されたプロトコルで、現在最も推奨される方式です。Cisco以外のベンダー機器とも相互接続が可能で、動的にリンクの状態を監視し、障害が発生したリンクを自動的にEtherChannelから除外します。

LACPには「active」と「passive」という2つのモードがあります。activeモードは積極的にLACPパケットを送信してネゴシエーションを開始し、passiveモードは相手からのLACPパケットを待ち受けます。EtherChannelを確立するには、少なくとも片方がactiveモードである必要があります。

1
Active-Active構成

両端をactiveモードに設定。最も確実で推奨される構成です。

2
Active-Passive構成

片方をactive、もう一方をpassiveに設定。動作は可能ですが、activeを推奨。

⚠ 注意

両端をpassiveモードに設定するとEtherChannelは確立しません。どちらか一方は必ずactiveモードにする必要があります。この設定ミスは実務でよく見られるトラブルの一つです。

PAgP(Port Aggregation Protocol)

PAgPはCisco独自のプロトコルで、Cisco機器間でのみ使用できます。LACPと同様に「desirable」と「auto」という2つのモードがあり、desirableは積極的にネゴシエーションを開始し、autoは相手からのパケットを待ち受けます。

現在ではLACPの使用が推奨されていますが、古いCatalystスイッチではPAgPしかサポートしていない機種もあります。特にCatalyst 2950や3550などのレガシー機器と接続する場合には、PAgPの知識が必要になることがあります。

Catalyst SwitchでのEtherChannel設定手順
LACP使用時の基本設定手順

それでは実際にCatalyst 2960スイッチを例に、LACPを使用したEtherChannelの設定方法を解説します。この例では、2台のスイッチ(SW1とSW2)の間でGigabitEthernet 0/1とGigabitEthernet 0/2の2本のポートを束ねてPort-Channel 1を作成します。

まずSW1側の設定を行います。

SW1# configure terminal
SW1(config)# interface range gigabitEthernet 0/1 - 2
SW1(config-if-range)# channel-group 1 mode active
SW1(config-if-range)# exit
SW1(config)# interface port-channel 1
SW1(config-if)# switchport mode trunk
SW1(config-if)# switchport trunk allowed vlan 10,20,30
SW1(config-if)# exit
SW1(config)# end
SW1# write memory

次にSW2側も同様に設定します。

SW2# configure terminal
SW2(config)# interface range gigabitEthernet 0/1 - 2
SW2(config-if-range)# channel-group 1 mode active
SW2(config-if-range)# exit
SW2(config)# interface port-channel 1
SW2(config-if)# switchport mode trunk
SW2(config-if)# switchport trunk allowed vlan 10,20,30
SW2(config-if)# exit
SW2(config)# end
SW2# write memory
1
物理インターフェースの設定

channel-group 1 mode active コマンドで、物理ポートをPort-Channel 1に割り当て、LACPのactiveモードを指定します。

2
論理インターフェースの設定

Port-Channel 1に対してトランクモードやVLAN設定を行います。これらの設定は自動的にメンバーポートに継承されます。

3
設定の保存

write memoryコマンドで設定をNVRAMに保存し、再起動後も設定が維持されるようにします。

アクセスポートとしてのEtherChannel設定

トランクではなく、アクセスポートとしてEtherChannelを設定する場合の例も見ていきましょう。サーバーへの接続などで使用されるケースです。

SW1# configure terminal
SW1(config)# interface range gigabitEthernet 0/10 - 11
SW1(config-if-range)# channel-group 10 mode active
SW1(config-if-range)# exit
SW1(config)# interface port-channel 10
SW1(config-if)# switchport mode access
SW1(config-if)# switchport access vlan 100
SW1(config-if)# spanning-tree portfast
SW1(config-if)# exit
SW1(config)# end

アクセスポートとして設定する場合、Port-Channelインターフェースに対してVLANを指定し、必要に応じてPortFastなどの設定も行います。

確認コマンドと正常性の検証方法
show etherchannel summaryコマンド

EtherChannelの設定状態を確認する最も基本的なコマンドが「show etherchannel summary」です。このコマンドでEtherChannelの全体的な状態を一目で把握できます。

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: 2
Number of aggregators:           2

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi0/1(P)    Gi0/2(P)
10     Po10(SU)        LACP      Gi0/10(P)   Gi0/11(P)

このコマンド出力で重要なポイントは以下の通りです。

図2: EtherChannelステータスフラグの重要度

SU(正常動作)
100%
SD(停止中)
75%
P(バンドル済)
90%
I(スタンドアロン)
40%

主要なフラグの意味をまとめます。

フラグ意味対応必要性
SULayer2で使用中、正常動作不要(正常)
SDLayer2で停止中要確認
PポートがPort-Channelにバンドル済み不要(正常)
Iスタンドアロン、バンドルされていない要対応
D物理的にダウン要対応
詳細情報の確認コマンド

より詳細な情報を確認するためのコマンドをいくつか紹介します。

SW1# show etherchannel 1 detail
Group state = L2
Ports: 2   Maxports = 8
Port-channels: 1 Max Port-channels = 1
Protocol:   LACP
Minimum Links: 0

Ports in the group:
-------------------
Port: Gi0/1
------------
Port state    = Up Mstr Assoc In-Bndl
Channel group = 1           Mode = Active          Gcchange = -
Port-channel  = Po1         GC   =   -             Pseudo port-channel = Po1
Port index    = 0           Load = 0x00            Protocol =   LACP

Flags:  S - Device is sending Slow LACPDUs   F - Device is sending fast LACPDUs.
        A - Device is in active mode.        P - Device is in passive mode.

Local information:
                            LACP port     Admin     Oper    Port        Port
Port      Flags   State     Priority      Key       Key     Number      State
Gi0/1     SA      bndl      32768         0x1       0x1     0x102       0x3D

Partner's information:
                  LACP port                        Admin  Oper   Port    Port
Port      Flags   Priority  Dev ID          Age    key    Key    Number  State
Gi0/1     SA      32768     0015.6310.c700  29s    0x0    0x1    0x102   0x3D

このコマンドでは、LACPのネゴシエーション状態、対向機器のMACアドレス、ポート番号などの詳細情報が確認できます。トラブルシューティング時には特に「Partner’s information」セクションが重要で、対向側からのLACPパケットが正しく受信できているかを確認できます。

EtherChannelが組めない場合のトラブルシューティング
設定不一致によるトラブル

EtherChannelが正常に確立しない最も一般的な原因は、設定の不一致です。EtherChannelを構成するすべてのポートは、以下の設定が完全に一致している必要があります。

EtherChannel構成時に一致させる必要がある設定項目を以下にまとめます。

設定項目確認方法トラブル発生率
Speed/Duplexshow interfaces status
VLAN設定show interfaces trunk非常に高
Trunk/Accessshow interfaces switchport
Native VLANshow interfaces trunk
STP設定show spanning-tree
Speed/Duplex不一致の解決

特に頻繁に発生するのがSpeed/Duplexの不一致です。一方のポートがauto-negotiation、もう一方が固定設定になっていると、EtherChannelが組めません。

SW1# show interfaces status

Port      Name               Status       Vlan       Duplex  Speed Type
Gi0/1                        connected    trunk      a-full  a-1000 10/100/1000BaseTX
Gi0/2                        connected    trunk      full    1000   10/100/1000BaseTX

上記のように、Gi0/1が「a-full a-1000」(auto-negotiation)、Gi0/2が「full 1000」(固定設定)となっている場合、設定を統一する必要があります。

SW1(config)# interface range gigabitEthernet 0/1 - 2
SW1(config-if-range)# speed 1000
SW1(config-if-range)# duplex full
SW1(config-if-range)# exit
⚠ 注意

Speed/Duplexの変更はインターフェースの一時的なダウンを引き起こします。本番環境では必ずメンテナンスウィンドウ内で実施してください。また、両端のスイッチで設定を統一することを忘れないようにしましょう。

VLAN不一致の解決

トランクポートでEtherChannelを構成する場合、許可VLAN(allowed VLAN)の設定も完全に一致させる必要があります。片方のポートだけVLAN 100を許可している場合などに問題が発生します。

SW1# show interfaces trunk

Port        Mode             Encapsulation  Status        Native vlan
Po1         on               802.1q         trunking      1

Port        Vlans allowed on trunk
Po1         10,20,30

Port        Vlans allowed and active in management domain
Po1         10,20,30

Port        Vlans in spanning tree forwarding state and not pruned
Po1         10,20,30

両端のスイッチで同じVLANリストになっているか確認し、不一致がある場合は以下のように修正します。

SW1(config)# interface port-channel 1
SW1(config-if)# switchport trunk allowed vlan 10,20,30,100
SW1(config-if)# exit

SW2(config)# interface port-channel 1
SW2(config-if)# switchport trunk allowed vlan 10,20,30,100
SW2(config-if)# exit
プロトコル不一致の解決

片方のスイッチでLACPを使用し、もう一方でPAgPを使用している場合、EtherChannelは確立しません。また、一方がactiveモード、もう一方がonモード(静的設定)という組み合わせでも問題が発生します。

SW1# show etherchannel 1 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(SD)         LACP      Gi0/1(I)    Gi0/2(I)

上記のように、ポートが「I」(stand-alone)になっている場合、対向側のプロトコル設定を確認します。解決方法は両端を同じプロトコルに統一することです。

! 両端でLACPに統一する場合
SW1(config)# interface range gigabitEthernet 0/1 - 2
SW1(config-if-range)# no channel-group 1
SW1(config-if-range)# channel-group 1 mode active
SW1(config-if-range)# exit

SW2(config)# interface range gigabitEthernet 0/1 - 2
SW2(config-if-range)# no channel-group 1
SW2(config-if-range)# channel-group 1 mode active
SW2(config-if-range)# exit
ケーブル不良や物理層の問題

設定が正しくてもEtherChannelが確立しない場合、物理層の問題を疑う必要があります。特にケーブル不良やSFPモジュールの問題は見逃しやすいトラブルです。

SW1# show interfaces gigabitEthernet 0/1
GigabitEthernet0/1 is up, line protocol is up (connected)
  Hardware is Gigabit Ethernet, address is 001b.d512.aa01 (bia 001b.d512.aa01)
  MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX
  input flow-control is off, output flow-control is unsupported
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:00, output 00:00:01, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  5 minute input rate 1000 bits/sec, 2 packets/sec
  5 minute output rate 2000 bits/sec, 3 packets/sec
     1234567 packets input, 123456789 bytes, 0 no buffer
     Received 12345 broadcasts (0 IP multicasts)
     0 runts, 0 giants, 0 throttles
     125 input errors, 125 CRC, 0 frame, 0 overrun, 0 ignored
     0 watchdog, 1234 multicast, 0 pause input
     0 input packets with dribble condition detected
     9876543 packets output, 987654321 bytes, 0 underruns

上記の出力で「input errors」や「CRC」エラーが増加している場合、ケーブルやコネクタの問題が疑われます。特にCRCエラーが継続的に発生している場合は、以下の対処を検討します。

1
ケーブル交換

LANケーブルを新品に交換し、コネクタの接続も確実に行います。

2
SFPモジュール交換

光ファイバー接続の場合、SFPモジュールの交換を試します。特にサードパーティ製モジュールは要注意です。

3
ポート変更

スイッチ側のポート不良の可能性もあるため、別のポートで試してみます。

負荷分散の仕組みとチューニング
EtherChannelのロードバランシング方式

EtherChannelは複数のリンクにトラフィックを分散しますが、その分散方法は設定可能です。デフォルトでは送信元MACアドレスベースの分散が使用されますが、環境に応じて最適な方式を選択することで、より効率的な帯域利用が可能になります。

現在の負荷分散設定を確認するコマンドは以下の通りです。

SW1# show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-mac

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source MAC address
  IPv4: Source MAC address
  IPv6: Source MAC address

利用可能な負荷分散方式と推奨用途を以下の表にまとめます。

負荷分散方式特徴と用途推奨シーン
src-mac送信元MACアドレスでハッシュ計算、シンプルで予測可能アクセス層
dst-mac宛先MACアドレスでハッシュ、サーバーファーム向けサーバー接続
src-dst-mac送信元と宛先の両方を使用、バランス良好ディストリビューション層
src-ip送信元IPアドレスでハッシュ、L3での分散L3スイッチ間
src-dst-ip送信元・宛先IP両方を使用、最も均等な分散コア層(推奨)
src-port送信元ポート番号でハッシュ、アプリ単位分散特殊用途
負荷分散方式の変更方法

負荷分散方式は、グローバルコンフィグレーションモードで設定します。この設定はスイッチ全体のすべてのEtherChannelに適用されます。

SW1# configure terminal
SW1(config)# port-channel load-balance src-dst-ip
SW1(config)# end
SW1# show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-dst-ip

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source and Destination MAC address
  IPv4: Source and Destination IP address
  IPv6: Source and Destination IP address

実務では、コア層やディストリビューション層のスイッチ間接続には「src-dst-ip」を、アクセス層のスイッチには「src-mac」または「src-dst-mac」を使用するのが一般的です。トラフィックパターンに応じて最適な方式を選択することで、より均等な負荷分散が実現できます。

実践的な運用Tips
メンテナンス時のリンク削除手順

EtherChannelからポートを削除する際は、設定の順序に注意が必要です。誤った手順で実行すると、一時的にすべてのトラフィックが停止する可能性があります。

! ステップ1: 該当ポートをEtherChannelから除外
SW1(config)# interface gigabitEthernet 0/2
SW1(config-if)# no channel-group 1
SW1(config-if)# shutdown
SW1(config-if)# exit

! ステップ2: 確認
SW1# show etherchannel summary
Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)         LACP      Gi0/1(P)

! ステップ3: 必要に応じてポート設定をクリア
SW1(config)# default interface gigabitEthernet 0/2
監視とアラート設定

EtherChannelの状態を継続的に監視することは、安定運用の要です。SNMPトラップやSyslogを活用して、リンクダウンやメンバーポートの減少を検知できるようにしましょう。

SW1(config)# snmp-server enable traps port-channel
SW1(config)# snmp-server host 192.168.1.100 version 2c public
SW1(config)# logging host 192.168.1.200
SW1(config)# logging trap informational

また、定期的に以下のコマンドでカウンタをチェックし、エラーの増加がないか確認することをお勧めします。

SW1# show interfaces port-channel 1 | include error
     125 input errors, 125 CRC, 0 frame, 0 overrun, 0 ignored
     0 output errors, 0 collisions, 0 interface resets
ドキュメント管理のベストプラクティス

EtherChannelの設定情報は必ず文書化し、チーム内で共有しましょう。特に以下の情報を記録しておくことで、トラブル時の迅速な対応が可能になります。

ドキュメント化すべき項目を以下にまとめます。

ドキュメント項目内容重要度
物理配線図どのポートがどのスイッチと接続されているか
設定パラメータプロトコル、VLAN、負荷分散方式などの設定値
変更履歴いつ誰がどのような変更を行ったか
トラブル履歴過去の障害内容と対処方法のナレッジベース
まとめ

EtherChannelは、ネットワークの帯域拡張と冗長性を同時に実現できる強力な技術です。本記事で解説した設定手順とトラブルシューティング手法を習得することで、安定したネットワーク運用が可能になります。実務では設定の一貫性を保つことが最も重要で、両端のスイッチで同一の設定を行うことを常に意識しましょう。

  • LACPは業界標準で最も推奨されるプロトコルであり、マルチベンダー環境でも利用可能
  • Speed、Duplex、VLAN設定などすべてのパラメータを完全一致させることが成功の鍵
  • show etherchannel summaryコマンドで定期的に状態を確認し、異常を早期発見する
  • 負荷分散方式はトラフィックパターンに応じて最適化し、帯域を有効活用する
  • 物理層のエラーにも注意を払い、ケーブルやSFPモジュールの品質管理を徹底する