Сервирање OpenVPN-а преко TCP-а и UDP-а са једног хоста
Један процес везује један транспорт пре 2.7. Упоредите мостовни TAP пар, две TUN подмреже и заједнички базен, па ускладите сваки профил са његовим слушаоцем.
Мреже које дозвољавају само TCP 443 постоје уз мреже које UDP пропуштају без проблема, а један сервер мора да служи обема. Профил са proto udp одговара другој групи и пада на првој, а измена исте конфигурације да каже proto tcp не ствара други слушалац. Директива бира један транспорт за један процес. Све остало следи из тог ограничења.
Или покрећете више од једног процеса, или покрећете верзију која може да веже неколико сокета одједном.
Један процес везује један транспорт пре 2.7
Заједнички OpenVPN везује сокет који proto описује, а та директива бира један транспорт за инстанцу. TCP и UDP су одвојени стекови, па исти број порта могу истовремено да заузму оба, али не један процес. Линија 2.6 зато даје један транспорт по демону. OpenVPN 2.7 уклонио је то ограничење за сервере, који могу да вежу неколико сокета кроз више --local изјава у једном процесу.
Проверите верзију пре него што дизајнирате око било ког одговора, јер је распоред 2.7 другачији оперативни модел са сопственом синтаксом конфигурације. Водич написан за 2.6 описује два процеса чак и када то не каже.
Три начина да покренете две инстанце
Са TAP интерфејсима покрените једну инстанцу по транспорту и премостите два tap уређаја на хосту. Обе клијентске групе завршавају у истом домену емитовања, што омогућава да их један базен адреса покрије и одржава протоколе зависне од емитовања у раду. Са TUN премошћавање није доступно, па најједноставнија подела даје свакој инстанци сопствену подмрежу и рутирање држи две клијентске групе одвојено. Трећа опција задржава један базен тако што свака инстанца позива learn-address скрипту која инсталира /32 руту за клијента кроз уређај те инстанце.
Тај трећи распоред је онај који људи траже и онај који захтева највише пажње, јер скрипта постаје део путање података и мора исправно да обрађује догађаје додавања, ажурирања и брисања.
| Arrangement | Interfaces | Address pool | Cost |
|---|---|---|---|
| Bridged TAP pair | Two tap devices joined by a bridge | One shared pool | Broadcast traffic and bridge maintenance |
| Two TUN subnets | Two tun devices, no bridge | One pool per instance | Routing rules and two plans |
| Shared pool with routes | Two tun devices plus a hook | One pool across both | A script on the data path |
Држите две инстанце одвојено
Свакој инстанци је такође потребан засебан порт или адреса, засебна статусна датотека и засебно одредиште дневника. Два демона која додају у исту статусну датотеку стварају излаз који се не може прочитати током инцидента, а тада вам је и потребан. Ако друга инстанца веже одређену адресу, та адреса мора да постоји на хосту када процес крене; иначе излази са грешком везивања пре него што каже било шта о кључевима.
Именујте јединице и профиле тако да транспорт буде очигледан из назива датотеке. Следећи оператер не би требало да отвара конфигурацију да би сазнао који је TCP.
Ускладите профил са слушаоцем
Сервер који покреће proto tcp очекује клијентски профил са proto tcp-client, а профил који још носи proto udp према том слушаоцу истиче без грешке на коју корисник може да реагује. Задржите два профила ако распоређивање нуди оба транспорта, и означите их тако да подршка зна који је пробањен. Сам број порта не описује транспорт.
Правила заштитног зида следе исту поделу: правило за UDP 1194 не каже ништа о TCP 1194, а правило за једну адресу не покрива други слушалац.
Прво прочитајте поглед сервера
Почните са ss -lntup на серверу и потврдите да се појављују и TCP и UDP слушалац. Затим повежите по једног клијента сваке врсте и проверите статусни излаз за два уноса са различитим адресама. Ако сокети постоје, а клијент не долази, путања или заштитни зид одбијају пакете пре него што их демон види.
Сокет који се никада не појави је проблем конфигурације или везивања, а сокет који се појави али никада не забележи везу је проблем филтрирања. То двоје изгледа једнако са клијента, зато поглед самог сервера долази први. Имајте на уму да TCP носи блокирање на челу реда, па је његово нуђење мера доступности, а не надградња за клијенте са чистом UDP путањом.