Rute OpenVPN-klienter gjennom Cloudflare? Sjekk rollen først
En enhetsklient er ikke en ruter. Bekreft at Cloudflare-rollen videresender andre verters pakker, og hold serverens egen tunnel på dens gamle vei.
Du har en fungerende OpenVPN-server og en vert som også kjører Cloudflares enhetsprogramvare, og det åpenbare neste trinnet ser ut som å peke klienttrafikken mot den. To fungerende forbindelser på én maskin utgjør ikke en transittgateway. Det som mangler, er en rolle som er dokumentert for å videresende pakker som tilhører noen andre, og en policy som klassifiserer disse pakkene når de ankommer.
Før enhver regel kommer fire spørsmål: hvilken trafikk som kommer inn, hvor den går videre, hvordan svarene finner veien tilbake, og hva designet gjør når den andre veien svikter. De to første er kapasitetsspørsmål.
To tjenester på én vert er ikke en transittvei
En enhetsklient er bygget for å håndtere trafikk som oppstår på maskinen der den kjører. Den fanger opp navneoppslag, eller utvalgt applikasjonstrafikk, og sender det gjennom sin egen tunnel, og policyen er skrevet for den enhetens bruker og den enhetens prosesser. En pakke som videresendes fra en OpenVPN-klient er ikke lokal utdata, så de samme reglene klassifiserer den ikke. Dette er ikke en konfigurasjonsdetalj du kan dekke over med en bredere regel, fordi den avgjør om programvaren i det hele tatt ser pakken.
Derfor er designspørsmålet et kapasitetsspørsmål. Enten har det installerte produktet en dokumentert rolle som videresender trafikk for andre nettverk, eller hører transittfunksjonen hjemme et helt annet sted.
Hvilken Cloudflare-rolle har lov til å videresende
Cloudflares enhetsklient tilbyr moduser som varierer i omfang: bare navneoppslag, trafikk fra enheten, og noen ganger begge. Ingen av disse modusene gjør verten til en ruter for et privat område som ankommer over en annen tunnel. Den dedikerte rutingsrollen er et eget produkt med sin egen connector, registrering og nettverksmodell.
| Question | What has to answer it |
|---|---|
| Does the installed product forward packets from other hosts? | A documented routing or connector role, not a device mode |
| Which prefixes does the connector advertise? | Its own configuration and status output |
| Does the server's own transport still take the old path? | ip route get for the endpoint, before and after |
| Do replies return through the same path? | Connection tracking counters on the forward rule |
Sjekk den installerte rollen før du designer ruter rundt den. Les hvilket grensesnitt connectoren oppretter, om den annonserer bestemte prefikser eller en standardrute, og om lokal policy gjelder for videresendte pakker så vel som lokale. Hvis bare lokal trafikk håndteres, kan OpenVPN-serveren ikke være transittpunktet, uansett hvordan oversettelsesregelen er skrevet.
Her må også kravet om offentlig utgang formuleres presist. En utgang levert av Cloudflare for videresendt klienttrafikk er et bestemt brukstilfelle, og det må bekreftes mot tjenesten du faktisk har.
Hold den ytre tunnelen uavhengig av den nye ruten
I det øyeblikket du legger til en standardrute mot det nye grensesnittet, begynner serverens egen utgående trafikk å konkurrere om den, og det inkluderer svar til OpenVPN-klientene og SSH-økten din til maskinen. Det vanlige symptomet er en tunnel som etableres og deretter dør, eller en administrator som låses ute mens endringen ser ut til å ha virket. Sammenlign ip route get for endepunktet før og etter, og bruk policy-ruting eller en vertsrute for å holde serverens egen transport der den var. Kjør den sammenligningen fra maskinen selv, fordi serverens eget syn på sin egen rute er det som betyr noe.
Et unntak for serverens offentlige adresse er ikke nok i seg selv, fordi hver ekstern administrators returvei er en annen strøm. Bestem hvilke av disse strømmene som må overleve endringen, og verifiser deretter hver enkelt i stedet for å anta at den første dekker resten.
Begrens videresendingen og oversettelsen til én strøm
Mottatte pakker følger videresendingsveien, ikke den lokale utdatveien, så regelen som betyr noe, lever i forward-kroken. Hvor det neste grensesnittet trenger oversettelse, begrens kilden til klientpoolen, målet til det som er tillatt og utgangen til det ene grensesnittet. En masquerade-regel som bare er knyttet til et grensesnitt, velger ingen rute selv og tillater ikke videresending forbi noen annen filter.
Bestem fail-closed-atferden på forhånd, og test den deretter. Stopp den videre veien og bekreft at klientene mister den tiltenkte utgangen i stedet for å falle stille tilbake til den vanlige oppstrømslenken, fordi det er resultatet ingen merker før trafikken begynner å gå ut gjennom feil dør. Gjenta kontrollen for navneoppslag og for IPv6, fordi et regelsett bare for v4 lar en v6-vei stå åpen.
Skriv ned de fire svarene du landet på, og observasjonen som viser hver av dem. En transittvei du kan beskrive, er en du kan forsvare på neste hendelsesgjennomgang.