Konfiguracja serwera DNS-SLAVE za pomocą narzędzi „Bind” w RHEL/CENTOS 6.5

Konfiguracja serwera DNS-SLAVE za pomocą narzędzi „Bind” w RHEL/CENTOS 6.5

Serwer nazw domeny (DNS) Używany do rozwiązywania nazwisk do dowolnych hostów. Serwery Master DNS (Serwer podstawowy) to oryginalne moduły obsługi danych strefy i serwer Slave DNS (Serwer drugorzędny) to tylko serwery kopie zapasowe, które służą do kopiowania tych samych informacji o strefie z serwerów głównych. Master Server rozwiąże nazwy dla wszystkich hostów, które zdefiniowaliśmy w bazie danych strefy i używa protokołu UDP, ponieważ protokoły UDP nigdy nie używają procesu potwierdzenia, podczas gdy TCP używa potwierdzenia. Serwery DNS również wykorzystują protokoły UDP, aby najwcześniej rozwiązać żądanie zapytania.

Konfiguracja Master Slave DNS w RHEL/CENTOS 6.5

Jak działa DNS?

Zrozumienie DNS może być mało mylące dla początkujących. Oto krótkie wyjaśnienie, jak działają DNS.

Powiedzmy, że jeśli musimy uzyskać dostęp do dowolnej strony internetowej, co zrobimy? Po prostu wpisz www.Google.com w przeglądarce i naciśnij Enter. Hmm, to wszystko, co wiemy, ale faktem jest, w jaki sposób przechodzą przez to ból DN, podczas gdy zapytasz o nas. Podczas pisania www.Google.com System będzie szukał www.Google.com. Ilekroć wpisujemy nazwę domeny, istnieje . (kropka) Na końcu www.Google.com, które powiedzą, aby przeszukać serwer główny przestrzeni nazw.

Globalnie są 13 serwerów głównych Dostępne do rozwiązania zapytania. Początkowo, gdy uderzamy w Enter jako www.Google.Com Our Browser przekazuje prośbę do naszego lokalnego rozwiązania, który ma wpis o naszych informacjach o serwerze głównym i niewolniczym. Jeśli nie mają informacji na temat takiego żądanego zapytania, przekazują żądanie do domeny najwyższego poziomu (Tld), jeśli TLD powie, że nie znam żądania, może być autorytatywnym serwerem znanym z twojego żądania, będzie on przekazał autorytatywne serwery, tutaj tylko www.Google.com zdefiniowano jako adres 72.36.15.56.

W międzyczasie autorytatywny serwer udzieli odpowiedzi TLD, a TLD przejdzie do serwera głównego, a root dostarczy przeglądarce informacje, dlatego przeglądarka będzie buforować żądanie DNS do przyszłego użycia. Zatem ten długi proces będzie się rozwiązać w milisekundach. Jeśli nie znają prośby, odpowiedzą jako nxdomain. Oznacza to, że w bazie danych strefy nie można znaleźć żadnego zapisu. Mam nadzieję, że to sprawia, że ​​zrozumiesz, jak działa DNS.

Przeczytaj także: Ustaw serwer pamięci podręcznej DNS w Ubuntu

Moje środowisko testowe

W tym artykule używam 3 maszyn, 2 do konfiguracji serwera (główny i niewolnik) i 1 dla klienta.

--------------------------------------------------- Master DNS Server --------------------------------------------------- Adres IP: 192.168.0.200 nazwy hosta: Masterdns.Tecmintlocal.Com OS: Centos 6.5 finał 
--------------------------------------------------- Server Slave DNS --------------------------------------------------- Adres IP: 192.168.0.201-nazwa hosta: Slavedns.Tecmintlocal.Com OS: Centos 6.5 finał 
--------------------------------------------------- Maszyna klienta do używania DNS --------------------------------------------------- Adres IP: 192.168.0.210 nazwa hosta: Node1.Tecmintlocal.Com OS: Centos 6.5 finał 
Pakiety wymagań
wiązanie, wiązanie-utils, wiązanie chroot 
Używane pliki konfiguracyjne
Plik konfiguracyjny: /etc /nazwany.Plik skryptu konfliktu: /etc /init.d/wymieniony 
Zastosowane porty i protokoły
53, UDP

Konfiguracja głównego serwera DNS

Najpierw zweryfikuj adres IP, nazwę hosta i wersję dystrybucji Master DNS Server, zanim przejdzie do konfiguracji.

