UbuntuでLAG(Link Aggregation)を設定する方法

開発環境

Ubuntuでリンクアグリゲーション(LACPやその他のボンディングモード)を設定するには、netplanを用いて設定する方法と、/etc/network/interfacesを用いて設定する2つがあります。以下にそれぞれの方法とその違い、適切な方法について説明します。

結論としてはUbuntu17.10以降の場合、netplanを使うことをお勧めします。

Link Aggregationの設定方法

netplanを用いてLAG(Link Aggregation)を設定する方法

Netplanは、Ubuntu 17.10以降の標準のネットワーク設定方法のようです。Netplanの設定ファイルを使うことで、yaml形式でネットワーク設定を行うことができます。リンクアグリゲーション (LAG)を設定する方法は以下の通りです。

設定例:

/etc/netplan/01-network-manager-all.yamlを以下のように設定します。

# /etc/netplan/01-network-manager-all.yaml

network:
    version: 2
    renderer: NetworkManager
    ethernets:
        eth0:
            dhcp4: no
        eth1:
            dhcp4: no
bonds:
    bond0:
        interfaces:
            - eth0
            - eth1
        addresses:
            - 192.168.1.100/24
        gateway4: 192.168.1.1
        parameters:
            mode: balance-xor
            mii-monitor-interval: 100

ネットワークインターフェース名、addressやgateway4は環境に応じて変更してください。
eth0やeth1のようなネットワークインターフェース名はip aのコマンドで確認することができます。

parametersのmodeはLink Aggregationのmodeです。modeに関しては本記事で後ほど説明します。

7種類のLAG(Link Aggregation)モード

設定適用方法:

設定ファイルを記入した後、以下のコマンドを実行して設定を適用します。

sudo netplan apply

うまく設定が反映されている場合、ip aを実行するとbond0が表示されます。

/etc/network/interfacesを使用する方法

/etc/network/interfaces ファイルは、古いUbuntuバージョン(主に16.04以前)で主に使用されます。リンクアグリゲーションを設定する例は以下の通りです。

設定例:

# /etc/network/interfaces

auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    bond-slaves eth0 eth1
    bond-mode 3
    bond-miimon 100

auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0

Netplanと/etc/network/interfacesのどちらが適切か

最新のUbuntu(17.10以降)を使用している場合、Netplan(/etc/netplan)を使用する方法が推奨されます。理由としては、最新のサポート、より簡単な管理、及び将来的な互換性が挙げられます。

うまくいかないときの対処法

sudo netplan apply等で設定を反映してもうまく動作していない場合、なんらかのエラーが起きている場合があります。その際は以下のコマンドでログを確認することでエラーが確認できます。

journalctl -u NetworkManager.service -xe

modeによって、使えるパラメータが異なることに特に注意する必要がありました。

7種類のLAG(Link Aggregation)モード

以下に、7つの種類のLAG(Link Aggregation)を表にまとめました。負荷分散と冗長性確保の2つの目的に合わせて選ぶ必要があります。

モード番号モード名目的説明
0balance-rr負荷分散送信トラフィックをラウンドロビン方式で各リンクに均等に分散する。各リンクは個別に使用され、負荷が均等に分散される。
1active-backup冗長性アクティブなリンクとスタンバイリンクのペアを使用し、アクティブリンクに障害が発生した場合にスタンバイリンクに自動的に切り替わる。
2balance-xor負荷分散送信トラフィックのソースと宛先のMACアドレスに基づいてリンクを選択し、トラフィックを均等に分散する。
3broadcast冗長性すべてのリンクにトラフィックをブロードキャストし、冗長性を提供する。
4802.3ad (LACP)負荷分散IEEE 802.3ad Dynamic link aggregationを使用し、複数のリンクを1つの論理リンクとして束ねることで、トラフィックを均等に分散する。
5balance-tlb負荷分散(送信のみ)トラフィックの送信はアクティブリンクに対してのみ行い、受信トラフィックはすべてのリンクで負荷分散を行う。
6balance-alb負荷分散(受信および送信)受信トラフィックの負荷分散を行い、送信トラフィックはアクティブリンクに送信する。受信トラフィックは各リンクに均等に分散される。

終わりに

設定後、ハブのランプを確認してみるとうまく動作していることが確認できました。

コメント

タイトルとURLをコピーしました