Serwer DNS - Bind 9

W tym miejscu zapraszamy Was do współpracy. Czekamy na propozycje, sugestie i rady.
Moderatorzy zatroszczą się o to, by najlepsze teksty trafiły do FAQ.

Moderatorzy: Moderatorzy, Administratorzy

vacapn
Użytkownik
Posty: 9
Rejestracja: 2006-05-31, 23:44
Lokalizacja: ,że znowu
Kontakt:

Serwer DNS - Bind 9

Post autor: vacapn » 2006-06-01, 16:00

Serwer DNS - Bind 9 - Konfiguracja dla sieci LAN

1. Założenia


Sytuacja wygląda tak. Jest sobie pewna sieć LAN , podłączona do Internetu za pośrednictwem powiedzmy Neostrady (zresztą to nie ważne za pomocą czego ). W sieci dla uproszczenia sprawy niech będą 3 komputery i serwer. Generalnie wszystko będzie działać jak każdy użytkownik wpisze sobie DNSy TPSA . Ale jednak, w naszej sieci jest serwer i można go zmusić do robienia czegoś więcej niż translacja adresów sieciowych. Ktoś się zapyta pewnie po co skoro wszystko działa bez tego ?

Otóż problem zaczyna pojawiać się, w momencie gdy dość poważnie obciążymy nasze łącze. Sprawa zaczyna wyglądać tak, że czas dostępu do serwera DNS wynosi czasem nawet 0,5s , co w przypadku stron które ładują informacje powiedzmy z 10 różnych adresów zaczyna być irytujące.

Zobaczmy przykład :

- Serwer bez obciążenia
root@SERWER:/# dig wp.pl

(...)
;; Query time: 21 msec
;; SERVER: 194.204.159.1#53(194.204.159.1)
;; WHEN: Sat Jul 1 14:26:37 2006
;; MSG SIZE rcvd: 154
Czas uzyskania adresu wp.pl to 21 milisekundy, czyli nie tak źle.

- Serwer obciążony

Ale zróbmy tak: Na jednej konsoli zacznijmy coś ściągać np. tak:
root@SERWER:~# wget ftp://ftp.man.szczecin.pl/pub/Linux/sla ... all-d1.iso
(...)
0% [ ] 173,760 72.67K/s
Jak na łącze o przepustowości 80Kb/s to je nieźle obciążyliśmy, zostawiamy włączone pobieranie i teraz na drugiej konsoli :
root@SERWER:/etc# dig wp.pl
(...)
;; Query time: 1008 msec
;; SERVER: 194.204.159.1#53(194.204.159.1)
;; WHEN: Sat Jul 1 15:08:06 2006
;; MSG SIZE rcvd: 154
1008 ms , czyli już ponad 1 sekunda na uzyskanie jednego adresu IP. A jak na stronie mamy jeszcze 3 obrazki z innych serwerów kilka reklam no to musimy uzyskać tych adresów więcej, a na każdy idzie owa sekunda. Oczywiście na pobranie strony też poświęcimy więcej czasu, ale tego nie unikniemy. Możemy za to skrócić czas oczekiwania na uzyskanie adresu IP stosując lokalny serwer DNS .

Najlepiej zilustruje to kolejny przykład przy uruchomionym serwerze DNS .

- Serwer nie obciążony
root@SERWER:~# dig wp.pl
(...)
;; Query time: 35 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jul 1 15:27:20 2006
;; MSG SIZE rcvd: 150
35 ms czyli w miarę to samo co przy DNS TPSA ( trochę więcej ale zdarzało się też ok. 25 ms, a danych nie chce fałszować więc przepisuje to ci otrzymałem )

Ale teraz zapytajmy po raz drugi
root@SERWER:~# dig wp.pl
(...)
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jul 1 15:29:56 2006
;; MSG SIZE rcvd: 150
5ms czyli bardzo dobrze.
Generalnie na tym polega zastosowanie serwera DNS w sieciach LAN. Za pierwszym zapytaniem pod obciążeniem też mamy ok. 1000ms

ale każde następne daje już wynik ok. 5ms, bo na zapytanie odpowiada serwer lokalny.
Mam nadzieje, że mniej więcej wiadomo już do czego nasz serwer DNS będzie służył, zabierzmy się teraz za instalację.

2. Instalacja
Potrzebujemy pakiet o nazwie Bind. W momencie kiedy to pisałem najnowsza wersja to bind-9.3.1 i tą właśnie wersje opisuje. O instalacji pakietów napisano już wiele ja zdobiłem to tak :

