samedi 8 novembre 2014

iptables DNAT: MTU Problem

Hallo,



ich habe auf einem System eine DNAT Regel, die bestimmte Ports an eine interne IP weiterreicht:




Code:



iptables -t nat -A PREROUTING -p tcp -i eth0 -d <PUBLIC-IP> -m multiport --dport 1001,1002,1003,1004,1005 -j DNAT --to-destination 10.0.0.1


Das funktioniert eigentlich auch ohne Probleme. Lustig wird es, wenn dazugehörige ICMP Nachrichten retour gehen sollen, weil z.B. das Paket zu groß ist: (tcpdump Ausgabe)




Code:



IP CLIENT > SERVER: Flags [.], seq 1189:2601, ack 5756, win 2252, options [nop,nop,TS val 2808256 ecr 320294198], length 1412

IP SERVER > CLIENT: ICMP SERVER unreachable - need to frag (mtu 1326), length 556



iptables loggt mir dazu noch mehr: (nicht exakt das gleiche Paket, aber egal…)




Code:



IN= OUT=eth0 SRC=SERVER DST=CLIENT LEN=576 TOS=0x00 PREC=0xC0 TTL=64 ID=23477 PROTO=ICMP TYPE=3 CODE=4 [SRC=CLIENT DST=10.0.0.1 LEN=1464 TOS=0x00 PREC=0x00 TTL=47 ID=2510 DF PROTO=TCP SPT=XXXXX DPT=YYYY WINDOW=2252 RES=0x00 ACK URGP=0 ] MTU=1326


Habe ich hier ein Verständnisproblem, oder wird hier tatsächlich die interne IP zum Client gesendet? Denn dessen NAT-Router (der nicht unter meiner Kontrolle steht) kann mit dem Paket nichts anfangen und verwirft es. Der Client steht also dumm da, erfährt nichts von der MTU und versucht es immer und immer wieder. Wie kann ich das vermeiden? Oder übersehe ich hier irgendetwas anderes, was die Probleme verursacht? Ohne "multiport" ändert sich dran übrigens auch nichts.



Weitere Konfigurationen und Infos gibt es auf Nachfrage :)





MfG Christian




Aucun commentaire:

Enregistrer un commentaire