# Router routet nicht alles

## Warriors Prayer

hi,

ich habe einen router mit masquerading für adsll aufgesetzt. Der funzt auch so ganz gut, nur routet er einige Seiten nicht. Leider ist darunter auch www.gmx.de, was recht ungünstig ist.

mein masquerading wird so in gang gesetzt:

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/ip_dynaddr

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Der Router selber kann die Seite mit lynx betrachten, also scheint irgendein routing problem zu bestehen.

Wenn jemand ne Idee hat, ich bin ganz Ohr...

----------

## dad

könnte sich um ein problem mit der mtu handeln.

muss auf 1492 eingestellt werden.

----------

## Warriors Prayer

hmm,

mtu für das ppp interface ist auch 1492.

müssen die clienten das auch?

----------

## mglauche

noe. normalerweise nicht. Ist aber besser, wenn sie es haben..

kurzer ausflug in tcp:

ein paket mit 1500 bytes kommt auf einen router an, der max. 1492 bytes uebertragen kann. was passiert ? bei ipv4 wird das paket in 2 teile zerteilt, eins mit 1492 und eins mit 8 byte, was sicherlich nicht sehr effizient ist. bei ipv6 gibt es sogar direkt eine icmp packet too large message und das paket wird gedroppt ... 

Mache TCP verbindungen haben auch "MTU Path Discovery", mit der die max. paketgroesse automatisch festgestellt werden kann. Das basiert aber auf ICMP, was leider immer noch viele unerfahren Systemadministratoren *komplett* abschalten ..  :Sad: 

----------

## mglauche

noch mal zu deinen urspruenglichen problem: lass mal tcpdump -n auf den ausgehenden port des routers lauschen, waerend du vom client versuchts auf www.gmx.de zuzugreifen ..

----------

## Warriors Prayer

hi,

das sagt er mir, wenn ich versuche, die seite zu erreichen:

router root # tcpdump -i ppp0 port 80

tcpdump: listening on ppp0

14:35:19.399936 62.226.0.65.33001 > 213.165.65.100.www: F 1788474887:1788474887(0) ack 1822633586 win 5840 <nop,nop,timestamp 997510 362606872> (DF)

14:35:19.442781 62.226.0.65.33002 > 213.165.65.100.www: S 1810017393:1810017393(0) win 5840 <mss 1460,sackOK,timestamp 997514 0,nop,wscale 0> (DF)

14:35:19.499333 213.165.65.100.www > 62.226.0.65.33001: . ack 1 win 6432 <nop,nop,timestamp 362608819 997510> (DF)

14:35:19.505249 213.165.65.100.www > 62.226.0.65.33002: S 1834740589:1834740589(0) ack 1810017394 win 5792 <mss 1460,sackOK,timestamp 8750479 997514,nop,wscale 0> (DF)

14:35:19.505462 62.226.0.65.33002 > 213.165.65.100.www: . ack 1 win 5840 <nop,nop,timestamp 997520 8750479> (DF)

14:35:19.505784 62.226.0.65.33002 > 213.165.65.100.www: P 1:459(458) ack 1 win 5840 <nop,nop,timestamp 997520 8750479> (DF)

14:35:19.594498 213.165.65.100.www > 62.226.0.65.33002: . ack 459 win 6432 <nop,nop,timestamp 8750488 997520> (DF)

14:35:21.219286 213.165.65.100.www > 62.226.0.65.33000: S 1821221465:1821221465(0) ack 1786199264 win 5792 <mss 1460,sackOK,timestamp 846675719 995551,nop,wscale 0> (DF)

14:35:21.219490 62.226.0.65.33000 > 213.165.65.100.www: R 1786199264:1786199264(0) win 0 (DF)

Woraus ich allerdings net wirklich schlau werde...

Wenn jemand damit was anfangen kann, laßt es mich wissen  :Smile: 

----------

## Salze

Hi!

Du hast wohl in der Tat ein Problem mit der MTU. Wenn das "dont fragment" Bit gesetzt ist dann darf ein Paket das zu groß ist nicht in zwei Teile geteilt werden.

Möglichkeit 1: MTU auf dem Arbeitsrechner reduzieren.

evtl. Möglichkeit 2: wie schon gesagt ICMPs durchlassen so daß der Arbeitsrechner die Chance hat zu merken daß die Pakete zu groß sind.

bye

Salze

----------

## Warriors Prayer

HURRA!!!

Problem gelöst.

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

in die /etc/conf.d/iptables eingefügt. Das bewirkt, daß ein zu großes Paket in 2 kleine aufgeteilt wird und die ganzen "bösen" Seiten wieder funzen. Ich hab hier rund 20 Rechner hinter dem Router, wo auch echte DAUs dran sitzen. Denen zuzumuten, die MTU per reg hack in ihren Windosen umzustellen, ist zuviel.

Vielen Dank an alle!

----------

