EtherChannelの設定を紹介します。
これも実務でネットワーク触っている方なら当たり前のように日常的に使っているテクノロジーだと思います。複数の物理ケーブルを論理的に束ねて1本にまとめる技術で冗長化と負荷分散の両方の効果があります。同一の機器から別の機器にケーブルを複数接続する場合、STPという選択肢もありますが、EtherChannelにしたほうが構成的にもシンプルになりますし何より負荷分散の効果もありますのでこちらのほうがおすすめです。
これは設定しておいて助かったということが過去に何度もありますので、可能であれば是非設定してください。以下、設定の紹介です。
vlan 10,20,30 no spannning-tree vlan 10,20,30 interface GigabitEthernet1/0/1 channel-group 1 mode on interface GigabitEthernet1/0/2 channel-group 1 mode on interface Port-channel1 switchport trunk encapsulation dot1q switchport trunk allowed vlan 10,20,30 switchport mode trunk |
上記ではmode onとしていますが、他にPort Aggregation Protocol ( PAgP : ポート集約プロトコル ) 、Link Aggregation Control Protocol ( LACP ) のいずれかでも設定可能です。EtherChannelの設定は両端を同じにする必要があります。
EtherChannelの一端をPAgPまたはLACPに設定すると、もう一方とネゴシエーションしアクティブにするポートを決定します。一方、リンクの両端をonに設定するとネゴシエーションは実行されずポートを強制的にアクティブにします。
実際の現場ではスイッチ同士の接続であればmode onで設定されているのをよくみかけます。LinuxなどのサーバのNICをボンディングするケースにおいてはLACPで設定されているのをよくみかけます。
実際にConfigで設定できる項目は以下となります。
設定項目 | 説明 |
active | LACPのアクティブネゴシエーションを有効にし、相手ポートと通信を開始します。 |
passive | LACPのパッシブネゴシエーションを有効にします。 受信するLACPパケットには応答しますが自身から送信することはありません。 |
desirable | PAgPのアクティブネゴシエーションを有効にし、相手ポートと通信を開始します。 |
auto | PAgPのパッシブネゴシエーションを有効にします。 受信するPAgPパケットには応答しますが自身から送信することはありません。 |
on | ポートはネゴシエーションせずに強制的にChannelを形成します。 |
(config-if)# channel-group 1 mode ? active Enable LACP unconditionally auto Enable PAgP only if a PAgP device is detected desirable Enable PAgP unconditionally on Enable Etherchannel only passive Enable LACP only if a LACP device is detected |
物理インターフェイスでchannel-groupを指定することになり、同じ番号を指定したインターフェイス同士がひとつに束ねられることになります。そしてchannel-groupを設定した段階でPort-channelという論理インターフェイスが自動的に作成されます。
実務でよく見かけるのですがchannelインターフェイスの設定変更を行う場合、物理インターフェイスの設定を変更してPort-channelの設定変更をしている方を見受けます。これでも変更できなくはないのですが、一方の物理インターフェイスを変更した段階で設定に矛盾が生じて通信断が発生していしまい奨励されません。そういう場合はPort-channelインターフェイスの設定を変更することにより物理インターフェイスにも設定が自動的に反映されます。
EtherChannelのステータスは以下のコマンドで確認可能です。
# 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) - Gi1/0/1(P) Gi1/0/2(P) |
Layer2で正常ですと上記のようにPo1(SU)と表示されます。Layer3ですとPo1(RU)と表示されます。画面上部にヘルプが表示されていますのでDやsが表示されていた場合は何かしら設定がミスっている、ネゴシエーションがあっていないなど考えられますので今一度設定のみなおしを。
また一つのchannel-groupに所属できる物理ポートには制限がありますのでご注意を。機種ごとに異なると思いますがCatalyst2960Sでは最大8ポートです。その他、作成できるPort-channelにも当然ながら制限があります。
■ロードバランス方式
EtherChannelは負荷分散にもなると上にも記載しましたが方式を選択することができます。方式には以下のものがあります。
dst-ip | 宛先IPにより負荷分散 |
dst-mac | 宛先MACにより負荷分散 |
src-dst-ip | 送信元・宛先IPにより負荷分散 |
src-dst-mac | 送信元・宛先MACにより負荷分散 |
src-ip | 送信元IPにより負荷分散 |
src-mac | 送信元MACにより負荷分散 ( デフォルト ) |
どの方式が良いのかはそれぞれの環境によりけりです。宛先IPが一個しかないような場合は送信元IPまたはMACを選択するほうが良いですし送信元IPが一個しかない場合は送信先を元にバランシングしたほうがより効果的だと思います。
設定は以下のように行います。
(config)# port-channel load-balance ? dst-ip Dst IP Addr dst-mac Dst Mac Addr src-dst-ip Src XOR Dst IP Addr src-dst-mac Src XOR Dst Mac Addr src-ip Src IP Addr src-mac Src Mac Addr |