Kod: Zaznacz cały

root@SERWER:~# swaret --install bind


Oczywiście jak ktoś chce, może zainstalować w dowolny inny sposób ( kompilacja, installpkg etc. ) ważne żeby działało .

3. Konfiguracja jako serwer cacheujący ( znaczy taki jak opisane w założeniach )

W naszym ulubionym edytorze ( u mnie to mcedit ) otwieramy plik /etc/named.conf . Podzielony jest on na kilka części, na początku zajmę się częścią rozpoczynającą się od options. U mnie wygląda to tak:

Kod: Zaznacz cały

options {

directory "/var/named"; 		
version "Microsoft DNS Server"; 
forwarders { 194.204.159.1; 194.204.152.34; };
listen-on { 127.0.0.1; 192.168.0.1; }; 	
//query-source address * port 53;	

};
A więc:
  • directory "/var/named"; - informuje binda o katalogu w którym będzie pracował
    version "Microsoft DNS Server"; - powoduje, że bind udaje inny serwer DNS. Można wpisać cokolwiek albo całkowicie zrezygnować
    forwarders { 194.204.159.1; 194.204.152.34; }; - tutaj podajemy adresy serwerów DNS z których wcześniej korzystaliśmy ( np. DNSy TPSA)
    listen-on { 127.0.0.1; 192.168.0.1; }; - Jeśli mamy kilka adresów ip na naszym serwerze to wymieniamy te na których ma słuchać bind.
    //query-source address * port 53; - mówi który port będzie używany do zapytań kierowanych do innych serwerów DNS jeśli bind nie znajdzie odpowiedzi u siebie. Odkomentowanie może pomóc w przypadku problemów z firewallem, ale powoduje luke w bezpieczeństwie.
Następnie dodajemy 2 sekcje :

Kod: Zaznacz cały

zone "." {
type hint;
file "root.hints";
};
						
zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};
Tworzymy katalogi ( jeśli ich nie ma ) :
/var/named i /var/named/pz

Następnie w katalogu /var/named tworzymy plik root.hints o następującej zawartości:

Kod: Zaznacz cały

.			518400	IN	NS	H.ROOT-SERVERS.NET.
.			518400	IN	NS	I.ROOT-SERVERS.NET.
.			518400	IN	NS	J.ROOT-SERVERS.NET.
.			518400	IN	NS	K.ROOT-SERVERS.NET.
.			518400	IN	NS	L.ROOT-SERVERS.NET.
.			518400	IN	NS	M.ROOT-SERVERS.NET.
.			518400	IN	NS	A.ROOT-SERVERS.NET.
.			518400	IN	NS	B.ROOT-SERVERS.NET.
.			518400	IN	NS	C.ROOT-SERVERS.NET.
.			518400	IN	NS	D.ROOT-SERVERS.NET.
.			518400	IN	NS	E.ROOT-SERVERS.NET.
.			518400	IN	NS	F.ROOT-SERVERS.NET.
.			518400	IN	NS	G.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.	3600000	IN	A	198.41.0.4
B.ROOT-SERVERS.NET.	3600000	IN	A	192.228.79.201
C.ROOT-SERVERS.NET.	3600000	IN	A	192.33.4.12
D.ROOT-SERVERS.NET.	3600000	IN	A	128.8.10.90
E.ROOT-SERVERS.NET.	3600000	IN	A	192.203.230.10
F.ROOT-SERVERS.NET.	3600000	IN	A	192.5.5.241
G.ROOT-SERVERS.NET.	3600000	IN	A	192.112.36.4
H.ROOT-SERVERS.NET.	3600000	IN	A	128.63.2.53
I.ROOT-SERVERS.NET.	3600000	IN	A	192.36.148.17
J.ROOT-SERVERS.NET.	3600000	IN	A	192.58.128.30
K.ROOT-SERVERS.NET.	3600000	IN	A	193.0.14.129
L.ROOT-SERVERS.NET.	3600000	IN	A	198.32.64.12
M.ROOT-SERVERS.NET.	3600000	IN	A	202.12.27.33
Są to adresy serwerów z których korzysta Bind jeśli nie ma czegoś w swojej pamięci. Powinien też korzystać z DSNów

wymienionych w sekcji options .

W katalogu /var/named/pz tworzymy plik 127.0.0 ( taka nazwa )

Kod: Zaznacz cały

