
Ich habe ein IoT-Gerät mit LTE-Konnektivität, 2 Ethernet-Ports und einer WLAN-Antenne, das ich als LTE-Router verwenden möchte, d. h. ich würde die LTE-Verbindung mit WLAN und beiden Ethernet-Ports teilen. Es läuft mit einem vollständigen Debian-Image, verhält sich also wie ein gewöhnlicher Raspberry Pi. WLAN- und Ethernet-Ports haben standardmäßig keinen Internetzugang. Um den Internetzugang zu ermöglichen, habe ich versucht, die Schnittstellen eth0, eth1 und wlan0 mit einer neuen Bridge zu verbinden und die Pakete dann an wwan0 (LTE-Schnittstelle) weiterzuleiten:
sysctl net.ipv4.ip_forward=1
ip link add name br0 type bridge
ip link set br0 up
ip addr add 192.168.2.1/24 dev br0
ip link set eth0 up
ip link set eth0 master br0
ip link set eth1 up
ip link set eth1 master br0
ip link set wlan0 up
ip link set wlan0 master br0
iptables -A FORWARD -i br0 -o wwan0 -j ACCEPT
iptables -A FORWARD -i wwan0 -o br0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
Ich habe außerdem dnsmask.conf
DHCP für die BR0-Schnittstelle konfiguriert und aktiviert. Ich habe meinen Laptop an den Ethernet-Port angeschlossen und hatte Zugriff auf das Internet. Das Problem ist, dass, wenn ich einen zweiten Computer an den ETH-Port oder WLAN anschließe, alle IPs im zugewiesenen Bereich erhalten (in diesem Fall 192.168.2.100 - 192.168.2.200), ich aber keinen Ping von einem angeschlossenen Computer zum anderen senden kann. Ich vermutete, dass die iptabels-Befehle den internen Datenverkehr irgendwie stören, also versuchte ich, der Bridge die wwan0-Schnittstelle hinzuzufügen (nachdem ich die iptables-Regeln gelöscht hatte), aber es trat ein Fehler auf:
ip link set wwan0 master br0
RTNETLINK answers: Invalid argument