OpenVPN ішіндегі маршрут қайда тиесілі: клиентке ме әлде серверге ме?
Сервер конфигурациясындағы жалаң маршрут серверді өзгертеді, клиентті емес. Клиент файлын, жаһандық push немесе бір клиентке push таңдап, не келгенін тексеріңіз.
Сіз сервер конфигурациясына route 10.60.0.0 255.255.255.0 қосасыз, қайта іске қосасыз, ноутбукты қайта қосасыз, бірақ ішкі желі сол ноутбуктен әлі де қолжетімсіз. Жол қабылданды, қызмет таза іске қосылды және журналда ешнәрсе дұрыс емес көрінбейді. Болғаны — маршрут сіз өңдеген машинаға орнатылды: шлюз енді сол префикске жете алады деп ойлайды, ал клиентке ештеңе айтылмады. Орналасу — бүкіл мәселе, және сол жол өмір сүре алатын төрт орын бар.
Төрт орын және әрқайсысын кім алады
Маршрутты клиенттің өз конфигурациясымен қосуға, жаһандық push арқылы әр клиентке ұсынуға, клиентке арналған файл арқылы бір клиентке ұсынуға немесе сервердің өз маршруттау контекстіне жазуға болады.
Бұл төрт жағдай дерлік бірдей синтаксис қолданады және мүлдем басқа нәтижелер береді. Алғашқы үшеуі клиенттің туннельге не жіберетініне әсер етеді; төртіншісі сервердің желіге қалай жететініне әсер етеді, бұл сервердің өзіне жол қажет болғанда пайдалы, ал таратумен шатастырылғанда зиянды.
Жолды жазбас бұрын төртеуінің қайсысын қалайтыныңызды шешіңіз, содан кейін алушыны растаңыз.
| Placement | Effect | Receiver |
|---|---|---|
| Client profile route | Installed by the client at connect | That client only |
Global push "route ..." | Sent to every client that accepts pushed options | All pulling clients |
| Client-specific push | Sent to the matching client context | One identity |
| Server config route, no push | Added to the server's own table | The gateway itself |
Неліктен жалаң сервер маршруты адамдарды таң қалдырады
Сервер конфигурациясы — әкімшілер бірінші қарайтын орын, және ондағы маршрут директивасы VPN желісі туралы мәлімдеме сияқты оқылады. Олай емес. OpenVPN оны демон жұмыс істеп тұрған машинадағы жергілікті маршрут орнатуы ретінде қарастырады, бұл ip route арқылы жасап, кейін ұмытып кететін дәл сондай өзгеріс.
Тарату маршруттың push арқылы жіберілуін талап етеді, ал push клиенттің оны тартуын талап етеді. Тартылған опциялар өшірілген күйде іске қосылған клиент ұсынысты мүлдем елемейді. Сервер файлын қайта жазбас бұрын осы қол алысудың екі ұшын тексеріңіз, өйткені сервер журналы шағымданбайды: оның жағынан ұсыныс жіберілді. Қабылданған маршрут та тек келесі қосылымда күшіне енеді, сіз қазір отырған сессияда ешқашан.
Екі әрекетті бөлек көргенде, сәтсіздік жұмбақ болудан қалады: сервер префикске жетеді, клиент жете алмайды, және екі тұжырым да бір уақытта дұрыс.
Клиентке арналған файлдар және олар сәйкес келетін сәйкестік
Клиентке арналған файл сервер аутентификациялаған сәйкестік бойынша аталады, ол әдепкі бойынша сертификаттың жалпы атауы. Жұмыс үстелі клиентіндегі достық қосылым атауы бұл мән емес, және сәйкессіздік ешқашан оқылмайтын файл жасайды.
Сервер нақты қолданатын каталогты тексеріңіз, содан кейін файл атауы аутентификацияланған сәйкестікке дәл сәйкес келетінін растаңыз, бас және кіші әріптерді қоса.
grep -n 'client-config-dir' /etc/openvpn/server/server.conf
ls -l /etc/openvpn/ccd/Сол файлдың ішінде маршрутты әлі де push арқылы жіберу керек, өйткені клиентке арналған контекст — сол клиенттің сессиясына қолданылатын опциялар жиынтығы, жергілікті маршруттау кестесі емес. Ондағы жалаң маршрут жаһандық файлдағы жалаң маршрутпен бірдей мәселеге ие.
Клиенттің өз файлы және оны иеленетін құрал
Клиент конфигурациясына қойылған маршрут сол клиент қосылғанда орнатылады және ажыратылғанда жойылады, бұл статикалық тағайындалу үшін дұрыс өмірлік цикл.
Егер профильді желі менеджері иеленсе, ол бұл опцияларды бір рет импорттап, содан кейін өз көшірмесін сақтай алады. Жүктелген файлды кейін өңдеу ештеңені өзгертпейді, бұл "маршрут бар, бірақ қолданылмайды" дегеннің жиі себебі.
Жүктеген файлды емес, белсенді профильді тексеріңіз және менеджер көрсететін импортталған параметрлерді тексеріңіз. Содан кейін қосылып, нақты мекенжай қай жолды қолданатынын жүйеден сұраңыз, маршрут мәтіндік файлда болғандықтан туннель жеңді деп болжаудың орнына.
Клиентте тексеріңіз, содан кейін қайту жолын тексеріңіз
Мақсат туралы клиенттің өз маршруттау кестесінен сұраңыз, сервердікінен емес. Префикс ішіндегі бір хостты іздеу қолданылатын интерфейс пен келесі секірісті көрсетуге жеткілікті.
ip route get 10.60.0.10Іздеу туннельге нұсқаса, тарату жұмыс істеді және қалған мәселе басқа жерде. Егер ол әдепкі шлюзге нұсқаса, маршрут орнатылмаған, клиент жағындағы опциямен сүзілген немесе клиент қолданбайтын профильге тиесілі.
Тарату жұмыс істеді деп есептеңіз, бірақ ештеңе жауап бермейді: сонда шлюздегі жіберуді, қарсы жақтың қайту маршрутын және олардың арасындағы кез келген қауіпсіздік қабырғасын тексеріңіз. Маршрут жол таңдайды, ол қатынас бермейді.