Fazendo o hostapd funcionar com systemd-networkd usando uma bridge

2

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
    
por DKebler 31.10.2017 / 03:48

0 respostas