Posluživanje OpenVPN-a preko TCP-a i UDP-a s jednog hosta
Jedan proces veže jedan transport prije 2.7. Usporedite mostovni TAP par, dvije TUN podmreže i zajednički bazen, pa uskladite svaki profil s njegovim slušačem.
Mreže koje dopuštaju samo TCP 443 postoje uz mreže koje UDP propuštaju bez problema, a jedan server mora posluživati oboje. Profil s proto udp odgovara drugoj skupini i pada na prvoj, a uređivanje iste konfiguracije da kaže proto tcp ne stvara drugi slušač. Direktiva odabire jedan transport za jedan proces. Sve ostalo slijedi iz tog ograničenja.
Ili pokrenite više od jednog procesa, ili pokrenite verziju koja može vezati nekoliko socketa odjednom.
Jedan proces veže jedan transport prije 2.7
Zajednički OpenVPN veže socket koji proto opisuje, a ta direktiva odabire jedan transport za instancu. TCP i UDP su odvojeni stogovi, pa isti broj porta mogu zauzeti oba istodobno, ali ne jedan proces. Linija 2.6 zato daje jedan transport po daemonu. OpenVPN 2.7 uklonio je to ograničenje za servere, koji mogu vezati nekoliko socketa kroz više --local izjava u jednom procesu.
Provjerite verziju prije nego što dizajnirate oko bilo kojeg odgovora, jer je 2.7 raspored drugačiji operativni model s vlastitom sintaksom konfiguracije. Vodič napisan za 2.6 opisuje dva procesa čak i kad to ne kaže.
Tri načina za pokretanje dviju instanci
S TAP sučeljima pokrenite jednu instancu po transportu i premosite dva tap uređaja na hostu. Obje klijentske skupine završavaju u istoj broadcast domeni, što omogućuje da ih jedan bazen adresa pokrije i održava rad protokola koji ovise o broadcastu. S TUN mostovnica nije dostupna, pa najjednostavnija podjela daje svakoj instanci vlastitu podmrežu i pušta usmjeravanje da drži dvije klijentske skupine odvojeno. Treća opcija zadržava jedan bazen tako da svaka instanca poziva learn-address skriptu koja instalira /32 rutu za klijenta kroz uređaj te instance.
Taj treći raspored je onaj koji ljudi traže i onaj koji zahtijeva najviše pažnje, jer skripta postaje dio putanje podataka i mora ispravno obrađivati događaje dodavanja, ažuriranja i brisanja.
| 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 |
Držite dvije instance odvojeno
Svakoj instanci također treba zaseban port ili adresa, zasebna statusna datoteka i zasebno odredište zapisa. Dva daemona koja dodaju u istu statusnu datoteku stvaraju izlaz koji se ne može čitati tijekom incidenta, a to je upravo kad vam treba. Ako druga instanca veže određenu adresu, ta adresa mora postojati na hostu kad proces kreće; inače izlazi s greškom vezanja prije nego što kaže išta o ključevima.
Imenujte jedinice i profile tako da transport bude očit iz naziva datoteke. Sljedeći operater ne bi trebao otvarati konfiguraciju da bi saznao koja je TCP.
Uskladite profil sa slušačem
Poslužitelj koji pokreće proto tcp očekuje klijentski profil s proto tcp-client, a profil koji još nosi proto udp prema tom slušaču istječe bez greške na koju korisnik može reagirati. Zadržite dva profila ako implementacija nudi oba transporta i označite ih tako da podrška zna koji je isproban. Sam broj porta ne opisuje transport.
Pravila zaštitnog zida slijede istu podjelu: pravilo za UDP 1194 ne govori ništa o TCP 1194, a pravilo za jednu adresu ne pokriva drugi slušač.
Prvo pročitajte pogled servera
Počnite s ss -lntup na serveru i potvrdite da se pojavljuju i TCP i UDP slušač. Zatim spojite po jednog klijenta svake vrste i provjerite izlaz statusa na dva unosa s različitim adresama. Ako socketi postoje, a klijent ne dolazi, putanja ili zaštitni zid odbijaju pakete prije nego što ih daemon vidi.
Socket koji se nikad ne pojavi problem je konfiguracije ili vezanja, a socket koji se pojavi ali nikad ne zabilježi vezu problem je filtriranja. To dvoje izgleda jednako s klijenta, zato pogled samog servera dolazi prvi. Imajte na umu da TCP nosi blokiranje na čelu reda, pa je njegovo nudenje mjera dostupnosti, a ne nadogradnja za klijente s čistom UDP putanjom.