Å tena OpenVPN over TCP og UDP frå éin vert
Éin prosess bind éin transport før 2.7. Samanlikn eit brua TAP-par, to TUN-subnett og ein delt pool, og knyt deretter kvar profil til lyttaren sin.
Nettverk som berre tillèt TCP 443, lever side om side med nettverk som slepp UDP uhindra gjennom, og éin tenar må tene begge. Ein profil med proto udp svarar den andre gruppa og feilar på den første, og å endre same konfigurasjonen til å seie proto tcp lagar ikkje ein ny lyttar. Direktivet vel éin transport for éin prosess. Alt anna følgjer av den avgrensinga.
Anten køyrer du meir enn éin prosess, eller du køyrer ein versjon som kan binde fleire soklar samtidig.
Éin prosess bind éin transport før 2.7
Fellesskapet sin OpenVPN bind sokelen som proto skildrar, og det direktivet vel éin transport for instansen. TCP og UDP er separate stablar, så same portnummeret kan vere oppteke av begge samtidig, men ikkje av éin prosess. 2.6-linja gjev deg derfor éin transport per daemon. OpenVPN 2.7 fjerna den avgrensinga for tenarar, som kan binde fleire soklar gjennom fleire --local utsegner i éin prosess.
Sjekk versjonen før du designar rundt noko av svara, fordi 2.7-oppsettet er ein annan driftsmodell med sin eigen konfigurasjonssyntaks. Ein rettleiar skriven for 2.6 skildrar to prosessar sjølv når han ikkje seier det.
Tre måtar å køyre to instansar på
Med TAP-grensesnitt køyrer du éin instans per transport og bruar dei to tap-einingane på verten. Begge klientgruppene hamnar i same kringkastingsdomene, noko som let éin adressepool dekkje dei og held kringkastingsavhengige protokollar i gang. Med TUN er bruing ikkje tilgjengeleg, så den enklaste delinga gjev kvar instans sitt eige subnett og lèt rutinga halde dei to klientgruppene frå kvarandre. Eit tredje alternativ held éin pool ved å la kvar instans kalle eit learn-address-skript som installerer ei /32-rute for klienten gjennom eininga til den instansen.
Det tredje oppsettet er det folk ber om og det som treng mest omtanke, fordi skriptet blir ein del av datastien og må handtere hendingar for legg til, oppdater og slett rett.
| 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 |
Hald dei to instansane åtskilde
Kvar instans treng òg ein eigen port eller adresse, ei eiga statusfil og eit eige loggmål. To daemonar som skriv til same statusfila gjev utdata som ikkje kan lesast under ei hending, og det er nettopp då du treng dei. Viss ein andre instans bind ei bestemt adresse, må den adressa finnast på verten når prosessen startar; elles avsluttar han med ein bindefeil før han seier noko om nøklar.
Namngje einingane og profilane slik at transporten er openberr frå filnamnet. Den neste operatøren skal ikkje måtte opne ein konfigurasjon for å vite kven som er TCP.
Knyt profilen til lyttaren
Ein tenar som køyrer proto tcp ventar ein klientprofil med proto tcp-client, og ein profil som framleis har proto udp mot den lyttaren går ut på tid utan ein feil brukaren kan handle på. Hald to profilar viss utrullinga tilbyr begge transportane, og merk dei slik at støtta veit kven som vart prøvd. Portnummeret åleine skildrar ikkje transporten.
Brannmurreglar følgjer same delinga: ein regel for UDP 1194 seier ingenting om TCP 1194, og ein regel for éi adresse dekkjer ikkje den andre lyttaren.
Les biletet til tenaren først
Start med ss -lntup på tenaren og stadfest at både ein TCP- og ein UDP-lyttar dukkar opp. Knyt deretter til éin klient av kvar type og sjekk statusutdata for to oppføringar med ulike adresser. Viss soklane finst og ingen klient kjem, avviser stien eller brannmuren pakkane før daemonen ser dei.
Ein sokkel som aldri dukkar opp er eit konfigurasjons- eller bindeproblem, og ein sokkel som dukkar opp men aldri loggar ei tilkopling er eit filtreringsproblem. Dei to ser like ut frå klienten, og difor kjem biletet til tenaren sjølv først. Hugs at TCP ber hovudlinjeblokkering, så å tilby det er eit tilgjengelegheitstiltak og ikkje ei oppgradering for klientar med ein rein UDP-sti.