Du har en fungerende OpenVPN-server og en vært, der også kører Cloudflares enhedssoftware, og det oplagte næste skridt ser ud til at pege klienttrafik mod den. To fungerende forbindelser på én maskine bliver ikke tilsammen en transitgateway. Det, der mangler, er en rolle, der er dokumenteret til at videresende pakker, som tilhører andre, og en politik, der klassificerer disse pakker, når de ankommer.

Før enhver regel kommer fire spørgsmål: hvilken trafik kommer ind, hvor går den hen næste gang, hvordan finder svarene tilbage, og hvad gør designet, når den anden vej svigter. De to første er kapabilitetsspørgsmål.

To tjenester på én vært er ikke en transitvej

En enhedsklient er bygget til at håndtere trafik, der stammer fra den maskine, hvor den kører. Den opsnapper navneopløsning eller udvalgt applikationstrafik og sender den gennem sin egen tunnel, og dens politik er skrevet for enhedens bruger og enhedens processer. En pakke, der videresendes fra en OpenVPN-klient, er ikke lokal output, så de samme regler klassificerer den ikke. Det er ikke en konfigurationsdetalje, du kan dække over med en bredere regel, fordi den afgør, om softwaren overhovedet ser pakken.

Derfor er designspørgsmålet et kapabilitetsspørgsmål. Enten har det installerede produkt en dokumenteret rolle, der videresender trafik for andre netværk, eller også hører transitfunktionen et helt andet sted hjemme.

Hvilken Cloudflare-rolle må videresende

Cloudflares enhedsklient tilbyder tilstande, der adskiller sig i omfang: kun navneopløsning, trafik fra enheden og nogle gange begge. Ingen af disse tilstande gør værten til en router for et privat interval, der ankommer over en anden tunnel. Den dedikerede routingrolle er et separat produkt med sin egen connector, tilmelding og netværksmodel.

QuestionWhat 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

Tjek den installerede rolle, før du designer ruter omkring den. Læs, hvilken grænseflade connectoren opretter, om den annoncerer bestemte præfikser eller en standardrute, og om lokal politik gælder for videresendte pakker såvel som lokale. Hvis kun lokal trafik håndteres, kan OpenVPN-serveren ikke være transitpunktet, uanset hvordan oversættelsesreglen er skrevet.

Det er også her, et krav om offentlig udgang skal formuleres præcist. En Cloudflare-leveret udgang for videresendt klienttrafik er et specifikt anvendelsestilfælde, og det skal bekræftes mod den tjeneste, du faktisk har.

Hold den ydre tunnel uafhængig af den nye rute

I det øjeblik du tilføjer en standardrute mod den nye grænseflade, begynder serverens egen udgående trafik at konkurrere om den, og det omfatter svar til OpenVPN-klienterne og din SSH-session til maskinen. Det sædvanlige symptom er en tunnel, der etableres og derefter dør, eller en administrator, der lukkes ude, mens ændringen ser ud til at have virket. Sammenlign ip route get for endepunktet før og efter, og brug policy-routing eller en host-rute til at holde serverens egen transport, hvor den var. Kør den sammenligning fra maskinen selv, fordi serverens eget syn på sin rute er det, der tæller.

En undtagelse for serverens offentlige adresse er ikke nok i sig selv, fordi hver fjernadministrators returvej er en anden strøm. Beslut, hvilke af disse strømme der skal overleve ændringen, og verificér derefter hver enkelt i stedet for at antage, at den første dækker resten.

Begræns videresendelsen og oversættelsen til én strøm

Modtagne pakker følger videresendelsesvejen, ikke den lokale outputvej, så den regel, der betyder noget, lever i forward-krogen. Hvor den videre grænseflade har brug for oversættelse, begræns kilden til klientpuljen, destinationen til det tilladte og udgangen til den ene grænseflade. En masquerade-regel, der kun er knyttet til en grænseflade, vælger ingen rute i sig selv og tillader ikke videresendelse forbi nogen anden filter.

Beslut fail-closed-adfærden på forhånd, og test den derefter. Stop den videre vej, og bekræft, at klienterne mister den tilsigtede udgang i stedet for stille at falde tilbage til den almindelige uplink, for det er resultatet, som ingen bemærker, før trafikken forlader gennem den forkerte dør. Gentag kontrollen for navneopløsning og for IPv6, fordi et regelsæt kun for v4 efterlader en v6-vej åben.

Skriv de fire svar ned, som du endte med, og den observation, der viser hvert af dem. En transitvej, du kan beskrive, er en, du kan forsvare ved den næste hændelsesgennemgang.

Relaterede artikler