Kuusikymmentä minuuttia, tai kolmekymmentä, tai satakaksikymmentä: pyöreälle välille osuva katko ei lähes koskaan ole verkko. OpenVPN uusii ajastimella avainmateriaalin, joka suojaa datakanavaa, ja oletettua lyhyempi ajastin näyttää täsmälleen yhteydeltä, joka epäonnistuu jatkuvasti. Käyttäjät raportoivat katkenneesta yhteydestä, kun loki raportoi onnistuneesta avainten vaihdosta. Alla oleva ohje erottaa tämän uusinnan todellisesta uudelleenkäynnistyksestä, lukee todella voimassa olevan arvon ja muuttaa sitä vasta, kun hinta on pöydällä.

Tee vaiheet järjestyksessä, koska ensimmäinen ratkaisee, koskeeko sivun loppuosa sinua lainkaan. Jos hyppäät eteenpäin, vietät illan säätäen ajastinta vian vuoksi, jolla ei ole sen kanssa mitään tekemistä.

Erota pehmeä nollaus uudelleenkäynnistyksestä

Lokirivi on koko diagnoosi. Uudelleenneuvottelu kirjoittaa pehmeän nollauksen ja sitten tuoreen avainten vaihdon saman tunnelin sisällä: rajapinta säilyttää osoitteensa, reittejä ei lisätä uudelleen, ja luodut TCP-istunnot selviävät yleensä tauolla. Todellinen uudelleenkäynnistys repii istunnon, rakentaa rajapinnan uudelleen, saattaa antaa toisen asiakasosoitteen ja tappaa jokaisen pitkäikäisen yhteyden. Molemmat tapahtumat ovat tavallisia; vain toinen niistä selittää katkenneen puhelun.

journalctl -u openvpn-client@office -b --no-pager | grep -nE 'soft reset|Connection reset|reneg|TLS Error'
openvpn --version | head -n 1

Versiorivi on tärkeä, koska lokin sanamuoto muuttuu julkaisujen välillä, ja 2.3:sta muistamasi viesti voi olla 2.6:ssa eri tavalla muotoiltu. Lue oma lokisi äläkä jonkun toisen foorumiotetta. Lainaa tarkka rivi, kun pyydät apua, koska uudelleenkerronta kadottaa tapahtuman tunnistavan yksityiskohdan. Jos rajapinnan osoite ei muutu tapahtuman aikana ja istuntoluettelo selviää, katsot uusintaa ja loput osiot pätevät.

Lue voimassa oleva ajastin, älä tiedostosi

reneg-sec on datakanavan uudelleenneuvottelujen välinen sekuntimäärä, ja sen oletusarvo on 3600. Kumpikin osapuoli kantaa oman arvonsa, ja kahdesta pienempi on se, joka todella laukaisee uusinnan. Tämä yksi sääntö selittää useimmat raportit: suuren luvun asettava asiakasprofiili nollautuu silti tunneittain, kun palvelin pitää oletusarvon.

grep -Rn --include='*.conf' -E 'reneg-sec|reneg-bytes' /etc/openvpn
# server side, including included files
grep -Rn -E '^reneg-sec' /etc/openvpn/server/

Lue myös palvelimen voimassa oleva kokoonpano, mukaan lukien kaikki mitä se työntää, ennen kuin teet johtopäätöksen asiakastiedostosta. Nosta sitten yksityiskohtaisuutta ja seuraa yhtä väliä alusta loppuun: taso 3 näyttää jo uudelleenneuvottelurivit, ja aikaleimat kertovat, toistuuko tapahtuma 3600 sekunnin välein vai seuraako se toimintaa.

Muuta sitä siellä, missä se todella työnnetään

Leviävä lääke on yksi rivi asiakasprofiilissa, ja se on väärä paikka noin puolet ajasta. Koska osapuolen pienempi arvo voittaa, asiakas, joka asettaa ajastimen nollaan, voidaan silti neuvotella uudelleen palvelimella, jota ei muutettu.

