Când IKEv2 returnează TS_UNACCEPTABLE, comparați subrețelele reale
Un refuz de selector este o neînțelegere privind acoperirea între două părți. Inversați etichetele locală și la distanță, apoi comparați intervalele exacte pe care le propune fiecare parte.
Citiți TS_UNACCEPTABLE ca o neînțelegere privind acoperirea, nu ca un profil corupt. Gateway-ul spune că cele două părți nu au reușit să cadă de acord asupra adreselor pe care le poate transporta acest tunel. IKE SA poate fi deja stabilită în acel moment, motiv pentru care un client poate părea conectat fără nicio SA copil în spate. Odată formulat astfel, munca devine mecanică. Notați prefixele intenționate ale ambelor părți, comparați-le într-o singură direcție și îngustați până când se intersectează.
Notați mai întâi perechile intenționate
Înainte de a atinge configurația, enumerați patru valori: intervalul sursă al inițiatorului, intervalul său destinație și aceeași pereche văzută din partea respondentului. Notați și familia de adrese a fiecăruia. Un interval IPv4 și un interval IPv6 sunt tipuri diferite de selector, iar niciunul nu poate fi pliat în payload-ul celuilalt.
Adăugați orice restricție de protocol sau port pe care o poartă politica. O regulă care permite doar TCP 445 către un server de fișiere descrie o mulțime mai îngustă decât subrețeaua în care se află. Dacă lăsați asta în afara notițelor, rezultatul negocierii va părea inconsistent din motive pe care nu le vedeți.
Inversați etichetele înainte de a le compara
Local și la distanță sunt etichete relative. Prefixul local al clientului este intervalul la distanță al gateway-ului, iar intervalul local al gateway-ului este cel la distanță al clientului. De aceea capturile de ecran de la cele două capete nu se potrivesc niciodată, iar compararea lor literală este modul obișnuit de a pierde o după-amiază.
Un respondent poate îngusta o ofertă la o submulțime acceptabilă în loc să o respingă. Acel rezultat este mai rău decât un eșec curat, pentru că funcționează pe jumătate. Cereți 10.0.0.0/16 când politica permite 10.0.5.0/24 și puteți ajunge cu o SA copil care acoperă doar acel /24. Un singur host răspunde, tot restul cade în afara, și nimic din client nu spune asta. Citiți selectoarele acceptate, nu pe cele cerute, înainte de a concluziona că negocierea a reușit.
Profilele road warrior care cer o rută implicită ajung aici constant. Un gateway construit pentru acces divizat îngustează o ofertă cu interval complet la propriile subrețele, iar clientul trebuie să accepte rezultatul îngustat sau să eșueze zgomotos.
Citiți refuzul dintr-o singură încercare
Colectați ambele jurnale din aceeași încercare de conectare. Un profil salvat arată ce ați configurat, nu ce a fost propus, iar pe strongSwan swanctl --log tipărește notificarea primită împreună cu selectoarele pe care le purta.
Apoi inspectați ce s-a instalat de fapt. swanctl --list-sas arată selectoarele SA copil, iar ip xfrm policy arată aceleași intervale ca intrări de politică ale nucleului. O SA copil în acea listă cu selectoare pe care nu le-ați intenționat este un eveniment de îngustare; nicio SA copil plus TS_UNACCEPTABLE în jurnal înseamnă un refuz.
Cât timp sunteți acolo, separați vecinii apropiați. INVALID_SELECTORS se plânge de un selector din interiorul unei SA copil stabilite, în timp ce INTERNAL_ADDRESS_FAILURE înseamnă că respondentul nu a putut aloca o adresă virtuală, ceea ce este o problemă de bazin și nu de acoperire.
Verificați ce micșorează mulțimea în tăcere
Trei lucruri micșorează o mulțime de selectoare fără să spună nimic. Politica respondentului este prima, prin liste de subrețele, reguli de grup sau autorizare pe utilizator care reduc oferta la o submulțime. Familia de adrese este a doua: un client cu stivă dublă propune adesea IPv6 alături de IPv4 și primește un refuz pentru intervale pe care gateway-ul nu le-a configurat niciodată.
Restricțiile de protocol și de port sunt a treia. Acolo unde politica permite doar TCP 445, o SA copil poate urca în timp ce ICMP și UDP rămân în afara ei, iar utilizatorul raportează un tunel rupt când un singur protocol era tot ce fusese vreodată permis.
Prin urmare, lărgirea doar a adreselor nu poate repara o politică restricționată pe port, iar acesta este exact cazul care va supraviețui cel mai probabil neschimbat după trei runde de depanare.
Dovediți acoperirea cu trafic care se potrivește
După ce SA copil este instalată, trimiteți o cerere care cade sigur în intervalele acceptate. Uitați-vă la contoare în locul pictogramei de stare: ip -s xfrm state și contoarele din spatele ip xfrm policy cresc când un pachet este potrivit și protejat. Un număr de octeți care rămâne zero după trafic real înseamnă că nucleul nu a selectat niciodată acea politică.
Acel zero este o problemă de rutare sau de ordine a politicilor, nu de criptografie. Arată, de asemenea, identic cu un refuz de selector din poziția utilizatorului, motiv pentru care merită colectate contoarele înainte de a redeschide profilul. Contoarele care urcă doar într-o singură direcție indică mai degrabă calea de întoarcere.
Încheiați scriind perechea acceptată în tichet, lângă intervalul care a fost cerut inițial. Păstrați selecția la fel de îngustă ca cerința, pentru că ștergerea erorii prin înlocuirea unui interval privat cu toate adresele acordă mult mai mult acces decât a fost aprobat pentru cont.