@               IN      SOA     xxx.homelinux.net. hostmaster.xxx.homelinux.net. (
                                1       ; Numer seryjny
                                8H      ; Odświeżenie
                                2H      ; Powtórzenie
                                1W      ; Przedawnienie
                                1D)     ; Minimalny TTL
                        NS      ns.xxx.homelinux.net.
1                       PTR     localhost.
Gdzie zamiast xxx.homelinux.net wstawiamy adres swojej domeny. ( Jeśli nie mamy to możemy sobie za darmo założyć np. na
www.dyndns.org )

Ponadto należy w pliku /etc/resolv.conf wpisać :

Kod: Zaznacz cały

serach xxx.homelinux.net
nameserver 127.0.0.1


W zasadzie to chyba wszystko jeśli chodzi o konfiguracje dla serwera cacheującego . Pozostaje tylko uruchomić .

4. Uruchomienie

W najprostszy sposób :

Kod: Zaznacz cały

root@SERWER:~# named
i sprawdzamy czy działa :

Kod: Zaznacz cały

root@SERWER:~# tail -n 50 /var/log/messages
powinniśmy otrzymać coś w tym stylu:
Jul 1 16:02:51 SERWER named[6377]: starting BIND 9.3.1
Jul 1 16:02:51 SERWER named[6377]: loading configuration from '/etc/named.conf'
Jul 1 16:02:51 SERWER named[6377]: no IPv6 interfaces found
Jul 1 16:02:51 SERWER named[6377]: listening on IPv4 interface lo, 127.0.0.1#53
Jul 1 16:02:51 SERWER named[6377]: listening on IPv4 interface eth4, 192.168.0.1#53
Jul 1 16:02:51 SERWER named[6377]: command channel listening on 127.0.0.1#953
Jul 1 16:02:51 SERWER named[6377]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1
Jul 1 16:02:51 SERWER named[6377]: running
Jul 1 16:02:51 SERWER named[6377]: zone 0.0.127.in-addr.arpa/IN: sending notifies (serial 1)
Warto też dodać Binda do skryptów startowych. W tym celu powinno wystarczyć

Kod: Zaznacz cały

root@SERWER:~# chmod +x /etc/rc.d/rc.bind
Jeśli nie będzie się sam uruchamiał to trzeba sprawdzić czy w pliku rc.M jest wpisane :

Kod: Zaznacz cały

if [ -x /etc/rc.d/rc.bind ]; then
  . /etc/rc.d/rc.bind start
fi
To już w zasadzie koniec jeśli chodzi o uruchomienie Binda, pozostało jeszcze troche czynności końcowych.

5. Czynności końcowe

Po pierwsze, należy powpisywać adres naszego serwera DNS ( u mnie 192.168.0.1 ) na komputerach klienckich. Jeśli nie mamy

DHCP to trzeba się przebiec i wpisać ręcznie, jeśli mamy DHCP to wygląda to tak:

W pliku /etc/dhcpd.conf

Kod: Zaznacz cały

option domain-name-servers 192.168.0.1, 194.204.159.1, 194.204.152.34;
Gdzie pierwszy adres to nasz serwer, reszta to zapasowe. Do testów radze wpisać tylko nasz wtedy wiadomo z czego się korzysta.

Oczywiście po tym restartujemy dhcpd (np. polecenia killall dhcpd i dhcpd )

Ponadto jeśli mamy firewalla to należy odblokować port 53 ( tylko dla LAN ) mniej więcej w taki sposób:

Kod: Zaznacz cały

$IPT -A INPUT -i $INT_LAN -p udp --dport 53 -m state --state NEW -j ACCEPT
$IPT -A INPUT -i $INT_LAN -p tcp --dport 53 -m state --state NEW -j ACCEPT
	
$IPT -A OUTPUT -o $INT_LAN -p udp  --dport 53 -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -o $INT_LAN -p tcp  --dport 53 -m state --state NEW -j ACCEPT
Gdzie $IPT określa ścieżkę dostępu do pliku iptables a $INT_LAN nazwe interfeace sieciowego ( eth0, eth1 itd. )

UWAGA: Co do firewalla nie jestem pewnien czy to wystarczy, cały mój skrypt jest na forum (http://forum.slackware.pl/viewtopic.php?p=82974#82974 ). Na pewno z nim serwer DNS działa bez

problemu.

To by było właściwie na tyle, jeśli chodzi o serwer DNS caching-only

6. A może coś więcej, czyli jednak niech to nie będzie serwer jedynie caching-only

a) O co chodzi, czyli znowu założenia ( teraz będą krótsze, może :D )
A więc w naszej sieci jest serwer ( 192.168.0.1 ) i 3 komputery ( 192.168.0.2 - 4 ) . Komunikacja ładnie działa ale tylko po adresach IP ( bynajmniej u mnie tak działała ). Ponadto chcemy mieć kilka bajerów. Zróbmy więc komunikacje po nazwach i coś takiego, że np. po wpisaniu w przeglądarce trzech literek "www" pojawi się nam strona naszego serwera.

