wielu entuzjastów technologii uważa, że możliwość kontrolowania rozdzielczości nazwy hosta jest ważna. Konfiguracja serwerów i usług zwykle wymaga pewnej formy stałego adresu, a czasami wymaga również specjalnych form rozdzielczości, takich jak definiowanie serwerów Kerberos lub LDAP, serwerów pocztowych itp. Wszystko to można osiągnąć dzięki dnsmasq.
dnsmasq to lekki i prosty program, który umożliwia wydawanie adresów DHCP w sieci i rejestrację nazwy hosta & adresu IP W DNS. Ta konfiguracja pozwala również na rozdzielczość zewnętrzną, dzięki czemu cała sieć będzie mogła mówić do siebie i znajdować zewnętrzne witryny.
Ten artykuł dotyczy instalowania i konfigurowania dnsmasq na maszynie wirtualnej lub małej maszynie fizycznej, takiej jak Raspberry Pi, aby mogła świadczyć te usługi w sieci domowej lub laboratorium. Jeśli masz istniejącą konfigurację i po prostu trzeba dostosować ustawienia dla lokalnej stacji roboczej, przeczytaj poprzedni artykuł, który obejmuje konfigurowanie wtyczki dnsmasq w NetworkManager.
zainstaluj dnsmasq
najpierw zainstaluj pakiet dnsmasq:
sudo dnf install dnsmasq
następnie włącz i uruchom usługę dnsmasq:
sudo systemctl enable --now dnsmasq
Skonfiguruj dnsmasq
najpierw wykonaj kopię zapasową dnsmasq.plik conf:
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
następnie Edytuj plik i wprowadź następujące zmiany, aby odzwierciedlić sieć. W tym przykładzie, mydomain.org jest nazwą domeny, 192.168.1.10 jest adresem IP serwera dnsmasq i 192.168.1.1 jest bramą domyślną.
sudo vi /etc/dnsmasq.conf
Wstaw następującą zawartość:
domain-neededbogus-privno-resolvserver=8.8.8.8server=8.8.4.4local=/mydomain.org/listen-address=::1,127.0.0.1,192.168.1.10expand-hostsdomain=mydomain.orgdhcp-range=192.168.1.100,192.168.1.200,24hdhcp-option=option:router,192.168.1.1dhcp-authoritativedhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases
Przetestuj konfigurację, aby sprawdzić literówki i błędy składniowe:
$ sudo dnsmasq --testdnsmasq: syntax check OK.
teraz Edytuj plik hosts, który może zawierać zarówno statycznie, jak i dynamicznie przydzielane hosty. Adresy statyczne powinny znajdować się poza zakresem DHCP określonym wcześniej. Hosty korzystające z DHCP, ale wymagające stałego adresu, powinny być tutaj wprowadzane z adresem w zakresie DHCP.
sudo vi /etc/hosts
pierwsze dwie linie powinny już tam być. Dodaj pozostałe linie, aby skonfigurować router, serwer dnsmasq i dwa dodatkowe serwery.
127.0.0.1 localhost localhost.localdomain::1 localhost localhost.localdomain192.168.1.1 router192.168.1.10 dnsmasq192.168.1.20 server1192.168.1.30 server2
Uruchom ponownie usługę dnsmasq:
sudo systemctl restart dnsmasq
następnie dodaj usługi do zapory sieciowej, aby umożliwić klientom łączenie się:
sudo firewall-cmd --add-service={dns,dhcp}
sudo firewall-cmd --runtime-to-permanent
Nazwa testowa rozdzielczość
najpierw zainstaluj bind-utils, aby pobrać pakiety nslookup i dig. Pozwalają one wykonywać zarówno wyszukiwanie do przodu, jak i do tyłu. Możesz użyć Pinga, jeśli nie chcesz instalować dodatkowych pakietów. ale te narzędzia są warte zainstalowania w celu zapewnienia dodatkowych funkcji rozwiązywania problemów.
sudo dnf install bind-utils
teraz przetestuj rozdzielczość. Najpierw przetestuj rozdzielczość forward (hostname to IP address):
$ nslookup server1Server: 127.0.0.1Address: 127.0.0.1#53Name: server1.mydomain.orgAddress: 192.168.1.20
następnie przetestuj odwrotną rozdzielczość (adres IP do nazwy hosta):
$ nslookup 192.168.1.2020.1.168.192.in-addr.arpa name = server1.mydomain.org.
na koniec przetestuj rozwiązywanie nazw hostów poza siecią:
$ nslookup fedoramagazine.orgServer: 127.0.0.1Address: 127.0.0.1#53Non-authoritative answer:Name: fedoramagazine.orgAddress: 35.196.109.67
testowanie dzierżaw DHCP
aby przetestować dzierżawę DHCP, musisz uruchomić maszynę, która używa DHCP do uzyskania adresu IP. Każdy wariant Fedory zrobi to domyślnie. Po uruchomieniu maszyny klienckiej sprawdź, czy ma ona adres i czy odpowiada plikowi dzierżawy dla dnsmasq.
z maszyny działającej dnsmasq:
$ sudo cat /var/lib/dnsmasq/dnsmasq.leases1598023942 52:54:00:8e:d5:db 192.168.1.100 server3 01:52:54:00:8e:d5:db1598019169 52:54:00:9c:5a:bb 192.168.1.101 server4 01:52:54:00:9c:5a:bb
rozszerzenie funkcjonalności
możesz przypisać hostom stały adres IP za pośrednictwem DHCP, dodając go do pliku hostów z żądanym adresem (w zakresie DHCP). Zrób to dodając do dnsmasq.plik conf następująca linia, która przypisuje podany adres IP do dowolnego hosta o tej nazwie:
dhcp-host=myhost
Alternatywnie, można określić adres MAC, który zawsze powinien mieć stały adres IP:
dhcp-host=11:22:33:44:55:66,192.168.1.123
możesz określić serwer rozruchowy PXE, jeśli chcesz zautomatyzować Kompilacje maszyn
tftp-root=/tftpboot
dhcp-boot=/tftpboot/pxelinux.0,boothost,192.168.1.240
powinno to wskazywać rzeczywisty adres URL serwera TFTP.
jeśli chcesz podać rekordy SRV lub TXT, na przykład dla LDAP, Kerberos lub podobnych, możesz dodać te:
srv-host=_ldap._tcp.mydomain.org,ldap-server.mydomain.org,389
srv-host=_kerberos._udp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos._tcp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos-master._udp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos-adm._tcp.mydomain.org,krb-server.mydomain.org,749
srv-host=_kpasswd._udp.mydomain.org,krb-server.mydomain.org,464
txt-record=_kerberos.mydomain.org,KRB-SERVER.MYDOMAIN.ORG