De ce o VM Azure cu aparat VPN pierde calea de întoarcere
Un aparat VPN într-un VM Azure are nevoie ca UDR-ul, steagul de redirecționare al plăcii de rețea și politica invitatului să fie de acord. Urmăriți o cerere de sucursală prin toate trei.
Un VM Azure care rulează un aparat VPN se află în interiorul a două sisteme de decizie independente. Azure decide pe unde un pachet părăsește o subrețea, folosind tabele de rute și setarea de redirecționare a plăcii de rețea. Sistemul de operare al aparatului decide dacă redirecționează pachetul decriptat. Un tunel care se ridică perfect poate eșua totuși în al doilea sistem, și acolo se opresc majoritatea acestor implementări.
Trei proprietari ai unei singure căi
Luați o rețea de sucursală 192.168.50.0/24 și o subrețea de lucru 10.0.10.0/24, cu aparatul la 10.0.0.4 în propria subrețea. O singură cerere atinge trei configurații separate.
| Decision | Configured in | How it fails |
|---|---|---|
| Where the workload subnet sends branch traffic | Azure route table entry | Traffic leaves the subnet and never reaches the appliance |
| Whether a NIC may accept traffic not addressed to it | Azure NIC IP forwarding | Packets arrive and disappear at the interface |
| Whether the guest forwards decrypted traffic | Guest OS or vendor appliance policy | Tunnel is up, workload is unreachable |
| Whether the workload accepts the source | NSG and service policy | Requests delivered, replies refused |
Fiecare rând este deținut de o echipă diferită în majoritatea organizațiilor, motiv pentru care această defecțiune ajunge de obicei ca trei tichete în loc de unul.
Ruta care indică spre aparat
Asociați un tabel de rute cu subrețeaua de lucru și dați prefixului sucursalei un salt următor de tipul Virtual appliance cu 10.0.0.4 ca adresă. Folosiți adresa privată accesibilă a aparatului, niciodată punctul său de intrare public VPN. Saltul următor trebuie să fie o adresă pe care subrețeaua de lucru o poate deja atinge. Lăsați restul rutării sarcinii de lucru în pace, dacă nu ați decis în mod deliberat să înlocuiți ruta implicită.
Țineți aparatul în propria subrețea și asigurați-vă că ruta care trimite traficul sucursalei către aparat nu captează și calea de ieșire proprie a aparatului. O astfel de buclă arată ca un tunel sănătos fără răspunsuri, și este un lucru foarte neplăcut de depanat la ora 2 noaptea.
Steagul plăcii de rețea pe care toți îl uită
Azure are o setare de redirecționare IP pentru fiecare placă de rețea, iar aceasta este oprită implicit. Există pentru că o placă ce redirecționează primește pachete adresate altcuiva, iar aruncarea lor în tăcere este setarea implicită sigură pentru toți ceilalți.
az network nic update --resource-group rg-net --name appliance-nic --ip-forwarding true o activează pentru o singură interfață. Ghidul Microsoft despre redirecționarea pe placa de rețea cere setarea pe fiecare placă conectată care redirecționează trafic, așa că un aparat cu o singură placă tot are nevoie de ea pe acea placă.
Steagul nu este o rută și nu este o regulă de firewall. Activarea lui acordă permisiune și nimic altceva.
Ce face invitatul cu pachetul decriptat
După ce tunelul se termină, stiva proprie a aparatului ia următoarea decizie. Pe un invitat Linux, redirecționarea IPv4 este o setare de execuție, și sysctl -w net.ipv4.ip_forward=1 durează până la următoarea pornire. Salvați-o într-un fișier sub /etc/sysctl.d/ în schimb. Un aparat de la un producător are propriul echivalent, iar instrucțiunile Linux lipite într-o platformă a producătorului de obicei nu fac absolut nimic.
Politica de firewall a invitatului este din nou separată, la fel și grupul de securitate de rețea al sarcinii de lucru. Permiterea UDP 500 și 4500 către adresa publică a VM-ului protejează tunelul; nu spune nimic despre dacă o cerere de sucursală decriptată poate ajunge la un port al sarcinii de lucru.
Urmăriți o cerere și răspunsul ei
Alegeți un singur flux permis și urmăriți-l de la un capăt la altul. Sucursala are nevoie de o rută pentru 10.0.10.0/24 prin conexiunea de sit, aparatul are nevoie de o cale de livrare către subrețeaua de lucru, iar subrețeaua de lucru are nevoie de o rută de întoarcere spre sucursală.
Decideți devreme dacă proiectul păstrează adresa de sursă a sucursalei sau o traduce. NAT schimbă ce vede sarcina de lucru, așa că regulile ei de acces ar trebui să descrie modelul pe care l-ați ales de fapt, nu o adresă de gateway presupusă.
O strângere de mână reușită dovedește o verigă din acel lanț. Calea este completă când răspunsul se întoarce prin același aparat și politica proprie a sarcinii de lucru permite acest lucru.