ネットワーク設定 · 1 min read · Oct 30, 2025
NIC Bonding/Teaming - Debian Sarge
概要:
ここで読みやすいバージョンを見つけることができます: 5dollarwhitebox.org
NICボンディング(またはNICチーミングとも呼ばれる)の概念は、2つのNICを結合して、同じ物理デバイスのように見せることです。つまり、両方とも同じハードウェア(MAC)アドレスを提示します。これは、ifenslaveユーティリティを通じて実現され、カーネルは1つのデバイスのみを見たり使用したりしながら、ラウンドロビンスケジューラを使用して2つのスレーブデバイスを介してパケットを送信します。
システム: Debian Sarge 3.1 (バニラカーネル 2.6.12.4) 関与するモジュール: bonding, mii, nic_module (この例ではe100) ユーティリティ: ifenslave, mii-tool
準備:
2つのNICをボンドする前に、それぞれのNICの整合性と機能性を確認することを強くお勧めします。この文書は、すでにそれを行ったと仮定しています。’mii-tool’を使用すると、次のような出力が表示されるはずです:
testbox:/# mii-tool eth0: negotiated 100baseTx-FD, link ok eth1: negotiated 100baseTx-FD, link ok
これが機能するためには、カーネルがボンディングデバイスをサポートしている必要があります。確認する方法はいくつかあります:
testbox:/# modprobe –list | grep* bonding /lib/modules/2.6.12.4-vs2.0/kernel/drivers/net/bonding/bonding.ko
- testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i bonding
CONFIG_BONDING=m
mii-tool (mii.oモジュール)を使用してインターフェースのフェイルオーバーを監視します… ほとんどのイーサネットアダプタはMII(メディア独立インターフェース)を使用してリンク速度を自動交渉するため、これを持っているのはかなり標準です。
testbox:/# cat /boot/config-2.6.12.4-vs2.0 | grep -i mii ** *# CONFIG_MPENTIUMIIは設定されていません
CONFIG_MII=y ** *
testbox:/# modprobe –list | grep -i mii /lib/modules/2.4.26-2-686/kernel/drivers/net/mii.ko
次に、ifenslaveユーティリティをインストールする必要があります。
testbox:/# apt-get update && apt-get install ifenslave ………. 標準出力を削除しました(興味深いものはありません)
ここには設定はありませんので、それで終わりです。これで構成ファイルの準備が整いました。
構成ファイル:
これには多くの異なるバリエーションがありますが、今のところ… これが私が動作させるために行った方法です。
vi /etc/modutils/aliases を開いて、次のように追加/編集します:
alias bond0 bonding alias eth0 e100 alias eth1 e100 options bonding mode=0 miimon=100
vi /etc/modutils/actions を開いて、次のように追加/編集します:
probeall bond0 eth0 eth1 bonding
modprobe設定ファイルを編集した後、次のコマンドを実行する必要があります:
testbox# update-modules
vi /etc/network/interfaces を開いて、次のように追加/編集します:
auto bond0 iface bond0 inet static address 10.1.100.63 netmask 255.255.255.0 hwaddress ether 00:02:B3:48:50:2C gateway 10.1.100.1 up ifenslave bond0 eth0 eth1 down ifenslave -d bond0 eth0 eth1
‘eth0’または’eth1’のエントリを上記の’bond0’エントリの外で設定することはありません。Bond0は、カーネルが操作するインターフェースになります。’ifconfig’を実行すると、すべてのインターフェース(bond0、eth0、eth1)が表示され、すべて同じMACおよびIPアドレスを持ちます。
基本的にはこれで終わりです。今、あなたがする必要があるのは’bonding’モジュールをロードし、ネットワークを停止/開始することです… 適切なモジュールが自動的にロードされるはずです:
testbox:/# modprobe bonding testbox:/# /etc/init.d/networking stop testbox:/# /etc/init.d/networking start
この部分は少し試行錯誤が必要かもしれません。私の場合、bond0デバイスを手動でifconfig upする必要がありました:
testbox:/# ifconfig bond0 10.1.15.63 netmask 255.255.255.0 up
エラーがなければ、これをテストできるはずです。他のボックスからあなたのIPアドレスにpingを試みてください。両方のNICがpingリクエストに応答するのがわかります(ラウンドロビン)。eth0のケーブルを抜くと、コンソールに「eth0が失敗しました、eth1がプライマリになります」またはそのようなメッセージが表示されます(eth1を抜くと逆になります)。しかし、pingリクエストはドロップしないはずです(または数回以上はドロップしないはずです)、なぜなら今は冗長なネットワーク接続があるからです。
より高性能な環境では、各NICを別々のスイッチに接続(同じVLANに留まる)し、高可用性構成をさらに改善することができます… などなど。
BJ Dierkes, RHCE4-LPIC1 wdierkes [at] 5dollarwhitebox [dot] org テキサス州、アメリカ
リソース:
Debian GNU/Linux: https://www.debian.org
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。