WirelessLan bridge - h-sendai/RaspberryPi GitHub Wiki
wireless lanアクセスポイント(ブリッジ編)
をそのままやってみたらちゃんとできた。 記録を残しておく。
ネットワークアクセスできなくなったときの対処
有線LANでアクセスできなくなった場合にそなえてシリアル経由で アクセスできるようにするとか、モニターとキーボードを用意して アクセスできるようにしておく。
hostapdソフトウェアのインストール
apt install hostapd
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
ブリッジの構成
/etc/systemd/network/bridge-br0.netdev
を次の内容で作る。
[NetDev]
Name=br0
Kind=bridge
eth0をbr0メンバーとして登録する。
/etc/systemd/network/br-member-eth0.network
を次の内容で作る。
[Match]
Name=eth0
[Network]
Bridge=br0
systemd-networkd
サービスを有効化する。
sudo sysytemctl enable systemd-networkd
br0のIPアドレスを設定する。
/etc/dhcpcd.conf
で
- 先頭に
denyinterfaces wlan0 eth0
を追加する。
- 終わりに
interface br0
を追加する。これでbr0からdhcp経由でIPアドレスが付くようになり 有線LANからアクセスすることができるようになる。 固定IPアドレスを付けるなら
interface br0
static ip_address=192.168.0.1/24
のように書いておく。
rfkill unblock
rfkill unblock wlan
でrfkillでwlanが使えないようにしているのを解除しwlanが使えるようにする。
hostapd.confの編集
/etc/hostapd.confを作る。
wpa_passphraseは8文字以上64文字以下の長さである必要がある。
country_code=JP
interface=wlan0
bridge=br0
ssid=XXXXXXXXXX
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YYYYYYYYYY
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
リブート
リブートして無線LAN機器からアクセスしてみる。
br0とeth0のMACアドレス
もともとのMACアドレスについて
- eth0が
b8:27:eb:XX:YY:ZZ
- wlan0が
b8:27:eb:AA:BB:CC
だったとする。
上の方法のうち、br0のIPアドレスをdhcpでとるように設定しておくと
dhcp discoverなどはeth0のMACアドレスb8:27:eb:XX:YY:ZZ
を使って行われる。
一方起動後のMACアドレス、IPアドレス、ドライバは次のようになっている (br0のMACアドレスがwlan0のMACアドレスと同じ)
br0 192.168.1.100 b8:27:eb:AA:BB:CC brigde LinkUp
eth0 NOIP b8:27:eb:XX:YY:ZZ smsc95xx LinkUp
lo 127.0.0.1 00:00:00:00:00:00 loop LinkUp
wlan0 NOIP b8:27:eb:AA:BB:CC brcmfmac LinkUp
systemctl stop hostapdでhostapdを停止させるとbr0のMACアドレスは 変化し、eth0のものと同一になる。
br0 192.168.1.100 b8:27:eb:XX:YY:ZZ brigde LinkUp
eth0 NOIP b8:27:eb:XX:YY:ZZ smsc95xx LinkUp
lo 127.0.0.1 00:00:00:00:00:00 loop LinkUp
wlan0 NOIP b8:27:eb:AA:BB:CC brcmfmac LinkDown
/etc/dhcpd.confでbr0のIPアドレスを固定化:
interface br0
static ip_address=192.168.10.207/24
したときのbr0のMACアドレスも上と同じでhostapdが起動しているときは br0はwlan0のMACアドレスと同一、hostapdを停止するとeth0のMACアドレスと 同一となる。
以前はbr0のmac addressは[NetDev]
セクションにMACAddress=...
がなければ
systemd-networkdが適当にMACaddressを作ってつけていたようだが。
関連か: https://github.com/systemd/systemd/issues/19559