BPI-R1 — часть 2 — Fedora — настройка точки доступа WiFi

    2015-03-26 18:51 | Автор: jekader | Filed under: FedoraMD

    Плата BPI-R1 представляет из себя маршрутизатор, поэтому наличие на ней точки доступа wifi для меня было обязательным. Начал я с того что изучил дистрибутивы и в первую очередь ядра:
    Bananian: 3.10.x с драйвером 8192cu без поддержки расширений mac80211
    Pibuntu: 3.19rc5 вроде-бы с "правильным" драйвером rtl8192cu но без драйвера b53 для свитча и соответственно с неработающим Ethernet
    Fedora for BPI: 3.19rc5 оба драйвера на месте. Нету звука но это мне и не требуется.

    Поэтому сначала поднял точку доступа на Fedora 20. Подробности ниже.

    Глава 1: техзадание

    Вот какую конфигурацию я хочу получить в итоге:
    1-4 порты Ethernet: внутреняя сеть
    5 порт Ethernet: uplink к провайдеру, IP получает по DHCP
    wlan0 - интерфейс на котором будет точка доступа
    lanbr0 - сетевой мост чтобы соединить LAN и WiFi пользователей в одну подсеть. На этом интерфейсе будет стоять внутренний IP 192.168.186.168 а также будет работать внутренний DHCP сервер.

    пользователи будут подключаться к wifi сети по WPA2 и выходить в интернет через 5 порт свитча.

    Глава 2: настраиваем свитч
    Для настройки используется драйвер b53 из OpenWRT посредством утилиты swconfig

    Конфигурация хранится в сетевых скриптах (искать в /etc/sysconfig/network-scripts/...)
    порты подключены следующим образом:
    2-1-0-4-3
    порт номер 8 подключён к процессору. Таким образом, план следующий:
    порт 3 ставим во VLAN 101
    порты 2 1 0 4 ставим во VLAN 102
    порт 8 настраиваем на получение обоих VLAN'ов

    полная конфигурация:
    swconfig dev eth0 set reset 1
    swconfig dev eth0 set enable_vlan 1
    swconfig dev eth0 vlan 101 set ports '3 8t'
    swconfig dev eth0 vlan 102 set ports '4 0 1 2 8t'
    swconfig dev eth0 set apply 1

    Осторожно, после применения этих конфигураций сеть может и отвалиться так как на стороне ОС мы ещё не настроили VLAN'ы

    Глава 3: Fedora 20
    1) первым делом нужно выжечь огнём NetworkManager (предварительно ручками создав ifcfg файлы)

    [root@bananapi ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0.101
    DEVICE=eth0.101
    ONBOOT=yes
    BOOTPROTO=dhcp
    DEFROUTE=yes

    NM_CONTROLLED=no

    [root@bananapi ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0.102
    DEVICE=eth0.102
    ONBOOT=yes
    BRIDGE=lanbr0
    NM_CONTROLLED=no

    [root@bananapi ~]# cat /etc/sysconfig/network-scripts/ifcfg-lanbr0
    DEVICE=lanbr0
    TYPE=Bridge
    STP=off
    ONBOOT=yes
    BOOTPROTO=static
    NM_CONTROLLED=no
    IPADDR=192.168.186.168
    NETMASK=255.255.255.0

    когда файлы созданы (конфигурировать wlan0 не нужно), переключаем сетевые службы

    # systemctl disable NetworkManager
    # systemctl enable network
    # systemctl stop NetworkManager && systemctl start network

    2) ставим нужный софт

    #yum install dhcp hostapd

    3) настраиваем hostapd

    # cat /etc/hostapd/hostapd.conf
    ctrl_interface=/var/run/hostapd
    ctrl_interface_group=wheel
    macaddr_acl=0
    auth_algs=3
    ignore_broadcast_ssid=0

    # 802.11n related stuff
    ieee80211n=1
    ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40]

    #WPA2 settings
    wpa=3
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP

    # CHANGE THE PASSPHRASE
    wpa_passphrase=GotAnyBananas

    # Most modern wireless drivers in the kernel need driver=nl80211
    driver=nl80211

    # set proper interface
    interface=wlan0
    bridge=lanbr0
    hw_mode=g
    # best channels are 1 6 11 14 (scan networks first to find which slot is free)
    channel=6
    # this is the network name
    ssid=eat_some_fruit

    3) настраиваем DHCP на интерфейсе wlan0

    [root@bananapi ~]# cat /etc/dhcp/dhcpd.conf
    #
    # DHCP Server Configuration file.
    # see /usr/share/doc/dhcp/dhcpd.conf.example
    # see dhcpd.conf(5) man page
    #

    subnet 192.168.186.0 netmask 255.255.255.0 {
    option routers 192.168.186.168;
    option subnet-mask 255.255.255.0;
    option domain-search "example.com";
    option domain-name-servers 8.8.8.8;
    range 192.168.186.20 192.168.186.150;
    }

    4) включаем службы

    # systemctl enable dhcpd
    # systemctl enable hostapd
    # systemctl start hostapd
    # systemctl start dhcpd

    На этом этапе должна появиться точка доступа к которой можно подключиться и даже получить IP. Интернета не будет пока не настроен NAT
    5) настраиваем NAT
    # iptables -t nat -I POSTROUTING -s 192.168.186.0/24 -o eth0.101 -j MASQUERADE
    # service iptables save

    6) удостоверяемся что включена маршрутизация в ядре
    # sysctl net.ipv4.ip_forward
    net.ipv4.ip_forward = 1

    если выдаёт 0 - гуглим как поменять 😉
    Глава 4: Итог
    У меня к сожалению работать с точкой доступа не получилось. Скорее всего нужно более новое ядро с лучшей поддержкой wifi адаптера драйвером.
    В следующей части я настроил такую-же точку доступа на Bananian с ядром 3.4ю104+ и драйвером 8192cu от realtek. Пришлось пересобирать hostapd, зато работает.

    1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
    Loading...

    Метки: , , ,

    Comments (0) »


    No comments yet.

    Leave a comment

    *