2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NetBSD-currentに搭載されたリンクアグリゲーション機能(lag(4))を試してみる

Posted at

NetBSD Advent Calendar 2023 7日目の記事です。今日はNetBSD-currentで追加されているlagg(4)の機能を試してみようと思います。

リンクアグリゲーション(Link Aggregation)

NetBSD-currentに追加されているlagg(4)デバイスは、複数のNIC(Network Interface Card)を束ねてひとつの論理的なネットワークインタフェースとして扱うことができる、リンクアグリゲーションの機能を提供するものです。ネットワークスイッチ等では標準で搭載されているような機能ですが、いよいよNetBSDでもこの機能が利用可能になるようです。

さっそく試してみる

lagg(4)のマニュアルをみると、基本的な設定手順が記載されているので、これを参考にリンクアグリゲーションの機能を試してみましょう。検証用に以下のような構成のNetBSD環境を用意します。

今回は対抗のNetBSD間 lagg0 というlagg(4)デバイスを作成し、そこに wm1 wm2 wm3 という物理NICを紐づけます。 172.16.151.9/32 のネットワークがリンクアグリゲーションされたものになります。

+----------------+
|                +(wm1)---------------+               +---------------(wm1)+----------------+
|                |10.0.1.11           |               |           10.0.1.21|                |
|                |                    |               |                    |                |
| NetBSD-current +(wm2)------------(lagg0)---------(lagg0)------------(wm2)| NetBSD-current |
|     (lag01)    |10.0.1.12      172.16.151.1    172.16.151.2     10.0.1.22|     (lag02)    |
|                |                    |               |                    |                |      
|                +(wm3)---------------+               +---------------(wm3)|                |
|                |10.0.1.13                                       10.0.1.23|                |
+----------------+                                                         +----------------+

lagg(4)の設定手順

それぞれのNetBSDでは wm1 wm2 wm3 に以下のIPアドレス設定を行っておきます。

# # lagg01側
# cat /etc/ifconfig.wm[123]
up
10.0.1.11 netmask 0xffffff00 media autoselect
up
10.0.1.12 netmask 0xffffff00 media autoselect
up
10.0.1.13 netmask 0xffffff00 media autoselect
# # lag02側
# cat /etc/ifconfig.wm[123]
up
10.0.1.21 netmask 0xffffff00 media autoselect
up
10.0.1.22 netmask 0xffffff00 media autoselect
up
10.0.1.2 netmask 0xffffff00 media autoselect

それぞれのNetBSDマシンに以下の設定を投入します。
( /etc/rc.local に設定を入れておくのが良さそうです)

# # lagg01,lagg02共通の設定
# ifconfig lagg0 create 
# ifconfig lagg0 laggproto loadbalance
# ifconfig lagg0 laggport wm1 pri 100
# ifconfig lagg0 laggport wm2 pri 100
# ifconfig lagg0 laggport wm3 pri 100
# # lagg01側での設定
# ifconfig lagg0 inet 172.16.151.1 netmask 255.255.255.0 up
# # lagg02側での設定
# ifconfig lagg0 inet 172.16.151.2 netmask 255.255.255.0 up

これでリンクアグリゲーションの設定は完了です。

疎通確認してみる

双方のマシンにpingを飛ばしてみると無事に応答が返ってくるので、リンクアグリゲーションしてあるネットワーク上での疎通が行えているようです。

# # lagg01側
# ping -c 2 172.16.151.2
PING 172.16.151.2 (172.16.151.2): 56 data bytes
64 bytes from 172.16.151.2: icmp_seq=0 ttl=255 time=0.443074 ms
64 bytes from 172.16.151.2: icmp_seq=1 ttl=255 time=0.663492 ms

----172.16.151.2 PING Statistics----
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.443074/0.553283/0.663492/0.155859 ms
# # lagg02側
# ping -c 2 172.16.151.1
PING 172.16.151.1 (172.16.151.1): 56 data bytes
64 bytes from 172.16.151.1: icmp_seq=0 ttl=255 time=0.580241 ms
64 bytes from 172.16.151.1: icmp_seq=1 ttl=255 time=0.999289 ms

----172.16.151.1 PING Statistics----
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.580241/0.789765/0.999289/0.296312 ms

冗長性を確認してみるも…

しかし、リンクアグリゲーションで束ねているネットワークの一つをdownさせると、とたんに疎通が途切れてしまいます…。ネットワークの一つが途切れても疎通は保たれるのがリンクアグリゲーションの利点の一つであるはずなので、もうちょっと調べてみようと思います。
(単に私の設定が間違っている可能性もありますが…)

まとめ

NetBSD-currentに搭載された、リンクアグリゲーションの機能を試してみました。まだちょっと思った通りの設定手順を把握できていませんが、NetBSDにも欲しかった機能の一つであるため、活用できるように設定ノウハウを集めたいと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?