Як праходжанне 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 ахопліваюць налады ўпакоўкі і падтрымання за абодвума этапамі.