Yhteyden listaaminen strongSwanin kokoonpanossa todistaa vain, että määritelmä latautui. Se ei tarkoita, että kumppaniin otettiin yhteyttä, että IKE-SA on olemassa tai että mikään liikenne on suojattua. Daemon käsittelee määritelmiä ja eläviä assosiaatioita erillisinä objekteina, ja niiden välinen etäisyys on tarkoituksellinen suunnitteluratkaisu. Tieto siitä, mitä objektia tutkit, muuttaa epämääräisen vian konkreettiseksi seuraavaksi komennoksi.

Lataaminen ei ole yhdistämistä

Ladattu yhteys on väite siitä, mitä voidaan neuvotella myöhemmin: kumppanin osoitteet, tunnistetiedot, ehdotukset ja liikenteen valitsimet. Mikään tuossa väitteessä ei vaadi, että daemon olisi soittanut kenellekään. Yhdyskäytävä voi odottaa toista puolta, käynnistää itse käynnistyksessä tai odottaa, että sopiva liikenne herättää sen. Kaikki kolme ovat kelvollisia, ja kaikki kolme näyttävät kokoonpanotiedostossa samalta, kunnes luet käynnistyskäytännön.

Ylläpitäjät joutuvat ongelmiin lukemalla määritelmäluetteloa tilaluettelona. Profiili on siellä, joten tunnelin oletetaan olevan pystyssä, ja seuraava tunti menee assosiaation reittien virheenkorjaukseen, jota ei koskaan rakennettu.

Päinvastainen virhe on yhtä yleinen. Puuttuva profiili lähettää ihmiset etsimään verkkovikaa, kun kokoonpanoa ei koskaan ladattu. Nimeä objekti ja suorita sitten komento, joka tarkkailee sitä.

Kolme objektia, kolme havaintoa

strongSwan pitää ladattua määritelmää, IKE-SA:ta ja CHILD-SA:ta. Ensimmäinen on kokoonpano, toinen todennettu ohjausuhde ja kolmas neuvoteltu suojaus valitulle liikenteelle. Niillä on jopa erilliset nimet, joten profiili nimeltä hq voi omistaa childin nimeltä hq-lan.

Taulukko yhdistää jokaisen kerroksen komentoon, joka näyttää sen. Lue rivi ennen lokin lukemista.

LayerWhat it containsCommand
DefinitionPeer addresses, credentials, proposals, and traffic selectorsswanctl --list-conns
IKE SAOne authenticated control channel to the peerswanctl --list-sas
CHILD SAKeys and selectors for the traffic being protectedChild rows under the IKE SA

Childin pyytäminen rakentaa ensin sen ylemmän IKE-SA:n, kun sellaista ei ole. Pelkän IKE-SA:n pyytäminen on eri kutsu. Ohjauskanava, joka todennetaan hyvin, ei takaa pyydettyä childiä.

Tämä ero on merkityksellinen osittaisen vian aikana. IKE-SA voi olla terve, kun taas child epäonnistuu valitsimen ristiriitaan tai ehdotukseen, jota kumppani ei hyväksy. Molemmat objektit epäonnistuvat eri syistä, joten ne ansaitsevat erilliset havainnot.

Valitse käynnistystoiminto tarkoituksella

Tiedostossa swanctl.conf childin start_action päättää käyttäytymisestä lataamisen jälkeen. Oletusarvo none jättää määritelmän manuaaliseen käynnistykseen tai responder-käyttöön. start soittaa sen, kun taas trap jättää käytännön, joka neuvottelee heti, kun sopivaa liikennettä ilmaantuu.

Niinpä sekä „lataaminen ei koskaan käynnistä tunnelia” että „lataaminen käynnistää aina sellaisen” ovat vääriä. Toiminto on osa profiilia, ja sen pitäisi vastata kumppanin roolia. Kaksi yhdyskäytävää, jotka molemmat odottavat toista puolta, tuottavat hiljaisuutta, eivät tunnelia.

Trapin kanssa liikenteen on vastattava valitsimia, joten asiaankuulumaton ping ei herätä mitään. Startin kanssa kumppanin osoitteen on oltava käytettävissä ja molempien osapuolten on sovittava todennuksesta ja ehdotuksista. Kumpikaan toiminto ei korvaa näiden edellytysten tarkistamista.

Palautuminen on erillinen käytäntö

Käynnistys ei ole keepalive. Kuolleen kumppanin tunnistus, kumppanin eksplisiittinen sulkeminen, avainten uusinta ja prosessin uudelleenkäynnistys ovat erilaisia elinkaaritapahtumia omilla asetuksillaan. Määritä jokainen tarkoituksella sen sijaan, että odottaisit alkukäynnistyksen kattavan ne kaikki.

Tunneli, joka nousee käynnistyksessä ja kuolee tuntia myöhemmin, on palautumiskysymys. Käynnistyskäytäntö teki tehtävänsä ja lakkasi sitten olemasta merkityksellinen. Katso DPD- ja avainten uusinnan asetuksia ennen kuin syytät alkuperäistä neuvottelua.

Ladattujen määritelmien korvaaminen on oma toimintonsa. Muilla kuin oletuskäynnistyskäytännöillä on dokumentoidut käänteistoiminnot, ja uudelleenlataus on operatiivinen muutos eikä oletus siitä, että jokainen assosiaatio päivitettiin paikan päällä. Tee uudelleenlataukset vaiheittain, missä uudelleenyhdistäminen on hyväksyttävää. Pidä vanha kokoonpano, kunnes uusi on todistettu.

Tarkista, mikä on olemassa, ennen kuin korjaat reititystä

Tee kolme havaintoa järjestyksessä: ladatut määritelmät, aktiiviset IKE-SA:t ja child-merkinnät. Jokainen vastaus kaventaa seuraavaa kysymystä. Ohita vaihe, niin päädyt korjaamaan kerrosta, jota ei koskaan rakennettu.

Aloita siitä, mikä on ladattu, ja siitä, mikä on todella vakiinnutettu:

swanctl --list-conns
swanctl --list-sas

Jos child puuttuu profiilin ollessa oikea, käynnistä se nimen perusteella ja seuraa, mitä tapahtuu. Tuloste kertoo yleensä, nousiko ylempi ensin.

swanctl --initiate --child hq-lan

Aktiivinen CHILD-SA ei ole maaliviiva. Edelleenlähetyssäännöt, reitit ja sovelluksen oma valtuutus on vielä sovitettava yhteen. Elinkaari vastaa siihen, mitä neuvoteltiin; se ei voi päättää, kuka saa käyttää palvelua.

Aiheeseen liittyvät artikkelit