ネットワーク設定
環境 | |
---|---|
モデル | Raspberry Pi4 |
ディストリビューション | Raspbian 10 Buster |
インターフェース | eth0, usb0(USB-OTG), wlan0 |
接続優先度 | 有線LAN ⇒ USB-LAN ⇒ どちらも接続していない場合にのみ無線LAN APを起動 |
ネットワーク設定は下記とする。
インターフェース | ネットワーク設定 |
---|---|
eth0 | DHCPでIPアドレス/ゲートウェイを取得 |
usb0 | 1対1接続のため、Raspberry PiをDHCPサーバとして機能させる。 Raspberry PI: 192.168.255.254/30 対向PC: 192.168.255.253/30 |
wlan0 | 1対多接続、Raspberry PiをDHCPサーバとして機能させる。 Raspberry PI: 192.168.253.1/24 無線LANクライアント: 192.168.253.2~254/24 |
Systemd-networkd
デフォルトのDHCP Client daemonを削除して、systemd-networkdを有効化する。
-
dhcpcdを削除
sudo apt purge dhcpcd
-
設定ファイルの配置
mv eth.network usb0.network wlan0.network /etc/systemd/network/.
eth.network
usb0.network
wlan0.network
-
systemd-networkd, systemd-resolvedを有効化
sudo systemctl enable systemd-networkd sudo systemctl enable systemd-resolved
USB on the GoのEthernetアダプタ有効化
-
下記のスクリプトを
/usr/local/bin
に配置init_usb_otg.sh
-
起動時に実行されるようsystemd serviceファイルを
/etc/systemd/system
に配置usb_init.service
-
usb_initを有効化
systemd daemon-reload systemd enable usb_init
Raspberry Piの無線LAN AP化
-
networkd-dispatcher, hostapdをインストール
sudo apt install hostapd
-
設定ファイルを配置
mv hostapd.conf /etc/hostapd/.
-
hostapdを有効化
sudo systemctl unmask hostapd
接続優先度による無線LAN AP 起動/停止の設定
-
networkd-dispatcher, hostapdをインストール
sudo apt install networkd-dispatcher
-
設定ファイルを配置
他のネットワーク接続(eth0,usb0)が接続されている(routable)場合は無線LAN APを停止、
他が切断された場合は無線LAN APを起動するスクリプトを設定する。mv stop_ap.sh /etc/networkd-dispatcher/routable.d/. mv start_ap.sh /etc/networkd-dispatcher/off.d/.
stop_ap.sh
start_ap.sh
USB接続時のPC側ドライバ
USB接続されたRaspberry Piのイーサネットポートusb0
は、RNDIS(Remote Network Driver Interface Specification)と呼ばれる規格に則ったものであるため、Windows10であれば別途ドライバを準備する必要はない。
しかし、セットアップ情報ファイル(INF)ファイルは用意されていないため、接続しただけではドライバが適用されない。
そのため、初回接続時には下記の手順でドライバを適用する必要がある。 なお、この情報は2019/10時点のものであり、将来的には変更されている可能性がある点を事前に断っておく。