b) Konfiguracja

To już tak w skrócie

Dopisujemy w /etc/named.conf

Kod: Zaznacz cały

zone "xxx.homelinux.net" {
notify no;
type master;
file "pz/xxx.homelinux.net";
};


zone "0.168.192.in-addr.arpa" {
notify no;
type master;
file "pz/192.168.0";
};
Zamiast xxx.homelinux.net oczywiście wpisujemy swoją domenę a zamiast 192.168.0 swoją sieć .

Tworzymy /var/named/pz/xxx.homelinux.net (plik mówi jak zamieniać nazwy na adresy IP) i wpisujemy tam :

Kod: Zaznacz cały

@       IN      SOA     ns.xxx.homelinux.net. hostmaster.xxx.homelinux.net. (
			200606011       ; numer seryjny, dzisiejsza data i numer zmiany
			8H              ; odświeżanie, w sekundach
			2H              ; powtórzenie, w sekundach
			1W              ; przedawnienie, w sekundach
			1D )            ; minimum, w sekundach
															;
		NS      ns              ; Adres Internetowy serwera nazw
		MX      10 mail     ; Podstawowy serwer poczty
		MX      20 poczta   ; Drugorzędny serwer poczty
;
@	IN	A	192.168.0.1

localhost      	A       127.0.0.1

gw             	A      192.168.0.1	// tutaj troche przesadzam, jest to już			
ns             	 A      192.168.0.1	 // sztuka dla sztuki
www	      A	     192.168.0.1
mail            A      192.168.0.1
poczta	       A      192.168.0.1
ftp            	 A      192.168.0.1

server		  A       192.168.0.1	// adresy naszych komputerów w sieci
komp1          	A      	192.168.0.2
komp2		A	192.168.0.3
komp3		A	192.168.0.4
Ponadto tworzymy plik /var/named/pz/192.168.0 (plik działający w odwrotny sposób do poprzedniego) i w nim piszemy :

Kod: Zaznacz cały

@       IN      SOA     ns.xxx.homelinux.net. hostmaster.xxx.homelinux.net. (
                        200606011 ; Numer seryjny, data + numer
                        8H      ; odświeżanie
                        2H      ; powtarzanie
                        1W      ; przedawnienie
                        1D)     ; minimalny TTL
                NS      ns.xxxr.homelinux.net.

1               PTR     server.xxx.homelinux.net. 	 // numerek na początku
2               PTR     komp1.xxx.homelinux.net.	// to końcówka IP
3               PTR     komp2.xxx.homelinux.net.	// oczywiście dodajemy	
4               PTR     komp3.xxx.homelinux.net.	// takie komputery jakie 
							// są w naszej sieci
I jeszcze w /etc/dhcpd.conf

Kod: Zaznacz cały

option domain-name "xxx.homelinux.net";
c) Uruchomienie

Restart Binda ( killall named , named ) i Dhcpd ( killall dhcpd , dhcpd )
root@SERWER:/# tail -n 50 /var/log/messages

(...)

Jul 1 16:38:13 SERWER named[7483]: starting BIND 9.3.1
Jul 1 16:38:13 SERWER named[7483]: loading configuration from '/etc/named.conf'
Jul 1 16:38:13 SERWER named[7483]: no IPv6 interfaces found
Jul 1 16:38:13 SERWER named[7483]: listening on IPv4 interface lo, 127.0.0.1#53
Jul 1 16:38:13 SERWER named[7483]: listening on IPv4 interface eth4, 192.168.0.1#53
Jul 1 16:38:13 SERWER named[7483]: command channel listening on 127.0.0.1#953
Jul 1 16:38:13 SERWER named[7483]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1
Jul 1 16:38:13 SERWER named[7483]: zone 0.168.192.in-addr.arpa/IN: loaded serial 199802151
Jul 1 16:38:13 SERWER named[7483]: zone mojkomputer.homelinux.net/IN: loaded serial 199802151
Jul 1 16:38:13 SERWER named[7483]: running
Jul 1 16:38:13 SERWER named[7483]: zone 0.0.127.in-addr.arpa/IN: sending notifies (serial 1)
Jul 1 16:38:13 SERWER named[7483]: client 192.168.0.1#1024: received notify for zone '0.0.127.in-addr.arpa'
Oczywiscie jeśli mamy już wykonywalny skrypt rc.bind to nic nie musimy zmieniać.