$ sudo ifconfig | Grep inet $ hostName $ cat /etc /redhat-release 
Sprawdź konfigurację główną

Po potwierdzeniu, że powyższe ustawienia są prawidłowe, czas przejść do przodu, aby zainstalować wymagane pakiety.

$ sudo yum instaluj bind* -y 
Zainstaluj pakiet BIND

Instalowanie i konfigurowanie wiązania

Po zainstalowaniu wymaganych pakietów zdefiniuj pliki strefy w konfiguracji głównej 'o imieniu.conf' plik.

$ sudo vim /etc /nazwane.conf 

Poniżej znajduje się mój o imieniu.conf Wprowadzanie pliku, zmień plik konfiguracyjny zgodnie z potrzebami.

// // o imieniu.conf // // dostarczone przez pakiet Red Hat Bind w celu skonfigurowania wiązania ISC o nazwie (8) DNS // serwer jako buforowanie tylko serwerowi nazw (tylko jako localhost DNS Resolver). // // patrz/usr/share/doc/bind*/próbka/na przykład nazwane pliki konfiguracyjne. // opcje Port Listen-On 53  127.0.0.1; 192.168.0.200; ; # Tutaj musimy dodać nasz główny serwer DNS IP. Listen-on-V6 Port 53 :: 1; ; katalog „/var/nazwa”; zrzucanie plik "/var/data/data/cache_dump.db "; statystyka plik"/var/named/data/name_stats.txt "; memstatistics-file"/var/named/data/name_mem_stats.txt "; zezwolenie-litera localhost; 192.168.0.0/24; ; # Zakres podsieci, w którym moi hosty mogą zapytać o nasze DNS. Zezwalaj na transfer  Lokalny Gospodarz; 192.168.0.201; ; # Tutaj potrzebujemy do naszego Slave DNS Server IP. rekurencja nr; Tak; DNSSEC-Walidacja Tak; DNSSEC-Hookaside Auto; / * Ścieżka do klucza ISC DLV */bindkeys-plik "/etc/nazwana.iscdlv.klucz "; Managed-Keys-Directory"/var/named/dynamic ";; logowanie kanał default_debug plik" data/nazwa.uruchom „; Dynamic Isterty;;; strefa”.„W type wskazów; plik” nazwany.ca ";; ## Zdefiniuj nasz plik strefy do przodu i do tyłu tutaj dla TecmintLocal.com. strefa"Tecmintlocal.com„W type master; plik”Tecmintlocal.fwd.strefa"; zezwolenie update none;;; strefa"0.168.192.w addr.Arpa„W type master; plik”Tecmintlocal.obrót silnika.strefa"; zezwolenie update none;;; ##### w cołą"/etc/nazwane.RFC1912.strefy "; w tym"/etc/nazwane.źródło.klucz"; 
Utwórz plik strefy w DNS

Poniżej przedstawiono wyjaśnienie każdej konfiguracji, której użyliśmy w powyższym pliku.

  1. Port słuchania 53 - Służy to do słuchania DNS w dostępnych interfejsach.
  2. Master DNS - Zdefiniuj, główny adres IP DNS do wysłuchania zapytania.
  3. DNS Slave - Zdefiniuj swoje niewolnicze DNS, które służy do synchronizacji naszych informacji o strefie w celu rozwiązania hostów od Master.
  4. rekurencja nr - Jeśli jest ustawiony na tak, zapytania rekurencyjne sprawi, że serwer w ataku DDOS.
  5. Nazwa stref - Zdefiniuj tutaj swoją nazwę strefy zdefiniowaną jako tecminlocal.com.
  6. Typ Master - Ponieważ ten system został skonfigurowany dla serwera głównego, dla nadchodzącego serwera niewolników będzie to niewolnik.
  7. Tecmintlocal.fwd.strefa - Ten plik zawiera informacje o hostie dla tej strefy.
  8. Nie zezwalaj na brak - Jeśli żaden nie ustanowi. Nie używa dynamicznych DN (DDN).

Tworzenie plików strefy głównej

Początkowo zdefiniujmy wejście do strefy wyszukiwania. Tutaj musimy utworzyć pliki strefy w imię tego, co definiujemy w o imieniu.conf Plik jak poniżej.

Tecmintlocal.fwd.strefa Tecmintlocal.obrót silnika.strefa 

Używamy przykładowych plików konfiguracyjnych do tworzenia plików strefy do przodu, w tym celu musimy skopiować przykładowe pliki konfiguracyjne.

