ubuntu server 24.0.4.1の2つある2.5GbEのEthernetポートをまとめて1つにする。Network Bonding

Intel N100搭載のMini PC、Beelink EQ12にubuntuを入れて稼働して9ヶ月以上経ったが、ずっと試したくていたが、2.5GbEのSwitching Hubが5ポートでポートがたりずに試せずにいた。が、先日の雷でSwitching Hubもひとつやられたのを機にPlanexの新型の2.5GbE 8ポート Switching Hubを購入。

やった。これで試せる!

と、よろんだものの、なかなか時間が取れず、やっと試す(^^;

Switching HubはPlanex FX2G-08EM2

Switching Hubはこれを用意。

2.5GbEの8ポートはこれまで2万円台だったが、Planexのこれは1.2万円ほど。しかもサイズは5ポートと【全く】おなじ。コンパクトだ。すでに丸1ヶ月以上使っているがすこぶる安定。筐体の発熱も少ない。

これとBeelink EQ12のEthernet2つとも繋ぐ。ubuntu serverのInstall時に2つのうち1つはdisableしているので、そちらにケーブル繋いでも確認ランプは当然つかないが、物理的にはこれで準備よし。

ubuntu Server 24.0.4.1の設定

まずはNIC確認。

ip address show

表示された情報によればEQ12のEthernetポート2つは

enp1s0(動作中)
enp2s0(disable)

の2つ。そういえばWi-Fiも搭載しているので

wlo1(disable)

もあった。メモる。ubuntu 24.0.4.1のネットワーク設定はnetplanで行い、
/etc/netplan/hogehoge.yaml
という設定ファイルを読み込んで動作する。今現在のファイルを確認

ls /etc/netplan
50-cloud-init.yaml

50-cloud-init.yamlというInstall時に作られたであろう設定ファイルが一つある。ので、02-bonding.yamlてな設定ファイルを新たに作る。例によって個人的にviは好きではないので私はnanoで。

sudo nano /etc/netplan/02-bonding.yaml

内容は下記のようにした

# 2024.10.01 idi-s eq12 bonding

network:
   version: 2
   ethernets:
      enp1s0:
         addresses: []
         dhcp4: false
         dhcp6: false
      enp2s0:
         addresses: []
         dhcp4: false
         dhcp6: false
      wlo1:
         addresses: []
         dhcp4: false
         dhcp6: false

   bonds:
      #束ねた後のNIC名を指定する.
      bond0:
         #束ねた後のIPやゲートウェイ,DNSを指定する.
         addresses: [192.168.1.8/24]
         routes:
          - to: default
            via: 192.168.1.1
            metric: 100
         nameservers:
            addresses: [192.168.1.1]
         #束ねるNIC名を列挙する
         interfaces:
            - enp1s0
            - enp2s0
         parameters:
            #束ね方をmodeで指定する
            mode: balance-alb
            #NICの監視間隔(msec)
            mii-monitor-interval: 100
            #arpの監視間隔(0は無効)
            arp-interval: 0

networkの項目は個別の動きとしてはfalseにして止める。代わりにbondsの項目で設定していく。今回はenp1s0とenp2s0の2つをまとめた。まとめた仮想のEthernetポートのIPアドレスはもちろん個々の環境に合わせるし、もちろんroutesやnameserverも個々の環境に合わせる。

で、bondingのモードだが6つのモードがある。

bonding動作モード   概要
0balance-rr全てのメンバーデバイス (NIC) を使用して、順番 (ラウンドロビン) にデータを送受信する。
負荷分散と冗長化に対応する。
trunk に対応したスイッチが必要となる。
ボンディングの設定時に Mode を指定しない場合は、当モードがデフォルトモードとして適用される。
1active-backupメンバーデバイスのうちの 1つの NIC のみをアクティブインターフェイスとしてデータを送受信する。
冗長化に対応する。
2balance-xor送信元/先の MAC アドレスを元に、メンバーデバイスから送信デバイスを決定してデータを送受信する。
負荷分散と冗長化に対応する。
trunk に対応したスイッチが必要となる。
3broadcast全メンバーデバイスに同一パケットを送信する。
冗長化に対応する。
通常用途では使用しない。
4802.3adIEEE 802.3ad (LACP) に準拠したリンクアグリゲーション。
IEEE 802.3ad に対応したスイッチが必要となる。
5balance-tlb送信時のみ NIC の速度、及び負荷に応じて負荷分散を行い、受信時は冗長化する。
負荷分散と冗長化に対応する。
6balance-albbalance-tlb の機能に加え、受信も負荷分散する。
負荷分散と冗長化に対応する。

あるが、概要にも書いてある通り、trunk対応などのそれに対応した高価なSwitching Hubでしか使えない。うちで用意したSwitching Hubで使えるのは5と6。普通に1つに束ねたいということなら6番なのでモードはbalance-albとした。

02-bonding.yamlができたら反映

sudo netplan apply

読み込まれたか確認。

ip address show

bond0ができており、無事動作。enp1s0とenp2s0がbond0;に結び付けられているのが確認できた。ふぅ。

できたのでMacStudio M2 MaxからBlackmagic diskspeed テストをしてみたら。。。(苦笑

これまでと速度からわず・・・。???なんで???と首を傾げたがすぐに気が付く。

いくらServerが2.5GbEを2つ束ねて5GbEの帯域確保したって、Macが繋いでいるSwitching Hubが2.5GbEで、MacStudioがいくら10GbE対応だからっても当然2.5GbEで繋がっているわけだからNASの速度はMax 2.5GbEじゃん!(爆

はい。すべてのSwitching Hubを5GbE以上にしないとダメでしたorz

まぁ、でも、試してみたかったbondingが試せて良かった(ちっ)

戯れてみただけです。はい(遠い目)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA