{"id":1453,"date":"2026-05-01T10:29:20","date_gmt":"2026-05-01T10:29:20","guid":{"rendered":"https:\/\/sudoit.pl\/?p=1453"},"modified":"2026-05-01T10:39:51","modified_gmt":"2026-05-01T10:39:51","slug":"konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku","status":"publish","type":"post","link":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/","title":{"rendered":"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku"},"content":{"rendered":"\n<p>W poprzednich artyku\u0142ach skonfigurowali\u015bmy <strong>adresacj\u0119 IP<\/strong>, <strong>nazwy host\u00f3w<\/strong>, <strong>routing<\/strong> oraz podstawowe us\u0142ugi sieciowe. Dzi\u0119ki temu nasze laboratorium jest ju\u017c gotowe do uruchamiania kolejnych element\u00f3w infrastruktury. Jednym z najbardziej naturalnych nast\u0119pnych krok\u00f3w jest w\u0142asny <strong>serwer DNS<\/strong>, kt\u00f3ry pozwoli centralnie zarz\u0105dza\u0107 rozwi\u0105zywaniem nazw w ca\u0142ym \u015brodowisku.<\/p>\n\n\n\n<p>W tym artykule nie tworz\u0119 nowego laba od zera. Zamiast tego wykorzystuj\u0119 dok\u0142adnie to samo \u015brodowisko, kt\u00f3re zosta\u0142o przygotowane wcze\u015bniej.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"797\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-1024x797.png\" alt=\"\" class=\"wp-image-1397\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-1024x797.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-300x233.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-768x598.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1-585x455.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/04\/diagram_sieci-1.png 1077w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>W tej konfiguracji:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Debian<\/strong> b\u0119dzie serwerem <strong>DNS nadrz\u0119dnym (master)<\/strong>,<\/li>\n\n\n\n<li><strong>Ubuntu<\/strong> b\u0119dzie serwerem <strong>DNS podrz\u0119dnym (slave)<\/strong>,<\/li>\n\n\n\n<li><strong>CentOS<\/strong> pozostanie routerem mi\u0119dzy podsieciami,<\/li>\n\n\n\n<li><strong>Windows CL1<\/strong> i <strong>Windows CL2<\/strong> pos\u0142u\u017c\u0105 jako klienci testuj\u0105cy rozwi\u0105zywanie nazw.<\/li>\n<\/ul>\n\n\n\n<p>Synchronizacja strefy mi\u0119dzy <strong>Debianem<\/strong> i <strong>Ubuntu<\/strong> dzia\u0142a dzi\u0119ki wcze\u015bniej skonfigurowanemu <strong>routingowi<\/strong>, a klienci po obu stronach topologii mog\u0105 korzysta\u0107 z DNS, kt\u00f3ry maj\u0105 ustawiony. CL1 b\u0119dzie korzysta\u0142 z serwera DNS na Debianie a CL2 z serwera DNS na Ubuntu.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Rola serwera master i slave w DNS<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>W tym laboratorium serwer <strong>master<\/strong> b\u0119dzie przechowywa\u0142 g\u0142\u00f3wn\u0105, edytowaln\u0105 wersj\u0119 strefy <strong>firma.local<\/strong>. To w\u0142a\u015bnie na nim b\u0119dziemy dodawa\u0107 rekordy, zmienia\u0107 numer seryjny strefy i definiowa\u0107 ca\u0142\u0105 logik\u0119 nazw.<\/p>\n\n\n\n<p>Serwer <strong>slave<\/strong> b\u0119dzie przechowywa\u0142 kopi\u0119 tej strefy w trybie tylko do odczytu. Nie wprowadzamy na nim zmian r\u0119cznie &#8211; jego zadaniem jest pobranie danych z serwera nadrz\u0119dnego i udzielanie odpowiedzi klientom, nawet je\u015bli master chwilowo b\u0119dzie niedost\u0119pny.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Instalacja BIND9 na Debianie i Ubuntu<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>Na obu serwerach instalujemy BIND9 oraz podstawowe narz\u0119dzia diagnostyczne:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install -y bind9 dnsutils<\/code><\/pre>\n\n\n\n<p>Po instalacji mo\u017cesz sprawdzi\u0107 status us\u0142ugi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status bind9<\/code><\/pre>\n\n\n\n<p>Te dwa hosty staj\u0105 si\u0119 teraz kolejn\u0105 warstw\u0105 naszego labu. Wcze\u015bniej umia\u0142y si\u0119 ze sob\u0105 komunikowa\u0107 po IP i przez routing, a teraz zaczn\u0105 rozwi\u0105zywa\u0107 nazwy dla ca\u0142ego \u015brodowiska.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Najwa\u017cniejsze pliki konfiguracyjne BIND9<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>W tym artykule b\u0119dziemy pracowa\u0107 g\u0142\u00f3wnie na kilku plikach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\/etc\/bind\/named.conf.default-zones &#8211;<\/strong> Zawiera domy\u015blne strefy, takie jak localhost i 127.0.0.1, kt\u00f3re powinny by\u0107 dost\u0119pne na ka\u017cdym serwerze DNS.<\/li>\n\n\n\n<li><strong>\/etc\/bind\/named.conf.local<\/strong> &#8211; tutaj najlepiej definiowa\u0107 w\u0142asne strefy DNS, takie jak firma.local<\/li>\n\n\n\n<li><strong>\/etc\/bind\/named.conf.options<\/strong> &#8211; S\u0142u\u017cy do konfiguracji globalnych opcji DNS. Przyk\u0142adowo w tym pliku mo\u017cna wy\u0142\u0105czy\u0107 obs\u0142ug\u0119 zapyta\u0144 rekurencyjnych.<\/li>\n\n\n\n<li><strong>\/etc\/bind\/<\/strong> &#8211; miejsce, w kt\u00f3rym b\u0119dziemy trzyma\u0107 pliki stref g\u0142\u00f3wnych<\/li>\n\n\n\n<li><strong>\/var\/cache\/bind\/<\/strong> &#8211; dobre miejsce do zapisu strefy podrz\u0119dnej pobranej przez serwer slave<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Zezwolenie na zapytania DNS z naszych sieci<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"323\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_options-1024x323.png\" alt=\"\" class=\"wp-image-1454\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_options-1024x323.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_options-300x95.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_options-768x242.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_options-585x185.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_options.png 1135w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Na pocz\u0105tku warto ograniczy\u0107, kto w og\u00f3le mo\u017ce zadawa\u0107 pytania do naszego DNS-a. W naszym labie sensownie b\u0119dzie dopu\u015bci\u0107 tylko hosty z trzech podsieci u\u017cywanych wcze\u015bniej:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>- 172.16.10.0\/24\n- 172.16.20.0\/24\n- 192.16.0.0\/24<\/code><\/pre>\n\n\n\n<p>Na <strong>Debianie<\/strong> i <strong>Ubuntu<\/strong> edytuj plik:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mcedit \/etc\/bind\/named.conf.options<\/code><\/pre>\n\n\n\n<p>i dodaj lub zmodyfikuj sekcj\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>options {  \ndirectory \"\/var\/cache\/bind\";  \n  \nallow-query { localhost; 172.16.10.0\/24; 172.16.20.0\/24; 192.16.0.0\/24; };  \n  \ndnssec-validation auto;  \n  \nlisten-on-v6 { any; };  \n};<\/code><\/pre>\n\n\n\n<p>Takie ustawienie oznacza, \u017ce z naszego DNS-a mog\u0105 korzysta\u0107 tylko hosty z laboratorium i sam localhost. To dobra praktyka, bo nie udost\u0119pniasz serwera nazw szerzej, ni\u017c jest to potrzebne.<\/p>\n\n\n\n<p>Po zmianach sprawd\u017a sk\u0142adni\u0119 plik\u00f3w dns, je\u015bli b\u0119d\u0105 jakie\u015b b\u0142\u0119dy w\u00f3wczas poni\u017csze polecenie zwr\u00f3ci b\u0142\u0119dy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo named-checkconf<\/code><\/pre>\n\n\n\n<p>Je\u015bli nie ma \u017cadnych b\u0142\u0119d\u00f3w, zrestartuj us\u0142ug\u0119 bind9 poni\u017cszym poleceniem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart bind9<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja strefy nadrz\u0119dnej na Debianie<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Definicja strefy firma.local<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"389\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_local-1024x389.png\" alt=\"\" class=\"wp-image-1455\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_local-1024x389.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_local-300x114.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_local-768x292.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_local-585x222.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_conf_local.png 1031w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Na <strong>Debianie<\/strong>, kt\u00f3ry b\u0119dzie serwerem master, dodaj stref\u0119 w pliku <strong>\/etc\/bind\/named.conf.local<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"firma.local\" {  \n    type master;  \n    file \"\/etc\/bind\/db.firma.local\";  \n    allow-transfer { 172.16.20.11; };  \n    notify yes;  \n    also-notify { 172.16.20.11; };  \n};<\/code><\/pre>\n\n\n\n<p>Ta konfiguracja m\u00f3wi BIND-owi, \u017ce:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Debian jest serwerem <strong>master<\/strong> dla strefy <strong>firma.local<\/strong>,<\/li>\n\n\n\n<li>plik strefy znajduje si\u0119 w <strong>\/etc\/bind\/db.firma.local<\/strong>,<\/li>\n\n\n\n<li><strong>Ubuntu<\/strong> mo\u017ce pobiera\u0107 transfer strefy,<\/li>\n\n\n\n<li>po zmianach Debian wy\u015ble powiadomienie do serwera podrz\u0119dnego.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Tworzenie pliku strefy<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"599\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/db_firma_local-1024x599.png\" alt=\"\" class=\"wp-image-1456\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/db_firma_local-1024x599.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/db_firma_local-300x176.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/db_firma_local-768x449.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/db_firma_local-585x342.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/db_firma_local.png 1135w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Tworzymy wcze\u015bniej zadeklarowany plik <strong>db.firma.local<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>touch \/etc\/bind\/db.firma.local<\/code><\/pre>\n\n\n\n<p>Nast\u0119pnie edytuj go wklejaj\u0105c poni\u017csz\u0105 zawarto\u015b\u0107<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$TTL    604800  \n@       IN      SOA     dns1.firma.local. admin.firma.local. (  \n\t\t\t\t              3            ; Serial  \n                              604800       ; Refresh  \n                              86400        ; Retry  \n                              2419200      ; Expire  \n                              604800 )     ; Negative Cache TTL  \n  \n@       IN      NS      dns1.firma.local.  \n@       IN      NS      dns2.firma.local.  \n  \ndns1    IN      A       172.16.10.1  \ndns2    IN      A       172.16.20.11  \n  \ndebian  IN      A       172.16.10.1  \nubuntu  IN      A       172.16.20.11  \ncentos  IN      A       172.16.20.1  \n  \ncl1     IN      A       172.16.10.10  \ncl2     IN      A       172.16.20.10<\/code><\/pre>\n\n\n\n<p>W tym pliku:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SOA<\/strong> opisuje podstawowe informacje o strefie,<\/li>\n\n\n\n<li><strong>NS<\/strong> wskazuj\u0105 serwery nazw,<\/li>\n\n\n\n<li><strong>rekordy A<\/strong> mapuj\u0105 nazwy host\u00f3w na adresy IPv4.<\/li>\n<\/ul>\n\n\n\n<p>Warto od razu zwr\u00f3ci\u0107 uwag\u0119 na numer seryjny <strong>Serial<\/strong>. To on decyduje, czy serwer podrz\u0119dny uzna, \u017ce strefa na masterze jest nowsza i czy ma pobra\u0107 jej aktualn\u0105 wersj\u0119.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Sprawdzenie poprawno\u015bci strefy<\/h3>\n\n\n\n<p>Przed restartem us\u0142ugi sprawd\u017a konfiguracj\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>named-checkzone firma.local \/etc\/bind\/db.firma.local<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"157\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_checkzone-1024x157.png\" alt=\"\" class=\"wp-image-1457\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_checkzone-1024x157.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_checkzone-300x46.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_checkzone-768x118.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_checkzone-585x90.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/named_checkzone.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Je\u015bli wynik nie pokazuje b\u0142\u0119d\u00f3w, zrestartuj us\u0142ug\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart bind9<\/code><\/pre>\n\n\n\n<p>Na CL1 to dobry moment, \u017ceby sprawdzi\u0107, czy sam master odpowiada poprawnie, zanim przejdziesz do konfiguracji serwera slave. W ustawieniach karty sieciowej ustaw najpierw DNS, z kt\u00f3rego ma korzysta\u0107 klient na adres serwera master.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"705\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting-1024x705.png\" alt=\"\" class=\"wp-image-1458\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting-1024x705.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting-300x206.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting-768x529.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting-1170x805.png 1170w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting-585x403.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/windows_dns_setting.png 1187w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Najprostszym sposobem b\u0119dzie u\u017cycie polecenia <strong>ping<\/strong>. Serwer master powinien odpowiedzie\u0107, poniewa\u017c jest ju\u017c wst\u0119pnie skonfigurowany. Serwer podrz\u0119dny na ten moment nie odpowie, poniewa\u017c nie skonfigurowali\u015bmy jeszcze na nim strefy.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"427\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dns_ping_check.png\" alt=\"\" class=\"wp-image-1459\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dns_ping_check.png 761w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dns_ping_check-300x168.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dns_ping_check-585x328.png 585w\" sizes=\"auto, (max-width: 761px) 100vw, 761px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja strefy podrz\u0119dnej na Ubuntu<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Definicja strefy slave<\/h3>\n\n\n\n<p>Czas na konfiguracje strefy podrz\u0119dnej. S\u0142u\u017cy do tego ten sam plik co wcze\u015bniej. Na <strong>Ubuntu<\/strong> edytuj plik <strong>\/etc\/bind\/named.conf.local<\/strong> i dodaj w nim nast\u0119puj\u0105c\u0105 stref\u0119:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"firma.local\" {  \n    type slave;  \n    masters { 172.16.10.1; };  \n    file \"\/var\/cache\/bind\/db.firma.local\";  \n    masterfile-format text;  \n};<\/code><\/pre>\n\n\n\n<p>Ta konfiguracja m\u00f3wi, \u017ce:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ubuntu jest <strong>stref\u0105 podrz\u0119dn\u0105<\/strong> dla strefy firma.local,<\/li>\n\n\n\n<li>ma pobiera\u0107 dane z Debiana pod adresem 172.16.10.1,<\/li>\n\n\n\n<li>kopia strefy ma by\u0107 zapisana w \/var\/cache\/bind\/db.firma.local.<\/li>\n<\/ul>\n\n\n\n<p>Parametr <strong>masterfile-format text;<\/strong> jest bardzo wygodny, bo sprawia, \u017ce pobrana strefa b\u0119dzie zapisana w czytelnej postaci tekstowej, a nie w mniej wygodnym formacie binarnym.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Restart us\u0142ugi i sprawdzenie transferu strefy<\/h3>\n\n\n\n<p>Na Ubuntu wykonaj:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo named-checkconf  \nsudo systemctl restart bind9<\/code><\/pre>\n\n\n\n<p>Nast\u0119pnie sprawd\u017a, czy plik strefy si\u0119 pojawi\u0142:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -l \/var\/cache\/bind\/db.firma.local<\/code><\/pre>\n\n\n\n<p>Je\u017celi plik istnieje, to znaczy, \u017ce serwer podrz\u0119dny poprawnie pobra\u0142 stref\u0119 z Debiana. Mo\u017cesz te\u017c wykona\u0107 test korzystaj\u0105c z polecenia dig i sprawdzi\u0107 czy s\u0105 zwracane rekordy z tej strefy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"708\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns-1024x708.png\" alt=\"\" class=\"wp-image-1460\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns-1024x708.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns-300x207.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns-768x531.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns-1170x809.png 1170w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns-585x405.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_dns.png 1281w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Testowanie DNS z klient\u00f3w w laboratorium<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Windows CL1 jako klient mastera<\/h3>\n\n\n\n<p>Na <strong>Windows CL1<\/strong> ustaw r\u0119cznie serwer DNS na <strong>172.16.10.1<\/strong>. Nast\u0119pnie sprawd\u017a rozwi\u0105zywanie nazw:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nslookup dns1.firma.local 172.16.10.1  \nnslookup ubuntu.firma.local 172.16.10.1  \nping ubuntu.firma.local<\/code><\/pre>\n\n\n\n<p>Windows CL1 znajduje si\u0119 w tej samej sieci co Debian, wi\u0119c ten test pokazuje odpowiedzi bezpo\u015brednio z serwera master. Ponadto wida\u0107, \u017ce ping do <strong>ubuntu.firma.local<\/strong> r\u00f3wnie\u017c dochodzi.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"459\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/master_dns_check.png\" alt=\"\" class=\"wp-image-1461\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/master_dns_check.png 732w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/master_dns_check-300x188.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/master_dns_check-585x367.png 585w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Windows CL2 jako klient slave\u2019a<\/h3>\n\n\n\n<p>Na <strong>Windows CL2<\/strong> ustaw r\u0119cznie serwer DNS na <strong>172.16.20.11<\/strong>. Nast\u0119pnie wykonaj:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nslookup dns1.firma.local 172.16.20.11  \nnslookup cl1.firma.local 172.16.20.11  \nping dns1.firma.local<\/code><\/pre>\n\n\n\n<p>U mnie w trakcie test\u00f3w okaza\u0142o si\u0119, \u017ce host <strong>Windows CL2<\/strong> potrafi\u0142 wysy\u0142a\u0107 zapytania DNS do serwera <strong>Ubuntu<\/strong>, ale nie otrzymywa\u0142 odpowiedzi. Potwierdzi\u0142em to poleceniem <strong>tcpdump<\/strong>, kt\u00f3re pokaza\u0142o, \u017ce zapytania z adresu <strong>172.16.20.10<\/strong> docieraj\u0105 do <strong>172.16.20.11:53<\/strong>, jednak odpowiedzi nie wracaj\u0105 do klienta.<\/p>\n\n\n\n<p>Dodatkowo lokalny test na Ubuntu wykonany poleceniem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig @172.16.20.11 dns1.firma.local<\/code><\/pre>\n\n\n\n<p>zwraca\u0142 poprawn\u0105 odpowied\u017a, co oznacza\u0142o, \u017ce sama strefa DNS i us\u0142uga <strong>named<\/strong> dzia\u0142a\u0142y poprawnie. Problem nie le\u017ca\u0142 wi\u0119c w konfiguracji strefy <strong>firma.local<\/strong>, tylko w filtrowaniu ruchu sieciowego na samym serwerze slave.<\/p>\n\n\n\n<p>W moim przypadku winowajc\u0105 okaza\u0142y si\u0119 aktywne regu\u0142y <strong>nftables<\/strong>. Po wykonaniu polecenia:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nft flush ruleset<\/code><\/pre>\n\n\n\n<p>serwer Ubuntu zacz\u0105\u0142 od razu odpowiada\u0107 na zapytania DNS od klient\u00f3w w sieci. Oznacza to, \u017ce aktywny ruleset <strong>nftables<\/strong> blokowa\u0142 odpowiedzi DNS<\/p>\n\n\n\n<p>Poni\u017cszy test pokazuje, \u017ce Ubuntu jako serwer podrz\u0119dny poprawnie odpowiada klientom po swojej stronie topologii.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"527\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/slave_dns_check.png\" alt=\"\" class=\"wp-image-1462\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/slave_dns_check.png 736w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/slave_dns_check-300x215.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/slave_dns_check-585x419.png 585w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/figure>\n<\/div>\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego numer seryjny w strefie jest tak wa\u017cny<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>\u017beby pokaza\u0107, po co zmienia si\u0119 numer seryjny, dodaj na Debianie nowy rekord do <strong>db.firma.local<\/strong>, na przyk\u0142ad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>www     IN      A       172.16.10.1<\/code><\/pre>\n\n\n\n<p>Ale <strong>nie zmieniaj jeszcze numeru seryjnego<\/strong>. Zrestartuj bind na Debianie i Ubuntu, a potem sprawd\u017a z Windowsa CL2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping www.firma.local<\/code><\/pre>\n\n\n\n<p>Najprawdopodobniej nowy rekord si\u0119 nie pojawi, bo Ubuntu nie uzna\u0142o strefy za nowsz\u0105. Teraz zwi\u0119ksz numer seryjny, np. z 3 na 4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"615\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_bind9-1024x615.png\" alt=\"\" class=\"wp-image-1463\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_bind9-1024x615.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_bind9-300x180.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_bind9-768x461.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_bind9-585x351.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_bind9.png 1133w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Zrestartuj ponownie us\u0142ug\u0119 na Debianie i Ubuntu. Parametr refresh jest ustawiony na 5min, po tym czasie serwer slave powinien pobra\u0107 now\u0105 wersj\u0119 strefy i rekord <a href=\"http:\/\/www.firma.local\" target=\"_blank\" rel=\"noreferrer noopener\">www.firma.local<\/a> zacznie si\u0119 rozwi\u0105zywa\u0107.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"386\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_number_bind.png\" alt=\"\" class=\"wp-image-1464\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_number_bind.png 938w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_number_bind-300x123.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_number_bind-768x316.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/serial_number_bind-585x241.png 585w\" sizes=\"auto, (max-width: 938px) 100vw, 938px\" \/><\/figure>\n\n\n\n<p>Ten przyk\u0142ad pokazuje, \u017ce w DNS nie wystarczy tylko zmieni\u0107 plik strefy, trzeba jeszcze zadba\u0107 o poprawn\u0105 numeracj\u0119 wersji.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dodawanie rekord\u00f3w A i CNAME<\/h2>\n\n\n\n<p>Za\u0142\u00f3\u017cmy, \u017ce chcesz utworzy\u0107 rekordy dla us\u0142ug dzia\u0142aj\u0105cych pod nazwami:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sklep.firma.local<\/li>\n\n\n\n<li><a href=\"http:\/\/www.sklep.firma.local\" target=\"_blank\" rel=\"noreferrer noopener\">www.sklep.firma.local<\/a><\/li>\n\n\n\n<li>portal.firma.local<\/li>\n<\/ul>\n\n\n\n<p>Do takiej konfiguracji najcz\u0119\u015bciej wykorzystuje si\u0119 rekordy <strong>A<\/strong> i <strong>CNAME<\/strong>. Rekord <strong>A<\/strong> wskazuje bezpo\u015brednio adres IPv4 hosta, dlatego u\u017cywa si\u0119 go wtedy, gdy dana nazwa ma prowadzi\u0107 wprost do konkretnego serwera. Rekord <strong>CNAME<\/strong> nie przechowuje adresu IP, tylko tworzy alias do innej nazwy DNS, dzi\u0119ki czemu kilka r\u00f3\u017cnych nazw mo\u017ce wskazywa\u0107 t\u0119 sam\u0105 us\u0142ug\u0119 bez konieczno\u015bci duplikowania adres\u00f3w.<\/p>\n\n\n\n<p>W praktyce jest to bardzo wygodne. Je\u015bli przyk\u0142adowo Twoja aplikacja dzia\u0142a fizycznie na jednym serwerze, ale chcesz udost\u0119pni\u0107 j\u0105 u\u017cytkownikom pod kilkoma nazwami, wystarczy utworzy\u0107 jeden rekord <strong>A<\/strong> jako nazw\u0119 g\u0142\u00f3wn\u0105, a pozosta\u0142e nazwy doda\u0107 jako aliasy <strong>CNAME<\/strong>. Dzi\u0119ki temu p\u00f3\u017aniejsza zmiana adresu IP wymaga poprawienia tylko jednego wpisu, a nie ca\u0142ej grupy rekord\u00f3w.<\/p>\n\n\n\n<p>Na Debianie, w pliku <strong>\/etc\/bind\/db.firma.local<\/strong>, mo\u017cesz wi\u0119c mie\u0107 zar\u00f3wno rekordy <strong>NS<\/strong> dla ca\u0142ej strefy, jak i rekordy <strong>A\/CNAME<\/strong> dla konkretnych us\u0142ug:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sklep        IN      A       172.16.10.1  \nwww.sklep    IN      CNAME   sklep  \nportal       IN      CNAME   sklep<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"645\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_bind-1024x645.png\" alt=\"\" class=\"wp-image-1465\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_bind-1024x645.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_bind-300x189.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_bind-768x483.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_bind-585x368.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_bind.png 1136w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Po zmianach pami\u0119taj o zwi\u0119kszeniu numeru seryjnego i restarcie bind9:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart bind9<\/code><\/pre>\n\n\n\n<p>Po kilku minutach mo\u017cesz przetestowa\u0107 dzia\u0142anie z hosta <strong>CL2<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ping sklep.firma.local  \nping www.sklep.firma.local  \nping portal.firma.local<\/code><\/pre>\n\n\n\n<p>Je\u015bli wszystko zosta\u0142o skonfigurowane poprawnie, ka\u017cda z tych nazw powinna zosta\u0107 rozwi\u0105zana na ten sam adres IP.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dodawanie rekord\u00f3w MX i SRV<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>W pliku strefy mo\u017cesz doda\u0107 r\u00f3wnie\u017c rekordy <strong>MX<\/strong> i <strong>SRV<\/strong>, kt\u00f3re s\u0142u\u017c\u0105 do bardziej praktycznych zastosowa\u0144 ni\u017c zwyk\u0142e mapowanie nazwy hosta na adres IP. Rekord <strong>MX<\/strong> jest u\u017cywany do wskazania, kt\u00f3ry serwer obs\u0142uguje poczt\u0119 dla danej domeny, natomiast rekord <strong>SRV<\/strong> pozwala opisa\u0107 konkretn\u0105 us\u0142ug\u0119 dzia\u0142aj\u0105c\u0105 na okre\u015blonym porcie i ho\u015bcie.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Do czego s\u0142u\u017cy rekord MX<\/h3>\n\n\n\n<p>Rekord <strong>MX<\/strong> okre\u015bla, gdzie maj\u0105 trafia\u0107 wiadomo\u015bci e-mail dla danej domeny. Gdy kto\u015b wysy\u0142a poczt\u0119 na adres w domenie <code>firma.local<\/code>, serwer pocztowy najpierw sprawdza rekordy <strong>MX<\/strong>, aby dowiedzie\u0107 si\u0119, kt\u00f3ry host odpowiada za odbi\u00f3r wiadomo\u015bci.<\/p>\n\n\n\n<p>Warto zwr\u00f3ci\u0107 uwag\u0119, \u017ce rekord <strong>MX<\/strong> nie powinien wskazywa\u0107 bezpo\u015brednio adresu IP. Zamiast tego wskazuje <strong>nazw\u0119 hosta<\/strong>, a ta nazwa powinna mie\u0107 osobny rekord <strong>A<\/strong> lub <strong>AAAA<\/strong>. Dzi\u0119ki temu konfiguracja jest bardziej czytelna i zgodna z typowym sposobem dzia\u0142ania DNS.<\/p>\n\n\n\n<p>Dodatkowo przy rekordach MX podaje si\u0119 <strong>priorytet<\/strong>. Im ni\u017csza liczba, tym wy\u017cszy priorytet serwera. Oznacza to, \u017ce serwer z warto\u015bci\u0105 <code>10<\/code> b\u0119dzie traktowany jako g\u0142\u00f3wny, a serwer z warto\u015bci\u0105 <code>20<\/code> jako zapasowy.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Do czego s\u0142u\u017cy rekord SRV<\/h3>\n\n\n\n<p>Rekord <strong>SRV<\/strong> s\u0142u\u017cy do wskazywania konkretnej us\u0142ugi dzia\u0142aj\u0105cej na danym serwerze. To rozwi\u0105zanie cz\u0119sto spotyka si\u0119 przy us\u0142ugach takich jak SIP, LDAP, Kerberos czy XMPP. Dzi\u0119ki rekordowi SRV klient nie musi wiedzie\u0107 \u201ena sztywno\u201d, na jakim porcie dzia\u0142a dana us\u0142uga &#8211; mo\u017ce odczyta\u0107 to bezpo\u015brednio z DNS.<\/p>\n\n\n\n<p>W zapisie rekordu <strong>SRV<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>pierwsza liczba oznacza <strong>priorytet<\/strong>,<\/li>\n\n\n\n<li>druga oznacza <strong>wag\u0119<\/strong>,<\/li>\n\n\n\n<li>trzecia to <strong>port<\/strong>,<\/li>\n\n\n\n<li>na ko\u0144cu podajesz <strong>host docelowy<\/strong>, kt\u00f3ry powinien mie\u0107 w\u0142asny rekord <strong>A<\/strong> lub <strong>AAAA<\/strong>.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"894\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_mx_srv_bind-1024x894.png\" alt=\"\" class=\"wp-image-1466\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_mx_srv_bind-1024x894.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_mx_srv_bind-300x262.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_mx_srv_bind-768x671.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_mx_srv_bind-585x511.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekordy_mx_srv_bind.png 1050w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Na Debianie, w pliku <strong>\/etc\/bind\/db.firma.local<\/strong>, mo\u017cesz doda\u0107 na przyk\u0142ad takie wpisy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@       IN      MX      10 mail  \nmail    IN      A       172.16.20.11  \n  \n@       IN      MX      20 mail2  \nmail2   IN      A       172.16.10.1  \n  \n_sip._udp       IN      SRV     10 5 5060 centos.firma.local.<\/code><\/pre>\n\n\n\n<p>Taka konfiguracja oznacza, \u017ce:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>g\u0142\u00f3wnym serwerem pocztowym dla domeny firma.local jest host <strong>mail.firma.local<\/strong>,<\/li>\n\n\n\n<li>zapasowym serwerem pocztowym jest <strong>mail2.firma.local<\/strong>,<\/li>\n\n\n\n<li>us\u0142uga SIP dzia\u0142aj\u0105ca po UDP znajduje si\u0119 na ho\u015bcie <strong>centos.firma.local<\/strong> i nas\u0142uchuje na porcie <strong>5060<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>W praktyce to bardzo wygodne. Je\u015bli kiedy\u015b zmienisz adres IP serwera pocztowego albo centosa, wystarczy poprawi\u0107 rekord <strong>A<\/strong> dla hosta docelowego, a nie wszystkie rekordy korzystaj\u0105ce z tej nazwy.<\/p>\n\n\n\n<p>Po zmianach zwi\u0119ksz numer seryjny i zrestartuj bind9. Nast\u0119pnie z Ubuntu albo Windowsa sprawd\u017a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig @172.16.20.11 firma.local MX  \ndig @172.16.20.11 _sip._udp.firma.local SRV<\/code><\/pre>\n\n\n\n<p>Je\u015bli wszystko zosta\u0142o skonfigurowane poprawnie, pierwszy test poka\u017ce serwery pocztowe przypisane do domeny, a drugi zwr\u00f3ci informacje o us\u0142udze SIP: jej priorytecie, wadze, porcie oraz ho\u015bcie docelowym.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"721\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_mx-1024x721.png\" alt=\"\" class=\"wp-image-1467\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_mx-1024x721.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_mx-300x211.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_mx-768x541.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_mx-585x412.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/dig_mx.png 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wy\u0142\u0105czenie zapyta\u0144 rekurencyjnych<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>Je\u015bli chcesz, \u017ceby Tw\u00f3j serwer DNS odpowiada\u0142 tylko za w\u0142asn\u0105 stref\u0119, na przyk\u0142ad <strong>firma.local<\/strong>, a nie rozwi\u0105zywa\u0142 nazw z Internetu, mo\u017cesz wy\u0142\u0105czy\u0107 <strong>rekurencje<\/strong>. W takiej konfiguracji serwer dzia\u0142a wy\u0142\u0105cznie jako <strong>serwer autorytatywny<\/strong> dla w\u0142asnych rekord\u00f3w i nie pr\u00f3buje \u201eszuka\u0107 dalej\u201d odpowiedzi dla domen, kt\u00f3rych sam nie obs\u0142uguje.<\/p>\n\n\n\n<p>To wa\u017cne rozr\u00f3\u017cnienie. Serwer <strong>autorytatywny<\/strong> zna odpowiedzi tylko dla stref, za kt\u00f3re odpowiada, natomiast <strong>resolver rekurencyjny<\/strong> potrafi dodatkowo odpytwa\u0107 inne serwery DNS i zwraca\u0107 odpowiedzi dla nazw spoza w\u0142asnej strefy, takich jak google.com. Je\u015bli wy\u0142\u0105czysz rekurencje, Tw\u00f3j DNS nadal poprawnie odpowie na pytania o firma.local, ale odm\u00f3wi rozwi\u0105zywania nazw internetowych.<\/p>\n\n\n\n<p>Na Debianie w pliku <strong>\/etc\/bind\/named.conf.options<\/strong> ustaw:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>recursion no;<\/code><\/pre>\n\n\n\n<p>Na Debianie w pliku <strong>\/etc\/bind\/named.conf.options<\/strong> ustaw:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart bind9<\/code><\/pre>\n\n\n\n<p>Od tego momentu klient korzystaj\u0105cy z tego serwera powinien poprawnie rozwi\u0105zywa\u0107:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rekordy z domeny <strong>firma.local<\/strong>,<\/li>\n\n\n\n<li>ale nie np. rekord\u00f3w spoza w\u0142asnej strefy, takich jak <strong>google.com<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>Warto przetestowa\u0107 to dwoma poleceniami:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig @172.16.10.1 dns1.firma.local  \ndig @172.16.10.1 google.com<\/code><\/pre>\n\n\n\n<p>W pierwszym przypadku serwer powinien zwr\u00f3ci\u0107 poprawn\u0105 odpowied\u017a, poniewa\u017c jest autorytatywny dla strefy <strong>firma.local<\/strong>. W drugim przypadku zobaczysz brak odpowiedzi dla domeny internetowej albo komunikat podobny do tego ze screena<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"902\" height=\"537\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/no_recursion_bind.png\" alt=\"\" class=\"wp-image-1468\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/no_recursion_bind.png 902w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/no_recursion_bind-300x179.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/no_recursion_bind-768x457.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/no_recursion_bind-585x348.png 585w\" sizes=\"auto, (max-width: 902px) 100vw, 902px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Warunkowe przekazywanie dalej<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>Za\u0142\u00f3\u017cmy teraz, \u017ce <strong>Ubuntu<\/strong> ma w\u0142asn\u0105, osobn\u0105 stref\u0119 <strong>intranet.local<\/strong>, a <strong>Debian<\/strong> ma jedynie przekazywa\u0107 zapytania dotycz\u0105ce tej domeny w\u0142a\u015bnie do Ubuntu. Taka konfiguracja przydaje si\u0119 wtedy, gdy jedna cz\u0119\u015b\u0107 infrastruktury odpowiada za w\u0142asn\u0105 stref\u0119 DNS, ale chcesz, aby klienci korzystaj\u0105cy z innego serwera r\u00f3wnie\u017c mogli rozwi\u0105zywa\u0107 nazwy z tej domeny.<\/p>\n\n\n\n<p>To rozwi\u0105zanie nazywa si\u0119 <strong>warunkowym przekazywaniem dalej<\/strong>. W praktyce oznacza to, \u017ce Debian nie musi by\u0107 autorytatywny dla <strong>intranet.local<\/strong> i nie musi przechowywa\u0107 lokalnie jej rekord\u00f3w. Wystarczy, \u017ce b\u0119dzie wiedzia\u0142, do kt\u00f3rego serwera ma przekaza\u0107 pytanie o t\u0119 konkretn\u0105 domen\u0119.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Tworzenie strefy intranet.local na Ubuntu<\/h3>\n\n\n\n<p>Na Ubuntu, w pliku <strong>named.conf.local<\/strong>, dodaj definicj\u0119 nowej strefy:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"intranet.local\" {  \n    type master;  \n    file \"\/etc\/bind\/db.intranet.local\";  \n};<\/code><\/pre>\n\n\n\n<p>Nast\u0119pnie utw\u00f3rz plik strefy: <strong>\/etc\/bind\/db.intranet.local<\/strong> i dodaj do niego poni\u017csz\u0105 zawarto\u015b\u0107<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$TTL    604800  \n@       IN      SOA     intranet.firma.local. admin.intranet.local. (  \n                              4  \n                              300  \n                              60  \n                              2419200  \n                              604800 )  \n  \n@       IN      NS      intranet.firma.local.  \n@       IN      A       172.16.20.11  \nwww     IN      A       172.16.20.11<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"341\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/intranet_local_bind-1024x341.png\" alt=\"\" class=\"wp-image-1469\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/intranet_local_bind-1024x341.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/intranet_local_bind-300x100.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/intranet_local_bind-768x256.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/intranet_local_bind-585x195.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/intranet_local_bind.png 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Taka konfiguracja oznacza, \u017ce Ubuntu jest serwerem autorytatywnym dla strefy <strong>intranet.local<\/strong>, a nazwa <a href=\"http:\/\/www.intranet.local\" target=\"_blank\" rel=\"noreferrer noopener\">www.intranet.local<\/a> wskazuje bezpo\u015brednio na adres <strong>172.16.20.11<\/strong>. Dzi\u0119ki temu ka\u017cdy klient, kt\u00f3ry zapyta o ten rekord w\u0142a\u015bciwy serwer DNS, otrzyma poprawn\u0105 odpowied\u017a.<\/p>\n\n\n\n<p>Po zapisaniu zmian zrestartuj us\u0142ug\u0119 BIND:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart bind9<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Konfiguracja warunkowego forwardingu na Debianie<\/h3>\n\n\n\n<p>Warunkowe przekazywanie dalej w BIND dzia\u0142a w ramach obs\u0142ugi zapyta\u0144 rekurencyjnych. Je\u015bli wcze\u015bniej wy\u0142\u0105czyli\u015bmy <strong>rekurencj\u0119<\/strong>, to przed skonfigurowaniem strefy <strong>type forward<\/strong> trzeba j\u0105 ponownie w\u0142\u0105czy\u0107, najlepiej tylko dla zaufanych sieci z naszego laboratorium. T\u0119 zmian\u0119 wprowadza si\u0119 w pliku <strong>\/etc\/bind\/named.conf.options<\/strong>.<\/p>\n\n\n\n<p>Zahashuj opcje rekurencji i ustaw <strong>dnssec-validation<\/strong> na <strong>no<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"410\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekursja_dns-1024x410.png\" alt=\"\" class=\"wp-image-1470\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekursja_dns-1024x410.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekursja_dns-300x120.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekursja_dns-768x308.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekursja_dns-585x234.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/rekursja_dns.png 1128w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nast\u0119pnie na Debianie, w pliku <strong>named.conf.local<\/strong>, dodaj:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"intranet.local\" {  \n    type forward;  \n    forward only;  \n    forwarders { 172.16.20.11; };  \n};<\/code><\/pre>\n\n\n\n<p>Taki wpis m\u00f3wi Debianowi, \u017ce nie ma samodzielnie odpowiada\u0107 za stref\u0119 <strong>intranet.local<\/strong>, tylko ma przekazywa\u0107 wszystkie pytania o t\u0119 domen\u0119 do serwera Ubuntu. Parametr <strong>forward only<\/strong> oznacza, \u017ce Debian nie b\u0119dzie pr\u00f3bowa\u0142 szuka\u0107 odpowiedzi inn\u0105 drog\u0105 &#8211; je\u015bli Ubuntu nie odpowie, zapytanie zako\u0144czy si\u0119 niepowodzeniem.<\/p>\n\n\n\n<p>Po zapisaniu zmian zrestartuj us\u0142ug\u0119 DNS. Je\u015bli konfiguracja jest poprawna, Debian przeka\u017ce zapytanie do Ubuntu, a klient otrzyma odpowied\u017a tak, jakby Debian zna\u0142 t\u0119 stref\u0119 lokalnie.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"993\" height=\"604\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/warunkowe_przekazywanie_dns.png\" alt=\"\" class=\"wp-image-1471\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/warunkowe_przekazywanie_dns.png 993w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/warunkowe_przekazywanie_dns-300x182.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/warunkowe_przekazywanie_dns-768x467.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/warunkowe_przekazywanie_dns-585x356.png 585w\" sizes=\"auto, (max-width: 993px) 100vw, 993px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Forwardery do Internetu<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>Forwardery dzia\u0142aj\u0105 podobnie do warunkowego przekazywania dalej, ale zamiast jednej konkretnej domeny dotycz\u0105 wszystkich nazw, kt\u00f3rych serwer nie potrafi rozwi\u0105za\u0107 samodzielnie. Dzi\u0119ki temu Debian mo\u017ce obs\u0142ugiwa\u0107 lokaln\u0105 stref\u0119 <strong>firma.local<\/strong>, a jednocze\u015bnie przekazywa\u0107 pytania o domeny internetowe do zewn\u0119trznych resolver\u00f3w.<\/p>\n\n\n\n<p>To przydatne wtedy, gdy chcesz, aby jeden serwer DNS by\u0142 centralnym punktem dla klient\u00f3w w sieci. W takim uk\u0142adzie hosty pytaj\u0105 tylko Debiana, a on w razie potrzeby pyta dalej publiczne serwery DNS.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Konfiguracja forwarder\u00f3w na Debianie<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"511\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns-1024x511.png\" alt=\"\" class=\"wp-image-1472\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns-1024x511.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns-300x150.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns-768x383.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns-585x292.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns.png 1128w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Je\u015bli chcesz, aby Debian przekazywa\u0142 pozosta\u0142e zapytania do zewn\u0119trznych resolver\u00f3w, dodaj w <strong>named.conf.options<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>forwarders {  \n    1.1.1.1;  \n    9.9.9.9;  \n};<\/code><\/pre>\n\n\n\n<p>Po zapisaniu zmian zrestartuj us\u0142ug\u0119 bind9. Od tego momentu Debian b\u0119dzie przekazywa\u0142 zapytania o domeny zewn\u0119trzne do wskazanych resolver\u00f3w.<\/p>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Testowanie forwarder\u00f3w<\/h3>\n\n\n\n<p>Teraz mo\u017cesz przetestowa\u0107 z klienta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dig @172.16.10.1 bank.pl<\/code><\/pre>\n\n\n\n<p>Je\u015bli odpowied\u017a zostanie zwr\u00f3cona poprawnie, oznacza to, \u017ce Debian nie rozwi\u0105za\u0142 tej nazwy samodzielnie, tylko przekaza\u0142 pytanie do jednego z forwarder\u00f3w. W praktyce w\u0142a\u015bnie tak cz\u0119sto dzia\u0142a lokalny DNS w ma\u0142ych firmach &#8211; obs\u0142uguje w\u0142asne strefy, a reszt\u0119 pyta\u0144 przekazuje dalej.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"693\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns2-1024x693.png\" alt=\"\" class=\"wp-image-1473\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns2-1024x693.png 1024w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns2-300x203.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns2-768x520.png 768w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns2-585x396.png 585w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/forwarders_internet_dns2.png 1125w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Strefa wyszukiwania odwrotnego (reverse DNS)<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<p>DNS mo\u017ce dzia\u0142a\u0107 nie tylko w kierunku <strong>nazwa \u2192 adres IP<\/strong>, ale r\u00f3wnie\u017c odwrotnie, czyli <strong>adres IP \u2192 nazwa hosta<\/strong>. Taki mechanizm nazywa si\u0119 <strong>reverse DNS<\/strong> i opiera si\u0119 na rekordach <strong>PTR<\/strong>.<\/p>\n\n\n\n<p>Reverse DNS nie jest wymagany do zwyk\u0142ego dzia\u0142ania pingu po nazwie czy podstawowego routingu. Jest jednak bardzo przydatny tam, gdzie adres IP sam w sobie niewiele m\u00f3wi, a nazwa hosta pozwala szybciej zrozumie\u0107, z jak\u0105 maszyn\u0105 masz do czynienia.<\/p>\n\n\n\n<p>Dla sieci <strong>172.16.10.0\/24<\/strong> na Debianie dodaj do pliku <strong>named.conf.local<\/strong> definicj\u0119 strefy odwrotnej:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zone \"10.16.172.in-addr.arpa\" {  \n    type master;  \n    file \"\/etc\/bind\/db.172.16.10\";  \n};<\/code><\/pre>\n\n\n\n<p>Nazwa <strong>10.16.172.in-addr.arpa<\/strong> wynika z odwr\u00f3cenia oktet\u00f3w sieci <strong>172.16.10.0<\/strong>. W strefach reverse DNS zapisuje si\u0119 adresacj\u0119 w\u0142a\u015bnie w takiej postaci.<\/p>\n\n\n\n<p>Nast\u0119pnie utw\u00f3rz plik strefy odwrotnej <strong>\/etc\/bind\/db.172.16.10<\/strong>. W pliku strefy umie\u015b\u0107 poni\u017csz\u0105 zawarto\u015b\u0107:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$TTL    604800  \n@       IN      SOA     dns1.firma.local. admin.firma.local. (  \n                              5  \n                              300  \n                              60  \n                              2419200  \n                              604800 )  \n  \n@       IN      NS      dns1.firma.local.  \n  \n1       IN      PTR     dns1.firma.local.  \n10      IN      PTR     cl1.firma.local.<\/code><\/pre>\n\n\n\n<p>Taka konfiguracja oznacza, \u017ce:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>adres <strong>172.16.10.1<\/strong> ma by\u0107 rozwi\u0105zywany jako <strong>dns1.firma.local<\/strong><\/li>\n\n\n\n<li>adres <strong>172.16.10.10<\/strong> ma by\u0107 rozwi\u0105zywany jako <strong>cl1.firma.local<\/strong><\/li>\n<\/ul>\n\n\n\n<p>W reverse DNS nie wpisujesz ca\u0142ego adresu IP, tylko <strong>ostatni oktet hosta<\/strong>, poniewa\u017c sama sie\u0107 zosta\u0142a ju\u017c okre\u015blona w nazwie strefy <strong>10.16.172.in-addr.arpa<\/strong>.<\/p>\n\n\n\n<p>Testujemy w systemie windowsowym za pomoc\u0105 polecenia nslookup czy adresy s\u0105 rozwi\u0105zywane na nazwy<\/p>\n\n\n\n<p>Po zapisaniu pliku tradycyjnie zrestartuj us\u0142ug\u0119 DNS. Przetestuj w systemie windowsowym CL1 za pomoc\u0105 polecenia <strong>nslookup<\/strong> czy adresy s\u0105 rozwi\u0105zywane na nazwy<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"387\" src=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/nslookup_dns.png\" alt=\"\" class=\"wp-image-1474\" srcset=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/nslookup_dns.png 648w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/nslookup_dns-300x179.png 300w, https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/nslookup_dns-585x349.png 585w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>W poprzednich artyku\u0142ach skonfigurowali\u015bmy adresacj\u0119 IP, nazwy host\u00f3w, routing oraz podstawowe us\u0142ugi sieciowe. Dzi\u0119ki temu nasze laboratorium jest ju\u017c gotowe do&hellip;<\/p>\n","protected":false},"author":3,"featured_media":1477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[26],"tags":[32,34],"class_list":["post-1453","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux","tag-sieci"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku - SudoIT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku - SudoIT\" \/>\n<meta property=\"og:description\" content=\"W poprzednich artyku\u0142ach skonfigurowali\u015bmy adresacj\u0119 IP, nazwy host\u00f3w, routing oraz podstawowe us\u0142ugi sieciowe. Dzi\u0119ki temu nasze laboratorium jest ju\u017c gotowe do&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/\" \/>\n<meta property=\"og:site_name\" content=\"SudoIT\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-01T10:29:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-01T10:39:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/konfiguracja_DNS_w_Linuxie.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Patryk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Patryk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/\"},\"author\":{\"name\":\"Patryk\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#\\\/schema\\\/person\\\/62b95033a7a8937fbb692e81d5e0b8bd\"},\"headline\":\"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku\",\"datePublished\":\"2026-05-01T10:29:20+00:00\",\"dateModified\":\"2026-05-01T10:39:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/\"},\"wordCount\":2924,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/konfiguracja_DNS_w_Linuxie.png\",\"keywords\":[\"linux\",\"sieci\"],\"articleSection\":[\"Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/\",\"url\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/\",\"name\":\"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku - SudoIT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/konfiguracja_DNS_w_Linuxie.png\",\"datePublished\":\"2026-05-01T10:29:20+00:00\",\"dateModified\":\"2026-05-01T10:39:51+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#\\\/schema\\\/person\\\/62b95033a7a8937fbb692e81d5e0b8bd\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/konfiguracja_DNS_w_Linuxie.png\",\"contentUrl\":\"https:\\\/\\\/sudoit.pl\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/konfiguracja_DNS_w_Linuxie.png\",\"width\":1536,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/2026\\\/05\\\/01\\\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sudoit.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#website\",\"url\":\"https:\\\/\\\/sudoit.pl\\\/\",\"name\":\"SudoIT\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sudoit.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sudoit.pl\\\/#\\\/schema\\\/person\\\/62b95033a7a8937fbb692e81d5e0b8bd\",\"name\":\"Patryk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g\",\"caption\":\"Patryk\"},\"url\":\"https:\\\/\\\/sudoit.pl\\\/index.php\\\/author\\\/patryk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku - SudoIT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/","og_locale":"en_US","og_type":"article","og_title":"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku - SudoIT","og_description":"W poprzednich artyku\u0142ach skonfigurowali\u015bmy adresacj\u0119 IP, nazwy host\u00f3w, routing oraz podstawowe us\u0142ugi sieciowe. Dzi\u0119ki temu nasze laboratorium jest ju\u017c gotowe do&hellip;","og_url":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/","og_site_name":"SudoIT","article_published_time":"2026-05-01T10:29:20+00:00","article_modified_time":"2026-05-01T10:39:51+00:00","og_image":[{"width":1536,"height":1024,"url":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/konfiguracja_DNS_w_Linuxie.png","type":"image\/png"}],"author":"Patryk","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Patryk","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#article","isPartOf":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/"},"author":{"name":"Patryk","@id":"https:\/\/sudoit.pl\/#\/schema\/person\/62b95033a7a8937fbb692e81d5e0b8bd"},"headline":"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku","datePublished":"2026-05-01T10:29:20+00:00","dateModified":"2026-05-01T10:39:51+00:00","mainEntityOfPage":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/"},"wordCount":2924,"commentCount":0,"image":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#primaryimage"},"thumbnailUrl":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/konfiguracja_DNS_w_Linuxie.png","keywords":["linux","sieci"],"articleSection":["Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/","url":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/","name":"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku - SudoIT","isPartOf":{"@id":"https:\/\/sudoit.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#primaryimage"},"image":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#primaryimage"},"thumbnailUrl":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/konfiguracja_DNS_w_Linuxie.png","datePublished":"2026-05-01T10:29:20+00:00","dateModified":"2026-05-01T10:39:51+00:00","author":{"@id":"https:\/\/sudoit.pl\/#\/schema\/person\/62b95033a7a8937fbb692e81d5e0b8bd"},"breadcrumb":{"@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#primaryimage","url":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/konfiguracja_DNS_w_Linuxie.png","contentUrl":"https:\/\/sudoit.pl\/wp-content\/uploads\/2026\/05\/konfiguracja_DNS_w_Linuxie.png","width":1536,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/sudoit.pl\/index.php\/2026\/05\/01\/konfiguracja-serwera-dns-w-linuxie-bind9-krok-po-kroku\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sudoit.pl\/"},{"@type":"ListItem","position":2,"name":"Konfiguracja serwera DNS w Linuxie \u2013 BIND9 krok po kroku"}]},{"@type":"WebSite","@id":"https:\/\/sudoit.pl\/#website","url":"https:\/\/sudoit.pl\/","name":"SudoIT","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sudoit.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/sudoit.pl\/#\/schema\/person\/62b95033a7a8937fbb692e81d5e0b8bd","name":"Patryk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d933a3eef1e4f0026a85747cca61f1ae9043bf2753554c0427f1a2dc8ca46096?s=96&d=mm&r=g","caption":"Patryk"},"url":"https:\/\/sudoit.pl\/index.php\/author\/patryk\/"}]}},"_links":{"self":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts\/1453","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/comments?post=1453"}],"version-history":[{"count":1,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts\/1453\/revisions"}],"predecessor-version":[{"id":1476,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/posts\/1453\/revisions\/1476"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/media\/1477"}],"wp:attachment":[{"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/media?parent=1453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/categories?post=1453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sudoit.pl\/index.php\/wp-json\/wp\/v2\/tags?post=1453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}