IPsec-oerhaad: modus, NAT-T en algoritmen feroarje it allegear
Ien publisearre oerhaadssifer beskriuwt ien ynkapseling op ien paad. Tel de koppen byinoar dy’t dyn tunnel echt úthannelt, en mjit dan it paad.
Earne yn in hantlieding stiet in getal, meastentiids tusken sechstich en tachtich bytes, dat immen fan 1500 ôflutsen hat om in ynterface-MTU te krijen. Dat getal beskriuwt ien spesifike ynkapseling op ien spesifyk paad. Feroarje de modus, de bûtenste adresfamylje, de fersifering of de oanwêzigens fan NAT, en de rekkenjen jildt net mear foar dyn tunnel.
It getal kaam fan in oare tunnel
Oerhaad is gjin eigenskip fan IPsec yn it abstrakte. It is in eigenskip fan it pakket dat echt boud wurdt: in úthannele modus, in bûtenste kop, in beskermingskop, opfoljen, in yntegriteitsfjild en mooglik in ekstra UDP-omwrapper.
In getal dat neamd wurdt foar transportmodus mei IPv4 en sûnder NAT beskriuwt in lytser pakket as tunnelmodus mei IPv6 ûnder NAT-trochgong. Beide binne goed foar har eigen gefal. Ien fan beiden kopiearje nei in oare útrulling is hoe’t minsken einigje mei in MTU dy’t grutte oerdrachten brekt. De flater is stil, om’t lytse oanfragen bliuwe wurkjen.
Tel de lagen byinoar dy’t der echt binne
Begjin by de bûtenste IP-kop en wurk nei binnen. Yn tunnelmodus sit it oarspronklike pakket binnen, dus de bûtenste kop is in tafoeging en gjin ferfanging. RFC 4303 beskriuwt de ESP-kop, it opfoljen en de yntegriteitsgegevens dy’t dêrop folgje.
| Layer | What it adds | When it applies |
|---|---|---|
| Outer IP header | 20 bytes for IPv4, 40 for IPv6 | Always, and 40 rather than 20 if the outer path is v6 |
| ESP header | 8 bytes of SPI and sequence number | Always |
| Block cipher IV | 8 to 16 bytes depending on the transform | When the negotiated cipher uses one |
| Padding and trailer | Padding to the block size, plus two trailer bytes | Always, and the amount varies with payload length |
| Integrity data | 12 to 16 bytes for common authenticated ciphers | When integrity protection is negotiated |
| UDP encapsulation | 8 bytes | NAT traversal on port 4500, which is common for clients behind NAT |
Gjin fan dy rigen is konstant oer útrullingen hinne, en de opfolchrige is net iens konstant binnen ien útrulling. Dat is de hiele reden wêrom’t ien publisearre oerhaadssifer teloarstelt.
Twa sites kinne it net iens wêze oer deselde tunnel
It beskerme pakket moat noch altyd it bûtenste paad oerstekke, en it bûtenste paad is net oeral itselde. In PPPoE-tagongsline draacht minder as in skjin Ethernet-segment. In mobyl netwurk kin fierder krimpe, en in oanbieder dy’t syn eigen ferkear tunnelt, foeget noch in ynkapseling ta dy’t nimmen neamde. In tunnel dy’t op ien skeakel wurket en op in oare mislearret, beskriuwt de twadde skeakel, net it protokol.
Beide rjochtingen kinne ek ferskille. In asymmetryske rûte kin dy in wurkjende upload en in fêstleine download jaan, wat as in appprobleem liesd wurdt oantsto nei pakketgrutten sjochst yn stee fan nei berikberens. In lytse ping dy’t slagget bewissiget hiel lyts oer in antwurd fan folsleine grutte.
Mjit yn stee fan ôf te lûken
Fyn it grutste datagram dat it paad oerlibbet. Fergelykje it dan mei de wearde dy’t it ynterface rapportearret:
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'
Gean mei de ping-grutte omleech oant antwurden oankomme, en behannelje de grutste wurkjende wearde as it budzjet foar dat paad. De xfrm-útgong fertelt dy hokker modus en hokker algoritmen úthannele binne, en dat is de ynput foar eltse earlike berekkening. De opname befêstiget oft ESP of UDP-ynkapsele ESP op ’e tried sit, en dat besljochtet de NAT-fraach sûnder te rieden.
Hâld ek ien wearde foar it kontrôleflak frij. IKE-hânskopakketten hawwe in oare struktuer as datapakketten, dus in grutte ôflaat fan in hânskipamname is gjin MTU fan it dataflak.
Set it getal dêr’t it heart
Foar TCP troch in tunnel is in MSS-klam faak de minst yngeande kontrôle, om’t it ferminderet wat de einen stjoere sûnder de tunnel sels te feroarjen. Foar in rûtebasearre tunnel setst de MTU fan it tunnel-ynterface bewust en dokumintearrest wêrom. Beide tagelyk dwaan en dan mjitse jout dy gjin ynformaasje oer hokker holp.
Hâld de úthannele modus, de bûtenste famylje, de NAT-tastân en it werhelbere symptoom byinoar yn it ticket. In fêstleine set fan fjouwer feiten ferslacht in ûntholden konstante, en it is de iennige ferzje hjirfan dy’t de folgjende klientoanpassing oerlibbet.