IPsec шығыны: режим, NAT-T және алгоритмдер оның бәрін өзгертеді
Жарияланған бір шығын саны бір жолдағы бір инкапсуляцияны сипаттайды. Туннеліңіз шынымен келісетін тақырыпшаларды қосыңыз, содан кейін жолды өлшеңіз.
Бір нұсқаулықта әдетте алпыстан сексен байтқа дейінгі сан бар, оны біреу интерфейс MTU-ын алу үшін 1500-ден алып тастаған. Ол сан белгілі бір жолдағы белгілі бір инкапсуляцияны сипаттайды. Режимді, сыртқы мекенжай тұқымдасын, шифрды немесе NAT-тың болуын өзгертіңіз, және арифметика енді сіздің туннеліңізге қатысы жоқ.
Бұл сан басқа туннельден келген
Шығын — IPsec-тің дерексіз қасиеті емес. Ол шынымен құрылатын пакеттің қасиеті: келісілген режим, сыртқы тақырыпша, қорғаныс тақырыпшасы, толтыру, тұтастық өрісі және мүмкін қосымша UDP қаптамасы.
IPv4-пен және NAT-сыз тасымалдау режимі үшін айтылған сан NAT өтуі астындағы IPv6-мен туннель режимінен кішірек пакетті сипаттайды. Екеуі де өз жағдайы үшін дұрыс. Олардың біреуін басқа орналастыруға көшіру — адамдардың үлкен тасымалдарды бұзатын MTU-ға тап болатын жолы. Сәтсіздік үнсіз, өйткені кішкентай сұраныстар жұмысын жалғастырады.
Шынымен бар қабаттарды қосыңыз
Сыртқы IP тақырыпшасынан бастап ішке қарай жылжыңыз. Туннель режимінде бастапқы пакет ішінде болады, сондықтан сыртқы тақырыпша ауыстыру емес, қосымша. RFC 4303 ESP тақырыпшасын, толтыруды және одан кейінгі тұтастық деректерін сипаттайды.
| 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 |
Ол жолдардың ешқайсысы орналастырулар арасында тұрақты емес, ал толтыру жолы бір орналастырудың ішінде де тұрақты емес. Бір жарияланған шығын санының көңіл қалдыратынының бүкіл себебі осы.
Екі алаң бір туннель туралы келіспеуі мүмкін
Қорғалған пакет әлі де сыртқы жолдан өтуі керек, ал сыртқы жол барлық жерде бірдей емес. PPPoE кіру желісі таза Ethernet сегментінен аз тасиды. Мобильді желі одан әрі тарылуы мүмкін, ал өз трафигін туннельдеп тасымалдайтын провайдер ешкім атап өтпеген тағы бір инкапсуляцияны қосады. Бір желіде жұмыс істеп, екіншісінде сәтсіздікке ұшырайтын туннель екінші желіні сипаттайды, протоколды емес.
Екі бағыт та әртүрлі болуы мүмкін. Асимметриялық маршрут сізге жұмыс істейтін жүктеуді және тоқтап қалған жүктеуді бере алады, бұл қолжетімділікке емес, пакет өлшемдеріне қарағанша қолданба мәселесі болып оқылады. Кішкентай ping-нің сәтті өтуі толық өлшемді жауап туралы өте аз дәлелдейді.
Шегерудің орнына өлшеңіз
Жолдан өтетін ең үлкен дейтаграмманы табыңыз. Содан кейін оны интерфейс хабарлайтын мәнмен салыстырыңыз:
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'
Жауаптар келгенше ping өлшемін төмендетіңіз және жұмыс істейтін ең үлкен мәнді сол жолдың бюджеті деп санаңыз. xfrm шығысы қай режим мен қай алгоритмдер келісілгенін айтады, ал бұл кез келген адал есептеудің кірісі. Түсірілім сымда ESP немесе UDP-қапталған ESP бар-жоғын растайды, және бұл NAT сұрағын болжамсыз шешеді.
Басқару жазықтығы үшін де бір мән қалдырыңыз. IKE қол алысу пакеттерінің құрылымы деректер пакеттерінен өзгеше, сондықтан қол алысу түсірілімінен алынған өлшем деректер жазықтығының MTU-ы емес.
Санды өз орнына қойыңыз
Туннель арқылы өтетін TCP үшін MSS шектеуі көбіне ең аз араласатын басқару болып табылады, өйткені ол туннельдің өзін өзгертпей ұштары жіберетін көлемді азайтады. Маршрутқа негізделген туннель үшін туннель интерфейсінің MTU-ын әдейі орнатыңыз және себебін құжаттаңыз. Екеуін бірге жасап, содан кейін өлшеу қайсысы көмектескені туралы ештеңе айтпайды.
Тикетте келісілген режимді, сыртқы тұқымдасты, NAT күйін және қайталанатын симптомды бірге ұстаңыз. Төрт фактінің жазылған жиынтығы есте сақталған тұрақтыдан артық, және келесі клиент жаңартуынан аман қалатын осының жалғыз нұсқасы осы.