概要
EtherChannelとは、複数の物理リンクを1つの論理的なリンクとみなし、複数のリンクを効率よく利用する技術のこと。リンクアグリゲーションともいわれる。
論理的に1本とみなされれば、STPの計算によりブロックされることはない。
最大8本のリンクを1つの論理リンクとして扱うことが可能。1本のリンクとしてまとめることをバンドルといい、物理ポートも1つの論理的なポートしてバンドルされる。このバンドルした論理的なポートをPort-channelという。
バンドルしたリンクを通るトラフィックは、条件により物理リンクを分散させることができる。
バンドル内のリンクに障害が起きた場合、他のリンクを使用して接続を維持できるため、耐障害性が向上する。
負荷の分散
負荷分散方法の設定を変えることにより、通信を複数のリンクに効率よく分散させることができる。
設定の条件
どのようなポートでもバンドルできるわけではなく、合わせなければならない条件がある。
- ポートの通信モード(半二重または全二重)を合わせる
- バンドルするポートで速度が同じである
- 同一のVLANに所属させる(アクセスポート設定の場合)
- バンドルするポートをすべてトランクポートにする(トランクポート設定の場合)
- トランクポートのカプセル化(ISLまたはIEEE 802.1Q)、トランクリンクの通過を許可するVLAN、ネイティブVLANの統一(トランクポートの場合)
- ルーテッドポートの設定
ポートの種類
レイヤ3スイッチでは以下のEtherChannelを作ることが可能。バンドルするポートは統一にする必要がある。
- レイヤ2EtherChannel(スイッチポートでのEtherChannel)
- レイヤ3EtherChannel(ルーテッドポートでのEtherChannel)
バンドルする場合は、スイッチポートとルーテッドポートを混在させることは出来ない。
アクセスポートの設定
EtherChannelのリンクをアクセスリンクとするなら、バンドルされるポートは全てアクセスポートにして、所属するVLANを同一に合わせなければならない。
トランクポートの設定
アクセスポートと一緒で、トランクリンクとするならバンドルされるポートは全てトランクポートにしなければならない。さらに、以下の設定を統一する必要がある。
- トランキングプロトコル(ISL,IEEE 802.1Q)
- トランクポートの通貨を許可するVLANの範囲
- ネイティブVLANを合わせる(IEEE 802.1Qの場合)
EtherChannelのネゴシエーション
EtherChannelではネゴシエーションに2つのプロトコルを利用することができる。
PAgP(Port Aggregation Protocol)
Cisco独自のプロトコルで、非Ciscoデバイスとの接続は出来ない。
自分からネゴシエーション有効:desirable
自分からネゴシエーション無効:auto
また、サイレントモードとノンサイレントモードの2種類のオプションがあり、対向の機器からPAgPフレームが送信されてこなかった場合リンクダウンとなる。デフォルトはサイレントモード。
LACP(Link Aggregation Control Protocol)
IEEE 802.3ad
として標準化されている。非Ciscoデバイスとの接続で使用可能。PAgPと違い、最大16個のポートを同一チャネルグループとすることができる。16個全て使用するわけではなく、8個のポートがアクティブとなり、残りのリンクはスタンバイとなる。
自分からネゴシエーション有効:active
自分からネゴシエーション無効:passive
【アクティブとなるポートの判断基準】
- LACPシステムプライオリティ
- MACアドレス
- LACPポートプライオリティ
- ポート番号
モードを手動に設定した場合、向かいのスイッチも手動に設定する必要がある。
EtherChannelのロードバランシング
スイッチに着信したパケットは、バンドルされている物理ポートのどれかに以下の方法で振り分けられる。
方式 | 内容 |
---|---|
src-mac | 送信元MACアドレスによって負荷分散する |
dst-mac | 宛先MACアドレスによって負荷分散する |
src-dst-mac | 送信元と宛先MACアドレスによって負荷分散する |
src-ip | 送信元IPアドレスによって負荷分散する |
dst-ip | 宛先IPアドレスによって負荷分散する |
src-dst-ip | 送信元と宛先IPアドレスによって負荷分散する |
EtherChannelガード
一方は1つのポートとして判断しているが、対向では別々のポートとして判断しているといった、誤設定などによる不一致を検出してErr-disabel状態にする仕組みのこと。
EtherChannelの設定
設定する際はケーブルを外した状態で作業を行う
channel-groupコマンド
書式:channel-group [グループ番号] mode [on | auto | desirable | active | passive] [non-silent]
EtherChannelを作成するコマンド。インターフェイスコンフィギレーションモードで行う必要がある。バンドルさせたいポートは同じグループ番号に設定するが、対向のスイッチと合わせる必要はない。手動で形成する場合はonを指定し、対向の機器もonにする必要がある。
non-silentは、autoかdesirableにしたときのみ指定可能。対向の機器がPAgPフレームを送ってくると想定される場合に指定することで、受診はできないが送信はできるといった単方向リンクを検出できる。
コマンド実行後、自動的にport-channel
という倫理インターフェイスが作成され、画面にそのことが表示される。
オプション | 内容 |
---|---|
on | 無条件にいEtherChannelを形成するため、プロトロコルによるネゴシエーションを行わない |
auto | 相手からのPAgPネゴシエーションを受信し、EtherChannelを形成 |
desirable | 相手にPAgPネゴシエーションを送信して、EtherChannelを形成 |
passive | 相手からのLACPネゴシエーションを受信し、EtherChannelを形成 |
active | 相手からのLACPネゴシエーションを送信して、EtherChannelを形成 |
Switch(config)#interface range FastEthernet 0/9 - 10
Switch(config-if-range)#channel-group 1 mode on
Switch(config-if-range)#
Creating a port-channel interface Port-channel 1
channel-protocolコマンド
書式:channel-protocol [lacp | pagp]
ネゴシエーションを行う際に使用するプロトコルを指定するコマンド。インターフェイスコンフィギレーションモードで行う必要がある。対向の機器も同じプロトコルを指定する。
channel-groupコマンドのmodeにより、ネゴシエーションプロトコルは自動で決まるため実行しなくて問題ない。だが、先に設定しておくことでモードの指定ミスを防ぐことができる。
port-channel load-balanceコマンド
書式:port-channel load-balance [負荷分散オプション]
EtherChannelでの負荷を分散させる際の方法を変更するコマンド。グローバルコンフィギレーションモードで行う必要がある。
オプション | 負荷分散動作 |
---|---|
src-mac | 送信元Macアドレスを基に負荷分散 |
dst-mac | 宛先Macアドレスを基に負荷分散 |
src-dst-mac | 送信元および宛先Macアドレスを基に負荷分散 |
src-ip | 送信元IPアドレスを基に負荷分散 |
dst-ip | 宛先IPアドレスを基に負荷分散 |
src-dst-ip | 送信元および宛先IPアドレスを基に負荷分散 |
src-port | 送信元ポート番号を基に負荷分散 |
dst-port | 宛先ポート番号を基に負荷分散 |
src-dst-port | 送信元および宛先ポート番号を基に負荷分散 |
interface rangeコマンド
書式:interface range [インターフェイス]
複数のポートを選択して同じ設定を同時に行うコマンド。グローバルコンフィギレーションモードで行う必要がある。インターフェイスの指定は、カンマで区切る方法とハイフンで範囲を指定する方法がある。コマンドを実行するするとプロンプトが変化する
(config-if-range)#
lacp system-priorityコマンド
書式:lacp system-priority <プライオリティ値>
LACPシステムプライオリティを設定するコマンド。グローバルコンフィギュレーションモードで行う必要がある。プライオリティ値は1~65535の範囲から指定が可能。値が小さい方の機器がアクティブなポートとして判断される
lacp port-priorityコマンド
書式;lacp port-priority <プライオリティ値>
LACPポートプライオリティを設定するコマンド。インターフェイスコンフィギュレーションモードで行う必要がある。1~65535の範囲から指定が可能。
port-channel load-balanceコマンド
書式:port-channel load-balance < dst-ip | dst-mac | src-dst-ip | src-dst-mac | src-ip | src-mac>
ロードバランシングの方式を変更するコマンド。グローバルコンフィギュレーションモードで行う必要がある。
spanning-tree etherchannel guard misconfigコマンド
EtherChannelガードを無効化にするコマンド。グローバルコンフィギュレーションモードで行う必要がある。
EtherChannelの確認
show etherchannelコマンド
書式:show etherchannel [summary | detail | port]
EtherChannelの情報を確認するコマンド。特権EXECモードで行う必要がある。summaryを指定すると要約した情報が表示され、detailを指定すると詳細な情報が表示される。
SW3#show etherchannel
Channel-group listing:
----------------------
Group: 1
----------
Group state = L2
Ports: 2 Maxports = 8
Port-channels: 1 Max Port-channels = 1
Protocol: -
Switch#show etherchannel summary
Flags: D - down P - 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
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
------+-------------+-----------+----------------------------------------------
1 Po1(SU) - Fa0/9(P) Fa0/10(P)
show etherchannel load-balanceコマンド
現在のEtherChannelでどの負荷分散方法が設定されているかを確認するコマンド。特権EXECモードで行う必要がある。
Switch#show etherchannel load-balance
EtherChannel Load-Balancing Operational State (src-mac):
Non-IP: Source MAC address
IPv4: Source MAC address
IPv6: Source MAC address
show pagp neighborコマンド
PAgP設定時の隣接するスイッチの情報を確認するコマンド。特権EXECモードで行う必要がある。
show lacp neighborコマンド
LACP設定時の隣接するスイッチの情報を確認するコマンド。特権EXECモードで行う必要がある。
show lacp internalコマンド
自身のポートに設定されているLACPモードを確認するコマンド。特権EXECモードで行う必要がある。
show interfaces port-channelコマンド
書式:show interfaces port-channel [ポートチャネル番号]
指定したポートチャネル(論理インターフェイス)の情報を確認できるコマンド。特権EXECモードで行う必要がある。
Port-channel1 is up, line protocol is up (connected)
Hardware is EtherChannel, address is 0090.0ce9.2801 (bia 0090.0ce9.2801)
MTU 1500 bytes, BW 200000 Kbit, DLY 1000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Half-duplex, 200Mb/s
input flow-control is off, output flow-control is off
Members in this channel: Fa0/9 ,Fa0/10 ,
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:08, output 00:00:05, 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 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
956 packets input, 193351 bytes, 0 no buffer
Received 956 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
0 watchdog, 0 multicast, 0 pause input
0 input packets with dribble condition detected
2357 packets output, 263570 bytes, 0 underruns
0 output errors, 0 collisions, 10 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
レイヤ3EtherChannelの設定
レイヤ3EtherChannelとは、ルーテッドポートで行うEtherChannelのこと。レイヤ2EtherChannel(これまでのスイッチポートでのEtherChannel)と変わらないが、IPアドレスの設定はPort-channelインターフェイスで行う必要がある。
バンドルされている個々の物理ポート上ではIPアドレスの設定は必要ない
設定手順
- 論理インターフェースを作成
-
no switceport
コマンドで、論理インターフェースをレイヤ3モードにする - 論理インターフェースにIPアドレスを設定
-
no switceport
コマンドで、物理インターフェースをレイヤ3モードにする - 物理インターフェースにチャネルグループを設定
interface port-channelコマンド
書式:interface port-channel [ポートチャンネル番号]
論理インターフェイスを作成するコマンド。グローバルコンフィギュレーションモードで行う必要がある。