Question MTU est 1500, pourquoi la première longueur de fragment est 1496 dans IPv6?


ping6 ipv6Address -s 1500

Cette commande entraînera un fragment. Observé par wireshark, la longueur du paquet du premier fragment est de 1496 (à partir de la couche 3). Puisque le MTU est 1500, je suis confus par cette longueur de 1496. D'où est ce que ça vient?


4
2017-10-05 05:49


origine


Vous connectez-vous via un service de tunnel? - grawity
Non. Si j'utilise -s 1452, il n'y aura pas de fragment et la longueur totale sera de 1500. - deepsky
Je ne sais pas IP6, mais avec IP4 je dois régler mes MTU TCP param sur 1480 car mon commutateur, c’est comme un camion de 15 pieds qui ne rentre pas sous le pont * / clunk *, mais un 14 '11 " il continue toujours à 99 km / h de cette façon, le top 1% des tests de vitesse pour ma connexion, donc je ne m'inquiète pas de la différence mineure - Psycogeek


Réponses:


Ceci est juste pour ma propre référence sur IPv6 MTU. J'ai eu besoin certains question pour l'ajouter à - et je vous choisis-cho.

Tout d'abord, notre paquet Ethernet, que nous ignorons normalement:

+-------------------------+
| Ethernet - 16 bytes     |
|  6 byte destination MAC |
|  6 byte source MAC      |
|  4 byte type            |
+-------------------------+
|                         |
/  1,500 byte payload     /
|                         |
+-------------------------+

Maintenant, nous ajoutons l'en-tête IPv4 ou IPv6:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    |                         |
/ 1,480 payload           /    / 1,460 payload           /
|                         |    |                         |
+-------------------------+    +-------------------------+

Ensuite, nous ajoutons ma réalité d'une connexion PPPoE, qui prend 8 octets du paquet pour le tag PPPoE PADS:

+-------------------------+
| Ethernet - 12 bytes     |
|  6 byte destination MAC |
|  6 byte source MAC      |
|  4 byte type            |
+-------------------------+
| PPPoE PADS - 8 bytes    |
+-------------------------+
|                         |
/ 1,492 payload           /
|                         |
+-------------------------+

Qui réduit le MTU disponible pour notre trafic IPv4 et IPv6:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    |                         |
/ 1,472 payload           /    / 1,452 payload           /
|                         |    |                         |
+-------------------------+    +-------------------------+

Et puis, dans mon cas, j'utilise Ouragan électrique's Tunneling 6in4, car mon fournisseur de services Internet n'offre pas de connectivité IPv6 native. Cela signifie que mon trafic IPv6 est encapsulé dans un paquet IPv4:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv4 - 20 bytes         |
|  10  byte control flags |    |  10  byte control flags |
|  2 byte total length    |    |  2 byte total length    |
|  4 byte source addr     |    |  4 byte source addr     |
|  4 byte dest addr       |    |  4 byte dest addr       |
+-------------------------+    +-------------------------+
|                         |    | IPv6 - 40 bytes         |
|                         |    |  6 byte control flags   |
|                         |    |  2 byte payload length  |
|                         |    |  16 byte source addr    |
|                         |    |                         |
|                         |    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    |                         |
/ 1,472 payload           /    / 1,432 payload           /
|                         |    |                         |
+-------------------------+    +-------------------------+

Mais le nombre important est le MTU, qui est la taille disponible pour IPv4 ou IPv6 (y compris ses en-têtes):

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
|                         |    | IPv4 - 20 bytes         |
/ MTU = 1492              /    |  10  byte control flags |
|                         |    |  2 byte total length    |
+-------------------------+    |  4 byte source addr     |
                               |  4 byte dest addr       |
                               +-------------------------+
                               |                         |
                               / MTU = 1472              |
                               |                         |
                               +-------------------------+

Suivant est la confusion sur le charge utile taille, utilisé lors du ping de quelqu'un avec le ne pas fragmenter drapeau. ICMP fonctionne sur IP et ajoute son propre en-tête d'en-tête:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
| ICMP - 8 bytes          |    |                         |
+-------------------------+    +-------------------------|    
|                         |    | ICMP - 8 bytes          |
|                         |    +-------------------------+
|                         |    |                         |
/ 1,472 ping payload      /    / 1,452 ping payload      /
|                         |    |                         |
+-------------------------+    +-------------------------+

Remarque: C'est pourquoi toi peut cingler avec 1,452 charge d'octet avant de devoir fragmenter.

Dans mon cas, avec la surcharge d'un tag PPPoE PADS:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv6 - 40 bytes         |
|  10  byte control flags |    |  6 byte control flags   |
|  2 byte total length    |    |  2 byte payload length  |
|  4 byte source addr     |    |  16 byte source addr    |
|  4 byte dest addr       |    |                         |
+-------------------------+    |  16 byte dest addr      |
| ICMP - 8 bytes          |    |                         |
+-------------------------+    +-------------------------|    
|                         |    | ICMP - 8 bytes          |
|                         |    +-------------------------+
|                         |    |                         |
/ 1,464 ping payload      /    / 1,444 ping payload      /
|                         |    |                         |
+-------------------------+    +-------------------------+

