Бир таңды туннелге арнадым: ал таза көтөрүлүп, трафикти так бир багытта гана ташыды — филиал башкы кеңседеги файл серверине жетчү, ал эми башкы кеңседен филиалга ачылган ар бир байланыш биринчи SYNде өлчү. SAлар көтөрүлгөн, туннелдин эсептегичтери өсүп жаткан, ал эми кол алышуу эч качан көйгөй болгон эмес. Жооп туннел камтыбаган жерге маршрутталып жаткан, жана бул тандоо алыскы тарапка таандык. Сайт-сайт VPN хост дарбазага өткөрүп берген пакеттерди гана ташып, ар бир хост бул тандоону өзүнчө, ар бир багытта, өзүнүн маршруттоо таблицасынан жасайт.

Эки багыт өзүнчө маршрутталат

IP сүйлөшүүнүн багыты жөнүндө эч кандай эстутум сактабайт. Пакет жиберген ар бир хост өзүнүн эң узун префикс издөөсүн аткарат, бир кийинки секирүүнү тандайт жана чечимди унутат. Суроо менен жооп — бир байланышка кокустан таандык эки байланышсыз пакет, ал эми туннел — экөөнүн тең колдонушу же колдонбошу мүмкүн болгон бир секирүү. IKE алмашуусунда эч нерсе алыскы серверге сиздин ички тармагыңызга кантип жетүүнү үйрөтпөйт; сүйлөшүү кайсы префикстерди шифрлөөгө болорун гана макулдашат.

Ошол келишим — экинчи дарбаза. strongSwanда трафик селекторлору — leftsubnet жана rightsubnet, ал эми булагы же багыты макулдашылган жуптан тыш калган пакет шифрленбейт, маршруттоо таблицасы эмне дебесин. Туннелге маршрутталып, бирок селекторлордо жок префикс — тынч бир багыттуу бузулуу: маршрут туура көрүнөт, пакет баары бир ачык чыгат же ыргытылат, жана тек charon журналы гана даттанат.

Алыскы хост сиздин туннелиңиз жөнүндө эч нерсе билбейт

Алыскы жергиликтүү тармактын ичинде жооп — сиздин кардарыңызга арналган кадимки пакет. Барар жери хост эч кандай IPsec аталышын көрбөйт жана VPN дарбазасын тандоого себеби жок; ал сиздин префиксиңизди издейт, демейки маршрутунан такыраак эч нерсе таппайт да, ошого жүрөт. Эгер демейки негизги файрволго шилтесе, файрволдун туннелге кайра кайтуучу маршруту бар же жок. Жок болсо, сиз тынч ыргытуу, ICMP unreachable же интернетке караган интерфейстен чыгып өлгөн жооп аласыз.

Маршрут бар болсо да, экинчи интерфейс муну бузууга жетиштүү. Башка VLANда башкаруу байланышы бар NAS, камдык uplink бар сервер, бир булак диапазонун экинчи таблицага жиберүүчү саясат эрежеси: булардын кайсынысы болсо да жоопту кармап ала алат. Linuxте ip rule show жана ip route show table all демейки тизме жашырган эрежелерди жана таблицаларды көрсөтөт.

Чечимди жооп жиберген машинадан окуңуз

Бир нерсени өзгөртүүдөн мурун ядродон сураңыз жана ага булак дарегин бериңиз, анткени булакка көз каранды эрежелер жоопту өзгөртөт.

ip route get 10.10.5.10 from 10.20.30.15
ip rule show
ip route show table all
ss -tn state established "( sport = :445 )"

Чыгарылыш чыгуучу интерфейсти жана кийинки секирүүнү атайт. Эгер интерфейс VPN дарбазасына караган интерфейс болбосо, сиз кемчиликти таптыңыз, ал эми калган иш — маршрут кайда болушу керектигин тандоо. Дарбазадан жасалган ping бул жерде азды далилдейт: ал алыскы хост жайгаштыра алган дарек менен жооп берет, ноутбукуңуздун дареги менен эмес.

