PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Router mit iptables und NAT



hannesobek
02.07.08, 10:21
Hallo,

ich habe ein Problem beim Aufbau eines Routers der zwischen zwei internen Netzen steht. Ich nutze dazu ne Knoppix-CD .
Ich habe aber anscheinend Probleme bei der config von iptables, da ich nicht mal von client1 auf client2 einen ping absetzen kann. Beide Clients verfügen über winXP. Vielleicht kann hier jemand weiterhelfen.

Ziel:
Aus dem 192.168.41.0/24 Netz möchte ich die 192.168.41.122 erreichen, diese soll über den Router an die 192.168.12.5 weitergeleitet werden. Wenn Antworten auf Requests kommen, sollen diese von der 192.168.12.5 auf die 192.168.41.122 umgeschrieben werden. Die 192.168.41.123 soll nur für den Router selbst sein.

Hier meine Router-Konfig:
Router eth0: 192.168.41.123 und 192.168.41.122 (per arp -s auf die MAC von eth0 gesetzt)
Router eth1: 192.168.12.2

client1: 192.168.41.22 (in diesem Netz noch andere Clients, gateway 192.168.41.3)
client2: 192.168.12.5 (in diesem Netz nur dieser Client, gateway 192.168.12.2)

root@Knoppix:~# cat /proc/sys/net/ipv4/ip_forward
1
root@Knoppix:~# arp -a
? (192.168.41.203) auf 00:0F:20:F7:6B:3D [ether] auf eth0
? (192.168.41.3) auf 00:16:35:7F:9B:59 [ether] auf eth0
? (192.168.41.122) auf 00:C0F:03:91:4C [ether] PERM auf eth0

root@Knoppix:~# route
Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
192.168.12.0 * 255.255.255.0 U 0 0 0 eth1
192.168.41.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.41.3 0.0.0.0 UG 0 0 0 eth0

root@Knoppix:~# iptables -t nat -A PREROUTING -s 192.168.41.122 -j DNAT --to-destination 192.168.12.5

root@Knoppix:~# iptables -t nat -A POSTROUTING -s 192.168.12.5 -j SNAT --to-source 192.168.41.122

root@Knoppix:~# iptables -t nat -v -L
Chain PREROUTING (policy ACCEPT 236 packets, 42160 bytes)
pkts bytes target prot opt in out source destination# iptables -t nat -A PREROUTING -s 192.168.41.122 -j DNAT --to-destination 192.168.12.5

0 0 DNAT 0 -- any any 192.168.41.122 anywhere to:192.168.12.5

Chain POSTROUTING (policy ACCEPT 277 packets, 16943 bytes)
pkts bytes target prot opt in out source destination
0 0 SNAT 0 -- any any 192.168.12.5 anywhere to:192.168.41.122

Chain OUTPUT (policy ACCEPT 263 packets, 15979 bytes)
pkts bytes target prot opt in out source destination
root@Knoppix:~#

Wäre schön wenn mir jemand helfen könnte,
Gruss, hanne

hannesobek
02.07.08, 10:50
Beim ersten iptables-Eintrag ist mir ein Fehler unterlaufen, es muss wohl nicht

root@Knoppix:~# iptables -t nat -A PREROUTING -s 192.168.41.122 -j DNAT --to-destination 192.168.12.5

heißen, sondern mit -d :

root@Knoppix:~# iptables -t nat -A PREROUTING -d 192.168.41.122 -j DNAT --to-destination 192.168.12.5

Das Problem ist damit leider nicht gelöst. Habt Ihr Tipps für mich?

Gruss, hanne

bla!zilla
02.07.08, 16:40
Du musst zwischen zwei Netzen nicht natten, sondern Routen. Vergiss den ganzen IPtables Kram. Die Kiste mit der Knoppix-CD braucht zwei Netzwerkkarten und eine IP im Netzwerk 192.168.41.x und eine IP im Netz 192.168.12.x. An den Clients im Netz 192.168.41.x trägst du die IP der Knoppix-Kiste in dem Netz ein, und beim Netz 192.168.12.x genau umgekehrt. Die Clients dort müssen als Gateway die 192.168.12.x der Knoppix-Kiste haben. Dann noch IP-Forwarding aktivieren und fertig.

Sonixx
02.07.08, 20:18
Vieleicht nicht genau was du suchst aber ähnlich:

Ich habe auf einer alten Kiste Ubuntu laufen mit 2 Netwerkkarten,
Meine Rechner habe ich in einem eigenen Subnetz. Diese haben als Gateway die Ubuntu Kiste,
als DNS die Router IP im anderen Subnetz das über die andere Netzwerkkarte angebunden ist.

Damit alles konfiggt wurde habe ich Firestarter benutzt und die gemeinsame Internetverbindung mit dem Wizzard eingestellt.

Läuft super :)

hannesobek
02.07.08, 20:55
Danke für Eure Antworten

@bla!zilla:
Ich denke das ich werde um das NAT wohl nicht herumkommen:
Das .41-Netz steht selbst hinter einem Router mit Firewall (mit Internetzugang). Dieser ist gateway für dieses Netz und hat die IP 192.168.41.3 .
Nun soll eine Externe IP über diesen ersten router auf die 192.168.41.122 gesetzt werden
Diese IP ist per arp auf die erste Netzwerkkarte (eth0) des zweiten routers gesetzt. Die eigentliche IP dieses routers ist 192.168.41.123. Die zweite Karte (eth1) hat die IP 192.168.12.2 .
Sämtliche Anfragen an die .41.122 sollen an die 192.168.12.5 weitergeleitet werden und antworten von diesem client sollen als 192.168.41.122 wieder in das .41-Netz gehen, damit die externe Anfrage Ihre Antwort erhält.
Am ersten Router/FW kann ich das .12-Netz nicht direkt nutzen, da es dort schon existiert und ich den client (192.168.12.5) für bestimmte Tests "verstecken" muss, das ist der wichtige Punkt, denn ich oben nicht geschrieben hab.

@Sonixx:
Ich werde mir das mal ansehen :)

bla!zilla
03.07.08, 08:03
Ich hatte deine Beschreibung anders verstanden, aber in dem Konstrukt musst du wirklich natten.

hannesobek
03.07.08, 14:14
Problem gelöst :D :

Der arp-Eintrag allein reicht nicht aus, weshalb ist mir nicht ganz klar.
Ich habe ein zusätzliches reales Interface angelegt und dann gings.

ifconfig eth0:1 192.168.41.122

Die rules zu iptables etc sind also ok.