To OpenVPN-tunnelar på éin Linux-vert: kven eig ruta?
To klientprofilar kan sameksistere når puljar, pusha ruter og standardkrav er tildelte. Avgjer eigarskapet fyrst, og bruk deretter merke for returvegen.
To profilar er tilkopla, og éin av dei ber stille trafikk som er meint for den andre. Ein Linux-vert kan køyre båe OpenVPN-klientane samstundes utan problem. Det han ikkje kan gjere, er å avgjere for deg kva prosess som har lov til å krevje kva prefiks. Den avgjerda må takast før den andre tunnelen kjem opp, ikkje etter at ein ressurs sluttar å svare.
Byrj med jobben den andre lenkja skal gjere
Eit kontor som er tilgjengeleg gjennom éin profil og eit laboratorium som er tilgjengeleg gjennom ein annan, treng båe tunnelane oppe og ingen av dei som krev alt. Éi einskild sta programvare som må ut gjennom den andre profilen treng ei policyregel i staden for ei andre standardrute. Ei reservekopling treng berre éin tunnel som køyrer om gongen, så reservekoplinga bør ikkje starte med maskina.
Dette er tre ulike konfigurasjonar, og dei blir blanda saman fordi alle tre byrjar på same måte: ein andre profil og ei vellukka tilkopling. Skriv ned den tiltenkte ordninga fyrst, og konfigurer deretter mot henne. Éi setning om hensikta sparar ein time med pakkefangst.
systemctl list-units --type=service 'openvpn-client@*' ip -4 route show default
Den fyrste kommandoen listar instansane som køyrer, inkludert dei som er starta manuelt utanfor behandlaren. Den andre skriv ut det gjeldande standardkravet, som er tilstanden du seinare må forklare.
Overlappande puljar ryker før rutinga gjer det
To tenarar deler gjerne ut adresser frå same 10.8.0.0/24. Klienten har då to grensesnitt innanfor eitt prefiks utan noko som seier kva destinasjon som høyrer til kva, og åtferda som følgjer ser ut som ein rutefeil, men er eigentleg ein nummereringsfeil. Å omnummerere ein pulje kostar éi konfigurasjonsendring; kvar seinare ruteomveg kostar ei helg. Sjekk puljen før du legg til ei rute for han.
Sjå også på det lokale LAN-et. Eit heime-LAN nummerert 192.168.1.0/24 som éin tunnel også eksponerer, gir same tvitydigheit, og symptomet er eit vertsnamn som blir løyst opp medan tilkoplinga aldri blir fullført. Det ser ut som ein namneoppløysingsfeil heilt til du skriv ut rutene.
ip -4 addr show ip route show table all | grep -E '10\.|192\.168\.'
Samanlikn båe utdata med dei to tenarkonfigurasjonane før du rører klienten. Viss prefiksa overlappar, stopp og omnummerer, for inga mengd omstart vil skilje dei.
Gi kvar profil si eiga eining og kvart prefiks ein eigar
Kvar profil får sitt eige instansnamn og si eiga konfigurasjonsfil, så instansen office lastar office.conf medan den som heiter lab lastar lab.conf. Stadfest den koplinga gjennom tenestebehandlaren i staden for å stole på ei katalogoppføring, sidan ein drop-in kan endre kva fil som blir lasta. Feil kopling betyr at du justerer profilen som ikkje køyrer.
Avgjer deretter kven som installerer ruter. Når tenarane pushar inkompatible sett, må du anten avvise pushen og liste prefiksa sjølv, eller la éin profil halde standarden og styre den andre med policyreglar. To prosessar som båe installerer ein standard, endar med ein stille vinnar og inga skriftleg registrering av avgjerda.
systemctl cat [email protected] grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf
Den fyrste viser eininga med kvar overstyring som endrar argumenta hennar. Den andre viser om profilen i det heile godtek pusha ruter, og det er brytaren som avgjer alt vidare.
Merke held svar på grensesnittet dei kom frå
Når kvar tunnel tener ulike kjelder, kan eit svar gå ut via feil lenkje og tilkoplinga døyr etter den fyrste pakken. Mønsteret som held, er å merke pakkar som kjem etter inngangsgrensesnitt, gjenopprette merket på svaret og gi kvart merke ei tabell med sin eigen standard gateway.
Laus reversert sti-filtrering må vanlegvis lempast på for dei råka grensesnitta, fordi eit svar lovleg kjem via ei lenkje som hovudtabellen aldri ville velje. Hald merka smale så dei aldri fangar den eigne krypterte trafikken til tunnelane, noko som ville sendt tunnelen gjennom seg sjølv.
ip rule show ip route show table 101 sysctl net.ipv4.conf.all.rp_filter
Les dei eksisterande reglane før du legg til ein ny. Dupliserte prioritetar og gløymde tabellar er den vanlege grunnen til at ein merkepolicy ser ut til å ikkje ha nokon effekt i det heile.
Prov isolasjon ved å stoppe éi lenkje
Med båe tunnelane oppe, registrer adressa til kvart grensesnitt, ruta til éin vert bak kvar tunnel og vegen ein urelatert destinasjon tek. Spør kjernen om oppslaget i staden for å lese éi einskild tabell, fordi éi tabell aldri viser den endelege avgjerda.
Stopp deretter éin instans og sjå grensesnittet og rutene forsvinne medan den andre held fram. Eit brot i den overlevande betyr at dei to framleis deler eit einingnamn, ei rute eller ei brannmurregel som ingen har skilt.
Ta den stoppa profilen tilbake og gjenta dei same kontrollane. Når ein tunnel berre overlever den fyrste starten etter omstart, ser du ein livssyklusfeil og ikkje eit rutingsdesign.