Uzyskaj DNSmasq, aby przekierowywał żądania sieci lokalnej na serwer w sieci


0

Mam serwer w mojej sieci. Dostęp do niego z urządzeń poza siecią według nazwy domeny działa idealnie. Niektóre urządzenia, takie jak mój telefon, łączą się z siecią za pośrednictwem Wi-Fi, a kiedy to robią, nie sprawdzają, czy nazwa domeny powinna wskazywać określony wewnętrzny adres IP. (Wynika to z faktu, że router pod warunkiem, że dostawca usług internetowych nie ma możliwości przypięcia włosów).

Nie mogę edytować plików / etc / hosts na urządzeniach łączących się przez Wi-Fi, chociaż mogę na serwerze.

Aby obejść ten problem, próbuję zastąpić domyślny serwer DNS mojego routera DNSmasq na moim serwerze.

Chcę, aby DNSmasq przekazywał wszystkie żądania dotyczące moich domen do siebie i wszystkich innych domen do publicznej usługi wyszukiwania DNS, takiej jak openDNS.

Zasadniczo chciałbym, aby urządzenia takie jak telefony, które łączą się z moją siecią Wi-Fi, nadal mogły łączyć się z moimi domenami, pomimo braku spięcia na routerze i braku możliwości edycji plików telefonów / etc / hosts.

Obecnie jedyne, co zmieniłem, to:

  1. Adres IP serwera DNS routera wskazuje na statyczny, wewnętrzny adres IP mojego serwera.
  2. Serwer ma moje domeny wskazujące na własny statyczny wewnętrzny adres IP w / etc / hosts
  3. Otworzyłem porty 52-54 i skierowałem je na mój serwer (chociaż obecnie jest to również DMZ, więc to nie powinno mieć znaczenia)
  4. / etc / host, /etc/resolv.conf i /etc/dnsmasq.conf są nadal domyślne.

Obecnie wszystkie żądania przekroczenia limitu czasu dla dowolnej domeny przez dowolne urządzenie w sieci, w którym nie zmodyfikowałem pliku / etc / hosts.

Jakieś sugestie?

Dla przypomnienia używam Debiana 8 z Nginx na modemie Bell Smartstream 2000.


52–54? Jaki jest tego cel? Jedynym portem używanym przez standardowy DNS z tego zakresu jest 53.
grawity

52-54 było po prostu dlatego, że z jakiegokolwiek powodu mój router zezwala na przekazywanie tylko szeregu portów, a nie tylko jednego. Jeśli spróbuję wprowadzić port 53, nie zapisze go. Jeśli wprowadzę 52-54, zrobię to. ¯_ (ツ) _ / ¯
Theyre In My Head

Odpowiedzi:


0

W dnsmasq użyj addressopcji.

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

Podaj adres IP, który chcesz zwrócić dla dowolnego hosta w podanych domenach. Zapytania w domenach nigdy nie są przekazywane i zawsze udzielane są odpowiedzi na podany adres IP, którym może być IPv4 lub IPv6. Aby podać adresy IPv4 i IPv6 dla domeny, użyj powtarzających się flag -A.

Na przykład:

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

W Bez ograniczeń użyj opcji local-zonei local-data. Na przykład:

server:
    local-data: "example.com. A 192.168.1.42"
    local-data: "www.example.com. A 192.168.1.42"

Próbowałem dodać to (z nazwami domen zmienionymi z twojego przykładu) do /etc/dnsmasq.conf i nadal otrzymuję ten sam wynik. Witryny hostowane lokalnie działają dobrze. Wszystko inne kończy się. Oto traceroute z mojego routera dla wikipedia.org: pastebin.com/zaSyiEJR
Theyre In My Head

Co traceroute ma z tym wspólnego? Ścieżka do strony internetowej - sposób wysyłania żądań HTTP - jest całkowicie niezależna od sposobu wykonywania zapytań DNS. Musisz sprecyzować, który z nich faktycznie przekroczył limit czasu.
grawity
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.