Anleitung: Accesspoint mittels hostapd

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hier mal ne kurze Anleitung zum Einsatz des hostapd als Accesspoint. Gedacht ist diese Anleitung NICHT als Router, sondern als einfache WLAN-Brücke ins vorhandene Netzwerk, eben als reiner Accesspoint. Grundlegende Netzwerkdienste wie Router oder DHCP-Server werden also als bereits vorhanden vorausgesetzt, auch wird ein Mindestmaß an Basiswissen im Umgang mit Linux vorausgesetzt.

    Wer sich auf Shell-Ebene etwas Komfort verschaffen will, installiert sich am besten den Midnight Commander mittels "sudo apt-get install mc", der auch mit "mc" gestartet wird. Die ältere Generation mit DOS-Kenntnissen wird eine gewisse Ähnlichkeit mit dem damaligen legendären Norton Commander erkennen können ;)

    Wem das ständige "sudo" etwas nervt, kann sich mit "sudo -s" eine Root-Shell verschaffen, normalerweise erkennbar am "#" am Eingabeprompt.

    Zuerst wird eine sog. Bridge erzeugt aus dem Ethernet-Interface eth0 und dem WLAN, hier wlan0.
    Mein Beispiel basiert auf einem lokalen Netzwerk, Raspberry Pi 2 mit statischer IP, Router ist Fritzbox.
    Als WLAN-Stick habe ich einen Logilink WL0084B v.2.0 verwendet, gibts z.B. bei CONRAD für aktuell 6,99 Ocken.
    Die IP-Adressen sind logischerweise an Euer vorhandenes Netzwerk entsprechend anzupassen !


    1. Dazu ist die /etc/network/interfaces wie folgt anzupassen:

    ---SCHNIPP---
    auto lo
    iface lo inet loopback

    auto eth0
    allow-hotplug eth0
    iface eth0 inet manual

    auto wlan0
    allow-hotplug wlan0
    iface wlan0 inet manual

    auto br0
    iface br0 inet static
    # statische IPv4-Adresse außerhalb DHCP-Bereich
    address 192.168.253.222
    netmask 255.255.255.0
    # Gateway ist IP der Fritzbox
    gateway 192.168.253.1
    # wir brücken eth0 und wlan0, also zum durchreichen des Netzwerkverkehrs aufs Ethernet
    bridge_ports eth0 wlan0
    # set bridge forward delay to time seconds
    bridge_fd 0
    # turn spanning tree protocol on/off
    bridge_stp no
    # IPv6 hätten wir auch noch gern, hier aber ohne statische IP
    iface br0 inet6 auto

    dns-nameservers 192.168.253.1
    dns-search fritz.box
    ---SCHNAPP---

    sollte br0 nicht erzeugt werden können, bitte mit "sudo apt-get install bridge-utils" das notwendige Paket nachinstallieren.


    2. hostapd sollte bereits vorhanden/installiert sein. Ich habe den allerdings aus den Sourcen selbst kompiliert (aktuell Version 2.4, siehe hier https://w1.fi/hostapd/ ).
    Jetzt muss die /etc/hostapd/hostapd.conf angepasst werden:

    ---SCHNIPP---
    # Basic configuration 802.11b/g/n with WPA2-PSK and CCMP
    interface=wlan0
    # SSID ist das, was als WLAn-Netzwerk angezeigt werden soll
    ssid=HotspotRPI
    channel=7
    ctrl_interface=/var/run/hostapd
    bridge=br0
    # WPA and/oder WPA2 configuration
    # keine Limitierung auf MAC-Adressebene
    macaddr_acl=0
    # WPA only, WEP off
    auth_algs=1
    ignore_broadcast_ssid=0
    # WPA2 only
    wpa=2
    wpa_passphrase=DeinWLANKeynachWahl
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=CCMP
    rsn_pairwise=CCMP
    wpa_group_rekey=600
    wpa_ptk_rekey=600
    wpa_gmk_rekey=86400
    eapol_key_index_workaround=0
    eap_server=0
    # Hardware configuration, DOKU zum hostapd LESEN und auf eingesetzte Hardware anpassen !
    driver=nl80211
    ieee80211n=1
    # <g> simply means 2.4GHz, <a> simply means 5 Ghz
    hw_mode=g
    # Definition Land, hier Deutschland Kanal 1-13 möglich
    country_code=DE
    # limit the frequencies used to those allowed in the country
    ieee80211d=1
    rts_threshold=2347
    fragm_threshold=2346
    dtim_period=2
    beacon_int=100
    ---SCHNAPP---

    Jetzt noch starten mit "sudo service hostapd start" oder "sudo /etc/init.d/hostapd start" und fertig ist der WLAN-Accesspoint mit dem Raspberry PI.

    Wer mal so testen will, wie schnell so das WLAN wirklich ist, den empfehle ich das Tool iperf3 ( https://github.com/esnet/iperf ) zu installieren, was es (allerdings kostenpflichtig) auch für iPhone/iPad gibt, und somit direkte Durchsatzmessungen auf TCP- und UDP-Ebene zwischen WLAN-Client und dem Raspberry ermöglicht. Nur Messen ist aussagekräftig, schwammiges wie "es geht langsam" kann nicht als Grundlage zur Fehlersuche dienen, denn evtl. ist es ja gar nicht das WLAN allein. Nicht vergessen: mehrere Clients am Accesspoint senken auch den Durchsatz, denn wir haben nur 1x WLAN-Bandbreite in Summe verfügbar !

    Ich schaffe mit diesem low-cost-USB-WLAN-Stick durchschnittlich 27-30 Mbit/s effektiv, meine Fritzbox liefert auf 2,4 GHz etwa 37-41 Mbit/s, ist also ein wenig schneller, sie hat aber auch (ist ne 7490) MIMO, sollte also etwas mehr liefern. Aber was der Stick liefert, ist akzeptabel.
    Mit diesem EDIMAX-Dingens habe ich übrigens nur 13-17 Mbit/s hinbekommen, trotz aller "Tuning-Versuche". Immer alles gemessen mit meinem iPhone 6 in ca. 2m Entfernung von den Geräten, um eine identische Vergleichsbasis zu haben.

    Hier noch was allgemeines zum WLAN. Angaben wie 150Mbit/s oder 300Mbit/s auf den Verpackungen der Sticks geben immer die sog. Nettodatenrate an und das noch unter idealen Bedingungen, die fast nirgends in der Realität existieren. Das ist nicht(!) das, was an Daten/per TCP/IP-Protokoll wirklich fliesst. Zieht von den Nettoraten mindestens 50% ab, denn das wird für die Übertragung selbst und Fehlerkorrektur zur sicheren und korrekten Übertragung des WLAN-Datenstroms benötigt und hängt leider von weiteren Bedingungen ab. Es bedeutet nicht, das man mit einem WLAN-N 150 Stick auch 150 MBit/s an Daten zwischen A und B übertragen bekommt. Ich will jetzt hier nicht alle Spezifika solch einer Funkübertragung darlegen, nur so als Faustformel zum Wissen. Meine Messungen sind natürlich Bruttodatenraten, also das was wirklich per TCP/IP übertragen wurde.

    Das bedeutet aber auch, dass ich an z.B. einem VDSL2-Anschluß mit 50Mbit/s oder mehr auf 2,4GHz generell schon an Grenzen stosse, und hier eigentlich ac-WLAN auf 5 GHz fast zwingend ist, um die z.B. 50MBit/s brutto auch per WLAN transportieren zu können. "Langsam" könnte also einfach auch nur aufgrund technischer Grenzen sichtbar sein.

    Wer auch speziell diesen USB-WLAN-Stick einsetzt, kann noch etwas "tunen", indem er in die /etc/hostapd/hostapd.conf folgende Zeilen hinten anfügt (entsprechende Infos gibts in der Doku zum hostapd):
    ---SCHNIPP---
    # sonstiges
    ht_capab=[GF][HT40+][HT40-][SHORT-GI-20][SHORT-GI-40][RX-STBC1][MAX-AMSDU-3839]
    wmm_enabled=1
    wmm_ac_be_aifs=3
    wmm_ac_be_cwmin=4
    wmm_ac_be_cwmax=10
    wmm_ac_be_txop_limit=0
    wmm_ac_be_acm=0
    ---SCHNAPP---

    Das wars dann auch schon, happy WiFi.

    Gruss Heiko

    Einmal editiert, zuletzt von dg2dra (18. Juni 2015 um 22:49)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!