Ubuntu Linux Router: Stellen Sie ausgehendes NAT auf 2 Schnittstellen ein

7

Ich richte einen Router mit Ubuntu 12.04 ein. Ich benötige meinen Router, um zwischen unserem Internetmodem und dem Netzwerk meines Kunden zu routen, für das wir eine IP-Adresse erhalten.

Die Box hat 3 Schnittstellen:

  1. eth0 - Port zum Client-Netzwerk. Mit statischer IP konfiguriert.
  2. eth1 - unser LAN. Konfiguriert als statische IP 192.168.1.1 und für DHCP / DNS.
  3. eth2 - Uplink zum 3G-Router-Modem. Als DHCP-Client konfiguriert.

Meine / etc / network / interfaces sieht folgendermaßen aus:

# The primary network interface
auto eth2
iface eth2 inet dhcp

# LAN point to our client's network
auto eth0
iface eth0 inet static
address 10.198.250.171
#gateway 10.198.0.4
netmask 255.255.0.0
network 10.198.0.0
broadcast 10.198.255.255
hwaddress ether 00:1E:EC:72:ED:92

# eth1 acts as our LAN's router IP
auto eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Ich habe eth1 als DHCP konfiguriert und NAT von meinem LAN zum Internet wie folgt in /etc/rc.local konfiguriert:

# IP forwarding script from our LAN to internet
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth2 -j MASQUERADE

Um auf das LAN meines Clients (ein privates Klasse-A-Netzwerk) zuzugreifen, habe ich eine statische Route wie folgt konfiguriert:

up route add -net 10.0.0.0/8 gw 10.198.250.171 dev eth0

Bisher kann ich vom Router selbst aus pingen und auf das LAN meines Clients zugreifen, aber von keinem meiner LAN-Clients kann ich den Router nicht dazu bringen, zum LAN meines Clients zu routen.

Kann mir jemand raten, was ich sonst noch tun muss? Muss ich ausgehendes NAT für eth0 und eth2 festlegen?

Jeder Rat sehr geschätzt.

feicipet
quelle
1
Führen Sie cat /proc/sys/net/ipv4/conf/all/forwardingdas Ergebnis aus und veröffentlichen Sie es. Wenn es auf 0 gesetzt ist, ausführenecho 1 > /proc/sys/net/ipv4/conf/all/forwarding
Manula Waidyanatha
Ich hatte es bereits auf 1 gesetzt, als ich mein anfängliches NAT eingestellt habe, danke.
Feicipet

Antworten:

1

Das Problem liegt meiner Meinung nach darin, eine Antwort vom Client-LAN ​​zu erhalten. Ja, Sie müssen NAT auch für das Client-LAN ​​verwenden.

Lassen Sie mich erklären:

Knoten in Ihrem LAN haben Ihr Gateway als Standardgateway.

Somit geht jeglicher Verkehr von ihnen, sei es zum Client-Netzwerk (10.0.0.0/8) oder zur weiteren Welt (0.0.0.0/8), dorthin.

Der Verkehr in die weite Welt wird dann über NAT ins Internet geleitet.

Der Datenverkehr zum LAN des Clients wird unverändert weitergeleitet (ich gehe davon aus, dass hier die Weiterleitung funktioniert, was das NAT anzeigt).

Wenn also ein Paket von einem Knoten in Ihrem internen LAN die IP-Adresse 192.168.1.200 lautet, wird es an Ihr Gateway gesendet und an das Client-LAN ​​weitergeleitet. Die Quelladresse lautet jedoch immer noch 192.168.1.200.

Der Client-Computer empfängt dies und versucht, auf 192.168.1.200 zu antworten.

Sofern auf den Client-LAN-Computern keine Routen für 192.168.1.0/24 festgelegt sind oder ihr Standard-Gateway die Pakete an Ihr Gateway weiterleiten kann, können sie keine Routen weiterleiten.

Wenn NAT aktiviert ist, wird die Quelladresse 192.168.1.200 am Gateway NAT an Ihre Client-LAN-Gateway-Adresse gesendet, auf die Client-LAN-Knoten antworten können. Dort wird sie von Ihrem Gateway erneut adressiert und zurückgegeben.

Dave C.
quelle