IPsec-többlet: a mód, a NAT-T és az algoritmusok mind megváltoztatják
Egyetlen közzétett többletszám egyetlen beágyazást ír le egyetlen útvonalon. Adja össze a fejléceket, amelyekről az alagút valóban megállapodik, majd mérje meg az útvonalat.
Valahol egy útmutatóban van egy szám, általában hatvan és nyolcvan bájt között, amelyet valaki kivont az 1500-ból, hogy megkapja az interfész MTU-ját. Az a szám egy bizonyos beágyazást ír le egy bizonyos útvonalon. Változtassa meg a módot, a külső címcsaládot, a titkosítást vagy a NAT jelenlétét, és a számítás már nem érvényes az alagútjára.
A szám egy másik alagútból származik
A többlet nem az IPsec tulajdonsága elvont értelemben. Annak a csomagnak a tulajdonsága, amely valóban felépül: megállapodott mód, külső fejléc, védelmi fejléc, kitöltés, integritásmező és esetleg egy további UDP-burkolat.
Az IPv4-gyel és NAT nélküli szállítási módhoz idézett szám kisebb csomagot ír le, mint a NAT-átjárás alatti IPv6-os alagút mód. Mindkettő a saját esetére igaz. Ha bármelyiket egy másik telepítésbe másolja, az emberek így jutnak olyan MTU-hoz, amely eltöri a nagy átviteleket. A hiba csendes, mert a kis kérések továbbra is működnek.
Adja össze a rétegeket, amelyek valóban ott vannak
Kezdje a külső IP-fejléccel, és haladjon befelé. Alagút módban az eredeti csomag belül van, tehát a külső fejléc hozzáadás, nem helyettesítés. RFC 4303 írja le az ESP-fejlécet, a kitöltést és az azt követő integritási adatokat.
| 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 |
Ezek közül egyik sor sem állandó a telepítések között, és a kitöltés sora még egyetlen telepítésen belül sem állandó. Ez az egész oka annak, hogy egyetlen közzétett többletszám csalódást okoz.
Két helyszín vitatkozhat ugyanarról az alagútról
A védett csomagnak továbbra is át kell haladnia a külső útvonalon, és a külső útvonal nem mindenhol ugyanaz. A PPPoE hozzáférési vonal kevesebbet visz, mint egy tiszta Ethernet-szegmens. A mobilhálózat tovább szűkülhet, és a saját forgalmát alagutazó szolgáltató még egy beágyazást ad hozzá, amelyet senki nem említett. Az az alagút, amely az egyik vonalon működik és a másikon elbukik, a második vonalat írja le, nem a protokollt.
A két irány is különbözhet. Az aszimmetrikus útvonal működő feltöltést és elakadt letöltést adhat, ami alkalmazáshibának látszik addig, amíg a csomagméreteket nézi az elérhetőség helyett. Egy sikeres kis ping nagyon keveset bizonyít a teljes méretű válaszról.
Mérjen a kivonás helyett
Keresse meg a legnagyobb datagramot, amely túléli az útvonalat. Ezután hasonlítsa össze azzal az értékkel, amelyet az interfész jelent:
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'
Csökkentse a ping méretét, amíg válaszok nem érkeznek, és tekintse a legnagyobb működő értéket az adott útvonal keretének. Az xfrm kimenete megmondja, melyik módot és mely algoritmusokat egyeztették, és ez minden őszinte számítás bemenete. A rögzítés megerősíti, hogy ESP vagy UDP-be csomagolt ESP van a vezetéken, és ez eldönti a NAT kérdését találgatás nélkül.
Tartson fenn egy értéket a vezérlősík számára is. Az IKE kézfogási csomagok szerkezete eltér az adatcsomagokétól, ezért a kézfogás-rögzítésből származtatott méret nem adatsík-MTU.
Tegye a számot oda, ahová való
Az alagúton áthaladó TCP esetében az MSS-korlátozás gyakran a legkevésbé invazív szabályozás, mert csökkenti azt, amit a végpontok küldenek, anélkül hogy magát az alagutat megváltoztatná. Útvonalalapú alagútnál szándékosan állítsa be az alagút-interfész MTU-ját, és dokumentálja, miért. Ha mindkettőt egyszerre teszi, majd mér, semmit nem tud meg arról, melyik segített.
Tartsa együtt a jegyben a megállapodott módot, a külső családot, a NAT állapotát és a reprodukálható tünetet. A feljegyzett négy tény többet ér egy megjegyzett állandónál, és ez az egyetlen változat, amely túléli a következő ügyfélfrissítést.