d) Czyli co właściwie zrobiliśmy ?

W tym momencie odpowiednie nazwy powinny się odnosić do odpowiednich IP czyli u mnie:

gw, ns, www, mail, poczta, ftp -> 192.168.0.1
server -> 192.168.0.1
komp1 -> 192.168.0.2 i tak dalej zgodnie z tym co podaliśmy w plikach konfiguracyjnych, w odwrotną stronę także .

Oczywiście gw.xxx.homelinux.net = gw , www.xxx.homelinux.net = www itd.
( ważne żeby wpisać searach xxx.homelinux.net w pliku /etc/resolv.conf ) .
Na KOMP1 2 i 3 jest tak samo bo jest odpowiedni wpis w dhcpd.conf .

Na potwierdzenie :
root@SERWER:/# ping www
PING www.xxx.homelinux.net (192.168.0.1) 56(84) bytes of data.
64 bytes from SERWER (192.168.0.1): icmp_seq=1 ttl=64 time=0.212 ms
i z KOMP1 ( Windows XP )
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\vacpan>ping www

Pinging www.xxx.homelinux.net [192.168.0.1] with 32 bytes of data:

Reply from 192.168.0.1: bytes=32 time<1ms TTL=64
(...)
Ping statistics for 192.168.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
7. Zakończenie

Jeszcze chciałem wspomnieć o tym, że do testów przydają sie komendy takie jak : dig i nslookup ( można o nich znaleźć na google , nslookup działa nawet na WinXP więc przydatne do testów na klientach ). W ogóle to polecam zarówno konfigurować to jaki i testować siedząc przy jednym z komputerów klientów i pracując przez ssh, zawsze wiadomo kiedy działa a kiedy nie.

Przy pisaniu tego ( a właściwie przy konfigurowaniu na swoim serwerze ) korzystałem z DNS HOWTO autorstwa Nicolai Langfeldt janl@math.uio.no v2.0.6, 22 Lipca 1998 Wersja polska: Leszek Urbański tygrys@fidonet.org.pl v2.1.1, 4 Sierpnia 1998 ( http://debian.one.pl/howto/dns/DNS-HOWTO-PL.html ) stąd też spore podobieństwo skryptów konfiguracyjnych .

Mam nadzieje, że to co napisałem się komuś do czegoś przyda. Krytyka mile widziana, zwłaszcza konstruktywna .

P.S
W plikach konfiguracyjnych, zwłaszcza tych w /var/named dobrze jest pousuwać moje komentarze zwłaszcza te zaczynające się od // .
Ostatnio zmieniony 2006-07-31, 23:27 przez vacapn, łącznie zmieniany 3 razy.

Awatar użytkownika
brx
Użytkownik
Posty: 723
Rejestracja: 2004-06-24, 14:37
Lokalizacja: Poznań/Lublin

Re: Serwer DNS - Bind 9

Post autor: brx » 2006-06-01, 16:31

vacapn pisze:Czas uzyskania adresu wp.pl to 21 sekundy, czyli nie tak źle.
chyba ms ? Tak mi się w oczy rzuciło ;)
Slackware Current - Kernel 2.6.18 - Xfce - - Aterm - Kadu
_______________________________________
Registered Linux User 363857 :D

vacapn
Użytkownik
Posty: 9
Rejestracja: 2006-05-31, 23:44
Lokalizacja: ,że znowu
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: vacapn » 2006-06-01, 19:41

Oczywiście milisekundy, już poprawione.

Awatar użytkownika
bojleros
Użytkownik
Posty: 785
Rejestracja: 2005-08-29, 11:12
Lokalizacja: z widokem na familoki :)
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: bojleros » 2006-06-01, 21:00

Mam nadzieje, że to co napisałem się komuś do czegoś przyda. Krytyka mile widziana, zwłaszcza konstruktywna .
Guru z binda nie jestem , ale to ze niedawno go konfigurowałem poraz pierwszy pewnie będzie pomocne :)


Jak na mój gust to zrobiłeś za mało opisów do opcji konfiguracyjnych. Jak na tekst przeznaczony dla newbies to stanowczo za mało:/ Opisz typy rekordów.

