FreeBSD DNS kérdés

Fórumok

Hmm... próbálok beállítani egy saját DNS-t, amely szépen megy is, de... furán működik, mint ahogy alább látni lehet:


[root@freebsd:~]$ cat /etc/resolv.conf
search          .
nameserver      192.168.1.3
nameserver      208.67.222.222
nameserver      208.67.220.220
[root@freebsd:~]$ ping -c1 javaforum.hu
PING javaforum.hu (91.83.48.130): 56 data bytes
64 bytes from 91.83.48.130: icmp_seq=0 ttl=64 time=0.022 ms

--- javaforum.hu ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.022/0.022/0.022/0.000 ms
[root@freebsd:~]$ nslookup javaforum.hu
;; Got recursion not available from 192.168.1.3, trying next server
Server:         208.67.222.222
Address:        208.67.222.222#53

Non-authoritative answer:
Name:   javaforum.hu
Address: 78.24.191.3

[root@freebsd:~]$ nslookup javaforum.hu 192.168.1.3
Server:         192.168.1.3
Address:        192.168.1.3#53

Name:   javaforum.hu
Address: 91.83.48.130

Van valakinek ötlete, hogy mit nem állítottam be? Az új DNS-ben más a javaforum.hu címe, az új IP-re mutat!

Hozzászólások

A sokatmondó hibaüzenet:

;; Got recursion not available from 192.168.1.3, trying next server

Engedélyezni kellene a rekurzív kéréseket a helyi DNS szerveren a localhost számára.

Valamint úgy tűnik, hogy jelenleg a saját szervered publikus IP-jére oldja fel a neveket:
64 bytes from 91.83.48.130: icmp_seq=0 ttl=64 time=0.022 ms

Elvileg engedélyezve van. És működik is, mivel ha direkt szólítom meg (192.168.1.3 IP címen), akkor helyesen válaszol.

Költözés előtt vagyok, a javaforum.hu mostani publikus IP címét ismerik a DNS szerverek, a saját DNS-ben már az új IP címet állítottam be, ez a 91.83.48.130.

Eddig ez van beállítva: http://wiki.javaforum.hu/confluence-2.8.2/display/FREEBSD/DNS

Ami zavar, az az, hogy a ping, a telnet és a programok használják a DNS szervert a 192.168.1.3 címen, de a host, a dig és az nslookup nem tudja használni.
--
http://www.javaforum.hu

PowerDNS-ről van szó, engedélyeztem alapból, megy is, ha közvetlenül tőle
kérdezem, és az összes program használja is rendesen, csak a host és az
nslookup nem (a saját DNS adja vissza a 91.83.48.130 IP címet, tekintsünk el
attól, hogy nincs webszerver rajta):


[root@freebsd:~]$ wget http://www.javaforum.hu/index.html
--2008-08-23 21:36:54--  http://www.javaforum.hu/index.html
Resolving www.javaforum.hu... 91.83.48.130
Connecting to www.javaforum.hu|91.83.48.130|:80... failed: Connection refused.
[root@freebsd:~]$ ping -c1 www.javaforum.hu
PING www.javaforum.hu (91.83.48.130): 56 data bytes
[root@freebsd:~]$ telnet www.javaforum.hu 80
Trying 91.83.48.130...
telnet: connect to address 91.83.48.130: Connection refused

De:


[root@freebsd:~]$ host www.javaforum.hu
www.javaforum.hu has address 78.24.191.3
[root@freebsd:~]$ nslookup www.javaforum.hu
;; Got recursion not available from 192.168.1.3, trying next server
Server:         208.67.222.222
Address:        208.67.222.222#53

Non-authoritative answer:
Name:   www.javaforum.hu
Address: 78.24.191.3

És ismét de, a dig jól válaszol:
[root@freebsd:~]$ dig www.javaforum.hu

; <<>> DiG 9.4.2-P1 <<>> www.javaforum.hu
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60874
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.javaforum.hu.              IN      A

;; ANSWER SECTION:
www.javaforum.hu.       3600    IN      A       91.83.48.130