$ sudo cp/var/nazwany/nazwany.localhost/var/nazwa/tecmintlocal.fwd.strefa $ sudo cp/var/nazwana/nazwana.LOOPBACK/var/nazwa/tecmintlocal.obrót silnika.strefa 
Kopiuj pliki strefy

Kiedyś skopiowałeś pliki konfiguracyjne, teraz edytuj te pliki stref za pomocą za pomocą krzepa redaktor.

$ sudo vim/var/nazwano/tecmintlocal.fwd.strefa 

Przed zdefiniowaniem informacji o hoście w pliku strefy do przodu, najpierw spójrz na plik strefy próbki.

Plik strefy przykładowej

To jest moja konfiguracja strefy do przodu, dołącz poniższy wpis i wprowadzaj zmiany zgodnie z potrzebami.

$ Ttl 86400 @ w SOA Masterdns.Tecmintlocal.com. źródło.Tecmintlocal.com. (2014090401; Serial 3600; odświeżenie 1800; Retry 604800; wygasa 86400); minimum; Serwer nazwy @ in NS Masterdns.Tecmintlocal.com. @ In ns slavedns.Tecmintlocal.com. ; Nazwa hosta serwera nazwy do IP Resolve. @ W 192.168.0.200 @ w 192.168.0.201; Gospodarze w tej domenie @ w 192.168.0.210 @ w 192.168.0.220 Masterdns w 192.168.0.200 niewolników w 192.168.0.201 Node1 w 192.168.0.210 RHEL1 w 192.168.0.220 

Zapisz i wyrzuć plik za pomocą WQ!. Po edytowaniu podglądu do przodu wygląda na poniżej, użyj PATKA Aby uzyskać przyzwoity format w pliku strefy.

Skonfiguruj strefę do przodu

Teraz utwórz plik odwrotnego wyszukiwania, już wykonaliśmy kopię pliku pętli w imieniu Tecmintlocal.obrót silnika.strefa. Używamy więc tego pliku do skonfigurowania naszego odwrotnego wyszukiwania.

$ sudo vim/var/nazwano/tecmintlocal.obrót silnika.strefa 

Przed zdefiniowaniem naszych informacji o hoście w pliku strefy odwrotnej, sprawdź szybko przykładowy plik wyszukiwania odwrotnego.

Przykładowy strefa wyszukiwania odwrotnego

To jest moja konfiguracja strefy odwrotnej, dołącz poniższy wpis i wprowadzaj zmiany w potrzebie.

$ Ttl 86400 @ w SOA Masterdns.Tecmintlocal.com. źródło.Tecmintlocal.com. (2014090402; Serial 3600; odświeżenie 1800; ponowne 604800; wygasa 86400); minimum; Serwer nazwy @ in NS Masterdns.Tecmintlocal.com. @ In ns slavedns.Tecmintlocal.com. @ In ptr Tecmintlocal.com. ; Nazwa hosta serwera nazwy do IP Resolve. Masterdns w 192.168.0.200 niewolników w 192.168.0.201; gospodarze w Domena Node1 w 192.168.0.210 RHEL w 192.168.0.220 200 w PTR Masterdns.Tecmintlocal.com. 201 w PTR Slavedns.Tecmintlocal.com. 210 w Node1 ptr.Tecmintlocal.com. 220 w ptr rhel1.Tecmintlocal.com. 

Zapisz i wyrzuć plik za pomocą WQ!. Po edytowaniu odwrotnego wyszukiwania wygląda na poniżej, użyj PATKA Aby uzyskać przyzwoity format w pliku strefy.

Skonfiguruj strefę wyszukiwania odwrotnego

Sprawdź własność grupy plików wyszukiwania i odwrotnego wyszukiwania, przed sprawdzeniem jakichkolwiek błędów w konfiguracji.

$ sudo ls -l/var/nazwa/nazwano/ 

Tutaj widzimy, że oba pliki są w źródło Własność użytkowników, ponieważ pliki, które wykonujemy kopię z przykładowych plików, są dostępne /var/nazwano/. Zmień grupę na nazwę obu plików za pomocą następujących poleceń.

$ sudo chgrp o nazwie/var/nazwano/tecmintlocal.fwd.strefa $ sudo chgrp o nazwie/var/nazwa/tecmintlocal.obrót silnika.strefa 

Po ustawieniu prawidłowej własności w plikach, zweryfikuj je ponownie.

