2017-05-25 1 views
0

Ich habe ein paar Raspberry Pi2 mit Jessie Lite in einem Netzwerk geladen. Ich möchte, dass sie die Internetverbindung eines 3G-Dongles teilen, aber ich kann es nicht funktionieren lassen.Routing von eth0 zu eth1 auf Himbeere mit Jessie Lite funktioniert nicht

Hier einige Details:

RPI die sind alle auf dem gleichen 10.0.0.x Netzwerk, zusammen mit einigen anderen Geräten. Ich konfigurierte sie (beide RPIs und Geräte) mit fester IP-Adresse im selben Subnetz und das funktioniert gut, sie können alle miteinander reden. Ich brauche feste IPs, weil ich alle Geräte NAT und später aus dem Internet zugreifen möchte.

Nur ein RPi (eth0-Adresse 10.0.0.10, nennen wir es RPi0) hat eine Internetverbindung, die von einem Huawei 3G-Dongle kommt. Der Dongle erstellt eine eth1-Schnittstelle mit einer automatischen Adresse, die immer 192.168.8.100 zu sein scheint. Wenn ich versuche, eine manuelle IP zu erzwingen, kann ich nicht auf das Internet zugreifen.

Out of the box, wenn ich den USB-Schlüssel anschließen, kann RPi0 auf Internet zugreifen und Adressen auflösen.

Jetzt möchte ich alle anderen Geräte auf 10.0.0.x über das RPi mit dem USB-Dongle auf das Internet zugreifen lassen. Ich nehme an, dass 10.0.0.10 als Gateway funktionieren und den Datenverkehr über eth1 routen muss. Ich bin vielen Tutorials gefolgt, um zu wissen, aber ich muss etwas vermissen, weil ich es nicht arbeiten lassen kann.

Ich habe NAT aktiviert net.ipv4.ip_forward=1 in /etc/sysctl.conf

Dann Einstellung ich versuche, eine NAT-Regel für den gesamten Verkehr zu spezifizieren, wie durch eth1

sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE 

kann ping nicht mehr öffentliche IPs

Route sieht gehen muss dies:

Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
default   hi.link   0.0.0.0   UG 247 0  0 eth1 
10.0.0.0  *    255.255.255.0 U  202 0  0 eth0 
192.168.8.0  *    255.255.255.0 U  247 0  0 eth1 

was bin ich Ich mache falsch?

EDIT

der Dongle erstellt automatisch eine Ethernet-Schnittstelle mit der Adresse 192.168.8.100, aber die Gateway-Adresse ist 192.168.8.1 (die in den IP-Tabellen hi.link werden sollen). Also ich erwarte es funktioniert, die Pakete für das Internet von anderen 10.0.0.x Geräte sollten an das Gateway geroutet werden. Aber sie nicht.

Antwort

0

ok, es stellt sich heraus, dass die Befehle für NAT nicht korrekt waren, funktionierende Version:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE 
iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT