WireGuard Clients übernehmen DNS-Server (10.13.13.1) nicht automatisch via DHCP

Gamecard

Bisher: gamecard
Lieutenant
Registriert
Apr. 2010
Beiträge
864
Ich habe einen stabilen WireGuard-Tunnel zwischen meinem UniFi Gateway (UCG) und einem VPS aufgebaut. Die Verbindung steht technisch (Ping funktioniert durchgehend).

Das Problem: Die automatische Zuweisung des korrekten DNS-Servers (10.14.13.1) an die Clients schlägt fehl. Die Clients erhalten via DHCP nicht die Tunnel-DNS-IP, sondern nutzen weiterhin den Standard-DNS (meist 192.168.1.1).

Aktuell muss ich die DNS-IP (10.14.13.1) auf jedem Client manuell statisch eintragen, damit der Seitenaufbau funktioniert. Das ist bei vielen Clients nicht machbar.

Frage: Wie kann ich erzwingen, dass das UCG diese DNS-IP automatisch an alle Clients verteilt? Warum funktioniert das bei kommerziellen VPN-Anbietern automatisch ?

So sieht der Docker Einstellung
Python:
services:
  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=0
      - PGID=0
      - TZ=Europe/Berlin
      - SERVERURL=7x.xx.xx8.58
      - SERVERPORT=51820
      - PEERS=1
      - PEERDNS=10.14.13.1
      - INTERNAL_SUBNET=10.13.13.0
      - SERVER_ALLOWEDIPS_PEER_1=192.168.1.0/24
    volumes:
      - ./config:/config
      - /lib/modules:/lib/modules
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

  coredns:
    image: coredns/coredns
    container_name: coredns
    restart: unless-stopped
    command: -conf /root/Corefile
    network_mode: service:wireguard
    volumes:
      - ./coredns:/root

Hier eine Client Config :
Python:
[Interface]
PrivateKey = sHNzzTxacLK5zKIg4A54Ug=
Address = 10.13.13.2/32
DNS = 10.14.13.1
MTU = 1300
[Peer]
PublicKey = 5St9EHxcug8Vlnw=
PresharedKey = iktRsdG++IOon0UjD4s=
Endpoint =7x.xx.xx8.58:51820
AllowedIPs = 0.0.0.0/0

Was mache ich da Falsch ?
 
Zuletzt bearbeitet: (die alte DNS ip ist immer noch da neue ist 10.14.13.1)
Auf dem UCG den DNS via DHCP verteilen lassen.
 
  • Gefällt mir
Reaktionen: wirelessy
@AAS
Aber warum funktioniert das bei kommerziellen VPN-Anbietern automatisch ?

 
Ich glaub du vergleichst Äpfel mit Birnen.
Oder hast du hier ebenfalls vom Router nen VPN aufgebaut?
Wohl eher von Client zu VPN, und dann deren Clientsoftware genutzt, die das entsprechend geregelt hat?
 
  • Gefällt mir
Reaktionen: eigsi124 und AAS
@wirelessy

Die VPN-Verbindung läuft direkt über den Router; die Client‑Software des Anbieters verwende ich nicht.

@AAS
Das funktioniert, keine Frage.
Mir ist aber eine Lösung lieber, die out of the box läuft.
 
Gamecard schrieb:
@AAS
Aber warum funktioniert das bei kommerziellen VPN-Anbietern automatisch ?

@wirelessy liefert hier die Antwort.


wirelessy schrieb:
Ich glaub du vergleichst Äpfel mit Birnen.
Oder hast du hier ebenfalls vom Router nen VPN aufgebaut?
Wohl eher von Client zu VPN, und dann deren Clientsoftware genutzt, die das entsprechend geregelt hat?
 
  • Gefällt mir
Reaktionen: eigsi124
Gamecard schrieb:
Die automatische Zuweisung des korrekten DNS-Servers (10.13.13.1) an die Clients schlägt fehl. Die Clients erhalten via DHCP nicht die Tunnel-DNS-IP, sondern nutzen weiterhin den Standard-DNS (meist 192.168.1.1).

Seit wann greift DHCP bei Wireguard?

Oder testest du das in dem LAN wo auch der Endpunkt steht?

Teste mal per Smartphone per Mobilfunk.
 
JumpingCat schrieb:
Seit wann greift DHCP bei Wireguard?
Mich wundert eher, dass in der Client Config ja der DNS Server angegeben ist.
Mein DNS ist Intern mein Adguard und der ist wie oben, einfach in der Config eingetragen und die Config spuckt mir auch mein WG aus.

Oder bin ich jetzt danaben und das Problem ist:
Der Router ist mit WG verbunden und die Clients kriegen vom Router den DNS? Dann müsste man doch die DNS Einstellungen vom Router ändern. Dan wäre weiterhin der Router der Gateway und der DNS und der Router würde als DNS die 10er IP nutzen. Das müsste doch auch gehen?
 
  • Gefällt mir
Reaktionen: blablub1212 und wirelessy
In meinem WireGuard-Profil steht auch der interne DNS (Adguard in Docker). Das funktioniert direkt. Kannst du mal einen Screenshot von der WireGuard-App von einem Client machen? Und wo trägst du den DNS dann händisch ein?
 
„So funktioniert mein Setup:

  1. Der Server: Ich betreibe einen eigenen VPS mit WireGuard-Container und CoreDNS als Gegenstelle im Rechenzentrum.
  2. Das Gateway: Mein UniFi Cloud Gateway (UCG) zuhause fungiert als WireGuard-Client und hält den Tunnel permanent offen.
  3. Das Routing: Der Clou ist das 'Traffic Routing'. Ich definiere im Router einfach die Quell-IPs meiner Geräte. Das Gateway erkennt die Pakete von diesen Quellen, maskiert sie (NAT) und schiebt sie durch den Tunnel. Für den Rest des Internets sieht es so aus, als kämen alle meine Geräte direkt aus dem Rechenzentrum.“
