PDA

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



hanne
01.07.2008, 16:59
Hallo,

ich möchte zu Testzwecken einen Router aufbauen der zwischen zwei internen Netzen steht. Knoppix bietet sich dazu ja an. 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 Request 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.
Ich habe aber anscheinend Probleme bei der config von iptables, da ich nicht von client1 auf client2 einen ping absetzen kann. Beide Clients verfügen über winXP.
Vielleicht kann hier jemand weiterhelfen. 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:C0:DF: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:~#

root@Knoppix:~# ifconfig -a
eth0 Protokoll:Ethernet Hardware Adresse 00:C0:DF:03:91:4C
inet Adresse:192.168.41.123 Bcast:192.168.41.255 Maske:255.255.255.0
inet6 Adresse: fe80::2c0:dfff:fe03:914c/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16417 errors:0 dropped:0 overruns:0 frame:0
TX packets:3433 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:3271160 (3.1 MiB) TX bytes:735078 (717.8 KiB)
Interrupt:10 Basisadresse:0xe000

eth1 Protokoll:Ethernet Hardware Adresse 00:05:5D:7D:21:58
inet Adresse:192.168.12.2 Bcast:192.168.12.255 Maske:255.255.255.0
inet6 Adresse: fe80::205:5dff:fe7d:2158/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:386 errors:0 dropped:0 overruns:0 frame:0
TX packets:284 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:285708 (279.0 KiB) TX bytes:22284 (21.7 KiB)
Interrupt:12 Basisadresse:0xd000

Gruss, hanne

hanne
02.07.2008, 22:11
Beim ersten iptables-Eintrag ist mir ein Fehelrunterlaufen, 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. Hat jemand nen Tipp für mich?
.
.
.
EDIT (autom. Beitragszusammenführung) :
.
Noch einige Hinweise zu meinem Problem:

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 . Am diesem Router/FW kann ich das .12-Netz nicht direkt nutzen, da es dort schon existiert und ich den client2 (192.168.12.5) für bestimmte Tests "verstecken" muss, das ist der wichtige Punkt, denn ich oben nicht geschrieben hab.

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 auf dieser Karte des 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 client2 sollen als 192.168.41.122 wieder in das .41-Netz gehen, damit die externe Anfrage Ihre Antwort erhält.

L0s3r
02.07.2008, 22:45
http://www.linuxforen.de/forums/showthread.php?t=252964

hanne
03.07.2008, 15:27
Problem gelöst:

Der arp-Eintrag allein reicht nicht aus. Ich habe ein zusätzliches, "reales" Interface angelegt und dann gings. Die rules zu iptables etc sind also ok.

ifconfig eth0:1 192.168.41.122