Twee profiele is gekoppel, en een van hulle dra stilletjies verkeer wat vir die ander bedoel is. ’n Linux-gasheer kan beide OpenVPN-kliënte gelyktydig laat loop sonder moeite. Wat hy nie kan doen nie, is om vir jou te besluit watter proses watter voorvoegsel mag opeis. Daardie besluit moet geneem word voordat die tweede tonnel opkom, nie nadat ’n hulpbron ophou antwoord nie.

Begin by die werk wat die tweede skakel moet doen

’n Kantoor wat deur een profiel bereikbaar is en ’n laboratorium deur ’n ander, het albei tonnels nodig, en nie een van hulle mag alles opeis nie. ’n Enkele hardkoppige toepassing wat deur die tweede profiel moet uitgaan, het ’n beleidsreël nodig eerder as ’n tweede verstekroete. ’n Rugsteunskakel het net een tonnel op ’n slag nodig, so die spaar een moet nie saam met die masjien begin nie.

Dit is drie verskillende konfigurasies, en hulle word verwar omdat al drie dieselfde begin: ’n tweede profiel en ’n suksesvolle verbinding. Skryf eers die beoogde reëling neer en konfigureer dan daarheen. Een sin van bedoeling spaar ’n uur se pakkiesvangs.

systemctl list-units --type=service 'openvpn-client@*'
ip -4 route show default

Die eerste opdrag lys die instansies wat loop, insluitend dié wat met die hand buite die bestuurder begin is. Die tweede druk die huidige verstekeis, dit is die toestand wat jy later sal moet verduidelik.

Oorvleuelende poele breek voordat roetering dit doen

Twee bedieners sal vrolik adresse uit dieselfde 10.8.0.0/24 toeken. Die kliënt hou dan twee koppelvlakke binne een voorvoegsel met niks wat sê watter bestemming aan watter een behoort nie, en die gevolglike gedrag lyk soos ’n roeteringsfout maar is eintlik ’n nommeringsfout. Om ’n poel te hernommer kos een konfigurasiewysiging; elke roeteringsomweg daarna kos ’n naweek. Kyk na die poel voordat jy ’n roete daarvoor byvoeg.

Kyk ook na die plaaslike LAN. ’n Tuis-LAN met nommer 192.168.1.0/24 wat een tonnel ook blootlê, lewer dieselfde dubbelsinnigheid, en die simptoom is ’n gasheernaam wat oplos terwyl die verbinding nooit voltooi nie. Dit lyk soos ’n naamoplossingsfout totdat jy die roetes druk.

ip -4 addr show
ip route show table all | grep -E '10\.|192\.168\.'

Vergelyk albei uitsette met die twee bedienerkonfigurasies voordat jy aan die kliënt raak. As die voorvoegsels oorvleuel, stop en hernommer, want geen hoeveelheid herbegin sal hulle skei nie.

Gee elke profiel sy eie eenheid en elke voorvoegsel ’n eienaar

Elke profiel kry sy eie instansienaam en sy eie konfigurasielêer, so die instansie genaamd office laai office.conf terwyl dié genaamd lab lab.conf laai. Bevestig daardie koppeling deur die diensbestuurder eerder as om ’n gidslys te vertrou, want ’n drop-in kan verander watter lêer gelaai word. Om die koppeling verkeerd te kry, beteken jy verstel die profiel wat nie loop nie.

Bepaal dan wie roetes installeer. Wanneer die bedieners onversoenbare stelle stuur, weier óf die stuur en lys die voorvoegsels self, óf laat een profiel die verstek hou en stuur die ander met beleidsreëls. Twee prosesse wat albei ’n verstek installeer, eindig met ’n stille wenner en geen geskrewe rekord van die besluit nie.

systemctl cat [email protected]
grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf

Die eerste wys die eenheid met enige oorheersing wat sy argumente verander. Die tweede wys of die profiel gestuurde roetes hoegenaamd aanvaar, wat die skakelaar is wat alles stroomaf bepaal.

Marks hou antwoorde op die koppelvlak waar hulle aangekom het

Wanneer elke tonnel verskillende bronne bedien, kan ’n antwoord deur die verkeerde skakel uitgaan en die verbinding sterf ná die eerste pakkie. Die patroon wat hou, is om aankomende pakkies volgens invoerkoppelvlak te merk, daardie merk op die antwoord te herstel, en elke merk ’n tabel met sy eie verstekpoort te gee.

Loose reverse-path filtering moet gewoonlik vir die betrokke koppelvlakke verslap word, want ’n antwoord kom wettig op ’n skakel aan wat die hooftabel nooit sou kies nie. Hou die merke smal sodat hulle nooit die tonnels se eie geënkripteerde verkeer vang nie, want dit sou die tonnel deur homself stuur.

ip rule show
ip route show table 101
sysctl net.ipv4.conf.all.rp_filter

Lees die bestaande reëls voordat jy nog een byvoeg. Dubbele prioriteite en vergete tabelle is die gewone rede waarom ’n merkbeleid heeltemal geen uitwerking het nie.

Bewys isolasie deur een skakel te stop

Met albei tonnels op, teken elke koppelvlakadres aan, die roete na een gasheer agter elke tonnel, en die pad wat ’n onverwante bestemming neem. Vra die kernel vir die opsoek eerder as om ’n enkele tabel te lees, want een tabel wys nooit die finale besluit nie.

Stop dan een instansie en kyk hoe sy koppelvlak en roetes verdwyn terwyl die ander voortgaan. ’n Breek in die oorlewende beteken die twee deel steeds ’n toestelnaam, ’n roete of ’n firewall-reël wat niemand geskei het nie.

Bring die gestopte profiel terug en herhaal dieselfde kontroles. Wanneer ’n tonnel net die eerste begin ná ’n herbegin oorleef, kyk jy na ’n lewensiklusfout eerder as ’n roeteringsontwerp.

Verwante artikels