Überbrückung von VLAN und Wifi

778

Ich bin gerade dabei, meinen eigenen Linux-basierten Router zu bauen, und bin auf ein Problem gestoßen, das WLAN- und LAN-Netzwerke überbrückt. Die Box lief vorher pfSense, aber da ich meinen internen WLAN-Adapter nicht verwenden kann, habe ich mich entschlossen, einen eigenen Router auf CentOS 7 zu bauen.

Die Box verfügt nur über einen Ethernet-Port. Daher habe ich einen verwalteten Switch eingerichtet, um zwei VLANs zu erstellen:

  • enp3s0.10: LAN
  • enp3s0.99: WAN

Ich habe hostapd eingerichtet und mit dem WLAN-Zugangspunkt verbunden, stellte jedoch fest, dass mein Gerät keine IP von meinem DHCP-Server abrufen konnte. Die mit meinem Netzwerk verbundenen WLAN-Geräte müssen in der Lage sein, auf andere Geräte im kabelgebundenen LAN zuzugreifen, beispielsweise auf meine DHCP- und DNS-Dienste.

Ich habe die Überbrückung von enp3s0.10 mit dem WLAN-Adapter (wls4) versucht, aber dies führt nur dazu, dass mein LAN-Anschluss von außen unzugänglich wird. Ist es möglich, ein VLAN mit einem WLAN-Adapter zu überbrücken, oder gibt es eine bessere Möglichkeit, dies zu erreichen? Wie schaffen dies die günstigen Consumer-Router?

Netzwerktopologie

Wie gewünscht (danke Damiano Verzulli) habe ich ein Diagramm meiner Netzwerktopologie hinzugefügt. Da ich weniger als 10 Reputationspunkte hatte, musste ich einen Link angeben.

Netzwerktopologie-Diagramm

Anmerkungen:

  • Die Router-Linux-Box ("Router" im Diagramm) verfügt über einen Ethernet-Port (enp3s0) und einen internen WLAN-Adapter (wls4).
  • Mit Ausnahme von enp3s0.99 (dessen Adresse / Subnetz von meinem Kabelmodem empfangen wird) haben alle anderen Geräte in meinem LAN eine Adresse im Bereich 192.168.1.0/24
3
sophos utm ist eine kostenlose Router-Appliance für den Heimgebrauch. Sie funktioniert gut und wurde mit allen Funktionen ausgestattet yagmoth555 vor 5 Jahren 0
Danke, aber ich bin mehr daran interessiert zu lernen, wie man diese Arbeit macht. vor 5 Jahren 0
Können Sie Ihre Netzwerktopologie detailliert beschreiben? ZB: Wie ist Ihr AP mit Ihrem LAN verbunden? Handelt es wirklich als dumm-AP und nicht als WLAN-Router? Welches Gerät fungiert als DHCP-Server? Welche IP-Subnetze / Adressen verwenden Sie an Ihren Schnittstellen / Geräten? Auch ein Entwurfsschema (sogar ein von Hand erstelltes Bild) des gesamten Netzwerks wäre nützlich. Damiano Verzulli vor 5 Jahren 1
@DamianoVerzulli Ich habe ein Netzwerktopologiediagramm hinzugefügt. Dies ist mein erster Versuch, eines zu erstellen. Wenn mir etwas fehlt, lass es mich wissen, damit ich es aktualisieren kann. Mein Zugangspunkt wird über den Dienst ** hostapd ** erstellt, der in derselben Box ausgeführt wird, und zeigt auf den internen WLAN-Adapter (wls4). Mit Ausnahme von enp3s0.99 (erhält IP / Subnetz vom Kabelmodem), gehören alle Geräte in meinem LAN zu 192.168.1.0/24. vor 5 Jahren 0

1 Antwort auf die Frage

3

Ich konnte mein Problem lösen und wollte mit anderen teilen, die in der Zukunft möglicherweise einem ähnlichen Problem gegenüberstehen.

Mein Netzwerk

  • enp3s0 - Physikalischer Ethernet-Adapter
  • enp3s0.10 - VLAN; verbindet sich mit LAN
  • enp3s0.99 - VLAN; verbindet sich mit WAN (Kabelmodem)
  • wls4 - Drahtloser Adapter

Lösung

  1. Definieren Sie jede Netzwerkschnittstelle (einschließlich einer Bridge-Schnittstelle mit dem Namen br0 ).

    Setzen Sie den Wert von / etc / sysconfig / network-scripts / ifcfg-enp3s0 auf:

    TYPE=Ethernet BOOTPROTO=none DEVICE=enp3s0 ONBOOT=yes 

    Setzen Sie den Wert von / etc / sysconfig / network-scripts / ifcfg-br0 auf:

    DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none 

    Setzen Sie den Wert von /etc/sysconfig/network-scripts/ifcfg-enp3s0.10 auf:

    DEVICE=enp3s0.10 BOOTPROTO=none ONBOOT=yes BRIDGE=br0 VLAN=yes 

    Setzen Sie den Wert von /etc/sysconfig/network-scripts/ifcfg-enp3s0.99 auf:

    DEVICE=enp3s0.99 BOOTPROTO=dhcp ONBOOT=yes VLAN=Yes 
  2. Starten Sie das Netzwerk neu

    [admin@router ~]$ sudo service network start 
  3. Richten Sie hostapd ein

    Setzen Sie den Wert von /etc/hostapd/hostapd.conf auf:

    # # 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 
  4. Erstellen Sie einen systemd-Dienst, um wls4 zur Bridge br0 hinzuzufügen, und starten Sie hostapd. Ich habe das aus folgenden Gründen getan:

    • wls4 würde sporadisch von der Brücke fallen br0 wenn ich die Brücke Erklärung in hostapd.conf hinzugefügt
    • Bevor hostapd erfolgreich gestartet werden konnte, musste ich zuerst anrufen rfkill unblock wlan
  5. Erstellen Sie /root/launch_hostapd.sh (muss als root ausgeführt werden)

    #!/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 
  6. Machen Sie /root/launch_hostapd.sh ausführbar

    [admin@router ~]$ sudo chmod +x /root/launch_hostapd.sh 
  7. Erstellen Sie /etc/systemd/system/launch_hostapd.service (muss als root ausgeführt werden)

    [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 
  8. Laden Sie den Systemctl-Daemon neu

    [admin@router ~]$ sudo systemctl daemon-reload 
  9. Aktivieren / Starten Sie den Dienst "launch_hostpad"

    [admin@router ~]$ sudo systemctl enable launch_hostapd [admin@router ~]$ sudo systemctl start launch_hostapd 

Fazit

Ich hoffe, das hilft allen anderen, die ihre LAN- und WLAN-Schnittstellen überbrücken möchten, um einen AP über hostapd zu hosten.