Ці ламае апаратнае NAT-паскарэнне вашыя правілы маршрутызацыі VPN?
Паскарэнне можа прапускаць той хук, на які абапіраецца вашая палітыка, або проста пераносіць месца абнаўлення лічыльнікаў. Аддзяліце гэтыя вынікі, перш чым мяняць налады.
Уключэнне апаратнага паскарэння NAT можа зрабіць наладку VPN хутчэйшай, а таксама можа прымусіць палітыку маршрутызацыі перастаць ужывацца да некаторых пакетаў без якой-небудзь памылкі. Якое з гэтага адбудзецца, залежыць ад таго, што прапускае хуткі шлях, а гэта адрозніваецца паміж прашыўкай, версіяй ядра і відам паскарэння, які выкарыстоўваецца. Меню налад рэдка паведамляе, якое менавіта вы толькі што ўключылі.
Два сцвярджэнні варта аддзяліць, перш чым вінаваціць паскаральнік: што правіла перастала ўжывацца і што лічыльнік перастаў абнаўляцца. Гэта не адно і тое ж назіранне.
Тры розныя паскарэнні змешваюцца разам
Афлоад перасылкі, крыптаграфічнае паскарэнне і афлоад канала даных тунэля — гэта асобныя механізмы, якія часта дзеляць адзін перамыкач. Афлоад перасылкі дазваляе ўсталяваным патокам прапускаць частку звычайнага стэка, крыптаграфічнае паскарэнне робіць шыфраванне таннейшым, а афлоад тунэля пераносіць інкапсуляцыю ў апаратнае забеспячэнне. Маршрутызатар, які паскарае звычайны маршрутызаваны трафік, можа цалкам пакінуць трафік тунэля на павольным шляху, і гэта вынік прадукцыйнасці, а не змена палітыкі. Існуе і зваротнае: трафік тунэля ідзе праз афлоад, пакуль навакольная палітыка ўсё яшчэ ацэньваецца.
Flowtables у Linux — гэта дакументаваны выпадак, які варта прачытаць найперш, бо ўсталяваныя патокі можна перадаць хуткаму шляху. Іх улік і апрацоўка стану тады адрозніваюцца ад класічнай перасылкі, і менавіта таму лічыльнікі пачынаюць выглядаць дзіўна.
Лічыльнік, які перастаў рухацца, мала што даказвае
Лічыльнікі правілаў лічаць пакеты, якія праходзяць праз правіла, а паток, што ідзе праз афлоад, можа больш ніколі не прайсці праз яго пасля першага пакета. Гэта дае лічыльнік, які замірае, пакуль трафік працягваецца, і ён выглядае дакладна як абыход, калі вы давяраеце ліку. Назіранне за лічыльнікам усё яшчэ карыснае як намёк на тое, што паток пакінуў шлях, які лічыцца. Астатняя частка дыягностыкі павінна прыходзіць з таго, куды пакеты фактычна ідуць.
Зваротная выснова правальваецца гэтак жа дрэнна. Хуткае спампоўванне не паказвае, што вашыя правілы выключэнняў і апрацоўка збояў усё яшчэ дзейнічаюць, бо яно выпрабоўвае адзін паток, а не палітыку.
Тры ўмовы вырашаюць, ці ламае афлоад палітыку
Першая ўмова — ці звяртаецца хуткі шлях да хука, ад якога залежыць вашая палітыка, бо палітыка, выяўленая праз меткі і маршруты, выжывае часцей, чым палітыка, пабудаваная на фільтрацыі кожнага пакета. Другая — ці дазваляе прашыўка такое спалучэнне наогул, бо некаторыя зборкі аўтаматычна адключаюць афлоад, калі актыўны тунэль або функцыя брандмаўэра. Трэцяя — ці падыходзіць трафік, бо паскарэнне звычайна прывязана да ўсталяваных патокаў і можа выключаць фрагментаваныя або незвычайныя пакеты. Там, дзе ўсе тры ўмовы спрыяюць паскарэнню, палітыка ўсё яшчэ ўжываецца, а там, дзе першая не выконваецца, ніякая наладка яе не вяртае.
Чытайце дакументацыю вытворцы для таго спалучэння, якое вы выкарыстоўваеце, а не для мадэлі маршрутызатара ўвогуле. Версіі прашыўкі ціха мяняюць гэтыя адказы.
Правярайце палітыку, а не прапускную здольнасць
Вымерайце тое, што палітыка павінна гарантаваць, перш чым вымяраць, наколькі хутка яна працуе. Каманды ніжэй паказваюць, ці ўсталяваны flowtable, што бачыць адсочванне злучэнняў і з якога адраса выходзіць кліент. Параўнайце новае злучэнне пасля змены, бо ўсталяванае можа захаваць стары шлях.
nft list flowtables
conntrack -L | head -n 20
curl -sS --max-time 8 https://api.ipify.org; echo
ping -c 3 192.168.50.20
Запіс flowtable, які ахоплівае трафік тунэля, кажа вам, што хуткі шлях задзейнічаны, а табліца злучэнняў паказвае, ці адсочваецца паток так, як вы чакаеце. Праверка адраса пацвярджае выхад, калі палітыка датычыць выхаду ў інтэрнэт, а ping пацвярджае прыватнае прызначэнне, якое павінна заставацца дасяжным. Запусціце той жа набор з выключаным, а потым уключаным паскарэннем і параўнайце вынікі, а не час.
Запішыце папярэднюю наладу, каб эксперымент заставаўся зваротным. Агульная інструкцыя адключыць афлоад усюды — гэта абыход, а не знаходка.