Како пробивот низ NAT го завиткува ESP во UDP
ESP нема порти, затоа пробивот низ NAT го завиткува во UDP на 4500. Проверете ја контролната размена и инкапсулираната патека на податоци како две одделни фази.
Два клиента зад истиот рутер разговараат со еден IPsec гејтвеј, и едниот постојано паѓа додека другиот останува поврзан. Изворниот ESP е IP протокол 50 без порти, па преведувачот нема на што да закачи мапирање кога неколку клиенти делат една адреса. Пробивот низ NAT ја затвора таа празнина со завиткување на ESP во UDP на 4500, и тоа заглавие ги објаснува повеќето од симптомите што следат. Тоа исто така покажува на уредот што треба да се смени.
Зошто рамнината на податоци се преместува на портата 4500
За време на поставувањето IKEv2 ги споредува адресите и портите што секоја страна мисли дека ги користи, разменувајќи хешови во своите известувања за откривање на NAT. Кога хешовите не се совпаѓаат, преведувач стои некаде на патеката, и двете страни го префрлаат заштитениот сообраќај на UDP инкапсулација. Затоа сесијата што наишла на преведувач изгледа поинаку од онаа што не наишла.
Завиткувањето е плик, а не промена на протоколот: ESP го задржува своето заглавие, проверката на интегритетот и шифрирањето, а UDP ги обезбедува само портите што му се потребни на преведувачот. Портата 500 го носи IKE сообраќајот; 4500 ги носи инкапсулираните податоци по откривањето, и често и подоцнежните IKE пораки. Ниту една порта не го прави текот TCP врска, претпоставка што ги заведува повеќето луѓе што читаат снимак.
Проверете ги двете фази по ред
Најпрво докажете ја контролната размена, потоа патеката на податоци, и држете ги двете одделно во вашите белешки. Снимак што покажува сообраќај на 500 и никогаш на 4500 обично значи дека патеката на податоци е филтрирана, па исправката припаѓа на правилото на огнениот ѕид, а не на клиентот.
Набљудувајте ги двете порти со tcpdump -ni any 'udp port 500 or udp port 4500', и читајте ја табелата за преведување на рутерот додека сесијата е активна. Таа табела ја покажува изворната порта што гејтвејот навистина ќе ја види, а снимакот на преносниот сметач по дизајн не се совпаѓа: сметачот верува 500 додека гејтвејот гледа 4500 со преведена изворна порта, и двете се точни. Истиот тек, пред и по преведувањето:
client 192.0.2.10:500 -> router 203.0.113.7:62000 -> gateway 198.51.100.9:4500
Симптоми што ги објаснува завиткувањето, и два што не ги објаснува
Рутер што ја дозволува контролната размена и ги блокира инкапсулираните податоци го дава извештајот „тунелот е кренат, но ништо не поминува“. Табелите за мапирање истекуваат, па неактивната сесија бара сообраќај за одржување што страните го испраќаат намерно, и тие пакети не се здравствени проверки. Кога неколку клиенти зад еден гејтвеј паѓаат заедно, испитајте го преведувањето на тој гејтвеј и секоја стара функција за пропуштање. Завиткувањето не објаснува апликација што паѓа кај секој клиент по кревањето на тунелот, ниту предупредување за сертификат на страница за блокирање; и двете се над овој слој.
Читајте ја табелата за мапирање за два клиента одеднаш: ако и двата покажуваат иста преведена порта, уредот не ги разделува онака како што бара гејтвејот. Режимот на пропуштање што го дава изворниот ESP само на еден домаќин не е еднаков на услужување на неколку преведени клиенти, иако продавачите и двата ги опишуваат како пријателски кон IPsec. Двојниот NAT додава слој за мапирање и уште една точка на истекување, но не ги прекинува автоматски излезните врски.
Сообраќајот за одржување заслужува свој ред во оперативниот прирачник, зашто токму тој ја држи патеката за одговор отворена во периодите на неактивност. Овозможете го таму каде што продавачот го документира, и проверете го најпрво кога сесијата умира по неколку минути тишина, а не при првата употреба.
Сменете го сопственикот на мапирањето, па тестирајте повторно
Следете ги поддржаните поставки за пробив низ NAT на двете страни наместо да погодувате порта. Уредувањето на локалната изворна порта на еден клиент не може да ја смени услугата што слуша на другиот крај, и обично го крши веќе изграденото мапирање. Ако клиентот стои зад уред што не го контролирате, промената му припаѓа на неговиот сопственик.
По секоја промена повторете ги двете проверки на фазите и потврдете дека пакет со податоци поминува, а не само дека екранот за состојба станал зелен. Држете ги торките, излезот од табелата за мапирање и промената на правилото во една белешка, за да не почне следниот човек повторно од контролната размена. Белешките на strongSwan за пробивот низ NAT ги покриваат поставките за инкапсулација и одржување зад двете фази.