Die meeste mense lees AllowedIPs as 'n toestemmingslys, die versameling adresse wat aan 'n eweknie mag koppel, amper soos 'n firewallreël wat vir 'n tonnel geskryf is. Dit is nie so nie. Die veld is 'n roetetabel wat in albei rigtings werk: dit kies 'n eweknie vir 'n uitgaande pakket en dit valideer die bron van 'n inkomende een. Om dit as 'n toegangslys te lees, lewer konfigurasies wat verkeer roeteer waarvoor niemand gevra het nie.

Een veld, twee lesers: keuse vir uitgaande en bronkontrole

By 'n kliënt besluit die voorvoegsels watter bestemmings na daardie eweknie reis en watter op die gewone netwerk bly. 'n Inskrywing vir 0.0.0.0/0 vang dus elke IPv4-bestemming, en daarom stuur die invoer van 'n volledige tonnelprofiel gewone blaaiwerk deur die afgeleë masjien. Smal inskrywings doen die teenoorgestelde: hulle roeteer net die netwerke wat jy gelys het en laat al die res waar dit was. Die afdeling oor kriptosleutelroetering in die WireGuard-dokumentasie noem albei take op een plek: keuse van die uitgaande eweknie en validering van die inkomende bron.

Op die bediener beskryf dieselfde veld watter bronadresse elke eweknie mag gebruik. Dit is 'n kriptografiese kontrole eerder as 'n pakketfilter: 'n pakket waarvan die binneste bron nie by die eweknie se lys pas nie, word binne WireGuard laat val voordat enige gasheer-firewall dit sien. Albei take deel een lys, en dit is presies hoekom 'n lys wat van elders gekopieer is, op 'n plek misgaan wat jy nie oorweeg het nie.

Die kliëntblok is waar die meeste van hierdie verwarring begin. 'n Gesplete tonnel noem die afgeleë netwerke, en 'n volledige tonnel is dieselfde veld met 'n verstekvoorvoegsel:

[Peer]
# split tunnel: only these networks
AllowedIPs = 10.77.0.0/24, 192.168.30.0/24

[Peer]
# full tunnel: everything, both families
AllowedIPs = 0.0.0.0/0, ::/0

Albei vorms is op hul eie volledig, en hulle is alternatiewe eerder as stappe. Die eerste stuur net daardie twee netwerke deur die tonnel; die tweede stuur elke bestemming, met die ::/0-inskrywing wat IPv6 by die IPv4-verstek voeg. Watter een jy ook al kies, daardie voorvoegsels is die hele roetebesluit vir daardie eweknie sodra wg-quick begin om roetes te installeer.

Die hub het 'n ander lys nodig

'n Hub lys elke kliënt se tonneladres as 'n gasheervoorvoegsel, plus enige netwerk wat werklik agter daardie kliënt lê. Om 'n kliënt se breë lys op elke hub-eweknie te kopieer, sê vir die hub dat baie eweknieë dieselfde adresse as bron mag gebruik, wat nie 'n adresplan is nie. Die Endpoint-veld hoort heeltemal by 'n ander laag: dit noem die eweknie se buitenste adres en poort, nooit 'n bestemming binne die tonnel nie.

[Peer]
# laptop: tunnel address 10.77.0.2, office LAN behind it
AllowedIPs = 10.77.0.2/32, 192.168.30.0/24

Die gasheervoorvoegsel dra die tonneladres en die netwerkvoorvoegsel dra wat agter die kliënt sit, en albei is nodig. Sonder die gasheervoorvoegsel kan die hub nie die kliënt se eie verkeer terugstuur nie, en sonder die netwerkvoorvoegsel bly die LAN daar agter onbereikbaar; 'n eweknie met niks agter hom kry net die gasheervoorvoegsel.

Roete-installasie oorslaan laat 'n gaping

wg-quick, die helper wat 'n koppelvlak uit 'n konfigurasielêer opbring, installeer koppelvlakadresse en roetes as deel van daardie werk. Om Table = off te stel, sê vir die helper om die roetewerk oor te slaan, wat nie plaasvervangers installeer nie en nie die private netwerk bereikbaar maak nie. Wanneer outomatiese roetes reeds die werk doen, is dit die duideliker konfigurasie om die voorvoegsels te noem wat jy nodig het. Om roetebestuur af te skakel en die plaasvervanger ongeskrewe te laat, is nie 'n ontwerp nie, dit is 'n weglating.

Die basiese wg-nut tree anders op: dit stel die koppelvlak op en raak nooit roetes nie, so 'n opstelling wat direk daarop gebou is, het sy eie roetebevele nodig. Instruksies wat vir een nut geskryf is, kan verkeerd lyk wanneer dit teen die ander gevolg word. 'n Suksesvolle ping is ook swak bewyse, want dit toets een pad eerder as elke toepassingspad wat jy nodig het.

DNS en IPv6 word afsonderlik beslis

Kontroleer die DNS-bedieneradres wat die tonnel adverteer, en bevestig dat daar 'n roete na daardie adres bestaan deur die voorvoegsels wat jy gekies het. 'n Oplosser-instelling maak nie die oplosser bereikbaar nie, en om 'n tonnel te vernou kan die roete wat dit vroeër bereik het, stilweg verwyder. Ondersoek IPv6 ook op sy eie, want 'n korrekte IPv4-splitsing sê niks oor 'n IPv6-verstekroete wat steeds na die fisiese skakel wys nie. Drie afsonderlike besluite kan gelyktydig verander wanneer jy een eweknieblok redigeer.

Maak dan een private hulpbron en een gewone webwerf oop vanuit 'n bekende beginopstelling. As die hulpbron antwoord en blaaiwerk steeds deur die plaaslike verbinding gaan, doen die splitsing wat jy gevra het. As blaaiwerk op dieselfde oomblik breek, het die tonnel die verstekroete geneem, en die voorvoegsellys is waar jy moet kyk.

Verwante artikels