OpenVPN кардарынын артындагы кошумча тармак эмнеге жеткиликсиз?
OpenVPN кайсы кардарга алыскы LAN таандык экенин болжолдой албайт. Кардардын файлындагы iroute жазуусу, кайтарылуу маршруту жана өткөрүү ошол кошумча тармакты жеткиликтүү кылат.
Сервердин туннель дарегине ping ийгиликтүү өтөт, кардардын өз маршрут таблицасы туура көрүнөт, бирок ошол кардардын артындагы LAN дагы эле жеткиликсиз. Кардардын маршруттоо таблицасы туура көрүнөт, серверде туннелге багытталган маршрут бар, ал эми пакеттер дагы эле жоголот. Бул layer-3 туннелинин классикалык белгиси, ал өз кардарларынын бири шлюз экенин билбейт.
tun интерфейсинде ар бир кардар үчүн кийинки секирик жок. Ядро көптөгөн шериги бар бир интерфейсти көрөт, ошондуктан алыскы LAN үчүн пакетти кайсы кардар алаары тууралуу чечим OpenVPN процессинин ичинде кабыл алынышы керек. Бул чечим iroute менен конфигурацияланат, ансыз пакетке бара турган жер жок.
Сервер интерфейс боюнча эмес, кардар боюнча маршруттайт
Сервер кардардын туннель дарегине пакет жөнөтүшү керек болгондо, жооп так: дарек ошол кардардын сессиясына таандык. Ал эми максат ошол кардардын артындагы бүтүндөй кошумча тармак болгондо, дарек сервер билген эч кимге таандык эмес, жана ядронун туннелге багытталган маршруту «ушул интерфейстен» деп гана айтат, кайсы шерик экенин айтпайт.
OpenVPN муну максат префиксин белгилүү бир кардарга байлантыштырган ички маршруттоо таблицасы менен чечет. Ошол таблица iroute жазууларынан курулат, ошондуктан сервер хостундагы жөнөкөй маршрут жетишсиз. Ядронун маршруту пакетти туннель интерфейсине жеткирет; ички байланыштыруу кайсы сессия алаарын чечет. Ошондуктан түзөтүү ядронун маршрут чыгымында эч качан көрүнбөйт.
Эгер байланыштыруу жок болсо, пакет серверге жетет, туннель маршрутуна дал келет жана эч бир кардар максатты талап кылбагандыктан ыргытылат. Эч нерсе таза катаны жаза бербейт, ошондуктан бузулуу маршруттоо циклине эмес, тынч кара чуңкурга окшош.
Кардарды атаган iroute жазуусун жазуу
iroute сервердин негизги конфигурациясында эмес, кардарга таандык конфигурация файлында жашайт. Серверди client-config-dir опциясы менен каталогго багыттаңыз, андан соң аты кардардын сертификатынын жалпы аты болгон файл түзүп, префиксти анын ичине коюңуз.
LAN-ы 10.20.0.0/24 жана сертификатынын жалпы аты branch-router болгон филиал үчүн ошол жолдогу файлда iroute 10.20.0.0 255.255.255.0 сыяктуу сап болот. Негизги конфигурацияга каталог опциясы гана керек; префикс кардарда жашайт.
Жалпы ат — алсыз бөлүк. Башка subject менен берилген сертификат же колдонуучуларды колдонуучу аты менен аныктаган, бирок файл сертификат боюнча аталган орнотуу эч качан окулбаган файл түзөт. Сервер сессия үчүн чындап эле кайсы атты билдирерин текшериңиз жана дал келбеген кардарды маршруттары жок тынч кошулууга эмес, ийгиликсиздикке дуушар кылуучу опцияны карап көрүңүз. Файлды сертификатка ылайык өзгөртүү — өтө узун кечти алдын алган беш мүнөттүк түзөтүү.
Бир кардар бир нече префикске ээ боло алат. Ар бир тармак үчүн бир iroute сабын кошуңуз жана байланыштыруу текшериле турган бойдон калышы үчүн тизмекти ошол кардардын калган параметрлеринин жанында кармаңыз.
Кайтаруу жолун эки багытта тең куруу
Пакеттерди алыскы LAN-га жеткирүү — иштин жарымы. Кардар ошол LAN трафигин туннелге да жөнөтүшү керек, бул адатта кардарга маршрут түртүү аркылуу жасалат: push "route 10.8.0.0 255.255.255.0" сыяктуу сап ар бир кардарга сервер тараптагы тармакка кантип жетүүнү айтат. Филиал үчүн барабар маршрут сервер тарапта жетүүгө тийиш болгон бардык нерсеге туннелди көрсөтөт.
Кайтаруу багыты алыс тарапта ээсин талап кылат. Ошол тарапта бирөө кайтуу жолун билиши керек: VPN пулун серверге багыттаган LAN маршрутизаторундагы статикалык маршрут же трафик LAN-га кирээрден мурун сервердеги дарек которуу. Статикалык маршрут баштапкы даректерди журналдар менен кирүү эрежелеринде көрүнүп туруусун камсыздайт, бирок LAN ээсинин кызматташуусун талап кылат; которуу өзүн өзү камсыздайт, бирок чындап ким туташканын жашырат.
Сервер хостунда өткөрүү иштетилиши керек. Ансыз ядро туннелден пакетти кабыл алып, аны LAN интерфейсине өткөрүүдөн баш тартат, бул кардардын көз карашынан жок iroute сыяктуу көрүнөт.
Жеткиликтүүлүктү туура зонддор менен текшерүү
Алыскы четке ping жасап болжолдоонун ордуна катмар-катмар текшериңиз. Серверден префикс үчүн ички байланыштыруу бар экенин жана ядронун маршруту туннелге багытталганын текшериңиз. Кардардан түртүлгөн маршрут орнотулганын жана LAN дареги үчүн анын демейки жолу туннель экенин ырастаңыз.
Андан кийин пакеттерди байкаңыз. Туннель интерфейсиндеги кармоо сервердин кардарга карай жөнөтүп жатканын көрсөтөт, ал эми LAN интерфейсиндеги кармоо анын өткөрүп жатканын көрсөтөт. Эгер биринчиси пакеттерди көрсөтүп, экинчиси эч нерсе көрсөтпөсө, көйгөй өткөрүүдө же чыпкада; эгер экөө тең эч нерсе көрсөтпөсө, издөө эртерек ийгиликсиз бүткөн.
Туннел менен туташкан эки сервер эки тарапта тең ошол эле эрежени кайталайт: ар бирине экинчисинин пулу үчүн iroute керек, жана ар бирине жолду симметриялуу кылган маршрут менен өткөрүү керек. Бул жерде маршруттоо менен саясат өзүнчө маселелер. Маршруттоо пакеттин кайда бара аларын чечет, ал эми FORWARD эрежеси уруксат берилгенин чечет, ошондуктан эки iroute сабы бар кардар чыпка башкача айтпаса, эки префикске тең жете алат.