Begjin dêr't it berjocht ferskynt. In klant ferbynt, de tunnel komt omheech, en dan meldt it loch dat it Linux-rûtebefel mislearre mei File exists. Neat yn dy sin ferwiist nei in sertifikaat, in kaai of in konfiguraasjebestân, ek al tinke de wurden dat. De kernel beskriuwt syn rûtetabel, en it foarheaksel dat jo fregen te ynstallearjen hat al in ynskriuwing.

Folgje de eigen folchoarder fan 'e klant: wat it frege, wat de tabel al befette, wa't dy ynskriuwing dêr sette, en pas dêrnei wat te feroarjen. Elke stap hellet ien mooglike eigner fuort.

Wat de klant eins frege

Foar de mislearring logt de klant de rûte dy't er tafoegje wol, meast as bestimming, netmasker, gateway en soms as metryk of tabel. Dy rigel is it fersyk. De flater dy't folget is it antwurd fan 'e kernel dêrop, en beide moatte njonkeninoar lêzen wurde.

journalctl -u openvpn-client@office -b --no-pager | grep -nE 'route|File exists'
openvpn --config /etc/openvpn/client/office.ovpn --verb 4 --log /tmp/ovpn.log

In net-nul exitstatus fan 'e rûtehelper is minder ynformatyf as de tekst derûnder, om't ferskate kernel-antwurden in net-nul status jouwe. Hâld it krekte berjocht; it ûnderskie tusken in besteande ynskriuwing en in net te berikken gateway beslút hokker fan 'e folgjende seksjes jildt.

Lês de besteande rûte, net allinnich it adres

It sykjen yn 'e tabel nei deselde puntige fjouwerling is net genôch. In rûte-objekt wurdt identifisearre troch syn adresfamylje, tabel, bestimmingsfoarheaksel, metryk, protokol en útfierapparaat, en ynskriuwingen dy't in foarheaksel diele kinne legity njonkeninoar bestean as dy attributen ferskille. Wat botsk is it hiele objekt, net de tekst.

ip -4 route show table all | grep -F '10.40.'
ip -4 route show match 10.40.0.0/16
ip -4 route get 10.40.0.5

It lêste befel beantwurdet in oare fraach as de earste twa: net wat bestiet, mar hokker ynskriuwing de kernel no foar dy bestimming kieze soe. Beide bylden binne nuttich, en se ferskille faak genôch om se te fergelykjen foardat jo wat konkludearje. De mismatch tusken har is it nijsgjirrige gefal, net in ôfrûnfout.

Skriuw it foarheaksel, de tabel, de metryk en it apparaat njonken it mislearre fersyk. As de besteande ynskriuwing deselde attributen en deselde folgjende hop hat, hawwe jo in dûbele ynstruksje en gjin rûteprobleem.

Fjouwer eigners dy't in foarheaksel hawwe kin

Ferbûne rûtes komme fan in tawiisd adres en wurde troch it systeem opnij makke wannear't dat adres bestiet. In DHCP-klant of in ferbiningbehearder ynstallearret rûtes as diel fan syn eigen libbenssyklus. In oare VPN-klant draacht miskien al itselde foarheaksel. En in pleatslike hook of script kin ien tafoegje dy't neat oars wit.

Elke eigner hat in oare korreksje nedich. In ferbûne rûte is net fan jo om te wiskjen; it fuortheljen kin pleatslike tagong brekke foardat de tunnel brûkber is, en de kernel sil it weromsette. In rûte fan in behearder moat fia dy behearder feroare wurde, net mei in manuele ip route del dy't de folgjende werferbining ûngedien makket.

In behâlden ynterface makket deselde betizing makliker. As it tunnelapparaat in werferbining oerlibbet, kinne rûtes dy't troch oanpaste opsetkoade ynstallearre binne by de twadde rin noch oanwêzich wêze, sadat in script dat in skjinne tastân ferûnderstelt de twadde kear mislearret en de earste kear wurket. Meitsje de ferâldere ynskriuwing bewust skjin of meitsje de opsetkoade idempotint.

block-local beantwurdet in oare fraach

As in profyl alle ferkear troch de tunnel stjoert, moat de klant beslute wat der mei it pleatslike netwurk bart. De flagge block-local feroaret dat beslút troch it pleatslike LAN troch de tunnel te rûtsjen, wylst de dokumintearre útsûndering foar de LAN-gateway beholden bliuwt; dat is in ferkearsbeliedskeuze mei sichtbere gefolgen foar berikberens.

It ferklearret net wêrom't in rûte tafoegje in flater oer in besteande ynskriuwing weromjoech, en it as in universele reparaasje oannimme ferberget it wiere konflikt efter in beliedsferoaring. As jo pleatslike boarnen nei in profylbewurking net mear berikber binne, is dizze flagge ien fan 'e earste dingen om te besjen; as in rûte tafoegje mislearret, is it net it antwurd.

Behannelje it as in beslút oer hokker bestimmingen pleatslik bliuwe, mei opset nommen en opskreaun. It is gjin skeakel om te probearjen as it loch alarmearjend liket.

Slút de sirkel: ferwiderje it dûbele by syn boarne

Sadree't jo witte hokker eigner de ynskriuwing hat, ferwiderje de dûbele ynstruksje dêr't er definiearre is. Dat kin in route-rigel yn it profyl wêze, in push fan 'e server of in hook dy't net mear rinne hoecht.

ip -4 route show match 10.40.0.0/16
ip -4 route get 10.40.0.5
journalctl -u openvpn-client@office -b --no-pager | tail -n 15

Ferbin dan wer en befêstigje trije dingen: de tunnel komt omheech, de bedoelde bestimming wurdt oplost nei it paad dat jo woene, en de mislearring is fuort sûnder dat der in nije foar yn 't plak komt. In skjin loch mei in ferkeard keazen paad is gjin reparaasje.

As it foarheaksel oan 'e iene kant it pleatslike LAN betsjut en oan 'e oare kant in ôfstân-netwurk, is it probleem in adresoerlap en gjin dûbele, en gjin hoemannichte wiskjen sil beide betsjuttings tagelyk wier meitsje. Dat gefal freget in oar plan foar ien fan 'e twa netwurken. Beslút hokker kant opnij nûmere wurdt foardat jo ien fan beide oanreitsje.

Relatearre artikelen