Preberite vrstico stanja, ki pravi Security Associations (1 up, 0 connecting), in videti je kot poročilo o enem delujočem tunelu. Dve podomrežji hkrati pošiljata promet skozi njega, zato se številka zdi, kot da laže. Ne laže; šteje asociacije IKE, in ena od njih lahko gosti več otrok. Preberite inventarje, preden se dotaknete predloga ali poti.

Zakaj se naslov in promet ne ujemata

Stari izhod stroke svoj seštevek imenuje varnostne asociacije in ga izpelje iz upravitelja asociacij IKE. Vsaka vzpostavljena asociacija IKE prispeva eno, ne glede na to, koliko CHILD SA je pod njo. En starš IKEv2 običajno nosi več otrok, po enega na par selektorjev prometa, dogovorjeni selektorji otroka pa lahko pokrijejo več kot en naslov ali predpono. Število naslovov v vaši konfiguraciji zato nima stalne zveze s številom v naslovu.

Sodobni izhod včasih pokaže seštevek namesto stare formulacije “up”, demon, ki ga upravlja swanctl, pa se sploh ne vodi po starih nastavitvah stroke. Ne jemljite za samoumevno niti formulacije niti pravila štetja med različicami.

Primerjajte tri inventarje, preden karkoli spremenite

Začnite s tem, kar je naloženo, nato s tem, kar je dogovorjeno, nato s tem, kar resnično premika pakete. To so tri različna vprašanja in vsako ima svoj ukaz.

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

Prvi našteje definicije povezav, ki jih je demon sprejel. Drugi našteje vzpostavljene asociacije IKE z njihovimi otroki, in prav tam se pojavi resnična hierarhija. Definicija, ki je v datoteki, a je ni na prvem seznamu, ni bila nikoli naložena, in nobeno število ponovnih poskusov iniciatorja tega ne popravi. Če namesto tega poganjate stari vmesnik, je enakovreden par ipsec statusall in isti seznam swanctl, odvisno od tega, kateri vtičnik ima konfiguracijo. Ne mešajte orodij med dvema demonoma na istem gostitelju in ne pričakujte enega usklajenega odgovora.

swanctl --list-sas --raw | head -40
ip -s xfrm state

Surova oblika ohranja identifikatorje in selektorje vidne za primerjavo, seznam stanja jedra pa pokaže, kaj sklad meni, da je namestil. Ko se demon in jedro ne strinjata, je bil demon znova zagnan okoli obstoječega otroka ali pa je bil predmet jedra odstranjen pod njim.

Berite hierarhijo, ne seštevka

Ilustrativni vzpostavljeni starš z dvema otrokoma je videti kot eno vozlišče z dvema otrokoma pod seboj, vsak označen s svojim stanjem in načinom. Izpišite dejanski izhod in otroke preštejte sami, namesto da berete povzetek, ki ga je nekdo prilepil s nadzorne plošče.

swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'

En starš z dvema nameščenima otrokoma je zdrav tunel dveh podomrežij. En starš z enim nameščenim in enim manjkajočim otrokom je druga situacija, selektorji manjkajočega otroka pa so tisto, kar je treba primerjati s predlogom oddaljene strani. Med obnovo ključev se stari otrok in njegov nadomestnik lahko za kratek čas pojavita skupaj. Časovni žig shranite skupaj s posnetkom, ker je štetje, vzeto sredi obnove, videti kot podvajanje, tisto po njej pa kot izguba.

Naloženo, nameščeno in promet, ki prehaja

Otrok v nameščenem stanju ima dogovorjene parametre in vnos v jedru. A ni nujno prenesel paketa: selektorji so lahko ožji od pričakovanega prometa, pot pa lahko ta promet pošlje drugam, preden ga tunel sploh vidi. Pošljite tok, ki ustreza dogovorjenim selektorjem, s pooblaščenega gostitelja, nato berite števce otroka namesto naslova. Števec, ki ostane na ničli, medtem ko ustvarjate ustrezen promet, kaže na usmerjanje ali politiko, ne na IKE.

swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'

Zagon imenovanega otroka je namerno dejanje z vidnim rezultatom in ločuje “povezava je nedejavna, ker nihče ni prosil” od “povezava se ne more dvigniti”. Politika pasti na zahtevo se obnaša natanko kot prvi primer, zato preberite nastavitev zagona povezave, preden to imenujete okvara.

Ko je štetje res napačno

Če definicije ni v naloženem inventarju, poglejte nalaganje konfiguracije in katera instanca demona teče. Če je naložena, a se nikoli ne dogovarja, primerjajte predloge, kontekst overjanja in selektorje z nasprotnikom, enega otroka naenkrat. Na poskus spremenite en element in zapišite identifikator, ki ste ga spremenili. Razveljavitev predloga je trivialna, ko veste katerega; to je ugibanje po treh spremembah, ki niso bile nikoli ločene.

Najprej popravite napačno branje. Večina poročil o “manjkajočem” drugem tunelu se konča z dvema nameščenima otrokoma pod enim staršem, in edino, kar je bilo kdaj pokvarjeno, je bila vrstica s povzetkom, ki so ji ljudje zaupali namesto hierarhiji.

Sorodni članki