OpenVPN stuur steeds ou roetes? Kyk wat dit gelaai het
Óf die bediener het jou wysiging nooit gelees nie, óf die kliënt het nooit die stoot geïnstalleer nie. Vergelyk die lopende proses, die gepusde lys en die terugroete.
Jy voeg 'n roete-push by, herbegin die diens, maak weer verbinding, en die kliënt se tabel lyk presies soos voorheen. Twee verskillende dinge kan waar wees: die bediener het jou wysiging nooit gelaai nie, of die kliënt het nooit geïnstalleer wat dit ontvang het nie. Dié twee het niks gemeen behalwe die simptoom, so die eerste stap is om uit te vind watter een jy het.
Die vergelyking hieronder loop van die proses uitwaarts, want die proses is die enigste gesag oor watter lêer geld.
Die lêer wat jy gewysig het en die lêer wat die proses lees
Begin by die unit en die opdragreël wat dit opgelewer het. Op 'n systemd-gasheer druk systemctl cat openvpn@server die ExecStart-reël uit, en 'n instansie-unit lei gewoonlik sy konfigurasiepad van die instansienaam af, so 'n daemon wat as openvpn@office begin is, lees 'n ander lêer as een wat as openvpn@server begin is. Vergelyk dit met die argv van die lopende proses. 'n Konfigurasiebestuurnuts voeg nog 'n manier by om die wysiging te verloor: dit kan 'n korrekte lêer op 'n plek skryf wat die unit nooit noem nie, wat 'n groen ontplooiing soos 'n geen-effek laat lyk.
Tydstempels beslis dit vinnig: as die lêer nuwer is as die proses se begintyd, kon die proses dit nie gelees het nie. Router-firmware voeg 'n derde geval by, want baie modelle hou hul instellings in flash en bou die konfigurasie tydens die selflaai weer op, wat 'n lêerwysiging op skyf heeltemal die verkeerde laag maak.
Wat die bediener stuur en wat die kliënt installeer
'n Gepusde roete moet twee filters oorleef. Op die bediener moet dit in die gelaaide konfigurasie sit, nie in 'n gekommenteerde blok of 'n kliëntspesifieke lêer waarvan die naam nie pas nie. Op die kliënt moet pull geaktiveer wees en geen pull-filter mag die opsie weggooi nie. Maak verbinding met verbosity 4 en lees die gepusde opsies wat die kliënt rapporteer: as die roete in dié lys verskyn, het die bediener sy werk gedoen en kies die kliënt om dit nie te installeer nie.
Kliëntspesifieke lêers is 'n algemene bron van verwarring. 'n Lêer wat na die sertifikaat se common name vernoem is, stuur opsies net na daardie kliënt, en 'n een-karakter-verskil stop die stoot stil, sonder enige fout aan enige kant. Die bediener teken die common name aan wat dit tydens verbinding gesien het, so vergelyk daardie waarde met die lêernaam eerder as met wat jy dink die kliënt genoem word.
Die gepusde prefiks en die terugroete is verskillende probleme
'n Kliënt wat redirect-gateway doelbewus ignoreer om sy plaaslike internetpad te behou, skep 'n tweede, onverwante gaping. Die bediener se peilings bereik die tonneladres en die antwoorde kom nooit aan nie, want 'n antwoord wat aan die bediener se tonnel-IP gerig is, word deur die kliënt se gewone verstekpoort gelei. Die gepusde subnetroete is nie hier skuldig nie; wat ontbreek, is 'n roete wat verkeer vir die bediener se tonnelnetwerk terug tonnelwaarts stuur.
Om daardie roete op die kliënt by te voeg, maak antwoorde op peilings wat die bediener begin, reg. Dit is nie 'n plaasvervanger vir die gepusde subnetroete nie, en die omgekeerde geld ook, want die twee beskryf teenoorgestelde rigtings van reis.
Vergelyk die tabelle aan beide kante
Maak ná enige wysiging weer verbinding en lees die kliënt se tabel vir die gepusde prefiks en vir die tonneltoestel. Toets dan in beide rigtings: kliënt na 'n gasheer op die gepusde subnet, en daardie gasheer terug na die kliënt. 'n Roete wat bestaan maar geen verkeer dra nie, beteken een van drie dinge: die oorkant stuur nie aan nie, 'n brandmuur laat die vloei val, of die antwoord het geen weg terug nie.
Hou drie identifiseerders saam: konfigurasiepad, unit- of instansienaam, en die kliëntidentiteit waarmee jy getoets het.
Dié drie maak die volgende geval 'n vyf-minute-kontrole eerder as 'n herhaalde ondersoek, en hulle is wat 'n kollega nodig het wanneer die tonnel iemand anders se probleem word.
'n Roeteprobleem wat 'n herstarting oorleef, is dikwels glad nie 'n roeteprobleem nie; die fout sit stroomop van die tabel wat jy aanhou lees.