まるっきり初めての言葉です。チャネルボンディング。単純にもったいないの精神で始めました。うまくいくでしょうか。
そもそもチャネルボンディングとは?
チャネルボンディング(英 : Channel Bonding )とは、一台のコンピュータの複数のネットワークインタフェースを組み合わせて、冗長化またはスループット増強を行うコンピュータネットワークの技法。
イーサネットでのチャネルボンディングでは、ホストコンピュータのオペレーティングシステムとイーサネットのスイッチングハブの両者がそれをサポートしている必要があり、ちょうど RAID のディスクアレイの I/O が複数のディスク装置に分散されて行われるように、フレームの送受信を複数のインタフェースに分散させるようにしなければならない。このため、チャネルボンディングを RAIN (Redundant Array of Independent Network interfaces) とも呼ぶ。
チャネルボンディングは、 POTS におけるダイヤルアップ接続でも行われ、負荷分散によってスループットを増強するのに使われる。
チャネルボンディング - Wikipedia
MacPro には二つのイーサーネットコネクタがあります。 macOS では利用が可能ですが、 Linux ではどうなんでしょう。 Ubuntu インストールの際にどちらのインターフェイスを有効にするのか尋ねられました。あまり意識せずに選択したのをうっすら覚えています。私は浪費症の割に、ケチなので何となく二つあるイーサーネットコネクタがもったいなく思っていました。片方のみをアクティブにしているため、もう一方のコネクタにはラインをつないでも使えません。まず、こちらをアクティブにすることから始めました。
インアクティブになっているイーサーネットをアクティブにする
結論からいきます。ここに至るまでガッツリ時間がかかっていますが、無視します。
sudo nano /etc/network/interfaces でファイルを開きます。 eth0(Ethernet の 0 番 ) がアクティブになっているので、それに続いて eth1( もう片方の Ethernet) をアクティブにする用に記述します。
# 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
# The primary network interface
auto eth0
iface eth0 inet dhcp
#--- ここから下を追記する ---
# The secondary network interface
auto eth1
iface eth1 inet dhcp
さて、この記述を施した後で、実際にイーサーネットをアクティブにしていきます。
sudo ifup eth1
これで、 DHCP から IP アドレスを取得してイーサーネット eth1 がアクティブになったと思います。 IP アドレスは固定しておいた方がいいですね。私は多分邪道だと思うのですが、ネットルーターの方をいじって MAC アドレスと IP アドレスを結びつけて固定しています。
ifconfig -a で確認して、 eth0 だけでなく eth1 もアクティブになっているのを確認します。
チャネルボンディングの設定のその前に …
ここまでは別室にセットアップしている MacPro には触らずに SSH を使って設定していますが、ここからは直接 MacPro(2006) で設定します。理由は後で述べます。
試行錯誤をするんですが、困ったのはこの画面。
文字化けの嵐。エラーが出てもさっぱりわかりません。実はイーサーネットをいったんオフにしないといけない部分があって、 SSH では問題なく表示されるターミナル画面も本体に画面をつなげてやってみるとこの有様。この文字化けのおかげでどれだけ時間をロスしたか。ロケールを変更してもダメでした。普通のシステムであれば、いっそインストールをやり直してやれば良いのですが、なんせ変態システムの MacPro(2006) 。そう簡単にはいきません。
Ubuntu サーバーの日本語化-文字化けに対処する! | 経済的自由を得てセミリタイヤ-悠々自適生活!
このリンクにある fbterm と unifont を使った方法でエラーメッセージを日本語表示させて何とか泥沼から脱出できました。長かった。
今度こそ本当に設定の話
文字化けがとりあえず解消した状態で見えてきたエラーは「そんなチャンネルありませんよ」という内容でした。要するに設定がないということですね。 /etc/network/interfaces に bonding チャンネルの記述をすれば良さそうです。それを念頭に入れて検索したら
ありました。このページで設定されているのは、アクティブ・バックアップというモードでして、私がやりたかったのはラウンドロビン方式です。それを考慮して次のように /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
# The primary network interface
auto eth0
iface eth0 inet manual
bond-master bond0
# The secondary network interface
auto eth1
iface eth1 inet manual
bond-master bond0
auto bond0
iface bond0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
bond-mode balance-rr
bond-miimon 100
bond-slaves none
修正後、
sudo ifdown eth0
sudo ifdown eth1
sudo ifenslave bond0 eth0
sudo ifenslave bond0 eth1
ifdown は一旦インアクティブにするコマンド。 ifenslave は bond0 に Ethernet を参加させるコマンドですね。
一応、他のサイトではサービスを再起動させると言うことになっているのですが、なぜかエラーが出たのでサービスだけではなく、システムもまとめて再起動させました。その結果、上手くいったみたいですね。
kaizawa@ubuntu ~ ❯❯❯ ifconfig -a
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 2400:4052:83c0:d00:217:f2ff:fe04:80ee prefixlen 64 scopeid 0x0<global>
inet6 2400:4052:83c0:d00:24bf:6caa:e4ee:850f prefixlen 64 scopeid 0x0<global>
inet6 fe80::217:f2ff:fe04:80ee prefixlen 64 scopeid 0x20<link>
ether 00:17:f2:04:80:ee txqueuelen 1000 (イーサネット)
RX packets 9075 bytes 698922 (698.9 KB)
RX errors 0 dropped 1634 overruns 0 frame 0
TX packets 1635 bytes 204209 (204.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:17:f2:04:80:ee txqueuelen 1000 (イーサネット)
RX packets 117645 bytes 152583721 (152.5 MB)
RX errors 0 dropped 497 overruns 0 frame 0
TX packets 57956 bytes 4338154 (4.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 18 memory 0xf2c20000-f2c40000
eth1: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:17:f2:04:80:ee txqueuelen 1000 (イーサネット)
RX packets 1213 bytes 161388 (161.3 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1257 bytes 144603 (144.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0xf2c00000-f2c20000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (ローカルループバック)
RX packets 154393 bytes 9265585 (9.2 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 154393 bytes 9265585 (9.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
最近差別用語だとして Linux なんかでも削除の動きがある Master/Slave がここでは動いている証になっています。 bond0 が Master 、 eth0/1 が Slave になっているのが確認できます。ここまで来るのに丸一日かかってます。疲れました。
テストをして終了。と思ったら、 DNS サーバーが思った通りの動きをしてくれていないのが判明。ウ〜ン、困った。
投稿者プロフィール
最新の投稿
- Tech2024年11月28日ChromeOS flex を古いノートにインストール
- Linux2024年11月16日Ubuntu で外付け SSD の容量が違って見える
- Linux2024年11月13日Windows インストールできず。 Ubuntu に変更
- Windows2024年11月8日Windows11 起動せず