Мне удалось решить мою проблему, и я хотел поделиться с другими, которые могут столкнуться с подобной проблемой в будущем.
Моя сеть
- enp3s0 - физический сетевой адаптер
- enp3s0.10 - VLAN; подключается к локальной сети
- enp3s0.99 - VLAN; подключается к WAN (кабельный модем)
- wls4 - беспроводной адаптер
Решение
Определите каждый сетевой интерфейс (включая мостовой интерфейс с именем br0 )
Установите значение / etc / sysconfig / network-scripts / ifcfg-enp3s0 в:
TYPE=Ethernet BOOTPROTO=none DEVICE=enp3s0 ONBOOT=yes
Установите значение / etc / sysconfig / network-scripts / ifcfg-br0 в:
DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none
Установите значение /etc/sysconfig/network-scripts/ifcfg-enp3s0.10 в:
DEVICE=enp3s0.10 BOOTPROTO=none ONBOOT=yes BRIDGE=br0 VLAN=yes
Установите значение /etc/sysconfig/network-scripts/ifcfg-enp3s0.99 в:
DEVICE=enp3s0.99 BOOTPROTO=dhcp ONBOOT=yes VLAN=Yes
Перезагрузите сеть
[admin@router ~]$ sudo service network start
Настройка hostapd
Установите значение /etc/hostapd/hostapd.conf в:
# # For more information: # # https://wireless.wiki.kernel.org/en/users/Documentation/hostapd # https://w1.fi/cgit/hostap/plain/hostapd/hostapd.conf # # Wireless Interface interface=wls4 driver=nl80211 # Wireless Environment ssid=[router_ssid_here] hw_mode=g channel=1 # Authentication and Encryption macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=[ap_password_here] wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # Country country_code=US ieee80211d=1 # IEEE 802.11ac (req hw_mode=a) # ieee80211ac=1 # IEEE 802.11n ieee80211n=1 # WMM wmm_enabled=1
Создайте сервис systemd для добавления wls4 к мосту br0 и запустите hostapd. Я сделал это по следующим причинам:
- wls4 время от времени удалялся с моста br0, когда я добавлял объявление моста в hostapd.conf
- Прежде чем hostapd может успешно запустить, мне сначала нужно было позвонить
rfkill unblock wlan
Создайте /root/launch_hostapd.sh (должен быть от имени root)
#!/bin/bash # Set 4addr on wifi adapter iw dev wls4 set 4addr on # Add wifi adapter to bridge br0 ip link set wls4 master br0 # Unblock wlan rfkill unblock wlan # Launch hostapd systemctl start hostapd
Сделайте /root/launch_hostapd.sh исполняемым
[admin@router ~]$ sudo chmod +x /root/launch_hostapd.sh
Создайте /etc/systemd/system/launch_hostapd.service (должно быть сделано от имени пользователя root)
[Unit] Description=Runs "rfkill unblock wlan" and then launches hostapd After=network.target [Service] Type=simple ExecStart=/root/launch_hostapd.sh TimeoutStartSec=0 [Install] WantedBy=default.target
Перезагрузить демон systemctl
[admin@router ~]$ sudo systemctl daemon-reload
Включить / запустить сервис launch_hostpad
[admin@router ~]$ sudo systemctl enable launch_hostapd [admin@router ~]$ sudo systemctl start launch_hostapd
Заключение
Я надеюсь, что это поможет всем, кто захочет соединить свои интерфейсы LAN и WLAN в попытке разместить AP через hostapd.