Ubuntu 14.04.1 で NIC を Bonding して Tagged VLAN を通す設定
2014-11-13 by Daisuke KotaniUbuntu 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
以上です。
Tweet