-
Notifications
You must be signed in to change notification settings - Fork 0
WirelessLan bridge
をそのままやってみたらちゃんとできた。 記録を残しておく。
有線LANでアクセスできなくなった場合にそなえてシリアル経由で アクセスできるようにするとか、モニターとキーボードを用意して アクセスできるようにしておく。
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 wlan
でrfkillでwlanが使えないようにしているのを解除しwlanが使えるようにする。
/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機器からアクセスしてみる。
もともとの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