Overhed IPsec: mod, NAT-T dan algoritma semuanya mengubahnya
Satu angka overhed yang diterbitkan menerangkan satu enkapsulasi pada satu laluan. Jumlahkan pengepala yang benar-benar dirundingkan oleh terowong anda, kemudian ukur laluan itu.
Di suatu tempat dalam panduan ada angka, biasanya antara enam puluh dengan lapan puluh bait, yang seseorang tolak daripada 1500 untuk mendapatkan MTU antara muka. Angka itu menerangkan satu enkapsulasi tertentu pada satu laluan tertentu. Tukar mod, keluarga alamat luar, sifer atau kehadiran NAT, dan aritmetik itu tidak lagi terpakai pada terowong anda.
Angka itu datang daripada terowong yang lain
Overhed bukan sifat IPsec secara abstrak. Ia sifat paket yang benar-benar dibina: mod yang dirundingkan, pengepala luar, pengepala perlindungan, pengisi, medan integriti dan mungkin pembalut UDP tambahan.
Angka yang disebut untuk mod pengangkutan dengan IPv4 dan tanpa NAT menerangkan paket yang lebih kecil daripada mod terowong dengan IPv6 di bawah lintasan NAT. Kedua-duanya betul untuk kes masing-masing. Menyalin salah satunya ke penggunaan yang berbeza ialah cara orang berakhir dengan MTU yang memecahkan pemindahan besar. Kegagalan itu senyap kerana permintaan kecil terus berfungsi.
Jumlahkan lapisan yang benar-benar ada
Mulakan dengan pengepala IP luar dan bergerak ke dalam. Dalam mod terowong paket asal berada di dalam, jadi pengepala luar ialah tambahan dan bukan pengganti. RFC 4303 menerangkan pengepala ESP, pengisi dan data integriti yang menyusulinya.
| 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 |
Tiada satu pun baris itu kekal antara penggunaan, dan baris pengisi tidak kekal walaupun dalam satu penggunaan. Itulah seluruh sebab satu angka overhed yang diterbitkan mengecewakan.
Dua tapak boleh berselisih tentang terowong yang sama
Paket yang dilindungi masih perlu merentasi laluan luar, dan laluan luar tidak sama di semua tempat. Pautan akses PPPoE membawa kurang daripada segmen Ethernet yang bersih. Rangkaian mudah alih boleh mengecil lagi, dan penyedia yang menerowong trafiknya sendiri menambah satu lagi enkapsulasi yang tidak disebut sesiapa. Terowong yang berfungsi pada satu pautan dan gagal pada pautan lain sedang menerangkan pautan kedua, bukan protokol.
Kedua-dua arah juga boleh berbeza. Laluan tidak simetri boleh memberi anda muat naik yang berfungsi dan muat turun yang tersekat, yang dibaca sebagai masalah aplikasi sehingga anda melihat saiz paket dan bukan kebolehsampaian. Ping kecil yang berjaya membuktikan sangat sedikit tentang gerak balas bersaiz penuh.
Ukur dan bukan menolak
Cari datagram terbesar yang bertahan melalui laluan itu. Kemudian bandingkannya dengan nilai yang dilaporkan oleh antara muka:
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'
Turunkan saiz ping sehingga balasan tiba, dan anggap nilai terbesar yang berfungsi sebagai belanjawan untuk laluan itu. Output xfrm memberitahu anda mod dan algoritma mana yang dirundingkan, dan itulah input kepada sebarang pengiraan yang jujur. Tangkapan mengesahkan sama ada ESP atau ESP yang dibalut UDP berada di wayar, dan itu menyelesaikan persoalan NAT tanpa meneka.
Sediakan satu nilai untuk satah kawalan juga. Paket jabat tangan IKE mempunyai struktur berbeza daripada paket data, jadi saiz yang diperoleh daripada tangkapan jabat tangan bukan MTU satah data.
Letakkan angka itu di tempatnya
Untuk TCP melalui terowong, pengapit MSS selalunya kawalan yang paling kurang mengganggu, kerana ia mengurangkan apa yang dihantar oleh hujung tanpa mengubah terowong itu sendiri. Untuk terowong berasaskan laluan, tetapkan MTU antara muka terowong secara sengaja dan dokumentasikan sebabnya. Melakukan kedua-duanya sekali gus dan kemudian mengukur tidak memberi anda apa-apa maklumat tentang mana yang membantu.
Simpan bersama dalam tiket: mod yang dirundingkan, keluarga luar, keadaan NAT dan gejala yang boleh dihasilkan semula. Satu set empat fakta yang direkodkan mengalahkan pemalar yang diingati, dan hanya versi ini yang bertahan sehingga peningkatan klien seterusnya.