シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

EtherChannelの負荷分散を調べてみました

シナプスの技術部ネットワーク課の福山と申します。

CiscoスイッチでEtherChannelを使用し、複数の物理ポートを束ねて1つの論理ポートとして扱うことができます。 実際に送信されるポートはEtherChannelのロードバランス方式に基づいて負荷分散されますが、 今回、どの物理ポートから出力されるか確認できるコマンドがあったので、試しにテストしてみました。 ※実際に使えるコマンドはIOSにより異なります。

検証環境

WS-C3850-12XS IOS XE 16.6.5

Te1/0/1, Te1/0/2, Te1/0/3, Te1/0/4でEtherChannelを構成

f:id:chamesan:20200812153717p:plain

負荷分散テストコマンド

EtherChannelの構成において、どの物理インターフェースからパケットが送信されるかを確認するコマンドは、下記となります。

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.1 192.168.2.1
「switch」の後に入力する引数の確認方法
#show platform software fed switch ?
  <1-9>    Switch number
  active   Active instance
  standby  Standby instance
#show switch
Switch/Stack Mac Address : 1234.5678.9abc - Local Mac Address
Mac persistency wait time: Indefinite
                                             H/W   Current
Switch#   Role    Mac Address     Priority Version  State
-------------------------------------------------------------------------------------
*1       Active   1234.5678.9abc     1      V03     Ready

「Switch」の「1」、もしくは「Role」の「active」

「etherchannel」の後に入力する引数の確認方法
#show platform software fed switch active etherchannel ?
  <1-128>  Etherchannel group number
#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

        A - formed by Auto LAG


Number of channel-groups in use: 1
Number of aggregators:           1

Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)          -        Te1/0/1(P)  Te1/0/2(P)  Te1/0/3(P)
                                 Te1/0/4(P)

channel-group番号の「1」

テスト条件の入力内容
#show platform software fed switch 1 etherchannel 1 load-balance ?
  extended  Extended Load Balance Methods
  ip        Input Src/Dest IP addresses
  mac       Input Src/Dest MAC addresses
  port      Input Src/Dest port

送信元IP:192.168.1.1, 宛先IP:192.168.2.1

ロードバランス方式 src-mac でテスト

今回は送信元IPと宛先IPを変更してテストしてみます。 検証環境のデフォルトのロードバランス方式は src-mac(送信元MACアドレスに基づいてトラフィックを分散)です。そのため、送信元IPや宛先IPがかわっても分散されません。

現在のロードバランス方式の確認
#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
送信元IPと宛先IPを変更してテスト
#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.1 192.168.2.1
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.2 192.168.2.2
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.3 192.168.2.3
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.4 192.168.2.4
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.5 192.168.2.5
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.6 192.168.2.6
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.7 192.168.2.7
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.8 192.168.2.8
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.9 192.168.2.9
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.10 192.168.2.10
Dest Port: : TenGigabitEthernet1/0/1

全て Te1/0/1から出力されている

ロードバランス方式 src-dst-ip でテスト

ロードバランス方式を src-dst-ip(送信元と宛先IPアドレスに基づいてトラフィックを分散) に変更して試してみると、分散されているのがわかります。

変更可能なロードバランス方式の確認
(config)#port-channel load-balance ?
  dst-ip                 Dst IP Addr
  dst-mac                Dst Mac Addr
  dst-mixed-ip-port      Dst IP Addr and TCP/UDP Port
  dst-port               Dst TCP/UDP Port
  extended               Extended Load Balance Methods
  src-dst-ip             Src XOR Dst IP Addr
  src-dst-mac            Src XOR Dst Mac Addr
  src-dst-mixed-ip-port  Src XOR Dst IP Addr and TCP/UDP Port
  src-dst-port           Src XOR Dst TCP/UDP Port
  src-ip                 Src IP Addr
  src-mac                Src Mac Addr
  src-mixed-ip-port      Src IP Addr and TCP/UDP Port
  src-port               Src TCP/UDP Port
ロードバランス方式を src-dst-ipに変更
(config)#port-channel load-balance src-dst-ip
  • 確認
#show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-dst-ip

EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source XOR Destination MAC address
  IPv4: Source XOR Destination IP address
  IPv6: Source XOR Destination IP address
送信元IPと宛先IPを変更してテスト
#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.1 192.168.2.1
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.2 192.168.2.2
Dest Port: : TenGigabitEthernet1/0/3

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.3 192.168.2.3
Dest Port: : TenGigabitEthernet1/0/4

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.4 192.168.2.4
Dest Port: : TenGigabitEthernet1/0/4

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.5 192.168.2.5
Dest Port: : TenGigabitEthernet1/0/3

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.6 192.168.2.6
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.7 192.168.2.7
Dest Port: : TenGigabitEthernet1/0/2

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.8 192.168.2.8
Dest Port: : TenGigabitEthernet1/0/1

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.9 192.168.2.9
Dest Port: : TenGigabitEthernet1/0/2

#show platform software fed switch 1 etherchannel 1 load-balance ip 192.168.1.10 192.168.2.10
Dest Port: : TenGigabitEthernet1/0/4

送信元IPと宛先IPを100回変更してテスト

ロードバランス方式は src-dst-ipで、送信元IPと宛先IPを100回変更してテストしてみました。

4つの物理ポートでEtherChannelを組んだ場合

結構均等に分散されているようです。

出力されるポート 送信元IPのみ変更 宛先IPのみ変更 送信元IPと宛先IPを変更
Te1/0/1 25 24 25
Te1/0/2 24 25 25
Te1/0/3 25 25 26
Te1/0/4 26 26 24
3つの物理ポートでEtherChannelを組んだ場合

今度は3つの物理ポートでEtherChannelを組んでテストしてみました。 結果としては4つの時よりも分散にばらつきがあるようです。

出力されるポート 送信元IPのみ変更 宛先IPのみ変更 送信元IPと宛先IPを変更
Te1/0/1 32 32 31
Te1/0/2 35 35 37
Te1/0/3 33 33 32

まとめ

あくまでもテスト用のコマンドですが、ロードバランス方式やEtherChannelを組む数で どのように負荷分散するか確認できたのはおもしろかったです。

実際には各物理ポートのトラフィックを監視して、適切なロードバランス方式を選択する 必要があると思います。