Pi-hole v6 kritt eng DNS-Ufro op Port 53 a entscheet dann, ob dem Paket, deen ukomm ass, däerf geäntwert ginn. Op engem WireGuard-Host ass déi zweet Entscheedung meeschtens de Grond, firwat e Client en Timeout kritt, während den Resolver aus dem LAN gesond ausgesäit. De Port ass op, FTL leeft, an nach ëmmer kënnt näischt vun 10.90.0.1 zréck. Dräi Saachen interagéiere mateneen, ier eng Äntwert erausgeet: dns.interface, dns.listeningMode an d'Firewall virun deenen zwee.

Den nogekuckten Socket entscheet net, wien eng Äntwert kritt

FTL mécht UDP- an TCP-Listener op Port 53 op. An der Standardkonfiguratioun ass de Socket dacks wildcard, dofir ss -lunp | grep :53 weist 0.0.0.0:53 an [::]:53, egal ob VPN-Cliente bedéngt ginn oder net. En wildcard-Socket hëlt de Paket un, duerno applizéiert FTL seng Interface- a Quellregelen, ier en äntwert. Dofir beweist "de Port lauschtert" ganz wéineg iwwer en Tunnelclient.

Liest déi lafend Konfiguratioun anstatt d'Datei, déi Dir fir aktiv haalt. pihole-FTL --config dns.interface an pihole-FTL --config dns.listeningMode drécken déi effektiv Wäerter aus, an si kënne vun der Hostdatei ofwäichen, wann e Container, eng Ëmweltvariabel oder en Deploymanager d'Astellung huet. D' Pi-hole-FTL-Konfiguratiounsreferenz zielt d'Modi op a wéi en dovun op d'Interface ukommt.

LOCAL freet wéi ee Subnetz, SINGLE freet wéi eng Interface

LOCAL, den Standard, äntwert op Ufroe, deenen hir Quelladress zu engem Subnetz gehéiert, deen op enger vun den Interfaces vum Host konfiguréiert ass. E einfache wg0 mat 10.90.0.1/24 besteet dësen Test, well de Client op 10.90.0.2 bannent dem Subnetz vum Tunnel sëtzt. E geroutete Client op der anerer Säit vun engem Peer, oder ee verstanzen hannert NAT an engem anere Präfix, besteet en net, obwuel de Paket op wg0 ukomm ass, an et erschéngt keng Ufro am Log.

SINGLE ännert d'Fro. Et akzeptéiert Ufroe, déi op der Interface ukommen, déi an dns.interface genannt ass, mat Loopback dobäi, an ignoréiert de Quellsubnetz. Dat ass de Modus, deen eng verketten oder geroutete VPN-Topologie iwwerlieft. Setzt béid Schlësselen zesummen, well e Modus ouni genannt Interface keng vollstänneg Instruktioun ass:

sudo pihole-FTL --config dns.interface "wg0"
sudo pihole-FTL --config dns.listeningMode "SINGLE"

BIND ännert de Socket, an dat huet e Präis

BIND filtert keen wildcard-Socket; en bindet de Port 53 nëmmen un Adressen, déi op der genannt Interface existéieren, sou datt de Kernel Paketen ofleet, déi anerwäerts ukommen. En ass méi streng wéi SINGLE a keen Synonym dofir. De Präis weist sech beim Boot: wann wg0 net uewen ass, wann FTL start, gëtt et vläicht keng Adress ze bannen, an den Resolver kann ouni Listener lafen, bis d'Interface erschéngt an FTL nei start.

Wielt BIND, wann Dir d'Startuerdnung kontrolléiert, zum Beispill eng systemd-Unit, déi no der WireGuard-Interface geuerdnet ass, a wann Dir wëllt, datt de Kernel verluer Paketen ofleet, ier FTL se gesäit. Wielt SINGLE, wann den Tunnel kënnt a geet, oder wann d'Interface vun engem Tool erstallt gëtt, dat no FTL start.

D'Firewall ass déi zweet Paart

E richtegen FTL-Modus schléit nach ëmmer feel, wann d'Host-Firewall de Port 53 op wg0 ofleet. Loosst de VPN-Quellberäich fir béid Protokoller duerch a haalt d'Internetsäit zou. An nftables, mat der existéierender input-Kette an der Tabell inet filter, gesinn d'Regele sou aus:

sudo nft add rule inet filter input iifname "wg0" ip saddr 10.90.0.0/24 udp dport 53 accept
sudo nft add rule inet filter input iifname "wg0" ip saddr 10.90.0.0/24 tcp dport 53 accept

Füügt entspriechend IPv6-Regele bäi, wann den Tunnel IPv6 dréit, a setzt se virun d'Drop-Politik vun der Kette. Wann den Host ufw oder firewalld benotzt, dréckt déiselwecht Iwwereneestëmmung an deem Manager aus, anstatt Tools ze vermëschen. Leet de Port 53 net vum Internetrouter weider; d'Cliente sollten d'VPN-Adress vum Resolver duerch den Tunnel erreechen.

Zwee Weeër bleiwen getrennt. D'Client-Ufroe enden bei FTL. Dem FTL seng eege Upstream-Sich ginn no der Routingtabell vum Host eraus, déi den Tunnel benotze kann oder net, dofir ass en Resolver, deen äntwert awer näischt Nëtzleches zréckgëtt, en Upstream-Problem. D'Webverwaltung an d'API lauschteren op hiren eegene Porten a brauchen hir eege Restriktioun.

Iwwerpréift d'Äntwert an d'Oflehnung

Vun engem VPN-Client, freet d'Adress vum Resolver iwwer béid Protokoller: dig @10.90.0.1 example.com an dig +tcp @10.90.0.1 example.com. Kuckt duerno de Log vun den Ufroe souzen Administratiounsinterface, fir ze bestätegen, datt FTL d'Ufro opgezeechent huet. En Timeout vum Client ouni Logbäitrag weist op d'Firewall oder de Interfacefilter; e Bäitrag ouni Äntwert weist op d'Upstream-Opléisung.

Test de negative Wee vun engem Host baussen dem VPN. dig @10.90.0.1 example.com sollt oflafen, an ss -lunp um Resolver sollt net de Port 53 un eng ëffentlech Adress gebonnen weisen. Start de Service eemol nei, start dann den Host nei a bestätegt, datt den Resolver nach äntwert, wann wg0 erëm erschéngt. Eng Ufro, déi nëmme bis zum nächsten Neistart funktionéiert, ass keng fäerdeg Ännerung.

Ähnlech Artikelen