AllowedIPs is een routeringslijst, geen firewallregel
Het kiest een peer voor uitgaand verkeer en valideert inkomende bronnen. Het is geen toegangslijst, en routebeheer uitschakelen lost een gesplitste tunnel niet op.
De meeste mensen lezen AllowedIPs als een toegangslijst, de verzameling adressen die met een peer mogen verbinden, ongeveer als een firewallregel die voor een tunnel is geschreven. Dat is het niet. Het veld is een routeringstabel die in beide richtingen werkt: het kiest een peer voor een uitgaand pakket en valideert de bron van een inkomend pakket. Wie het als toegangslijst leest, maakt configuraties die verkeer routeren waar niemand om heeft gevraagd.
Eén veld, twee lezers: keuze uitgaand en broncontrole
Bij een client bepalen de prefixen welke bestemmingen naar die peer gaan en welke op het gewone netwerk blijven. Een vermelding voor 0.0.0.0/0 vangt dus elke IPv4-bestemming, en daarom stuurt het importeren van een volledig-tunnelprofiel gewoon browsen via de externe machine. Smalle vermeldingen doen het omgekeerde: ze routeren alleen de netwerken die u hebt opgegeven en laten al het andere waar het was. De sectie over cryptosleutelroutering in de WireGuard-documentatie noemt beide taken op één plek: de keuze van de uitgaande peer en de validatie van de inkomende bron.
Op de server beschrijft hetzelfde veld welke bronadressen elke peer mag gebruiken. Dat is een cryptografische controle en geen pakketfilter: een pakket waarvan de interne bron niet overeenkomt met de lijst van de peer wordt binnen WireGuard weggegooid voordat enige firewall op de host het ziet. Beide taken delen één lijst, en daarom precies gedraagt een lijst die elders is gekopieerd zich verkeerd op een plek waar u niet aan had gedacht.
Het clientblok is waar het meeste van deze verwarring begint. Een gesplitste tunnel noemt de externe netwerken, en een volledige tunnel is hetzelfde veld met een standaardprefix:
[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
Beide vormen zijn op zichzelf compleet, en het zijn alternatieven in plaats van stappen. De eerste stuurt alleen die twee netwerken door de tunnel; de tweede stuurt elke bestemming, waarbij de vermelding ::/0 IPv6 aan de IPv4-standaard toevoegt. Welke u ook kiest, die prefixen zijn de hele routeringsbeslissing voor die peer zodra wg-quick routes begint te installeren.
De hub heeft een andere lijst nodig
Een hub vermeldt het tunneladres van elke client als hostprefix, plus elk netwerk dat werkelijk achter die client ligt. De brede lijst van een client naar elke hub-peer kopiëren vertelt de hub dat veel peers dezelfde adressen als bron mogen gebruiken, en dat is geen adresplan. Het veld Endpoint hoort bij een heel andere laag: het noemt het buitenadres en de poort van de peer, nooit een bestemming binnen de tunnel.
[Peer]
# laptop: tunnel address 10.77.0.2, office LAN behind it
AllowedIPs = 10.77.0.2/32, 192.168.30.0/24
Het hostprefix draagt het tunneladres en het netwerkprefix draagt wat achter de client ligt, en beide zijn nodig. Zonder het hostprefix kan de hub het eigen verkeer van de client niet terugsturen, en zonder het netwerkprefix blijft het LAN erachter onbereikbaar; een peer zonder iets erachter krijgt alleen het hostprefix.
Route-installatie overslaan laat een gat
wg-quick, de helper die een interface uit een configuratiebestand opzet, installeert interfaceadressen en routes als onderdeel van dat werk. Table = off instellen vertelt de helper het routewerk over te slaan, wat geen vervangingen installeert en het privénetwerk niet bereikbaar maakt. Wanneer automatische routes het werk al doen, is het noemen van de prefixen die u nodig hebt de duidelijkere configuratie. Routebeheer uitzetten en de vervanging ongeschreven laten is geen ontwerp, het is een weglating.
Het basishulpmiddel wg gedraagt zich anders: het configureert de interface en raakt nooit routes aan, dus een opzet die er direct op is gebouwd heeft eigen routecommando's nodig. Instructies die voor het ene hulpmiddel zijn geschreven, kunnen verkeerd lijken wanneer ze met het andere worden gevolgd. Een geslaagde ping is ook zwak bewijs, omdat hij één pad test in plaats van elk applicatiepad dat u nodig hebt.
DNS en IPv6 worden apart besloten
Controleer het DNS-serveradres dat de tunnel aankondigt, en bevestig dat er via de gekozen prefixen een route naar dat adres bestaat. Een resolverinstelling maakt de resolver niet bereikbaar, en een tunnel versmallen kan de route die erheen leidde stil verwijderen. Onderzoek IPv6 ook afzonderlijk, want een correcte IPv4-splitsing zegt niets over een IPv6-standaardroute die nog naar de fysieke verbinding wijst. Drie afzonderlijke beslissingen kunnen tegelijk veranderen wanneer u één peerblok bewerkt.
Open daarna één privébron en één gewone website vanuit een bekende startconfiguratie. Als de bron antwoordt en browsen nog steeds via de lokale verbinding naar buiten gaat, doet de splitsing wat u vroeg. Als browsen op hetzelfde moment breekt, heeft de tunnel de standaardroute genomen en is de prefixlijst de plek om te kijken.