リンクアグリゲーションの設定 - Catalyst
Catalystでリンクアグリゲーションを設定するコマンドの使い方について説明したページです。リンクアグリゲーションの動作や意味については「リンクアグリゲーション」をご参照下さい。
イーサチャネルの概要
Catalystではリンクアグリゲーションをイーサチャネルと呼んでいます。イーサチャネルは通常、スタックしたスイッチを跨いだ構成、シャーシ型で複数のラインカードを跨いだ構成も可能です。
イーサチャネルでの自動構成にはLACPの他にPAgPが利用出来ます。PAgPはCatalyst独自方式のため、Catalyst間を接続した時だけ利用可能です。
PAgPの中には2つのモードがあります。それぞれの意味は以下の通りです。
モード | 意味 |
---|---|
desirable | 自身からイーサチャネルを構成するためネゴシエーションします。 |
auto | 自身からはイーサチャネルを構成しようとせず、相手からネゴシエーションがあった場合のみ構成します。 |
このため、autoモードとautoモードの間ではイーサチャネルが構成されません。又、PAgPではスタックしたスイッチを跨いだイーサチャネルを構成出来ません。
LACPにも2つのモードがあり、それぞれの意味は以下の通りです。
モード | 意味 |
---|---|
active | 自身からイーサチャネルを構成するためネゴシエーションします。 |
passive | 自身からはイーサチャネルを構成しようとせず、相手からネゴシエーションがあった場合のみ構成します。 |
このため、passiveモードとpassiveモードの間ではイーサチャネルが構成されません。
この他のモードではonがあります。ネゴシエーションせずにイーサチャネルを構成します。
LACP、on共にスタックしたスイッチを跨いだイーサチャネルを構成出来ます。最近では通常、activeにすると思いますが、サーバーや他社製スイッチ等と接続する時もイーサチャネルは利用可能で、相手装置がLACPをサポートしていない場合はonにする事もあります。
イーサチャネルでは同時に8つのインターフェースをアクティブにする事が出来ます。
以下の図のように2つのスタックされたスイッチ間でイーサチャネルを構成する場合を例に設定を説明します。
スイッチAに対するイーサチャネルの設定は以下の通りです。
Switch# configure terminal Switch(config)# interface range gigabitethernet1/0/1 , gigabitethernet2/0/1 Switch(config-if-range)# switchport Switch(config-if-range)# channel-group 1 mode active Switch(config-if-range)# no shutdown Switch(config-if-range)# exit
赤の数字はポートチャネルと呼ばれる論理インターフェースのチャネルグループ番号になります。上記の設定を行うと自動的にポートチャネル1という論理的なインターフェースが作成されます。
3つ目のインターフェースを追加したい等、後でインターフェースを追加する時は追加したいチャネルグループ番号を設定します。つまり、同じチャネルグループ番号にすると同じポートチャネルに組み込まれます。
同じスイッチで異なるポートチャネルを作成する時は、異なるチャネルグループ番号にする必要があります。
使える番号は機種やIOSによって違いますが、最低で1〜6、シャーシ型のスイッチでは1〜256(最大128個作成可能)まで使えるものもあります。
又、緑の文字ではactiveモードにしていますが、passive、onにするとそれぞれのモードで設定出来ます。スイッチを跨いでいない場合はdesirableとautoのモードも使えます。
イーサチャネルを構成するインターフェースでは速度やDuplex等が同じ設定になっている必要があります。
スイッチBに対する設定も同様です。
Switch# configure terminal Switch(config)# interface range gigabitethernet1/0/1 , gigabitethernet2/0/1 Switch(config-if-range)# switchport Switch(config-if-range)# channel-group 1 mode active Switch(config-if-range)# no shutdown Switch(config-if-range)# exit
上記にように、スイッチが異なる場合は同じチャネルグループ番号を使えますが、異なるチャネルグループ番号でも大丈夫です。対向するスイッチ間では出来れば同じチャネルグループ番号にした方が分かり易いと思います。
設定はno channel-groupe 1等で削除可能です。
ポートチャネルの設定
ポートチャネルに対しては、例えば以下のようにgigabitethernet1/0/1等の物理インターフェースと同様の設定が行えます。
Switch(config)# interface port-channel 1 Switch(config-if)# switchport Switch(config-if)# switchport trunk encapsulation dot1q Switch(config-if)# switchport trunk allowed vlan 10,20 Switch(config-if)# switchport mode trunk Switch(config-if)# exit
ポートチャネルに設定した内容はチャネルグループに属する物理インターフェースに対して自動的に設定が追加されます。このため、自動的に追加された設定に対しては物理インターフェースで設定する必要はありません。
又、物理インターフェースにも同じ設定をした場合は動作する事が殆どですが、IOSのバージョンによってはsuspendedとなって通信出来ない場合があります。この場合は、一旦ポートチャネルに属する物理インターフェースの設定を外し、再度ポートチャネルに設定を行う事で物理インターフェースに自動的に設定が追加され、イーサチャネルを構成出来る場合があります。
イーサチャネルの確認
設定後はshow etherchannel summaryコマンドで確認可能です。
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
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
------+-------------+-----------+----------------------
1 Po1(SU) LACP Gi1/0/1(P) Gi2/0/1(P)
赤字部分はgi1/0/1と2/0/1がイーサチャネルに組み込まれていてport-channel 1が使える状態である事を示しています。イーサチャネルが構成されていなくてport-channelが表示されない、D等でdownになっていない事を確認します。
尚、ポートチャネルはno interface port-channel 1等で削除可能です。
負荷分散の設定
イーサチャネルで負荷分散の方法を変更するコマンドは以下の通りです。
Switch(config)# port-channel load-balance src-dst-ip
上記ではsrc-dst-ipを指定し、送信元、宛先両方のIPアドレスの組み合わせで負荷分散しますが、他には以下の設定があります。
設定 | 意味 |
---|---|
dst-ip | 宛先IPアドレスで負荷分散 |
dst-mac | 宛先Macアドレスで負荷分散 |
src-dst-mac | 送信元、宛先両方のMacアドレスの組み合わせで負荷分散 |
src-ip | 送信元IPアドレスで負荷分散 |
src-mac | 送信元Macアドレスで負荷分散 |
殆どのボックス型は上記の設定が可能でデフォルトはsrc-macです。
シャーシ型等では他に以下の設定が可能なCatalystもあります。
設定 | 意味 |
---|---|
src-port | 送信元ポート番号で負荷分散 |
dst-port | 宛先ポート番号で負荷分散 |
src-dst-port | 送信元、宛先両方のポート番号の組み合わせで負荷分散 |
上記の設定が可能なCatalystではデフォルトはsrc-dst-ipです。
設定はno port-channel load-balanceでデフォルトに戻す事が出来ます。
留意点
イーサチャネルの負荷分散は同じアドレスのものは同じ物理インターフェースに送信されるため、設定によっては上手く機能しない場合があります。特にボックス型では通常、デフォルトがsrc-macのためレイヤー3スイッチとして利用する時は留意が必要です。詳細はトラブル対応の「リンクアグリゲーションが遅い」をご参照下さい。
又、Catalystのイーサチャネルでは、設定された負荷分散方法に従いアドレスやポート番号を使って計算すると0〜7の数字になるアルゴリズムを使っており、その番号を基に出力するインターフェースが決定されます。
例えば8つの物理インターフェースでイーサチャネルを構成していた場合、0〜7の番号は均等に8つのインターフェースに負荷分散されます。これは2つ、又は4つの物理インターフェースで構成している場合も同様で、0〜7の番号の内、それぞれ4つ、又は2つの数字が均等に割り当てられます。
3つの物理インターフェースでイーサチャネルを構成していた場合、0〜7つの番号を均等に割り当てる事が出来ません。このような場合、負荷分散が偏る可能性があります。
つまり、アドレスやポートで通信量が偏っていない場合、2、4、8つの物理インターフェースでイーサチャネルを構成した場合に最も均等な負荷分散の実現が可能です。
- 応用編「リンクアグリゲーション」
- トラブル対応「リンクアグリゲーションが遅い」