Drugi przypadek , ten po zwykłym forwarderze: Dlaczego tego nie uogólnisz ?? Jeden przykład dla strefy prostej i odwrotnej. Jako przykład strefy odwrotnej możesz dać strefę dla sieci o masce /16. Sęk w tym jak zapisać strefę odwrotną w /etc/named i potem rekordy w /var/named/plik_strefy.

Często dns stoi na bramce. Bramka ma dwa ip , jeden lokalny , drugi internetowy. Jak dodatkowo masz własną domenę to warto zrobić tak żeby twój dns rozwiązywał twojadomena.pl na ip lokalne i ip internetowe w zależności od pochodzenia zapytania.
To napewno pomoże http://forum.slackware.pl/viewtopic.php?t=9672

root@SERWER:~# tail -n 50 /var/log/messages
Jak trafnie zauważyłeś Bind nie jest przyjemny w konfiguracji a informację o błędach wyrzuca jedynie do logów. Jeżeli nikt inny nie ma fizycznego dostępu do Twojej maszynki to można wywalić logi na 12 konsolę ;) Tylko inny sposób.
root@SERWER:~# chmod +x /etc/rc.d/rc.bind +x
Drobna literówka.


Warto wiedzieć jaka jest róznica pomiedzy wpisami:

Kod: Zaznacz cały

gw                 A      192.168.0.1
gw.                 A      192.168.0.1
(kropka ma być)

Więcej pomysłów nie mam , jak coś mi wpadnie do głowy to napisze jeszcze.

Awatar użytkownika
snaj
Moderator w st. spocz.
Posty: 1608
Rejestracja: 2004-10-10, 16:32
Lokalizacja: Warszawa
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: snaj » 2006-06-01, 21:41

Za dlugie to dla mnie, no i znane, wiec bede interweniowal tylko w razie jakichs niejasnosc :twisted:

A wiec:
1.
Warto wiedzieć jaka jest róznica pomiedzy wpisami:
Kod:

gw A 192.168.0.1
gw. A 192.168.0.1

(kropka ma być)
Kropki ma nie byc ;]

2.
Uwagi odnosnie obciazenia sa imo nieco nie na miejscu zwazywszy ze w normalnych warunkach na serwerach LANowych ustawiany jest QoS i dns idzie priorytetami.

3.
Ustawienie: source-query na port 53 ulatwia ataki na cache binda.
*
[color=blue]Sieci[/color]/[color=green]Serwery[/color]/[color=red]Security[/color] - Freelancer
*

Awatar użytkownika
hanys
Użytkownik
Posty: 349
Rejestracja: 2004-07-21, 11:49
Lokalizacja: Poznań
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: hanys » 2006-06-01, 21:49

Zgadza sie: kropki ma nie byc, poniewaz bind dolacza "zrodlo" do wszytkich nazw w pliku strefowym niezakonczonych kropka.
Registered Linux User #375982

Awatar użytkownika
bojleros
Użytkownik
Posty: 785
Rejestracja: 2005-08-29, 11:12
Lokalizacja: z widokem na familoki :)
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: bojleros » 2006-06-01, 21:54

snaj pisze:Za dlugie to dla mnie, no i znane, wiec bede interweniowal tylko w razie jakichs niejasnosc :twisted:

A wiec:
1.
Cytat:

Warto wiedzieć jaka jest róznica pomiedzy wpisami:
Kod:

gw A 192.168.0.1
gw. A 192.168.0.1

(kropka ma być)

Kropki ma nie byc ;]
:)

Z tego co wiem to kropka powoduje ze bind nie dokłada do podanej frazy nazwy domenowej dla której aktualny serwer funkcjonuje.

Jak wpisze sobie "gw" to bind rozumie to jako gw.mojadomena.pl . Dopełnia adres.
JAk podam z kropką to adres nie jest dopełniany. Akurat w rekordzie A zaowocuje to komunikatem o tym że adres jest poza obsługiwaną domeną :)

Napisałem nieprecyzyjnie, "kropka ma byc" odnosi się tylko do mojego przykładu :) a nie bezpośrednio do zapisu w faq. Z kropką to by trzebabyło pisać całą nazwę domenową a po co to robić :)

Snaj , jezeli to właśnie miałeś na myśli to spoko , jezeli nie to czy mógłbyś napisać coś wiecej ??
Ostatnio zmieniony 2006-06-01, 21:57 przez bojleros, łącznie zmieniany 1 raz.

Awatar użytkownika
snaj
Moderator w st. spocz.
Posty: 1608
Rejestracja: 2004-10-10, 16:32
Lokalizacja: Warszawa
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: snaj » 2006-06-01, 22:07

