Jūsu otrais klients pieslēdzas, pirmā resursi pārstāj atrisināties, un biļetē teikts, ka darba VPN sabojāja personīgo. Nekas nav sabojāts kļūdas nozīmē: abi klienti darīja to, kam tie tika radīti, un datoram ir tikai viena maršrutēšanas tabula. Sadursme ir par četriem resursiem, kurus katrs klients uzskata par saviem. Izstaigājiet tos pēc kārtas, un labojums parasti kļūst par dizaina izvēli, nevis remontu.

1. solis: noskaidrojiet, kurš klients pārvalda izeju

Izlasiet pašreizējo izejas lēmumu, pirms kaut ko maināt. Maršruta meklējums publiskai adresei parāda, kuru saskarni un kuru nākamo lēcienu pakete izmantotu tieši tagad, un tā ir atbilde uz to, kurš uzvarēja. Salīdziniet to ar saskarņu nosaukumiem, ko izveidojuši klienti; tajos parasti ir produkta vai protokola nosaukums. Ja meklējums norāda uz tuneli, kuru negaidījāt, sadursme jau ir atrasta.

ip route get 1.1.1.1
ip route show default
route print

Daži klienti noklusējuma maršrutu nemaz neaizstāj; tie pievieno divas puses, vienu adrešu telpas apakšējai pusei un vienu augšējai, kas kopā nosedz visu. Tas atstāj redzamu sākotnējo noklusējuma maršrutu un liek manuālam labojumam izskatīties pareizam, kamēr trafiks joprojām iziet caur tuneli. Lasiet metriku un prefiksa garumu, nevis tikai noklusējuma ieraksta esamību.

Apstājieties, ja abi klienti pieprasa vienu un to pašu prefiksu ar vienu un to pašu metriku. Kodols izvēlēsies vienu, un otrs izskatīsies pieslēgts, nenesot neko.

2. solis: pārbaudiet atrisinātāju un pārklājošos prefiksus

DNS ir otrā sadursme, un tā rada raksturīgu simptomu: vārdi neizdodas, kamēr adreses strādā. Katrs klients uzspiež savu atrisinātāju, un pēdējais rakstītājs uzvar turpmākajos vaicājumos. Jautājiet atrisinātāja servisam, ko tas izmanto katram savienojumam, tā vietā lai lasītu klienta iestatījumu lapu.

resolvectl status
Get-DnsClientServerAddress
dig +short intranet.corp.example

Pēc tam salīdziniet privātos prefiksus, ko izmanto abi tīkli. Ja abas puses piešķir no viena diapazona, nekāds klienta puses risinājums to nelabos, jo dators nevar pateikt, kura 10.0.0.0/8 galapunkta pieder kuram tunelim. Viena puse ir jāpārnumurē vai jātulko, un tā ir saruna ar tīkla īpašniekiem, nevis konfigurācijas maiņa. Pārklāšanās ir vienīgā sadursme, kurā godīgā atbilde ir tāda, ka dizains ir jāmaina.

Apstājieties šeit, ja prefiksi pārklājas. Viss turpmākais šajā sarakstā pieņem, ka tie nepārklājas.

3. solis: izvēlieties atdalīšanas modeli, kas notur

Uzticamie modeļi izvairās no divu klientu darbināšanas pret vienu maršrutēšanas tabulu. Viens klients ar sadalītā tuneļa politiku, kas sasniedz abus privātos tīklus ir vienkāršākais, ja galamērķi nepārklājas un politikas īpašnieks piekrīt. Virtuālā mašīna vai tīkla nosaukumu telpa ir nākamais solis, jo katra iegūst savu tabulu un savu atrisinātāju.

sudo ip netns add vpn2
sudo ip netns exec vpn2 ip link show
sudo ip netns exec vpn2 curl -sI https://intranet.corp.example/

Nosaukumu telpa dod tādu pašu atdalīšanu kā virtuālā mašīna bez otrās operētājsistēmas, bet tai ir rupjas malas: tuneļa ierīce ir jāpārvieto tajā, un lietojumprogramma ir jāpalaiž tās iekšpusē. Atsevišķa fiziska ierīce bieži ir vismazāk pārsteidzošā izvēle personīgam VPN līdzās pārvaldītam darba klientam. Viena tuneļa likšana otrā nav atdalīšanas modelis; iekšējam galapunktam jāpaliek sasniedzamam caur ārējo tuneli, un šāds izkārtojums papildus pievieno MTU un aiztures problēmas.

Izvēlieties vienu modeli un pierakstiet, kāpēc. Vienas lietojumprogrammas nosaukumu telpas sajaukšana ar sadalīto tuneli pārējiem no jauna rada sākotnējo sadursmi grūtāk atkļūdojamā formā.

4. solis: pārbaudiet abus tīklus no vienas sesijas

Pārbaudiet vienu resursu katrā privātajā tīklā no vides, kurā lietojumprogramma patiešām darbojas, nevis no savas čaulas, ja programma darbojas nosaukumu telpā. Pārbaudiet izejas saskarni, atrisināto adresi un atbildes kodu kopā, jo panākumi vienā no trim var paslēpt neveiksmi citos. Atkārtojiet pēc pārstartēšanas, jo klientu palaišanas secība nosaka, kurš uzvar. Tieši šo secību cilvēki aizmirst pierakstīt.

curl -sI https://intranet.corp.example/
curl -sI https://files.personal.example/
ip route get 10.20.30.40

Pierakstiet klientu versijas, saskarnes, atrisinātāja stāvokli un katra tīkla prefiksus. Kad klients tiek atjaunināts un maina maršruta uzvedību, šis pieraksts ir atšķirība starp piecu minūšu labojumu un pārbūvi. Nākamais cilvēks nepadalīsies ar jūsu atmiņu par to, kurš tunelis pacēlās pirmais.

Saraksts ir pilnīgs, kad varat nosaukt saskarni, kurai pieder noklusējuma maršruts, atrisinātāju, ko izmanto katrs vārds, modeli, kas atdala otro tuneli, un viena pieprasījuma rezultātu katram tīklam pēc pārstartēšanas. Viss mazāk ir konfigurācija, kas šodien darbojas nejauši.

Saistītie raksti