jak dodać wpis do lokalnego resolvera DNS [zamknięte]

19

Chcę zrobić kilka testów na Linuksie. Chcę umieścić mały serwer sieciowy na komputerze o adresie IP: 1.2.3.4 (założenie), a gdy zostanie utworzone zapytanie DNS dotyczące określonego adresu URL: kitty.myweb.com, chcę zwrócić ten adres IP.

Scenariusze:

  1. Kiedy otwieram przeglądarkę (Firefox lub cokolwiek innego), wpisuję adres URL kitty.myweb.com, a przeglądarka wykona zapytanie DNS
  2. Chcę napisać program, który wykonuje zapytanie DNS dla kitty.myweb.com

Wiem, że każdy komputer ma lokalny program rozpoznawania nazw DNS, który buforuje niektóre wpisy; połączenie z adresem URL najpierw wysyła zapytanie do lokalnego programu rozpoznawania nazw DNS, a jeśli nie ma odpowiednich wpisów, wysyła zapytanie do zewnętrznego programu rozpoznawania nazw DNS w sieci LAN lub Internecie.

Chcę dodać wpis (kitty.myweb.com: 1.2.3.4) do lokalnego programu rozpoznawania nazw DNS, aby w dwóch powyższych scenariuszach odpowiedź DNS wynosiła 1.2.3.4 bez konieczności wykonywania zewnętrznego zapytania.

Czy można to zrobić na Linuksie, a jeśli tak, to w jaki sposób? Czy są jakieś fragmenty kodu C, które by to zrobiły?

tajemnice
źródło

Odpowiedzi:

30

Możesz użyć / etc / hosts, aby dodać swój wpis. Tak naprawdę nie używa DNS, ale wpływa na bibliotekę resolvera w systemie Linux, która jest używana przez większość aplikacji. Dodaj:

1.2.3.4 kitty.myweb.com

Inną opcją byłoby zainstalowanie prostego serwera DNS w systemie. Ten, którego często używam, nazywa się dnsmasq. W niektórych dystrybucjach jest domyślnie instalowany jako resolver buforowania, w takim przypadku wystarczy zmodyfikować konfigurację, aby uwzględnić:

adres = / kitty.myweb.com / 1.2.3.4

Jeśli prowadzisz własny serwer DNS, prawdopodobnie będziesz musiał grać z /etc/resolv.conf, który jest używany przez bibliotekę tłumaczącą Linuksa. Aby biblioteka resolvera spojrzała na lokalny serwer DNS, potrzebujesz wpisu w resolv.conf:

serwer nazw 127.0.0.1

Gregor
źródło
9

Najłatwiejszym sposobem dodania pojedynczego wpisu DNS na lokalnym hoście jest dodanie go do pliku hosts. Lokalizacja tego pliku może się różnić w zależności od dystrybucji, ale jego tradycyjna lokalizacja jest /etc/hostsi powinna wyglądać mniej więcej tak:

:: 1 localhost localhost.twojadomena.tld
127.0.0.1 localhost localhost.twoja_domena.tld
1.2.3.4 kitty.myweb.com

Pamiętaj, że będzie to miało wpływ tylko na twój komputer i nie skaluje się dobrze. Innymi słowy, nadaje się do prostych testów, po prostu nie próbuj edytować plików hostów na wielu komputerach. Do tego chcesz poprawnych wpisów DNS.

Hennes
źródło