$ sudo ls -l/var/nazwa/nazwano/ 
Sprawdź pliki strefy

Teraz sprawdź błędy w plikach strefy, zanim uruchomę usługę DNS. Najpierw sprawdź o imieniu.conf plik, a następnie sprawdź inne pliki strefy.

$ sudo o nazwie-checkconf /etc /nazwano.conf $ sudo o nazwie-checkzone masterdns.Tecminlocal.com/var/name/tecmintlocal.fwd.strefa $ sudo o nazwie-checkzone masterdns.Tecminlocal.com/var/name/tecmintlocal.obrót silnika.strefa 
Sprawdź pliki strefy błędów

Domyślnie działał IPTables, a nasz serwer DNS jest ograniczony do LocalHost, jeśli klient chce rozwiązać nazwę z naszego serwera DNS, musimy zezwolić na żądanie przychodzące, ponieważ musimy dodać regułę IPABLES INBOUND dla portu 53.

$ sudo iptables -i wejście -p udp -dport 53 -m stan --state new -j Zaakceptuj 

Teraz sprawdź, czy reguły zostały poprawnie dodane WEJŚCIE łańcuch.

$ sudo iptables -l wejście 

Następnie zapisz zasady i ponownie uruchom zaporę zapory.

$ sudo usługa iptables Zapisz $ sudo service iptables restart 
Otwórz port DNS na zaporze

Rozpocznij nazwaną usługę i uczyń ją trwałą.

$ sudo usługa o nazwie start $ sudo chkconfig wymieniona na $ sudo chkconfig -lista nazwana 
Uruchom serwer DNS

Na koniec przetestuj skonfigurowane pliki strefy głównej DNS (do przodu i do tyłu), używając kopać I nslookup narzędzia.

$ dig Masterdns.Tecmintlocal.com [strefa do przodu] 
Przetestuj strefę DNS
$ dig -x 192.168.0.200 
Test Reverse Strefa DNS
$ nslookup Tecmintlocal.com $ nslookup masterdns.Tecmintlocal.com $ nslookup slavedns.Tecmintlocal.com 
Przetestuj strefy DNS

Fajny! Skonfigurowaliśmy Master DNS, Teraz musimy skonfigurować DNS Slave serwer. Przejdźmy naprzód, aby skonfigurować serwer niewolników, to nie zajmie dużo czasu jako konfiguracja główna.

Serwer Slave DNS Server

Na komputerze niewolniczym musimy również zainstalować te same pakiety wiązania, jak pokazano w Master, więc zainstalujmy je za pomocą następującego polecenia.

$ sudo yum instaluj bind* -y 
Zainstaluj wiązanie DNS

Otwórz i edytuj 'o imieniu.conf ' plik dla naszej bazy danych stref i słuchaj portów.

$ sudo vim /etc /nazwane.conf 

Dokonaj zmian, jak pokazano, zgodnie z Twoimi wymaganiami.

// // o imieniu.conf // // dostarczone przez pakiet Red Hat Bind w celu skonfigurowania wiązania ISC o nazwie (8) DNS // serwer jako buforowanie tylko serwerowi nazw (tylko jako localhost DNS Resolver). // // patrz/usr/share/doc/bind*/próbka/na przykład nazwane pliki konfiguracyjne. // opcje Port Listen-On 53  127.0.0.1; 192.168.0.201; # Nasz niewolnik DNS Server IP Listen-on-V6 Port 53 :: 1; ; katalog „/var/nazwa”; zrzucanie plik "/var/data/data/cache_dump.db "; statystyka plik"/var/named/data/name_stats.txt "; memstatistics-file"/var/named/data/name_mem_stats.txt "; zezwolenie-litera  Lokalny Gospodarz; 192.168.0.0/24; ; rekurencja nr; Tak; DNSSEC-Walidacja Tak; DNSSEC-Hookaside Auto; / * Ścieżka do klucza ISC DLV */bindkeys-plik "/etc/nazwana.iscdlv.klucz "; Managed-Keys-Directory"/var/named/dynamic ";; logowanie kanał default_debug plik" data/nazwa.uruchom „; Dynamic Isterty;;; strefa”.„W type wskazów; plik” nazwany.ca ";; ## Zdefiniuj naszą strefę niewolnika do przodu i do tyłu, pliki stref są replikowane z Master. strefa"Tecmintlocal.com„W type Slave; plik”Niewolnicy/tecmintlocal.fwd.strefa"; Masters  192.168.0.200; ; ; strefa"0.168.192.w addr.Arpa„W type Slave; plik”Niewolnicy/tecmintlocal.obrót silnika.strefa"; Masters  192.168.0.200; ; ; ##### w cołą „/etc/nazwane.RFC1912.strefy "; w tym"/etc/nazwane.źródło.klucz"; 
Skonfiguruj DNS Slave

