Negdje u nekom vodiču postoji broj, obično između šezdeset i osamdeset bajtova, koji je neko oduzeo od 1500 da bi dobio MTU interfejsa. Taj broj opisuje jednu konkretnu inkapsulaciju na jednoj konkretnoj putanji. Promijenite mod, vanjsku porodicu adresa, šifru ili prisustvo NAT-a i aritmetika više ne važi za vaš tunel.

Broj je došao iz drugog tunela

Trošak nije svojstvo IPsec-a u apstraktnom smislu. To je svojstvo paketa koji se zaista gradi: dogovoreni mod, vanjsko zaglavlje, zaštitno zaglavlje, dopuna, polje integriteta i moguće dodatni UDP omotač.

Brojka navedena za transportni mod s IPv4 i bez NAT-a opisuje manji paket od tunelskog moda s IPv6 pod NAT prolazom. Obje su tačne za svoj slučaj. Kopiranje bilo koje od njih u drugu instalaciju je način na koji ljudi završe s MTU-om koji lomi velike prenose. Kvar je tih jer mali zahtjevi nastavljaju raditi.

Saberite slojeve koji zaista postoje

Pođite od vanjskog IP zaglavlja i idite prema unutra. U tunelskom modu originalni paket je unutra, pa je vanjsko zaglavlje dodatak, a ne zamjena. RFC 4303 opisuje ESP zaglavlje, dopunu i podatke integriteta koji ga slijede.

LayerWhat it addsWhen it applies
Outer IP header20 bytes for IPv4, 40 for IPv6Always, and 40 rather than 20 if the outer path is v6
ESP header8 bytes of SPI and sequence numberAlways
Block cipher IV8 to 16 bytes depending on the transformWhen the negotiated cipher uses one
Padding and trailerPadding to the block size, plus two trailer bytesAlways, and the amount varies with payload length
Integrity data12 to 16 bytes for common authenticated ciphersWhen integrity protection is negotiated
UDP encapsulation8 bytesNAT traversal on port 4500, which is common for clients behind NAT

Nijedan od tih redova nije stalan među instalacijama, a red s dopunom nije stalan ni unutar jedne instalacije. Upravo je to razlog zašto jedna objavljena brojka troška razočara.

Dvije lokacije mogu se ne složiti oko istog tunela

Zaštićeni paket ipak mora prijeći vanjsku putanju, a vanjska putanja nije svuda ista. PPPoE pristupna veza nosi manje od čistog Ethernet segmenta. Mobilna mreža može se dodatno smanjiti, a provajder koji tunelira vlastiti promet dodaje još jednu inkapsulaciju koju niko nije spomenuo. Tunel koji radi na jednoj vezi, a pada na drugoj, opisuje drugu vezu, a ne protokol.

Oba smjera se također mogu razlikovati. Asimetrična ruta može vam dati radni upload i zaglavljeni download, što izgleda kao problem aplikacije dok ne pogledate veličine paketa umjesto dostupnosti. Uspješan mali ping dokazuje vrlo malo o odgovoru pune veličine.

Mjerite umjesto da oduzimate

Nađite najveći datagram koji preživi putanju. Zatim ga uporedite s vrijednošću koju interfejs prijavljuje:

ip link show eth0 | grep -o 'mtu [0-9]*'
ip xfrm state list
ping -M do -s 1400 198.51.100.7
ping -M do -s 1372 198.51.100.7
tcpdump -ni any -c 20 'esp or udp port 4500'

Spuštajte veličinu pinga dok ne stignu odgovori i uzmite najveću radnu vrijednost kao budžet za tu putanju. Izlaz xfrm-a kaže koji su mod i koji algoritmi dogovoreni, a to je ulaz za svaku poštenu računicu. Snimak potvrđuje je li na žici ESP ili ESP umotan u UDP, što rješava pitanje NAT-a bez nagađanja.

Odvojite jednu vrijednost i za kontrolnu ravan. IKE paketi rukovanja imaju drugačiju strukturu od podatkovnih paketa, pa veličina izvedena iz snimka rukovanja nije MTU podatkovne ravni.

Stavite broj tamo gdje mu je mjesto

Za TCP kroz tunel, MSS stezanje je često najmanje invazivna kontrola, jer smanjuje ono što krajnje točke šalju bez promjene samog tunela. Za tunel zasnovan na rutama, postavite MTU tunelskog interfejsa namjerno i dokumentirajte zašto. Ako uradite oboje odjednom i zatim mjerite, ne dobijate nikakvu informaciju o tome šta je pomoglo.

Držite dogovoreni mod, vanjsku porodicu, stanje NAT-a i ponovljivi simptom zajedno u tiketu. Zabilježen skup od četiri činjenice pobjeđuje zapamćenu konstantu i to je jedina verzija ovoga koja preživi sljedeću nadogradnju klijenta.

Povezani članci