Wlasciwie to nic nie zrozumialem ;]

Kropki tam w zadnym wypadku ma nie byc, bo bind nie polubi tego, bo jak sam pisales nazwa bedzie spoza domeny, tak wiec kropkom w tamtym wypadku mowimy nie! ;]
*
[color=blue]Sieci[/color]/[color=green]Serwery[/color]/[color=red]Security[/color] - Freelancer
*

Awatar użytkownika
ahes
Użytkownik
Posty: 1047
Rejestracja: 2004-05-28, 10:44
Lokalizacja: Krakow
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: ahes » 2006-06-01, 22:21

dokladniej, jesli kropki nie ma to dokladana jest nazwa $ORIGIN. mozna ja zdefiniowac w pliku strefy.
[b][url=http://rootnode.net]rootnode.net[/url] :: Konta shellowe z piekła[/b]

vacapn
Użytkownik
Posty: 9
Rejestracja: 2006-05-31, 23:44
Lokalizacja: ,że znowu
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: vacapn » 2006-06-01, 23:35

Często dns stoi na bramce. Bramka ma dwa ip , jeden lokalny , drugi internetowy. Jak dodatkowo masz własną domenę to warto zrobić tak żeby twój dns rozwiązywał twojadomena.pl na ip lokalne i ip internetowe w zależności od pochodzenia zapytania.
Generalnie założenie było takie, że dns ma być tylko dla lanu. Sieć w której to testowałem ma jedno ip zewnętrzne i kilka wewnetrznych a do sieci w których w jednej domenie jest kilka komputerów z ip zwenętrznym dostępu nie mam niestety.
3.
Ustawienie: source-query na port 53 ulatwia ataki na cache binda.
dopisałem to bo miałem problemy z firewallem, teraz sprawdziłem działa ok bez tego. Myśle, że poprawiłem to.
Jak na mój gust to zrobiłeś za mało opisów do opcji konfiguracyjnych. Jak na tekst przeznaczony dla newbies to stanowczo za mało:/ Opisz typy rekordów.
Opisze jak mnie znowu najdzie chęc ( pewnie nie długo w końcu jeszcze 4 miesiace wakacji a ja nie mam co robić )
Drobna literówka.

Poprawiłem.

Awatar użytkownika
shirn
Użytkownik
Posty: 4
Rejestracja: 2006-04-13, 10:13
Lokalizacja: Borki City
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: shirn » 2006-06-27, 10:25

Witam zrobiłem jak w ww. opisie i nie działa mi.

Zaczne od tego ze mam v slaka 10.2 jajo 2.4.31 instalacja full bez X i kde.

plik /etc/named.config

Kod: Zaznacz cały

options {
directory "/var/named";
version "Microsoft DNS Server";
forwarders { 194.204.159.1; 194.204.152.34; };
listen-on { 127.0.0.1; 10.0.0.1; };
};

zone "." {
type hint;
file "root.hints";
};

zone "0.0.127.in-addr.arpa" {
type master;
file "pz/127.0.0";
};

zone "." IN {
        type hint;
        file "caching-example/named.ca";
};

zone "localhost" IN {
        type master;
        file "caching-example/localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "caching-example/named.local";
        allow-update { none; };
};

/var/named/root.hints

Kod: Zaznacz cały

.            518400    IN    NS    H.ROOT-SERVERS.NET.
.            518400    IN    NS    I.ROOT-SERVERS.NET.
.            518400    IN    NS    J.ROOT-SERVERS.NET.
.            518400    IN    NS    K.ROOT-SERVERS.NET.
.            518400    IN    NS    L.ROOT-SERVERS.NET.
.            518400    IN    NS    M.ROOT-SERVERS.NET.
.            518400    IN    NS    A.ROOT-SERVERS.NET.
.            518400    IN    NS    B.ROOT-SERVERS.NET.
.            518400    IN    NS    C.ROOT-SERVERS.NET.
.            518400    IN    NS    D.ROOT-SERVERS.NET.
.            518400    IN    NS    E.ROOT-SERVERS.NET.
.            518400    IN    NS    F.ROOT-SERVERS.NET.
.            518400    IN    NS    G.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.    3600000    IN    A    198.41.0.4
B.ROOT-SERVERS.NET.    3600000    IN    A    192.228.79.201
C.ROOT-SERVERS.NET.    3600000    IN    A    192.33.4.12
D.ROOT-SERVERS.NET.    3600000    IN    A    128.8.10.90
E.ROOT-SERVERS.NET.    3600000    IN    A    192.203.230.10
F.ROOT-SERVERS.NET.    3600000    IN    A    192.5.5.241
G.ROOT-SERVERS.NET.    3600000    IN    A    192.112.36.4
H.ROOT-SERVERS.NET.    3600000    IN    A    128.63.2.53
I.ROOT-SERVERS.NET.    3600000    IN    A    192.36.148.17
J.ROOT-SERVERS.NET.    3600000    IN    A    192.58.128.30
K.ROOT-SERVERS.NET.    3600000    IN    A    193.0.14.129
L.ROOT-SERVERS.NET.    3600000    IN    A    198.32.64.12
M.ROOT-SERVERS.NET.    3600000    IN    A    202.12.27.33
i tu sie troche motałem mam domene (a raczej subdomene) np: polko.ja.org i jest ona przekierowana na moj adres IP np: 1.1.1.1 i w pliku /var/named/pz/127.0.0

Kod: Zaznacz cały

@               IN      SOA     polko.ja.org. hostmaster.polko.ja.org. (
                                1       ; Numer seryjny
                                8H      ; Odświeżenie
                                2H      ; Powtórzenie
                                1W      ; Przedawnienie
                                1D)     ; Minimalny TTL
                        NS      ns.polko.ja.org.
1                       PTR     localhost.

/etc/resolv.conf

Kod: Zaznacz cały

search polko.ja.org
nameserver 127.0.0.1
A polecenie

Kod: Zaznacz cały

tail -n 50 /var/log/messages
wywala mi tylko o bindzie cos takiego.

Kod: Zaznacz cały

Jun 27 10:18:38 SIWY named[378]: starting BIND 9.3.1
Jun 27 10:18:38 SIWY named[378]: loading configuration from '/etc/named.conf'
wiec najpewniej ja cos skopalem tylko co?
początek zabawy z dystrybucją.

Awatar użytkownika
hanys
Użytkownik
Posty: 349
Rejestracja: 2004-07-21, 11:49
Lokalizacja: Poznań
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: hanys » 2006-06-27, 15:20

shirn - poprostu nie przeczytales do konca tego faq, to co probujesz zrobic to jedynie jest serwer cachujacy, a pewnie chcesz serwer, ktory bedzie utrzymywal domene ktora została oddelegowana do ciebie.
Jesli chcesz tylko sewer cachujacy to wystarczy zainstalowac binda z paczki i zrobic

Kod: Zaznacz cały

#chmod +x /etc/rc.d/rc.bind  - to aby sie uruchamial po restarcie maszyny
#/etc/rc.d/rc.bind start
Jezeli cos wiecej to poczytaj do konca faq.
Ostatnio zmieniony 2006-06-27, 15:21 przez hanys, łącznie zmieniany 1 raz.
Registered Linux User #375982

Awatar użytkownika
shirn
Użytkownik
Posty: 4
Rejestracja: 2006-04-13, 10:13
Lokalizacja: Borki City
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: shirn » 2006-06-27, 16:12

wlasnie chcialem tylko cachujacy a nie wiedzialem ze nie trzeba sie produkowac :) i jeszcze do tego znalazlem podobny opis http://www.jtz.org.pl/Html/DNS-HOWTO.pl-3.html i zrobilem jak tam i dziala :) niezły jestem :)
początek zabawy z dystrybucją.

Awatar użytkownika
myuser
Użytkownik
Posty: 442
Rejestracja: 2006-02-09, 17:44
Lokalizacja: Warszawa
Kontakt:

Re: Serwer DNS - Bind 9

Post autor: myuser » 2006-07-13, 13:39

ja bym jeszcze do opisu dodal cos na temat:
allow-query
allow-transfer
allow-update

Awatar użytkownika
brx
Użytkownik
Posty: 723
Rejestracja: 2004-06-24, 14:37
Lokalizacja: Poznań/Lublin

Re: Serwer DNS - Bind 9

Post autor: brx » 2006-07-29, 15:12

vacapn, udało mi się uruchomic, jak narazie działa :D Dzięki

Mam jedną uwagę:

Kod: Zaznacz cały

version "Microsoft DNS Server"; 
Z tą opcją nie startowało i wywalało to samo co u shirn, Pozatym <ok>
Slackware Current - Kernel 2.6.18 - Xfce - - Aterm - Kadu
_______________________________________
Registered Linux User 363857 :D

ODPOWIEDZ