最初に必要なソフトとして,bridge-utilsをインストールする.
# apt install bridge-utils
次に,/etc/network/interfaces と /etc/dhcpcd.conf にそれぞれ,以下を追記する.
/etc/network/interfaces ------------------------------ auto br0 iface br0 inet manual bridge_ports eth0 eth1 bridge_stp off bridge_maxwait 3
/etc/dhcpcd.conf ------------------------------ denyinterfaces eth0 eth1 interface br0 static ip_address=192.168.100.3/24 static routers=192.168.100.1 static domain_name_servers=192.168.100.1 8.8.8.8
設定が完了したあと再起動すると,Raspberry Pi のハブ化が完了する.
なお,/etc/interfaces では,ブリッジデバイスを作成し,それを eth0 と eth1 に接続するよう設定している.
また,/etc/dhcpcd.conf では,eth0 と eth1 を無効にしたあと,作成したブリッジデバイスに対して,
・固定IPアドレス
・ルーターのIPアドレス
・ネームサーバーのIPアドレス
として,それぞれ
・192.168.100.3/24
・192.168.100.1
・192.168.100.1 及び 8.8.8.8
を設定している.
なお,br0 の IPアドレスとして設定する IPアドレスのセグメントはルーターと同じ,192.168.100系に設定する必要性は必ずしもなく,例えば,192.168.0系にしてもハブとしては問題なく動作するが,192.168.100系に設定しない場合,私の環境ではハブ化した Raspberry Pi に 192.168.100系から SSH でアクセスできなくなったため,特段の理由がなければ,ルーターと同じ 192.168.100系に設定するほうが良さそうだ.
(SSHでのアクセスはルーターの設定や固定IPアドレスの192.168.100.3/24の/24部分の見直しで変更できそうに思えるが,今回はそこまでは調査できていない)
ハブ化完了後に ifconfig コマンドを実行すると,以下のような結果が得られる.eth0,eth1 には IPアドレスが振られていない一方,br0 の MACアドレスは eth0 と同じになっていることがわかる.
br0: flags=4163mtu 1500 inet 192.168.100.3 netmask 255.255.255.0 broadcast 192.168.100.255 inet6 fe80::ba27:ebff:fe0c:aa33 prefixlen 64 scopeid 0x20 ether b8:27:eb:0c:aa:33 txqueuelen 1000 (Ethernet) RX packets 1881 bytes 284206 (277.5 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 817 bytes 94855 (92.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4163 mtu 1500 ether b8:27:eb:0c:aa:33 txqueuelen 1000 (Ethernet) RX packets 60144 bytes 52977687 (50.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 48782 bytes 8986129 (8.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163 mtu 1500 ether cc:e1:d5:02:ae:db txqueuelen 1000 (Ethernet) RX packets 49563 bytes 7969264 (7.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 60885 bytes 54152782 (51.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
また,arpコマンドを実行すると,eth0,eth1 に接続されたそれぞれの端末の IPアドレス,MACアドレスが表示され,インターフェースが br0 になっていることがわかる.
Address HWtype HWaddress Flags Mask Iface 192.168.100.1 ether b8:27:eb:91:d5:48 C br0 192.168.100.2 ether b0:83:fe:9e:36:a6 C br0
ちなみに,ラズパイ歴の長い方ならご存知だと思うが,/etc/interfaces は以前の Raspbian(確かjessieより前)で IPアドレスを固定化する際に編集していたファイルで,/etc/dhcpcd.conf は現在の Raspbianで IPアドレスを固定化する際に編集しているファイルだ.それらの合わせ技というのがなんとなく感慨深い(←なんだそりゃ).
以上
0 件のコメント:
コメントを投稿