Fordern Sie DNSmasq an, um lokale Netzwerkanfragen an Server im Netzwerk umzuleiten

626
Theyre In My Head

Ich habe einen Server in meinem Netzwerk. Der Zugriff von Geräten außerhalb des Netzwerks über den Domänennamen funktioniert einwandfrei. Einige Geräte, wie z. B. mein Telefon, stellen über WLAN eine Verbindung zum Netzwerk her, und wenn dies der Fall ist, können sie nicht nachsehen, dass der Domänenname auf eine bestimmte interne IP-Adresse verweisen soll. (Dies ist darauf zurückzuführen, dass der von meinem Internetdienstanbieter bereitgestellte Router nicht in der Lage ist, Hairpinning durchzuführen).

Ich kann / etc / hosts auf den Geräten, die per WLAN verbunden sind, nicht bearbeiten, obwohl ich das auf dem Server kann.

Um dies zu umgehen, versuche ich, den Standard-DNS-Server meines Routers durch DNSmasq auf meinem Server zu ersetzen.

Ich möchte, dass DNSmasq alle Anfragen für meine Domänen an sich selbst und alle anderen Domänen an einen öffentlichen DNS-Suchdienst wie openDNS weiterleitet.

Grundsätzlich möchte ich, dass Geräte wie Telefone, die eine Verbindung zu meinem WLAN herstellen, immer noch in der Lage sind, eine Verbindung zu meinen Domains herzustellen, obwohl ich keinen Hairpinning auf meinem Router habe und keine Möglichkeit, die Telefone / etc / hosts-Dateien zu bearbeiten.

Derzeit habe ich nur Folgendes geändert:

  1. Die IP-Adressen des DNS-Servers des Routers verweisen auf die statische, interne IP-Adresse meines Servers.
  2. Der Server weist meine Domains auf seine eigene statische interne IP in / etc / hosts hin
  3. Ich habe die Ports 52-54 geöffnet und auf meinen Server verwiesen (obwohl es derzeit auch DMZ ist, also sollte das keine Rolle spielen)
  4. / etc / host, /etc/resolv.conf und /etc/dnsmasq.conf sind noch immer Standard.

Derzeit haben alle Anforderungen für eine meiner Domänen ein Timeout von einem Gerät im Netzwerk, bei dem ich die Datei / etc / hosts nicht geändert habe.

Irgendwelche Vorschläge?

Für das Protokoll verwende ich Debian 8 mit Nginx auf einem Bell Smartstream 2000-Modem.

0
52-54? Was ist der Zweck davon? Der einzige von Standard-DNS aus diesem Bereich verwendete Port ist 53. grawity vor 6 Jahren 0
52-54 war nur, weil mein Router aus irgendeinem Grund nur die Weiterleitung von Ports zulässt, nicht nur einen. Wenn ich versuche, nur Port 53 einzugeben, wird er nicht gespeichert. Wenn ich 52-54 eingebe, geht es. \ _ (ツ) _ / ¯ Theyre In My Head vor 5 Jahren 0

1 Antwort auf die Frage

0
grawity

Verwenden Sie in dnsmasq die addressOption.

-A, --address=/<domain>[/<domain>...]/[<ipaddr>]

Geben Sie eine IP-Adresse an, die für einen Host in den angegebenen Domänen zurückgegeben werden soll. Abfragen in den Domänen werden niemals weitergeleitet und immer mit der angegebenen IP-Adresse beantwortet, die entweder IPv4 oder IPv6 ist. Verwenden Sie wiederholte -A-Flags, um sowohl IPv4- als auch IPv6-Adressen für eine Domäne anzugeben.

Zum Beispiel:

address=/example.com/www.example.com/192.168.1.42 

Verwenden Sie in Unbound die Optionen local-zoneund local-data. Zum Beispiel:

server: local-data: "example.com. A 192.168.1.42" local-data: "www.example.com. A 192.168.1.42" 
Ich habe versucht, dies (mit den aus Ihrem Beispiel geänderten Domänennamen) zur Datei /etc/dnsmasq.conf hinzuzufügen und immer noch dasselbe Ergebnis zu erhalten. Lokal gehostete Sites funktionieren einwandfrei. Alles andere mal raus. Hier ist der Traceroute von meinem Router für wikipedia.org: https://pastebin.com/zaSyiEJR Theyre In My Head vor 5 Jahren 0
Was hat die Traceroute mit irgendwas zu tun? Der Pfad zur Website - wie die HTTP-Anforderungen gesendet werden - ist völlig unabhängig von der Art und Weise, wie die DNS-Abfragen ausgeführt werden. Sie müssen genauer angeben, zu welchem ​​Zeitpunkt sie tatsächlich ausfällt. grawity vor 5 Jahren 0