Уключэнне апаратнага паскарэння 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 пацвярджае прыватнае прызначэнне, якое павінна заставацца дасяжным. Запусціце той жа набор з выключаным, а потым уключаным паскарэннем і параўнайце вынікі, а не час.

Запішыце папярэднюю наладу, каб эксперымент заставаўся зваротным. Агульная інструкцыя адключыць афлоад усюды — гэта абыход, а не знаходка.

Падобныя артыкулы