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

Бул колдонмонун калган бөлүгү — мен колдонгон текшерүү тартиби жана ар бир байкоону берүүчү буйрук.

Байлоо чындыгында эмнени чечет

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

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

Linux IP сокеттеринин маалымдамасы байлоонун семантикасын сүрөттөйт. Маршруттоо жарымы ip-rule жана ip-route ичинде жашайт, жана алар белгилүү бир себептен улам өзүнчө колдонмолор.

Даректин ушул ат мейкиндигине таандык экенин ырастаңыз

Байлоого боло турган дарек колдонмо иштеген тармактык ат мейкиндигиндеги интерфейсте болушу керек. Өнөктөштүн дареги, шлюздун дареги же башка ат мейкиндигинде гана бар даректи байлоого болбойт, жана чакыруу EADDRNOTAVAIL менен ийгиликсиз аяктайт.

ip -br addr show
ip netns identify <pid>
ss -tanp | grep <port>

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

Ошол булак жана багыт үчүн издөөнү окуңуз

Бир буйрук байлоо жооп бербеген суроого жооп берет:

ip route get 203.0.113.10 from 10.8.0.2
ip rule show

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

Андан кийин ip rule show кайсы бир эреженин башка таблицаны тандаарын айтат. Бул жерде артыкчылыктар маанилүү, анткени биринчи дал келген эреже жеңет, жана сиздин эрежеден жогору турган баарын кармаган эреже сиздин эрежени көрүнбөс кылат.

Политика эрежесин долбоор ушундай болсо гана орнотуңуз

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

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

ip route add default dev tun0 table 100
ip rule add from 10.8.0.2 table 100 priority 100
ip route get 203.0.113.10 from 10.8.0.2

ip rule del жана ip route flush table 100 менен кайтарыңыз. Ушундай жол менен кошулгандын баары кайра жүктөөдө жоголот, эгер аны менеджер жазып койбосо; бул бир эле учурда коопсуздук касиети жана жалгыз көчүрмөнү shell тарыхыңызда сактабоо себеби.

Үч байкоо менен текшериңиз

Колдонмо сураган булакты, издөө тандаган маршрутту жана сервер чындыгында көргөн булакты жазып алыңыз.

Бул үчөө карама-каршы келиши мүмкүн, жана ар бир карама-каршылык башка жерди көрсөтөт. Туннелдин интерфейсиндеги кармоо пакеттин туура булак менен чыкканын далилдейт. Физикалык интерфейстеги кармоо анын туура эмес жол менен чыкканын далилдейт. Жолду четинен четине чейин далилдеген нерсе — сервер тараптагы көрүнүш гана.

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

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