@blablub1212
Gerne
Ich verstehe noch nicht, warum ich die DNS-Server unter DHCP eintragen muss, obwohl sie in der Konfigurationsdatei meines VPN-Anbieters genau so funktioniert.



so sieht die neue docker einstellung

Code:
Services:
  wireguard:
    image: lscr.io/linuxserver/wireguard:latest
    container_name: wireguard
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - SERVERURL=auto
      - SERVERPORT=51820
      - PEERS=6
      - PEERDNS=auto
      - INTERNAL_SUBNET=10.13.14.0
      - ALLOWEDIPS=0.0.0.0/0
      - LOG_CONFS=true
    volumes:
      - /opt/wireguard/config:/config
      - /lib/modules:/lib/modules
      - /opt/wireguard/Corefile:/root/Corefile
    ports:
      - 51820:51820/udp
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
    restart: unless-stopped

und der client:
Code:
[Interface]
Address = 10.13.14.7/24
PrivateKey = 6IB9Ecdm8=
ListenPort = 51820
DNS = 10.13.14.1

[Peer]
PublicKey = U06wuDaGwqabM1s=
PresharedKey = uC2GtCR+VJ+ol28A=
Endpoint = 7x.xx.xxx.12:51820
AllowedIPs = 0.0.0.0/0
 

Anhänge

  • Bildschirmfoto_20260209_173635.png
    Bildschirmfoto_20260209_173635.png
    176,7 KB · Aufrufe: 16
Zuletzt bearbeitet:
laut dem Screenshot, den du hast, ist eben für den WireGuard Client der DNS Server deine 10er IP.
Das hat erstmal nix mit den Clients zu tun, die vom DHCP ne IP Adresse und nen DNS Server zugeordnet bekommen.

Edit: wie sehen denn die DHCP Einstellungen deines Routers aus?
 
Zuletzt bearbeitet:
Eigentlich sind für fast alle VPN die Gateways als DNS vorgesehen.

Also so wie bei Dir die

Gamecard schrieb:

Wohin die VPN Gateway auflöst ist Dein Ding.
Und lass den hier mal weg für das VPN.

Azghul0815 schrieb:
Mein DNS ist Intern mein Adguard und der ist wie oben, einfach in der Config eingetragen
 
Azghul0815 schrieb:
Edit: wie sehen denn die DHCP Einstellungen deines Routers aus?
Hier ist der aktuelle Stand: Sobald ich in den Netzwerkeinstellungen (DHCP) den DNS-Server auf 'Auto' stelle, funktioniert die Namensauflösung im VPN nicht mehr. Befehle wie nslookup laufen dann ins Leere und können keine Adressen auflösen.
 

Anhänge

  • Bildschirmfoto_20260209_180111.png
    Bildschirmfoto_20260209_180111.png
    128,1 KB · Aufrufe: 18
erstmal vielen Dank

@Azghul0815 Das Problem ist, dass der WireGuard-DNS (10.13.14.1) den Clients nicht automatisch zugewiesen wird. Ohne manuelle Konfiguration am Endgerät fallen diese auf den Gateway-DNS (192.168.1.1) zurück. Den globalen Netzwerk-DNS einfach auf die VPN-IP zu ändern, führte sofort zu einem Netzwerkausfall bei allen Non-VPN-Clients, da diese die interne IP nicht erreichen können.

Zur Lösung von @AAS (DNS global via DHCP verteilen): Das führt leider zu demselben Ausfall bei den Non-VPN-Clients. Man könnte zwar einen zweiten DNS als Backup eintragen, damit das Internet wieder geht, aber mein Ziel ist strikt: Non-VPN-Clients sollen den WireGuard-DNS (10.13.14.1) gar nicht erst nutzen.
 
Ok.
Dann skizziere uns doch bitte mal deinen Netzwerktopologie.

Ich ging bisher davon aus
Endgerät - Router mit WG - WG Server - Internet via 10er DNS
In dem Fall wäre es absolut egal ob jeder einzelne Client oder der WG Router (der via DHCP den DNS verteilt als DNS dient und selbst als DNS die 10er IP hat) die DNS Auflösung weiterleitet.

Bitte auch die IP Adress Bereiche der einzelnen Netzwerke mit angeben.
 
  • Gefällt mir
Reaktionen: JumpingCat
Gamecard schrieb:
erstmal vielen Dank

@Azghul0815 Das Problem ist, dass der WireGuard-DNS (10.13.14.1) den Clients nicht automatisch zugewiesen wird. Ohne manuelle Konfiguration am Endgerät fallen diese auf den Gateway-DNS (192.168.1.1) zurück. Den globalen Netzwerk-DNS einfach auf die VPN-IP zu ändern, führte sofort zu einem Netzwerkausfall bei allen Non-VPN-Clients, da diese die interne IP nicht erreichen können.

Zur Lösung von @AAS (DNS global via DHCP verteilen): Das führt leider zu demselben Ausfall bei den Non-VPN-Clients. Man könnte zwar einen zweiten DNS als Backup eintragen, damit das Internet wieder geht, aber mein Ziel ist strikt: Non-VPN-Clients sollen den WireGuard-DNS (10.13.14.1) gar nicht erst nutzen.
Split DHCP oder Netzsegmentierung sind hier hier die Stichwörter.
 
  • Gefällt mir
Reaktionen: Azghul0815
Zurück
Oben