Se pare că problema mea cu tunelul divizat a fost plasată într-o zonă complet diferită, deoarece am 2 routere acasă, așa că rețeaua mea de acasă este ceva de genul: ISP <-> R1 <-> R2 <-> Eu.
... și R1 a fost configurat la o adresă IP în intervalul 10.0.0.0/24.
Când dezactivați rutarea implicită în clientul VPN Windows, va adăuga apoi o rută bazată pe clasă instalată, așa că în cazul meu va adăuga o rută care trimite totul pentru 10.0.0.0/8 prin VPN, ceea ce, desigur, ar intra în conflict cu configurarea. pe routerul R1.
Acesta este motivul pentru care am vrut să elimin complet ruta 10.0.0.0/8 și să împing rute pentru subrețele 10.88.0.0/16
și 10.0.200.0/16
prin VPN.
Se dovedește că este realizabil.
Rutarea bazată pe clasă este eliminată prin activare dezactivați rutarea bazată pe clasă
când dezactivați rutare implicită
în clientul VPN.
În Strongswan, trebuie să redirecționați cererea dhcp de la clienți către un server DHCP care a implementat RFC3442.
Deci, în configurația mea de mai sus, trebuie să înlocuiesc toate aparițiile pool-uri = IkeVPN-ipv4
cu piscine = dhcp
si in strongswan.conf
Trebuie să adaug următoarele la subsecțiunea plugin-uri charon:
charon {
pluginuri {
...
dhcp {
server = ip.address.of.dhcp.server
}
}
}
Apoi pot șterge întregul piscine
secțiunea din partea de jos a configurației mele.
Mai sunt câteva opțiuni disponibile care poate fi citit aici.
Ghidul de la Strongswan de la @ecdsa indiciu a oferit câteva dintre informații, dar acel ghid este specific pentru Windows, așa că nu vă va spune cum să gestionați dispozitivele Linux, MacOS sau Android. RFC3442 se va ocupa totuși de cazul generic.
Pe scurt, ceea ce spune RFC3442 este că trebuie să trimiteți următoarele două opțiuni dhcp:
- opțiunea 121 (referită la Linux, Android și Windows Vista sau mai vechi)
- opțiunea 249 (referită la Windows 7 sau mai nou și MacOS)
Practic, trebuie să codificați fiecare rută ca o matrice de int folosind următoarea sintaxă:
x,y1,y2,y3,y4,z1,z2,z3,z4
Unde:
- x: mască de rețea CIDR
- y1 - y4: este rețeaua pe care doriți să o direcționați, dar cu răsucirea că atunci când coada secvenței y1,y2,y3,y4 este toate zerouri, acestea sunt apoi omise.
- z1 - z4: este poarta nexthop către subrețea.
Dacă există mai multe rute de trimis prin DHCP, atunci va trebui să adăugați o altă secvență similară cu cea de mai sus la coada primului router.
Conform documentației Strongswan, pot înlocui gateway-ul standard cu 0.0.0.0
.
Asta înseamnă drumul meu către 10.0.200.0/24
este codificat ca 24,10,0,200,0,0,0,0
și 10.88.0.0/16
este codificat pentru 16,10,88,0,0,0,0
.
Combinarea celor două îmi dă 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0
, ceea ce mă duce la următoarea configurație în Server ISC DHCP
:
opțiunea rfc-routes cod 121 = matrice de întreg 8;
opțiunea ms-routes cod 249 = matrice de întreg 8;
default-lease-time 21600;
max-lease-time 86000;
subnet 10.0.201.0 netmask 255.255.255.0 {
interval 10.0.201.1 10.0.201.254;
opțiunea nume-domeniu „example.com”;
opțiune domain-name-server ip.address.of.dns.server;
opțiunea rfc-routes 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
opțiunea ms-routes 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
}
Sper că acest lucru va ajuta pe oricine se confruntă cu tunelul divizat.