LAN үчүн маршруттоо кылган жана ошол эле учурда VPN ге туташкан түзмөктөр өздөрү менен эле талашка түшөт: туннель демейки маршрутка ээ болгусу келет, ал эми LAN аны кайтарып алгысы келет. OpenVPN туташканда, ал туннель аркылуу демейки маршрутту же жарым демейки маршруттардын жупун орнотушу мүмкүн, бул ноутбук үчүн туура, ал эми коңшулары анын LAN дарегинен жооп күткөн дарбаза үчүн туура эмес. Жооп VPN ден баш тартуу эмес. Жооп эки чечимге эки башка таблица берүү.

Бир демейки маршрут, эки ээси

Кайра багытталган трафик менен жергиликтүү пайда болгон трафик бир жол менен жүрүшү шарт эмес. LAN кардарларына туннель сиз тандаган багыттар үчүн гана керек, ал эми хосттун өзүнүн башкаруу сессияларына жана ошол кардарларга берген жоопторуна LAN демейки маршруту керек. Экөөнү негизги таблицага аралаштыруу эки башка суроого бир жоопту мажбурлайт.

OpenVPN де дал ушунун үчүн которгуч бар. route-noexec кардардын негизги таблицага таптакыр тийишине жол бербейт, ал эми ал колдонгон болчу маанилер route-up скриптине route_vpn_gateway, dev жана интерфейс даректери катары экспорттолот. Андан кийин кайсы таблица кайсы маршрутту алаарын өзүңүз чечесиз, кийин окуй алган коддо.

Саясат таблицасы же негизги таблицаны кайра жазуу

ApproachWhat it buysWhat it costs
Separate table plus source ruleLAN traffic and host traffic keep independent defaultsEvery lookup now depends on rule order
Editing the main table onlyFewer moving parts on a single-purpose hostOne mistake takes the gateway offline entirely
Two half-default routesWorks for a full-tunnel clientAmbiguous on a host that must answer on its LAN address

Өзүнчө таблица бир субнеттен ары масштабдалган жалгыз вариант. Ага бир жолу ат бер, анан ат менен шилтеме кыл, санды эстеп калууга эч ким мажбур болбосун:

echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add from 192.168.50.0/24 table vpn
ip route add default via 10.8.0.1 dev tun0 table vpn

Бул жердеги даректер орун басарлар. Бир нерсени иштетүүдөн мурун LAN префиксин, туннель дарбазасын жана түзмөктүн атын өзүңүздүн жайгаштыруудан алмаштырыңыз.

Эреже хостко да дал келиши керек

Тек LAN префиксине дал келген эреже кайра багытталган пакеттерди камтыйт. Ал дарбаза өзү жараткан трафикти камтыбайт жана LAN кардарларына кайтарган, булак катары дарбазанын LAN дарегин алып жүргөн жоопторду да камтыбайт. Ошол издөөлөр main ге түшөт жана дагы эле туннелден чыга алат.

Дарбазанын өз LAN дареги үчүн экинчи эреже кош же биринчи эрежени экөөнү тең камтыган топко кеңейт. Тартип маанилүү: такыраак эрежени биринчи кой жана булакты ачык атаган издөө менен жыйынтыкты текшер.

ip route get 203.0.113.9 from 192.168.50.1

Эгер бул жергиликтүү калышы керек болгон багыт үчүн туннелдин түзмөгүн көрсөтсө, таблицада эмне бар экенине карабастан эрежелер топтому туура эмес.

NAT же алыскы тарапта маршрут

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

iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADE

Серверди көзөмөлдөбөсөңүз жана ал жерге маршрут кошо албасаңыз, NAT тандаңыз. Журналдар, кирүүнү көзөмөлдөө же кайтуу жолунун симметриясы маанилүү болсо, сервер тараптагы маршрутту тандаңыз, анткени маскировкалоо баштапкы даректи алыскы тарап жазган бардык нерседен өчүрөт.

Кандай болбосун, кайра багыттоо күйгүзүлүшү керек, ал эми катуу тескери жол чыпкасы main ошол булак үчүн туннелди тандабаган учурда жоопту түшүрүп салышы мүмкүн. Туннелди күнөөлөөдөн мурун натыйжалуу маанини текшер.

Бөлүнүү кайра туташуудан кийин да сакталсын

Кол менен кошулган эрежелер жана маршруттар интерфейс кайра түзүлгөндө жоголот, ал эми эскирген таблица жазуусу аны актаган сессиядан узак жашашы мүмкүн. Таблица эрежесин, туннелдин маршрутун жана маскировкалоо жазуусун кардардын route-up скриптине сал, ал эми скрипттин башында таблицаны тазала, эски дарбаза жаңы сессияга өтүп кете албасын.

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

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