Raspberry Pi Advent Calendar 2020の7日目です。仕事で作った雑L2スイッチのはなし。
お仕事の検証でVLANを切ったネットワーク環境を作る必要があったので手持ちのNetgearのスイッチで作業していたのですが、スイッチをお仕事で貸し出すことになりつつも、手元の検証環境はもうちょい使いたいという感じになりました。
ここで、PoEも使えるスイッチも買っちゃおうかな☆というオタク的なことも考えたのですが、利用頻度は高くないハズなので、散財は回避しました。
NETGEAR 卓上型コンパクト アンマネージプラス スイッチングハブ GS108PE ギガビット8ポート (PoE 4ポート 53W) 日本語GUI 省電力
- 発売日: 2018/10/03
- メディア: Personal Computers
手元にUSB-LANアダプターがたくさん転がっていたので、ラズピッピで作ることにしました。性能は求めないので適当なPi 1B+を引っ張り出しました。そしてLANアダプターをUSBポートに全部挿して使います。見た目が……キモいかもね……?
導入
USB-LANアダプタは挿した順とか再起動でデバイス番号が変わってしまうので、udevで適当に固定します。70-persistent-net.rules、CentOSかな?**:**:**:**:**:**の部分はそれぞれのUSB-LANアダプタのMACアドレスを入力します。また、アダプタに付箋でethいくつかにしたかを貼ると良いです。
$ sudo vi /etc/udev/rules.d/70-persistent-net.rules SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="**:**:**:**:**:**", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="**:**:**:**:**:**", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="**:**:**:**:**:**", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="**:**:**:**:**:**", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
次にネットワーク周りを整備します。dhcpcd5を葬り去って、ブリッジとvlan周りを導入します。
$ sudo apt remove dhcpcd5 $ sudo apt install bridge-utils vlan
スイッチ設定
dhcpcd5を葬り去ると/etc/network/interfacesが使えるようになるので、あとはここにブリッジ設定とかVLANをもりもり書いていきます。
まずはVLANなしのネットワークブリッジ。Untaggedですね。
# オンボード auto eth0 iface eth0 inet manual # USB-LAN auto eth1 iface eth1 inet manual auto eth2 iface eth2 inet manual auto eth3 iface eth3 inet manual auto eth4 iface eth4 inet manual auto br1 iface br1 inet dhcp bridge_ports eth0 eth1 eth2 eth3 eth4
VLANの設定は適宜こんな感じで。必要なポートぶんだけifaceを設定して、ブリッジでつなぐだけ。
auto eth1.10 iface eth1.10 inet manual auto eth2.10 iface eth2.10 inet manual auto br10 iface br10 inet manual bridge_ports eth1.10 eth2.10
設定の反映は雑にOSを再起動で対応します。
結果
普通に5ポートのVLANが切れるL2スイッチになりました。見た目さえ気にしなければですが、ちょっとVLAN切りたいときにはこれで良さそうです。