Eu tenho duas portas ethernet e uma porta sem fio em um roteador que estou configurando. Eu estou usando o systemd-networkd. Eu estou renomeando as portas primeiro, em seguida, criar uma ponte, em seguida, estou fazendo uma ponte entre as portas ethernet e a placa wireless para criar uma porta lan combinada com um único IP e DHCP / DNSMASQ. A outra ethernet é a porta wan. Aqui você vê a saída networkctl. lan é a ponte. Você vê que o wlan tem o mesmo status que o lan2 (que é o NIC e está funcionando bem). Então a ponte e todo o roteamento estão bem.
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 wan ether routable configured
3 lan2 ether carrier configuring
4 wlan wlan carrier configuring
5 lan ether routable configured
Então ..... eu estou bem perto. Está apenas começando o hostapd a iniciar no momento certo usando o systemd-networkd. O AP aparece, mas parece que a interface sem fio não está ficando vinculada à ponte. Um cliente pode digitar a senha WPA e é aceito, mas nunca se conecta. Os logs não estão me ajudando a identificar o problema, mas tenho certeza de que a porta sem fio não está sendo consertada na ponte. Isso explicaria por que as funções do AP parecem boas, mas não há uma conexão real com um endereço IP sendo emitido.
Alguém com alguma experiência tem algumas dicas? Como você pode ver, o hostapd.service que eu escrevi tenta atrasar a inicialização do hostapd até que o networkd seja feito, em particular até que a ponte tenha sido criada. Talvez seja algo a ver com o hostapd atrasando o networkd, mas o networkd adicionando o wlan à bridge do lan antes que o hostapd tenha iniciado ... um tipo de catch22.
hostapd.conf
interface=wlan
# the interface used by the AP
hw_mode=g
# g simply means 2.4GHz band
channel=10
# the channel to use
#ieee80211d=1
# limit the frequencies used to those allowed in the country
#country_code=US
# the country code
ieee80211n=1
# 802.11n support
#wmm_enabled=1
# QoS support
#ignore_broadcast_ssid=0
ssid=645-gateway
# the name of the AP
auth_algs=1
# 1=wpa, 2=wep, 3=both
wpa=2
# WPA2 only
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=elf645Keb1920
hostapd.service
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
Wants=network-online.target
After=systemd-networkd.service
After=sys-subsystem-net-devices-wlan.device
After=sys-subsystem-net-devices-lan.device
BindsTo=sys-subsystem-net-devices-lan.device
[Service]
Type=forking
PIDFile=/run/hostapd.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf -P /run/hostapd.pid -B
[Install]
WantedBy=multi-user.target
30-br-wlan-lan.network
[Match]
Name=wlan
[Network]
Bridge=lan