Et mes frais généraux supplémentaires de 6in4:

IPv4                           IPv6
+-------------------------+    +-------------------------+
| Ethernet - 12 bytes     |    | Ethernet - 12 bytes     |
|  6 byte destination MAC |    |  6 byte destination MAC |
|  6 byte source MAC      |    |  6 byte source MAC      |
|  4 byte type            |    |  4 byte type            |
+-------------------------+    +-------------------------+
| PPPoE PADS - 8 bytes    |    | PPPoE PADS - 8 bytes    |
+-------------------------+    +-------------------------+
| IPv4 - 20 bytes         |    | IPv4 - 20 bytes         |
|  10  byte control flags |    |  10  byte control flags |
|  2 byte total length    |    |  2 byte total length    |
|  4 byte source addr     |    |  4 byte source addr     |
|  4 byte dest addr       |    |  4 byte dest addr       |
+-------------------------+    +-------------------------+
| ICMP - 8 bytes          |    | IPv6 - 40 bytes         |
+-------------------------+    |  6 byte control flags   |    
|                         |    |  2 byte payload length  |
|                         |    |  16 byte source addr    |
|                         |    |                         |
|                         |    |  16 byte dest addr      |
|                         |    |                         |
|                         |    +-------------------------|
|                         |    | ICMP - 8 bytes          |
|                         |    +-------------------------+
|                         |    |                         |
/ 1,464 ping payload      /    / 1,424 ping payload      /
|                         |    |                         |
+-------------------------+    +-------------------------+

Et vous voyez pourquoi je ne peux que cingler avec une charge utile de 1 424 octets.


5
2018-04-01 03:06





Vous verriez ceci si vous avez le marquage VLAN sur une interface qui ne le supporte pas nativement. Les balises VLAN 802.1Q nécessitent 4 octets supplémentaires. Si votre carte réseau les prend en charge en mode natif, il prend en charge des trames Ethernet de 1522 octets (au lieu de 1518 octets), de sorte que vous pouvez toujours avoir un MTU de 1500 octets. Si votre NIC ne le prend pas en charge de manière native, vous pouvez le prendre en charge dans un logiciel, mais vous devez réduire le MTU à 1496 pour que l’ensemble s’insère dans les anciens cadres de 1518 octets pris en charge par votre carte réseau.


4
2017-10-05 06:43



Il n'y a pas de VLAN configuré sur mon réseau. Et la trame Ethernet ne contient aucune information 802.1q. Il est de 14 octets observés depuis le Wirehark. - deepsky
En fait, je pense que c'est parce que tous les nouveaux segments créés doivent avoir une limite de 8 octets et être toujours inférieurs au MTU. 1500 est 187 div 8 avec un reste de 4. Ainsi, 1500-4 = 1496 devrait être la nouvelle limite. Il y a plus de détails sur la fragmentation à erg.abdn.ac.uk/~gorry/eg3567/inet-pages/ip-fragmentatiion.html. - Paul
Je pense que cela a du sens. Pas assez de réputation pour augmenter le vote .... - deepsky


L'unité de transmission maximale (MTU) d'un protocole de communication d'une couche est la taille en octets de la plus grande unité de données de protocole que la couche peut transmettre. Pour l'exemple des connexions IP sur DSL utilisant PPPoA / VC-MUX, en choisissant à nouveau de remplir 31 cellules ATM comme précédemment, on obtient une valeur de MTU réduite optimale souhaitée de 1478 = 31 * 48-10 en tenant compte d'un surcoût de 10 octets d'une surcharge de protocole point à point de 2 octets et une surcharge AAL5 de 8 octets. Cela donne un coût total de 31 * 53 = 1643 octets transmis par ATM à partir d’un paquet de 1478 octets transmis à PPPoA. Dans le cas de l'IP envoyée sur l'ADSL utilisant PPPoA, le chiffre de 1478 serait la longueur totale du paquet IP incluant les en-têtes IP. Donc, dans cet exemple, le maintien d'un MTU réduit de 1478 auto-imposé par opposition à l'envoi de paquets IP de longueur totale économise 53 octets par paquet au niveau de la couche ATM, au prix d'une réduction de 22 octets de la longueur des paquets IP.

La RFC 2516 prescrit un MTU maximum pour les connexions PPPoE / DSL de 1492 octets: la charge utile Ethernet maximale de 1500 octets moins 8 octets d'en-têtes PPPoE (2 octets pour l'en-tête PPP et 6 octets pour l'en-tête PPPoE). Cela ne remplira pas nécessairement un nombre entier de cellules ATM. La couche liaison de données est la couche 2 du modèle OSI à sept couches du réseau informatique. Il correspond ou fait partie de la couche de liaison du modèle de référence TCP / IP. Vous mesurez dans la couche 3, de sorte que la différence est évidente. En raison du type de réseau que vous utilisez, 4 octets sont utilisés à des fins de gestion de réseau.


1
2018-04-01 15:17





Utilisez-vous DSL? L'en-tête PPPoE consomme 8 octets.


1
2018-04-01 22:19