# on both ends, or on the side that owns the pushed configuration
reneg-sec 0

Kun profiilit luodaan keskitetysti, muokkaa mallia äläkä käyttöön otettua kopiota, tai seuraava valmisteluajo palauttaa juuri poistamasi arvon. Vahvista seuraamalla kahta väliä, ei yhtä: yksi hiljainen tunti sopii myös ajastimeen, joka asetettiin 7200:aan.

Päätä myös, mitä sekakäyttöönotossa tapahtuu. Jos viet muutoksen ensin asiakkaille, jäljelle jää ikkuna, jossa palvelin yhä laukaisee uusinnan; se on harmitonta mutta hämmentävää, jos seuraat lokeja vahvistuksen toivossa. Muuta ensin se puoli, jolla on pienempi arvo, ja oire katoaa kohdassa, jota odotat.

Mitä menetät, kun poistat uudelleenneuvottelun käytöstä

Säännöllinen uudelleenneuvottelu rajoittaa, kuinka kauan yksi datakanavan avainsarja suojaa liikennettä. Ajastimen sammuttaminen ei riko tunnelia, ja kotireitittimessä tai pienen toimiston yhdyskäytävässä käytännön altistus on vaatimatonta. Se on silti vaihtokauppa, ja vaihtokauppa kannattaa nimetä ennen kuin sen teet. Muutos on siinä, kuinka kauan yksi avainsarja suojaa istuntoa, ei siinä, toimiiko tunneli lainkaan.

Kohtuullinen peruste poistamiselle on nollaus, joka rikkoo jotain, mitä ei voi jatkaa: puhelu, joka katkeaa, etätyöpöytäistunto, joka on rakennettava uudelleen, varmuuskopio, joka alkaa alusta. Jos tauko on käyttäjille näkymätön, oletusarvon jättäminen ei maksa mitään ja säilyttää sinulle annetun avainten kierron.

Korjaa mieluummin syy, kun kuvio sen sallii. Uusinta, joka epäonnistuu puolivälissä, vaikka ensimmäinen kättely onnistui, viittaa polkuun eikä ajastimeen: etsi pakettikoko-ongelmaa suuremmasta ohjauskanavan vaihdosta, tilallista palomuuria, joka pudottaa virtauksen, tai ehdotusta, joka onnistuu vain ensimmäisellä yrityksellä. Jokainen niistä jättää jäljen samaan lokiin, jonka juuri luit. Ajastimen poistaminen käytöstä kätkee sen todisteen.

Kun väli osoittaa muualle

Kaksi naapuria kokoonpanossa tuottaa samankaltaisia oireita ja erilaisia korjauksia. ping-restart käynnistää tunnelin uudelleen, kun mitään ei saavu määrätyn ajan kuluessa, kun taas ping-exit laskee asiakkaan kokonaan alas. Joutokäynnin katko ilman mitään uudelleenneuvottelua lokissa kuuluu näille tai NAT-laitteelle, joka päästi UDP-kartoituksen vanhenemaan oman aikataulunsa mukaan.

Kuluttajareitittimet, mobiilit hotspotit ja operaattoritason NAT päästävät joutokäynnissä olevat UDP-istunnot vanhenemaan kertomatta kenellekään. Se vika seuraa joutokäyntiä eikä kelloa, ja se on merkki: istunto, joka katkeaa kymmenen hiljaisen minuutin jälkeen ja selviää tunnin tasaisesta liikenteestä, ei neuvottele uudelleen.

Kirjoita kolme asiaa ennen kuin muutat neljättä: mittaamasi väli, löytämäsi voimassa oleva arvo ja komento, joka sen näytti. Jos väli liikkuu, kun ajastin liikkuu, mekanismi on tunnistettu ja korjaus on päätös yllä olevasta vaihtokaupasta. Jos se ei liiku, palauta asetus ja jatka keepalivejen, NAT-tilan ja pakettihäviön seuraamista.

Aiheeseen liittyvät artikkelit