;; Query time: 0 msec
;; SERVER: 192.168.1.3#53(192.168.1.3)
;; WHEN: Sat Aug 23 21:38:43 2008
;; MSG SIZE  rcvd: 50

--
http://www.javaforum.hu

Szerintem mégsincs engedélyezve a rekurzió.

Az nslookup hibaüzenettel, a host hibaüzenet nélkül feladja az adott szervert, amikor megkapja, hogy a nem lehet hozzá rekurzív kérést intézni, és megy a következőhöz.
;; Got recursion not available from 192.168.1.3, trying next server

A dig pedig megpróbálja újra (vagy elfogadja) rekurzió nélkül is.
;; WARNING: recursion requested but not available

A programok illetve a resolver által használt módszer pedig valószínűleg a dig által követetthez hasonló.

Nézd meg így:

# nslookup
> norecurse
> server 192.168.1.3
> www.javaforum.hu.

Illetve:


# host -r -v www.javaforum.hu.
# host -r -v www.javaforum.hu. 192.168.1.3

PowerDNS-t nem használtam még, ezért nincs vele tapasztalatom, de a manualja igy ír erről:
"If a Recursion Desired packet arrives and PDNS is configured to allow recursion, but not to the IP address of the client, resolution will proceed as if the RD flag were unset and the answer will indicate that recursion was not available."

Ez alapján meg kellene nézni az allow-recursion beállítását.

Játszadoztam a dologgal kicsit. Érdekes:
[code]
[root@dns:~]$ cat /etc/resolv.conf
search .
nameserver 192.168.2.3
nameserver 208.67.222.222
nameserver 208.67.220.220
[root@dns:~]$ nslookup dns.jails.javaforum.hu
;; Got recursion not available from 192.168.2.3, trying next server
Server: 208.67.222.222
Address: 208.67.222.222#53

Non-authoritative answer:
Name: dns.jails.javaforum.hu
Address: 91.83.48.130

[root@dns:~]$ cat /etc/resolv.conf
search .
nameserver 192.168.2.3
[root@dns:~]$ nslookup dns.jails.javaforum.hu
Server: 192.168.2.3
Address: 192.168.2.3#53

Name: dns.jails.javaforum.hu
Address: 192.168.2.3
[code]

Miért függ a recurse attól, hogy van-e a 192.168.2.3 mögött további nameserver felsorolva? :)
--
http://wiki.javaforum.hu/confluence-2.10/display/FREEBSD

Az nslookup által generált forgalmat megnézve nem találtam különbséget a kérések között, ha a /etc/resolv.conf-ban egy illetve két nameserver bejegyzés volt. Meg tudnád nézni tcpdumppal (-n -vvv), hogy a te esetedben milyen eltérés látszik a kimenetben ("+")?

Az első esetben elutasította a rekurzív feloldást, a másodikban pedig a saját autoritatív zónájából szolgálta ki, és nem fordult sem a recursoron keresztül, sem közvetlenül a külső DNS szerverek felé.

Ebből az tűnne logikus következtetésnek, hogy az első esetben a PowerDNS konfigurációjában nem volt engedélyezve a rekurzió és nem volt autoritatív válasz sem, vagy a második próbánál már volt autoritatív zóna, és azon belül dns.jails nevű rekord.

Megjegyzések:
Az ns2.javaforum.hu (195.70.38.36) nem ad autoritatív választ a javaforum.hu zónára.

Van valami oka annak, hogy minden A rekord mellett van egy azonos nevű NS is, ami az ns.javaforum.hu-ra mutat? Az ns.javaforum.hu pedig saját magára.

És miért érhetők el ezek az információk kívülről?

Ok, nemsokára megnézem tcpdump-al, hogy mi történik.

A két válasz között nem történt módosítás a PowerDNS konfigban, s még a szolgáltatáson se változtattam, mindössze kitöröltem két sort a resolv.conf-ból. Szóval nem értem egyelőre.. :)

A javaforum.hu nem ezen a gépen van, én csak a lokális címeket szeretném DNS-ben kiszolgálni, de megnézem, hogy mi a baj a névszolgáltatással, és a tökére lépek a szolgáltatónak... :)
--
http://wiki.javaforum.hu/confluence-2.10/display/FREEBSD