Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

何らかの事情でMACアドレスが衝突してパフォーマンスがおちたら、ifconfigで個別に設定しなおしてみよう

raspberry piをAP化できる素敵ツール raspiapとPoE HAT(B)を合わせて使ったシステムにて。
一個単位で実験するには全く問題なかったものの、複数個で運用するとMACアドレスが衝突し、
ルーターが問題解決に振り回されてパフォーマンスが落ちるという事態に。
大抵の場合は機体毎に固有のMACアドレスがあるはずなんですが……raspiapの自動構成か、あるいはPoEか……?

この対策のため、人生で初めてMACアドレスの書き換えを行いました。

実際のところ

お行儀のよい,、NICのdown -> upは省略しました。
リモートにある装置だったため、万が一事故ると出張と始末書が増えるためです。
現場にはバッドノウハウがいっぱい。

初期状態はこちら。
"8a:8a:5e:99:5c:5f "というのが、raspiapかPoE HAT(B)のどちらかに由来するMACアドレスです。

$ ip a
...
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 8a:8a:5e:99:5c:5f brd ff:ff:ff:ff:ff:ff
    inet 192.168.XXX.YYY/24 brd 192.168.XXX.255 scope global noprefixroute br0
...

さて、今回の主役、MACアドレスの変更はifconfigにて行います。
今回は

$ sudo ifconfig br0 hw ether aa:aa:aa:aa:aa:aa

実行すると、即応でMACアドレスが変更されます。
外から確認しても、ちゃんと変わっており、台数分それぞれ個別に新MACアドレスをふりわけたらパフォーマンスが向上しました。

$ ip a
...
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
    inet 192.168.XXX.YYY/24 brd 192.168.XXX.255 scope global noprefixroute br0
...

……問題は、これだと恒久化できないってことです。
苦手なsystemdやってみたんですけど、解決順の問題なのかifconfigの読み出し方がおかしいのか実行できません……。