Cisco Catalyst 2960L を使用したリンクアグリゲーションの設定

Posted on Mon 14 January 2019 in JP

ファイルサーバーとL2スィッチ間のリンクアグリゲーションを設定する

自宅用にCisco Catalyst 2960Lを手に入れました。 このL2スイッチではリンクアグリゲーションを設定することができるので、ファイルサーバーとスイッチ間でリンクアグリゲーションを設定します。

これにより、帯域を増やすことができ複数のクライアントが同時にアクセスしてもパフォーマンスの低下を防げることが期待できます。

リンクアグリゲーションとは

リンクアグリゲーション(IEEE 802.3ad)とは、複数の物理リンクをまとめて1本の論理リンクとして扱うことの技術です。 物理リンクの本数分の帯域を増やすことができる他、複数本の物理リンクが切断されてしまっても残りのリンクで通信を継続できるため、耐障害性も向上します。

CiscoではEtherCahnnelと呼ばれています。

構成

link_aggregation

上記のようにファイルサーバーとスイッチ間を2本のLANケーブルで接続します。 ファイルサーバー側のLANポート2つと、スイッチ側のLANポート2つを、それぞれ接続します。

設定

ファイルサーバー側

Netplanを使用して設定を行います。 enp0s31f6とenp8s0の2つのポートをまとめたbond0というdeviceを作成します。 modeは、IEEE802.3ad準拠で通信できるよう"802.3ad"を設定しています。

$ sudo vi /etc/netplan/01-netcfg.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s31f6:
      dhcp4: false
      dhcp6: false
    enp8s0:
      dhcp4: false
      dhcp6: false
  bonds:
    bond0:
      dhcp4: false
      dhcp6: false
      interfaces:
        - enp0s31f6
        - enp8s0
      addresses: [192.168.1.2/24]
      gateway4: 192.168.1.1
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100

参考URL: - Netplan configuration examples - Bonding - Netplan reference - Properties for device type bonds

設定ファイル編集後、変更を下記コマンドで適用します。

$ sudo netplan apply

L2スイッチ側

Catalyst 2960L 側の設定です。 グローバルコンフィグレーションモードへ移行し、Gi0/1とGi0/2のポートを指定しインターフェースコンフィグレーションモードに移行します。

switchportコマンドでレイヤー2のポートに設定し、channel-groupコマンドでリンクアグリゲーション(EtherChannel)を形成するように設定します。

Switch> enable
Switch# configure terminal
Switch(config)#interface range Gi0/1,Gi0/2
Switch(config-if-range)#switchport
Switch(config-if-range)#channel-group 1 mode active

パフォーマンス測定

リンクアグリゲーション設定前

クライアント1台で計測

% iperf3 -c 192.168.1.2 -p 18080
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.09 GBytes   939 Mbits/sec                  sender
[  5]   0.00-10.00  sec  1.09 GBytes   938 Mbits/sec                  receiver

iperf Done.

まずは、リンクアグリゲーション設定前の帯域を計測してみます。 1GbpsのLANを構築しているので、大体そのぐらいの結果が出ていることをわかります。

クライアント2台で計測

# iperf3 -c 192.168.1.2 -p 18081
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   629 MBytes   528 Mbits/sec  2036             sender
[  4]   0.00-10.00  sec   629 MBytes   527 Mbits/sec                  receiver

iperf Done.
% iperf3 -c 192.168.1.2 -p 18080
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   538 MBytes   451 Mbits/sec                  sender
[  5]   0.00-10.00  sec   538 MBytes   451 Mbits/sec                  receiver

iperf Done.

今度は、クライアント2台から同時にパケットを送信して帯域を計測してみます。 1Gbpsある帯域をそれぞれのクライアントで分け合う結果となります。

リンクアグリゲーション設定後

クライアント2台で計測

# iperf3 -c 192.168.1.2 -p 18081
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   942 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver

iperf Done.
% iperf3 -c 192.168.1.2 -p 18080
...
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  1.10 GBytes   942 Mbits/sec                  sender
[  5]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver

iperf Done.

リンクアグリゲーション設定後の計測結果です。 リンクアグリゲーションにより、帯域が2Gbpsに増加しているのが確認できました。

リンクアグリゲーションのロードバランシングは、デフォルトではMACアドレスによる制御となっていることが多いです。 Catalyst 2960L では、送信先、送信元のMACアドレスでバランシングされるよう設定されています。

このような設定の場合、クライアントとサーバーが1対1で通信していると、たとえ複数のTCPポートを使用していてもバランシングされず、思ったより帯域が出ないということもあるので気を付ける必要があります。 IPアドレスやポート番号に基づいたロードバランシングを設定することもできるので、ユースケースによって設定を考慮する必要があります。

Switch>show etherchannel load-balance
EtherChannel Load-Balancing Configuration:
        src-dst-mac

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