Uruchom usługę DNS za pomocą.

Usługa $ sudo wymieniona start 

Po ponownym uruchomieniu usługi wiązania nie musimy definiować informacji o strefie indywidualnie, jak nasz Zezwalaj na transfer powtórzy informacje o strefie z serwera głównego, jak pokazano na poniższym obrazku.

$ sudo ls -l/var/nazwane/niewolnicy 

Sprawdź informacje o strefie za pomocą CAT Command.

$ sudo cat/var/nazwane/slaves/tecmintlocal.fwd.strefa $ sudo cat/var/nazwano/slaves/tecmintlocal.obrót silnika.strefa 
Sprawdź pliki strefy niewolników

Następnie otwórz port DNS 53 na iptables, aby umożliwić połączenie przychodzące.

$ sudo iptables -i wejście -p udp -dport 53 -m stan --state new -j Zaakceptuj 

Zapisz reguły iptables i uruchom ponownie usługę IPTABLES.

$ sudo usługa iptables Zapisz $ sudo service iptables restart 

Spraw, aby usługa była trwała na rozruchu systemu.

$ sudo chkconfig iptables
Sprawdź, czy trwałe ustawianie poziomów biegów .
$ sudo chkconfig -lista iptables 
Otwórz port DNS

Otóż ​​to!. Teraz czas na skonfigurowanie naszych maszyn klientów i sprawdzenie nazwy hosta.

Skonfiguruj komputer klienta

Po stronie klienta musimy przypisać podstawowe (192.168.0.200) i wtórne DN (192.168.0.201) Wpis w ustawieniach sieciowych, aby uzyskać nazwę hosta. Aby wykonać, uruchom polecenie konfiguracyjne, aby zdefiniować wszystkie te wpisy, jak pokazano na zdjęciu.

$ konfiguracja 
Dodaj wpis DNS

W przeciwnym razie edytuj '/etc/reslov.conf„Plik i dodaj następujące wpisy.

$ vim /etc /resolv.conf 
Wyszukaj Tecmintlocal.Comererver 192.168.0.200 nazywarek 192.168.0.201 

Teraz sprawdź wyszukiwanie IP, nazwę hosta i serwera nazwisk.

$ ifconfig | grep inet $ hostName $ nSlookup Tecmintlocal.com 
Sprawdź wpis DNS

Teraz sprawdź wyszukiwanie DNS do przodu i do tyłu za pomocą.

$ dig Masterdns.Tecmintlocal.com $ dig -x 192.168.0.200 
Sprawdź informacje DNS

Ziemne wyjście wykopaliska:

  1. nagłówek - To mówi wszystko, o co prosiliśmy i jak wynik był.
  2. Status - Status nie był błędem, co oznacza, które żądanie zapytania wysłane przez nas odniosło sukces bez żadnego błędu.
  3. Pytanie - Zapytanie, które zostało wykonane przez nas, tutaj moje zapytanie było masterdns.Tecmintlocal.com.
  4. Odpowiedź - Żądanie zapytania rozwiązane, jeśli są dostępne informacje.
  5. Autorytet - Odpowiedź serwerów nazwy dla domeny i strefy.
  6. Dodatkowy - Dodatkowe informacje dotyczące serweryjnych nazw, takich jak nazwa hosta i adres IP.
  7. Czas zapytania - Jak długo trwało rozwiązanie nazw z powyższych serwerów.

Wreszcie sprawdź nasz węzeł i zrób ping.

$ DIG Node1.Tecmintlocal.com 
Sprawdź informacje o kliencie DNS
$ ping masterdns.Tecmintlocal.com -c 2 $ ping slavedns.Tecmintlocal.com -c 2 $ ping 192.168.0.200 -C 2 $ ping 192.168.0.201 -C 2 
Ping DNS serwery

Wreszcie, zakończona konfiguracja, tutaj skonfigurowaliśmy zarówno serwer DNS Primary (Master), jak i Slave (Seconday), mam nadzieję, że wszyscy ustawili się bez problemu, upuszcz komentarz, jeśli napotkasz jakikolwiek problem podczas konfiguracji.