Å liste ei tilkopling i strongSwan-konfigurasjonen beviser berre at ein definisjon er lasta inn. Det betyr ikkje at motparten er kontakta, at det finst ein IKE-SA, eller at noko trafikk er verna. Daemonen handsamar definisjonar og levande assosiasjonar som separate objekt, og avstanden mellom dei er eit medvite designval. Å vite kva objekt du undersøkjer gjer ein vag feil til ein konkret neste kommando.

Innlasting er ikkje tilkopling

Ei innlasta tilkopling er ei fråsegn om kva som kan forhandlast seinare: motpartadresser, påloggingsinformasjon, forslag og trafikkveljarar. Ingenting i den fråsegna krev at daemonen har ringt nokon. Ein gateway kan vente på den andre sida, initiere ved oppstart eller vente på at samsvarande trafikk vekkjer han. Alle tre er gyldige, og alle tre ser identiske ut i konfigurasjonsfila til du les startpolicyen.

Operatørar hamnar i trøbbel ved å lese definisjonslista som ei statusliste. Profilen er der, så tunnelen vert rekna som oppe, og den neste timen går med til å feilsøkje ruter for ein assosiasjon som aldri vart bygd.

Den motsette feilen er like vanleg. Ein manglande profil sender folk på jakt etter ein nettverksfeil når konfigurasjonen aldri vart lasta inn. Namngje objektet og køyr deretter kommandoen som observerer det.

Tre objekt, tre observasjonar

strongSwan held ein innlasta definisjon, ein IKE-SA og ein CHILD-SA. Den første er konfigurasjon, den andre er eit autentisert kontrollforhold, og den tredje er forhandla vern for vald trafikk. Dei har til og med separate namn, så ein profil som heiter hq kan eige ein child som heiter hq-lan.

Tabellen koplar kvart lag til kommandoen som viser det. Les rada før du les loggen.

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

Å be om childen byggjer først den overordna IKE-SA-en når ingen finst. Å berre be om IKE-SA-en er eit anna kall. Ein kontrollkanal som autentiserer fint garanterer ikkje childen du bad om.

Den skilnaden spelar rolle ved ein delvis feil. Ein IKE-SA kan vere sunn medan childen feilar på eit veljaravvik eller eit forslag som motparten ikkje godtek. Dei to objekta feilar av ulike grunnar, så dei fortener separate observasjonar.

Vel starthandlinga medvite

I swanctl.conf styrer ein childs start_action åtferda etter innlastinga. Standarden none overlèt definisjonen til manuell initiering eller responder-bruk. start ringjer opp, medan trap etterlèt ein policy som forhandlar så snart samsvarande trafikk dukkar opp.

Så både 'innlasting startar aldri ein tunnel' og 'innlasting startar alltid ein' er feil. Handlinga er ein del av profilen, og ho bør passe motpartens rolle. To gateways som begge ventar på den andre sida gir stille, ikkje ein tunnel.

Med trap må trafikken samsvare med veljarane, så ein urelatert ping vekkjer ingenting. Med start må motpartadressa vere brukbar, og begge sider må bli samde om autentisering og forslag. Ingen av handlingane erstattar kontrollen av desse føresetnadene.

Gjenoppretting er ein eigen policy

Oppstart er ikkje ein keepalive. Registrering av døde motpartar, eksplisitt lukking frå motparten, rekeying og ein prosessomstart er ulike livssyklushendingar med eigne innstillingar. Konfigurer kvar av dei medvite i staden for å vente at ein innleiande start dekkjer alle.

Ein tunnel som kjem opp ved oppstart og døyr ein time seinare er eit gjenopprettingsspørsmål. Startpolicyen gjorde jobben sin og slutta deretter å bety noko. Sjå på DPD- og rekey-innstillingar før du gir den innleiande forhandlinga skulda.

Å erstatte innlasta definisjonar er ein eigen operasjon. Ikkje-standard startpolicyar har dokumenterte inverse handlingar, og ei omlasting er ei driftsendring snarare enn ein antaking om at kvar assosiasjon vart oppdatert på staden. Gjennomfør omlastingar i trinn der ein gjenoppkopling er akseptabel. Behald den gamle konfigurasjonen til den nye er prova.

Kontroller kva som finst før du feilsøkjer ruting

Køyr dei tre observasjonane i rekkjefølgje: innlasta definisjonar, aktive IKE-SA-ar og child-oppføringar. Kvart svar snevrar inn neste spørsmål. Hopp over eit trinn og du endar med å feilsøkje eit lag som aldri vart bygd.

Byrj med det som er lasta inn, og det som faktisk er etablert:

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

Viss childen manglar medan profilen er riktig, initier han ved namn og sjå kva som skjer. Utdataa seier vanlegvis om den overordna kom opp først.

swanctl --initiate --child hq-lan

Ein aktiv CHILD-SA er ikkje målstreken. Videresendingsreglar, ruter og applikasjonen si eiga autorisasjon må framleis stemme. Livssyklusen svarar på kva som vart forhandla; han kan ikkje avgjere kven som får bruke tenesta.

Relaterte artiklar