Ubuntu 14.04.1 で NIC を Bonding して Tagged VLAN を通す設定

2014-11-13 by Daisuke Kotani

Ubuntu 14.04.1 Server install image をインストールした直後の状態で、NIC を Bonding して Tagged VLAN を通すのに便利なまとめがなかったので自分用のメモです。

パッケージのインストール

ifenslave と vlan のパッケージが必要なのですが、デフォルトでは入っていないようなので、インストールします。 そもそも bonding の設定をしないとネットワークにつながんないので、CD からインストールします。

apt で CD-ROM にあるリポジトリを参照するために /etc/apt/sources.list を以下のように変更。

--- /etc/apt/sources.list.orig  2014-11-13 11:40:38.052061130 +0900
+++ /etc/apt/sources.list   2014-11-13 11:40:44.192061288 +0900
@@ -2,7 +2,7 @@

 # deb cdrom:[Ubuntu-Server 14.04.1 LTS _Trusty Tahr_ - Release amd64 (20140722.3)]/ trusty main restricted

-#deb cdrom:[Ubuntu-Server 14.04.1 LTS _Trusty Tahr_ - Release amd64 (20140722.3)]/ trusty main restricted
+deb cdrom:[Ubuntu-Server 14.04.1 LTS _Trusty Tahr_ - Release amd64 (20140722.3)]/ trusty main restricted

 # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
 # newer versions of the distribution.

で、ifenslave と vlan を apt でインストール。

# apt-get install ifenslave vlan

kernel modules

/etc/modules に 8021q と bonding を追加して、802.1q と Bonding 用の kernel module が読み込まれるように設定。

--- /etc/modules.orig   2014-11-13 11:50:57.936077002 +0900
+++ /etc/modules    2014-11-13 11:51:06.976077234 +0900
@@ -6,3 +6,5 @@

 lp
 rtc
+bonding
+8021q

/etc/modprobe.d/bonding.conf を作って以下の内容を書く。本当は /etc/network/interfaces に書けたらいいなぁと思ってはいるんですが、とりあえずこれで動いたので今はこうしています。

alias bond0 bonding
options bonding mode=4 xmit_hash_policy=layer2+3

mode=4 は 802.3ad を使う、xmit_hash_policy はパケットの分散にどのヘッダーを使うかを指定するもので、どちらもデフォルトのラウンドロビン/layer2 だと嫌だったので変更しています。特に、xmit_hash_policy が layer 2 だとデフォルトゲートウェイ行きの通信が偏ってしまうので。

/etc/network/interfaces

/etc/network/interfaces には次のように書いています。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
bond-master bond0

auto eth1
iface eth1 inet manual
bond-master bond0

auto bond0
iface bond0 inet manual
bond-slaves eth0 eth1

auto bond0.XXXX
iface bond0.XXXX inet static
address 192.0.2.1
netmask 255.255.255.0

以上です。



このエントリーをはてなブックマークに追加