Trafikkvelgere navngir den indre trafikken som en IPsec-avtale beskytter, og paret forhandles i stedet for å antas. To endepunkter kan autentisere hverandre perfekt og likevel være uenige om hvilke pakker som hører til inne i tunnelen. Den uenigheten er usynlig i tilkoblingsstatusen, som vanligvis rapporterer en sunn tunnel. Å lese velgerne fra begge ender og deretter følge én destinasjon finner den raskere enn noen mengde policyredigering.

Les dem fra begge ender

Hvert endepunkt beskriver sin egen side som lokal og den andre siden som ekstern. Det samme paret med prefikser fremstår derfor byttet om i de to konfigurasjonene, og det er riktig og ikke selvmotsigende. Å snu perspektivet er det første man bør gjøre når en fungerende avtale ser feil ut på papiret. Å sammenligne to filer side ved side uten å bytte dem om gir et avvik som ikke finnes.

Verdiene er ikke alltid enkelt-subnett. IKEv2-velgere kan bære adresseområder, protokollnumre og portområder, og det er slik en policy beskytter én tjeneste i stedet for et helt nettverk. En velger som er smalere enn den tiltenkte trafikken gir en tunnel som bærer noen destinasjoner og stille utelukker andre.

Skriv begge sider inn i én tabell før du endrer noe. Øvelsen avgjør vanligvis spørsmålet uten å røre en konfigurasjonsfil.

Innsnevring er responderens avgjørelse

En initiator foreslår, og respondereren kan bare godta et delsett. IKEv2 lar respondereren snevre inn de tilbudte trafikkvelgerne, og det innsnevrede resultatet er det som faktisk installeres. Å lese initiatorens konfigurasjon beskriver derfor et tilbud, ikke avtalen.

Det er derfor et subnett som legges til klienten kan gi en fungerende tunnel som likevel avviser den nye destinasjonen. Serveren snevret tilbudet inn til det policyen tillater, mens klientens fil fortsatt lister det bredere området. Bare den forhandlede tilstanden viser sannheten: på Linux rapporterer ip xfrm policy og child SA-listen i strongSwans IKEv2-dokumentasjon hva som ble installert og ikke hva som ble bedt om. Når de to er uenige, er det responderens policy som må endres.

Et avvist tilbud er et annet symptom enn et innsnevret. Avvisning vises i forhandlingsloggen og etterlater ingen child-tilknytning i det hele tatt.

Følg én destinasjon fra ende til annen

Velg en ekte destinasjon pluss kildeadressen klienten ville brukt for den, og følg deretter paret gjennom tre uavhengige avgjørelser. Ruten velger en vei, velgeren avgjør om den veien er beskyttet, og brannmuren avgjør om pakken er tillatt. Hver av dem kan feile alene, og en bred velger reparerer ingen av de andre.

ip route get 10.20.30.41
ip xfrm policy list
swanctl --list-sas

Rutespørringen navngir grensesnittet og kildeadressen som ville bære pakken. Policylisten viser om det finnes en samsvarende tunnelpolicy for paret, inkludert retning og nivå. SA-listen viser de forhandlede child-velgerne sammen med tellere, så en child-tilknytning med null pakker etter forsøk på trafikk er signaturen til velgere som utelukker det som sendes. Tre kommandoer, tre forskjellige svar, og bare én av dem forklarer et stille tap.

Hvis child-tellerne beveger seg mens applikasjonen fortsatt feiler, ligger problemet på utsiden av tunnelen. Det flytter undersøkelsen til den eksterne vertens lytter eller brannmur i stedet for til velgerne.

Hold de to målene atskilt

Å beskytte et kontorsubnett og å sende all surfing gjennom en ekstern utgang er forskjellige krav med forskjellige velgere. En profil bygget for det ene passer sjelden for det andre, og å blande dem gir enten en lekkasje eller en ødelagt splitting. Å utvide det beskyttede området betyr å endre begge endepunktene og deres videresendingspolicy, fordi en ensidig endring blir et avvist tilbud. Det er den vanligste måten en fungerende tunnel slutter å virke etter en liten endring.

Velgere beskriver kryptografisk dekning, ruter velger veier, og applikasjoner håndhever sine egne tillatelser. En tunnel som dekker alt, kan fortsatt ikke nå en tjeneste bundet til loopback, og en rute inn i tunnelen trenger fortsatt en velger som inkluderer destinasjonen. Sjekk alle tre mot den samme testforespørselen, og avviket navngir seg selv.

Relaterte artikler