IPsec qo‘shimcha yuki: rejim, NAT-T va algoritmlar uni o‘zgartiradi
Bitta e’lon qilingan qo‘shimcha yuk raqami bitta yo‘lda bitta inkapsulyatsiyani tavsiflaydi. Tunnelingiz haqiqatda kelishadigan sarlavhalarni qo‘shing, so‘ngra yo‘lni o‘lchang.
Qo‘llanmaning qayeridadir bitta raqam bor, odatda oltmishdan sakson baytgacha, kimdir uni interfeys MTU sini olish uchun 1500 dan ayirgan. Bu raqam bitta aniq yo‘lda bitta aniq inkapsulyatsiyani tavsiflaydi. Rejimni, tashqi manzil oilasini, shifrlashni yoki NAT borligini o‘zgartirsangiz, arifmetika endi tunnelingizga tegishli emas.
Bu raqam boshqa tunneldan kelgan
Qo‘shimcha yuk IPsec ning mavhum ma’nodagi xossasi emas. Bu haqiqatda quriladigan paketning xossasi: kelishilgan rejim, tashqi sarlavha, himoya sarlavhasi, to‘ldirish, yaxlitlik maydoni va ehtimol qo‘shimcha UDP qobiq.
IPv4 bilan va NAT siz transport rejimi uchun keltirilgan raqam NAT o‘tishi ostida IPv6 bilan tunnel rejimidan kichikroq paketni tavsiflaydi. Ikkalasi ham o‘z holati uchun to‘g‘ri. Ulardan birini boshqa joylashtirishga ko‘chirish odamlarning katta uzatishlarni buzadigan MTU ga yetib borish yo‘lidir. Nosozlik jim, chunki kichik so‘rovlar ishlashda davom etadi.
Haqiqatda mavjud qatlamlarni qo‘shing
Tashqi IP sarlavhasidan boshlang va ichkariga qarab yuring. Tunnel rejimida asl paket ichkarida bo‘ladi, shuning uchun tashqi sarlavha almashtirish emas, qo‘shimcha. RFC 4303 ESP sarlavhasini, to‘ldirishni va undan keyingi yaxlitlik ma’lumotlarini tavsiflaydi.
| 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 |
O‘sha qatorlarning hech biri joylashtirishlar orasida doimiy emas, to‘ldirish qatori bitta joylashtirish ichida ham doimiy emas. Bitta e’lon qilingan qo‘shimcha yuk raqamining umidni puchga chiqarishining butun sababi shu.
Ikki sayt bitta tunnel haqida kelisha olmasligi mumkin
Himoyalangan paket hali ham tashqi yo‘lni kesib o‘tishi kerak, tashqi yo‘l esa hamma joyda bir xil emas. PPPoE kirish liniyasi toza Ethernet segmentidan kamroq tashiydi. Mobil tarmoq yanada torayishi mumkin, o‘z trafigini tunneldan o‘tkazadigan provayder esa hech kim aytmagan yana bitta inkapsulyatsiya qo‘shadi. Bir liniyada ishlab boshqasida muvaffaqiyatsiz bo‘lgan tunnel ikkinchi liniyani tavsiflaydi, protokolni emas.
Ikkala yo‘nalish ham farq qilishi mumkin. Asimmetrik marshrut sizga ishlaydigan yuklash va to‘xtab qolgan yuklab olishni berishi mumkin, bu esa paket o‘lchamlariga emas, yetib borishga qaraguningizcha dastur muammosi bo‘lib o‘qiladi. Kichik ping muvaffaqiyatli bo‘lishi to‘liq o‘lchamli javob haqida juda oz narsani isbotlaydi.
Ayirish o‘rniga o‘lchang
Yo‘ldan omon qoladigan eng katta datagramni toping. Keyin uni interfeys bildiradigan qiymat bilan solishtiring:
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'
Javoblar kelguncha ping o‘lchamini pasaytiring va ishlaydigan eng katta qiymatni shu yo‘lning byudjeti deb hisoblang. xfrm chiqishi qaysi rejim va qaysi algoritmlar kelishilganini aytadi, va bu har qanday halol hisob-kitobning kirishi. Ushlash simda ESP yoki UDP ichiga o‘ralgan ESP borligini tasdiqlaydi va bu NAT savolini taxmin qilmasdan hal qiladi.
Boshqaruv tekisligi uchun ham bitta qiymat ajrating. IKE qo‘l berish paketlarining tuzilishi ma’lumot paketlaridan boshqacha, shuning uchun qo‘l berish ushlashidan olingan o‘lcham ma’lumot tekisligining MTU si emas.
Raqamni o‘z joyiga qo‘ying
Tunnel orqali TCP uchun MSS cheklovi ko‘pincha eng kam aralashadigan nazoratdir, chunki tunnelning o‘zini o‘zgartirmasdan uchlari yuboradigan hajmni kamaytiradi. Marshrutga asoslangan tunnel uchun tunnel interfeysining MTU sini ataylab belgilang va nega ekanini hujjatlashtiring. Ikkalasini birga qilib, keyin o‘lchash qaysi biri yordam bergani haqida sizga hech qanday ma’lumot bermaydi.
Tiketda kelishilgan rejimni, tashqi oilani, NAT holatini va takrorlanadigan alomatni birga saqlang. To‘rt faktning yozilgan to‘plami eslab qolingan konstantadan yaxshiroq, va keyingi klient yangilanishidan omon qoladigan yagona versiya shu.