« LINUX:Routeur-PPPOE » : différence entre les versions

Aucun résumé des modifications
Aucun résumé des modifications
Ligne 200 : Ligne 200 :


=Problème propre au PPPOE: MTU et MSS=
=Problème propre au PPPOE: MTU et MSS=
A partir du routeur lui-même, nous n'avons aucun problème de trafic vers Internet, par exemple en voulant effectuer des mises à jour. Par contre quand nous voulons effectuer cette même tâche à partir d'une machine du LAN n°2 dont le trafic passe par notre routeur, le trafic de gros paquets est bloqué sur certains serveurs distants. Quant on y regarde de plus près, on remarque que le MTU (Maximum Transmission Unit) la taille maximale d'paquet passe de 1500 sur les interfaces Ethernet à 1492 sur l'interface PPPOE (ppp0) suite à l'encapsulation PPP. La commande "ifconfig" permet de visualiser ces valeurs ci-dessus. Le MSS (Maximum Segment Size) la taille maximale des données transmises est défini comme MTU-40 octets soit 1460 sur Ethernet mais 1452 sous PPPOE et PPP (nos 8 octets en moins). Si le MSS et donc le MTU ne sont pas adaptés, il s'ensuit des phénomènes de fragmentations. Deux sous-paquets seront envoyés (1452+8) pour le même MSS, ce qui double le trafic. Certaines machines n'aime pas cela et bloquent le trafic.  
A partir du routeur lui-même, nous n'avons aucun problème de trafic vers Internet, par exemple en voulant effectuer des mises à jour. Par contre quand nous voulons effectuer cette même tâche à partir d'une machine du LAN n°2 dont le trafic passe par notre routeur, le trafic de gros paquets est bloqué sur certains serveurs distants.  
 
Quant on y regarde de plus près, on remarque que le MTU (Maximum Transmission Unit) la taille maximale d'un paquet passe de 1500 sur les interfaces Ethernet à 1492 sur l'interface PPPOE (ppp0) suite à l'encapsulation PPP. La commande "ifconfig" permet de visualiser ces valeurs ci-dessus. Le MSS (Maximum Segment Size) la taille maximale des données transmises est défini comme MTU-40 octets soit 1460 sur Ethernet mais 1452 sous PPPOE-PPP (nos 8 octets en moins). Si le MSS et donc le MTU ne sont pas adaptés, il s'ensuit des phénomènes de fragmentations. Deux sous-paquets seront envoyés (1452+8) pour le même MSS, ce qui double le trafic. Certaines machines n'aime pas la fragmentation et bloquent le trafic.  


La solution est d'envoyer au client un message (ICMP) pour qu'il réduise de 8 octets son MSS et le paquet passera en un seul bloc sans fragmentation du paquet à travers l'interface PPPOE-PPP.  
La solution est d'envoyer au client un message (ICMP) pour qu'il réduise de 8 octets son MSS et le paquet passera en un seul bloc sans fragmentation du paquet à travers l'interface PPPOE-PPP.  


En pratique, c'est une commande du firewall IPTABLES qui va s'en charger par un tour de passe-passe. Ceci se déroule dans le cadre du filtrage FORWARDING car le problème apparaît lors du transit à travers le routeur. Lors de l'échange de messages entre client et serveur, la valeur de 1460 du client est transformée par le routeur en 1452; le serveur répond au client OK pour 1452 et le client s’exécute.
En pratique, c'est une commande du firewall IPTABLES qui va s'en charger par un tour de passe-passe. Ceci se déroule dans le cadre du filtrage FORWARDING car le problème apparaît lors du transit à travers le routeur. Lors de l'échange de messages entre client et serveur, la valeur de 1460 du client est transformée par le routeur en 1452; le serveur répond au client "OK pour 1452" et le client s’exécute.


La phrase magique est:
La phrase magique est: