anciennement: PF: comment max-mss fonctionne ? (valable pour iptables aussi)
salut, je m'interroge sur le fonctionnement de l'option scrub max-mss de PF (iptables a une option similaire, target TCPMSS) par rapport aux problèmes de MTU et à leur fonctionnement. Sous Linux, la PMTUD fonctionne a peu près sur LAN, sur le Net, ça ne va plus (tracepath le montre très clairement). Et le fonctionnement de la PMTUD est un peu hasardeuse, vu que c'est le noyau qui découvre ces paramètres tout seul avec les remontées d'ICMP (quand il y en a). De ce que je constate, la fragmentation IP est à la rescousse. Seulement sur mes routeurs OpenBSD avec une liaison DSL, c'est à moi de régler ces problèmes de transmission. À cause d'overhead PPP. Comme je fais de l'ipsec, c'est encore plus. J'aboutit à des mss de 1392. Mon prédécesseur réglait ces problèmes avec la fameuse option max-mss de pf. Typiquement :
Code :
- scrub in log on tun0 all no-df max-mss 1392 fragment reassemble
- scrub log on rl0 all no-df max-mss 1392 fragment reassemble
- scrub log on enc0 all no-df max-mss 1392 fragment reassemble
|
ça clamp dans tous les sens ...
1) pourquoi une option uniquement pour TCP ? et l'UDP (avec des PDU jusqu'à 8Kio), on s'en fout ?
2) comment ce max-mss fonctionne-t-il ? en altèrant la négociation de l'option TCP MSS (ce qui me semble être le cas) ?
3) pourquoi une option niveau 4 pour régler un problème niveau 3 ?
4) ne peut-on (ne doit-on) pas régler ce problème uniquement en changeant la MTU de certaines interfaces émettrices (soit du routeur passerelle, soit au niveau de l'hôte)? Si on considère la fragmentation IP comme acceptable, ne devrait-on pas se reposer uniquement dessus ?
Merci.
PS:
par rapport au point 2). Il est clair que PF réécrit l'option MSS. Par rapport aux règles ci-dessus, et sans parler d'ipsec, pour moi, seul le scrub in tun0 a un intérêt pour régler le problème de MTU au niveau 4. Quand un SYN arrive, la MSS est articifiellement diminuée de sorte que la machine cible derrière le routeur n'enverra jamais de segment TCP trop volumineux. Comme tous les routeurs sont configurés pareil, le SYN-ACK réponse arrive, et sa MSS est elle aussi substituée. De sorte que chaque hôte va envoyer des segment de taille réduite. Ceci explique que cette méthode fonctionne.
Message édité par Taz le 08-05-2006 à 16:34:45