Du har fået tunnelen op, rekey-timeren tæller ned, og begge retninger viser stadig nul pakker. Det talpar siger ikke, at peer har afvist din tunnel: en installeret CHILD SA med inaktive tællere er den normale tilstand for en association, som intet endnu har matchet. Opgaven er at bevise, at en pakke burde have matchet, og derefter finde det punkt, hvor den forlod den vej, selektorerne beskriver. Gør det én gang, i rækkefølge, og hold forespørgslen identisk mellem kørslerne.

Hvad en nultæller egentlig beviser

En CHILD SA er et selektorpar plus de nøgler og SPI'er, der krypterer trafik, som falder inden for disse intervaller. At installere den betyder kun, at begge parter er blevet enige om intervallerne og de afledte nøgler; kernen holder den i timer uden at en enkelt pakke ankommer. Spørgsmålet er derfor aldrig, om tunnelen findes, men om nogen pakke fra din test er faldet inden for de intervaller, de to parter forhandlede. Hvis ikke, bliver tællerne på nul, og associationen udløber ubrugt ved slutningen af sin levetid.

Den forskel ændrer, hvad du undersøger først. Et afvist forslag, en mislykket godkendelse eller en døende IKE SA dukker op i loggen eller i SA-listen, ikke som et stille nul. En tunnel, der forhandler rent og derefter står stille, peger i stedet på matchning, routing eller oprindelsen af testtrafikken.

Send en strøm, du kan beskrive, før du sender den

Vælg en destination inde i det beskyttede subnet, og åbn en ny forbindelse til den; en side, du indlæste for en time siden, kan komme fra cachen, og et cachet svar rører aldrig tunnelen. Skriv derefter fire værdier ned, mens forespørgslen stadig er hypotetisk: kildeadressen, som applikationen binder, destinationen, adressefamilien og navnet eller selektorparret på det barn, du overvåger. Den registrering er det, der gør en flad tæller til en påstand, der kan testes.

Kildeadressen er den værdi, folk springer over, og den er den, der oftest ødelægger testen. En bærbar computer med en kablet adresse, en Wi-Fi-adresse og en tunneladresse kan binde enhver af dem afhængigt af ruteopslaget, og kun én kan ligge inden for det forhandlede interval. Brug et værktøj, der lader dig fastgøre kilden, for eksempel ping -I 10.1.0.5 10.2.0.9 eller curl --interface 10.1.0.5, så pakken ikke stille kan vælge en anden adresse. Når den fastgjorte kørsel flytter tællerne, og den ikke-fastgjorte ikke gør, har du fundet et routingproblem og ikke et IPsec-problem.

Hvilke tal du skal læse, og hvor de bor

På Linux udskriver ip -s xfrm state hver association med en lifetime current:-linje, hvis byte- og pakkesum kun tilhører den SA, efterfulgt af en stats:-linje til genafspilnings- og fejltællere. Hos en strongSwan-peer viser swanctl --list-sas én in-linje og én out-linje pr. installeret barn, og hver slutter med et byte- og et pakketal; de ældre stroke-værktøjer kalder det samme par bytes_i og bytes_o. Læs de to retninger hver for sig, for den retning, der blev flad, er fundet. At lægge dem sammen skjuler netop den asymmetri, du leder efter.

Begge visninger er pr. association, så en rekey installerer et friskt SPI-par, og din basislinje vender tilbage til nul, uden at noget er i stykker. Noter det SPI, du overvåger, før rekey-timeren udløser, ellers sammenligner du en ny SA med et gammelt tal. Hvis udgående stiger, mens indgående forbliver fladt, matchede selektoren, og svaret kom aldrig tilbage, hvilket flytter undersøgelsen til peerens videresendelse og dens egen politik. strongSwans dokumentation til IKEv2-konfiguration dækker den underordnede SAs livscyklus og rekey-tidspunktet bag disse tal.

Observationspunktet er en separat variabel fra pakkens oprindelse. En hardware-offload kan øge associationens tællere, mens en softwareoptagelse på interfacet ikke viser noget, fordi offloadede pakker springer det hook over, som optagelsen sidder på, og indgående trafik kan afvige på samme måde. Når de to er uenige, brug tællerne til at svare på, om noget matchede, og optagelsen til at svare på, hvordan pakken så ud.

Rute, selektorer og hvor pakken blev født

Sammenlign tre ting side om side: den rute, kernen vælger til din destination, den politik, der leder trafik ind i tunnelen, og det selektorpar, barnet forhandlede. ip route get 10.2.0.9 from 10.1.0.5 angiver det interface og den kilde, kernen ville bruge, og det er ofte ikke det par, du antog. ip xfrm policy viser de lokalt installerede skabeloner og selektorer, mens swanctl --list-sas viser, hvad peer accepterede. Et opslag, der sender pakken ud ad det fysiske interface, når slet ikke politikken, så tællerne kan ikke flytte sig.

Uoverensstemmelser kommer i flere varianter, der ser ens ud fra en tæller. En IPv6-destination uden for en IPv4-selektor, en kildeadresse fra det forkerte subnet og en politik, der er smallere end barnet, giver alle det samme nul. Ret den smalleste årsag først, for at udvide en selektor blot for at flytte et tal ændrer, hvad tunnelen beskytter.

Så er der pakkens oprindelse, den fælde en gateway stiller for sin egen operatør. Trafik, som gatewayen selv genererer, matches mod outputpolitikken, mens en pakke, den videresender for en klient, matches mod forwardpolitikken, så en ping fra boksen kan lykkes på en vej, ingen klient nogensinde tager.

Én reversibel ændring og en rapport, der holder til gennemsyn

Skift et enkelt element, gentag den identiske forespørgsel og læs de samme tællere. At rydde alle firewallregler eller erstatte alle selektorer på én gang flytter et tal og ødelægger det bevis, der fortalte dig hvorfor. Hvis den anden kørsel stadig viser nul, har du udelukket én hypotese i stedet for at spilde eftermiddagen.

Skriv fundet i en form, som andre kan genskabe: barnets navn, accepterede intervaller, den kilde du fastgjorde, den destination du testede, den retning der blev på nul, og det SPI du læste. Den sætning adskiller en association, ingen har brugt, fra en fjernapplikation, der modtog trafikken og afviste den. Rul ændringen tilbage, når den ikke flyttede tællerne, og behold registreringen; den næste begynder, hvor du stoppede. Intet i tunnelen skulle genopbygges for dette, og det er pointen i at kontrollere matchning, før du rører ved konfigurationen.

Relaterede artikler