iptable routing zwischen RPi3-Schnittstellen, wlan0 und eth0. Wie man?

499
NMartin

Mein Ziel ist es, ein Kabel zwischen meinem Computer und einem "Gerät" auszutauschen.

Ich habe ein RPi3 mit Raspbian Lite eingerichtet und sowohl dnsmasq als auch hostapd installiert, um es als drahtlosen Zugangspunkt auszuführen. Jetzt möchte ich den Datenverkehr zwischen den Schnittstellen Wlan0 und Eth0 weiterleiten, so dass das Programm und das Gerät der Meinung sind, dass nur eine Verbindung zwischen ihnen besteht.

Das Schwierige daran ist, dass das an den eth0-Port angeschlossene Gerät scheinbar proprietär ist und mit einem Computerprogramm zusammenarbeitet, das auf der Computerseite eine statische IP-Adresse einstellt. Wenn er mit dem RPI verbunden ist, wird mit arp -a nichts angezeigt.

Es scheint, als sollte iptables in der Lage sein, das zu tun, was ich brauche, aber ich bin nicht sicher, wie ich das angehen soll. Ich habe versucht, brctl zu verwenden, aber das scheint die drahtlose Verbindung zu unterbrechen.

Mein Computer ist mit hostapd / dnsmasq mit einer statischen IP von 192.168.90.125 eingerichtet und verbunden, und das Programm scheint über die Ports 7001, 3598, 3599, 49544, 31415, 20098, 20101 auf der von mir angegebenen Schnittstelle (auf den Schnittstellen des Computers) zu kommunizieren ).

Meine / etc / network / Interface-Datei sieht folgendermaßen aus:

# Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d  auto lo iface lo inet loopback  allow-hotplug eth0 iface eth0 inet static address 11.0.0.1 netmask 255.255.255.0 network 11.0.0.0 broadcast 11.0.0.255  wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf # Added by rPi Access Point Setup allow-hotplug wlan0 iface wlan0 inet static address 192.168.90.1 netmask 255.255.255.0 network 192.168.90.0 broadcast 192.168.90.255 

Meine /etc/dnsmasq.conf -Datei sieht folgendermaßen aus:

interface=wlan0 dhcp-range=192.168.90.50, 192.168.90.150 ,255.255.255.0, 1m addn-hosts=/etc/dnsmasq_static_hosts.conf 

Vielen Dank für Ihre Gedanken / Hilfe / Anregungen.

0
Vorausgesetzt, Ihr Computer hat keine andere Netzwerkverbindung und erhält alle Routen von Ihrem rpi / hostap. Sie müssen eine einzige iptables -A FORWARD -j ACCEPT-Regel hinzufügen und sicherstellen, dass `sysctl net.ipv4 ist. ip_forward = 1`. Die Netzwerkkonfiguration des Geräts muss mit den Netzwerkeinstellungen auf dem eth0 des rpi übereinstimmen. Wenn der Computer über andere Gateways verfügt, müssen Sie dem Computer manuell Routen hinzufügen oder versuchen, Routen über dhcp zu pushen, was "hit and miss" ist. Wenn das Gerät nicht weiß, wie ein Gateway verwendet wird, benötigen Sie "iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE" Andrew Domaszek vor 7 Jahren 1
Sie müssen tatsächlich brctl (oder ein gleichwertiges) verwenden - die Frage ist, denke ich, warum bricht das? (Wahrscheinlich handelt es sich um ein Setup-Problem.) Dazu müssen Sie natürlich Folgendes tun: (1) Sicherstellen, dass geeignete Kernel-Module geladen sind / nicht geladen werden (1) eine Bridge erstellen, (2) sowohl Ethernet- als auch WLAN-Geräte hinzufügen zur Brücke und (3) Stellen Sie sicher, dass nichts im Weg ist - siehe http://unix.stackexchange.com/questions/136918/why-does-my-firewall-iptables-interfere-in-my-bridge-brctl davidgo vor 7 Jahren 0
@AndrewDomaszek Ich hätte erwähnen sollen, dass die aktuellen Standardrichtlinien für Eingabe, Weiterleitung und Ausgabe 'ACCEPT' sind und dass 'sysctl net.ipv4.ip_forward = 1'. Wenn ich den Ethernet-Port auf dasselbe Subnetz und dieselbe Standardeinstellung wie die WLAN-Seite eingestellt habe, leitet er automatisch den gesamten Datenverkehr weiter? NMartin vor 7 Jahren 0

0 Antworten auf die Frage