Windowsте эквиваленттер — чечим үчүн Find-NetRoute -RemoteIPAddress 10.10.5.10 жана таблица үчүн Get-NetRoute. Демейкиден жогору метрика алып жүргөн New-NetRoute аркылуу кошулган маршрут тынч утулат, ошондуктан метрика мамычасын окуңуз, жазууну эмес. Анан пакеттер менен ырастаңыз: алыскы LAN интерфейсинде tcpdump -ni any "host 10.10.5.10 and tcp port 445" суроону көрсөтөт, ал эми туннелдин тарабындагы ошол эле чыпка жооп кайттыбы же жокпу көрсөтөт. Суроо көрүнөт, жооп жок — жооп башка жакка маршрутталган же ыргытылган; туура эмес интерфейстеги жооп маршрутка тийүүдөн мурун күнөөкөрдү берет.

Сервердин дарбазасы VPNдин акыркы чекити болбогондо

Көп сайттар серверлер менен топтоочунун ортосуна файрвол коет. Ал файрвол жоопту жиберет, ошондуктан ага кардарыңыздын префикси үчүн VPN дарбазасына багытталган маршрут жана эки багытта тең жиберүү саясаты керек. Абалды сактаган түзүлүштөр кырдаалды начарлатат: суроо файрволдон ал уруксат берген LAN хосттон өттү, жооп эми башка багыттан келет, ал эми байланышты көзөмөлдөө жазуусу мындан ары дал келбейт, ошондуктан пакет четке кагылбай, жараксыз деп ыргытылат. Саясат журналы бош көрүнгөнү менен трафиктин жок болушунун себеби ушул.

Дарбазанын өзүнүн экинчи чыпкасы бар. Linuxтин тескери жол чыпкасы булагы өздөрү келген интерфейс аркылуу жеткиликсиз пакеттерди ыргытат, жана бул мыйзамдуу асимметриялык кайтуу жолунун дал формасы. strongSwanдын жиберүү боюнча нускамасы дал ошол себептен net.ipv4.ip_forward жана жеңилдетилген net.ipv4.conf.all.rp_filter талап кылат. Эки дарбазанын кайсынысында болсо да катуу 1 мааниси туура маршрутту тынч бузат, жана кайда кароону билсеңиз nstat -az ыргытууларды көрсөтөт.

SymptomWhere the reply is most likely lost
Gateway ping works, LAN host silentSource address the far host cannot place in its table
SYN arrives, no SYN-ACK, tunnel counters flatNo route to the client prefix on the far host or its gateway
Reply counted on the internet-facing interfaceDefault route or policy rule on the far host
Firewall reports invalid stateAsymmetric path through a stateful device
Worked until a link failed overNew path is asymmetric, or rp_filter now rejects it

Маршруттаңыз же которуңуз, анан эки багытта текшериңиз

Эки оңдоо барабар эмес. Маршрут кошуу кардар дарегин бузулбай сактайт, ошондуктан булакка негизделген эрежелер, аудит журналдары жана чалуучуну жазуучу колдонмолор ишин улантат; баасы — чечим кабыл алган ар бир секирүүгө маршрут керек, башкача айтканда ката кетирүүчү жерлер көбүрөөк. Алыскы дарбазада маскараддоо кайтуу жолун бир секирүүгө чогултат, анткени жооп эми дарбазанын өзүнө арналган, жана кайсы кардар эмне кылганын жашырат.

iptables -t nat -A POSTROUTING -o eth1 -s 10.20.30.0/24 -j MASQUERADE

Аны атайын тандаңыз: кардарлар дарбаза дареги катары көрүнө баштаганда, булакка негизделген ACLдер аларды айырмалабай калат, ал эми жооп туннелге кайра жазылышы үчүн conntrack салыштырууну кармап турушу керек. Эгер селекторлор кардар префиксин дагы эле чыгарып салса, NAT эч нерсени өзгөртпөйт, анткени суроо туннелге эч качан кирген эмес.

Аны оңдолду деп айтуудан мурун төрт нерсени ирети менен ырастаңыз: жооп жиберген хосттогу маршрут, аны жиберүүчү ар бир секирүүдөгү маршрут, эки префиксти камтыган селекторлор жана жооптун күткөн булагыңыз менен туннелге кирерин көрсөткөн жазуу. Анан сыноону экинчи сайттан кайталаңыз. Бир багыттын өтүшү — жарым ачык долбоор, ал эми экинчи багыт адатта дал оңдогонуңуздан башка себептен ийгиликсиз болот.

Тектеш макалалар