Bom dia pessoal.

Estou configurando um servidor DNS, mais para efeito de testes.
Criei uma zona no afraid (barata.info.tm), e estou tentando colocar o
meu servidor para resolver esta zona.

A conexão com a internet se dá através de um roteador linksys, que
direciona a porta 53(TCP/UDP), para meu servidor DNS (192.168.0.3).

Internet ----[189.X.X.X<->roteador<->192.168.0.1]----[192.168.0.3 DNS]

As regras do iptables no roteador:

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       udp  --  anywhere             189.X.X.X      udp dpt:domain
to:192.168.0.3:53
DNAT       tcp  --  anywhere             189.X.X.X      tcp dpt:domain
to:192.168.0.3:53
...

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       udp  --  192.168.0.0/24      192.168.0.3       udp
dpt:domain to:192.168.0.1
SNAT       tcp  --  192.168.0.0/24      192.168.0.3       tcp
dpt:domain to:192.168.0.1


Estou usando views para diferenciar as pesquisas feitas dentro da lan
e fora (internet).

//----> named.conf
acl "lans" {192.168.0.0/24;127.0.0.1/8;};

options {
        directory "/var/named";
        version "no-version";
        pid-file        "/var/run/named/named.pid";
        dump-file       "/var/log/named/named_dump.db";
        statistics-file "/var/log/named/named.stats";
        auth-nxdomain no;    # conform to RFC1035
        additional-from-auth no;
        additional-from-cache no;
        listen-on-v6 { any; };

view "int" IN {

        match-clients { lans; };
        allow-recursion { lans; };
        allow-query { lans; };

        zone "." {
                type hint;
                file "root/named.root";
        };

        zone "localhost" {
                type master;
                file "root/localhost.zone";
                allow-update { none; };
        };

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

        zone "barata.info.tm" {
                type master;
                file "barata.info.tm-INT";
                allow-update { none; };
        };

         zone "0.168.192.in-addr.arpa" {
                type master;
                file "192.168.0";
                allow-update { none; };
        };

};

view "ext" IN {

        match-clients {!lans; any; };
        allow-query { any; };
        recursion no;

        zone "." {
                type hint;
                file "root/named.root";
        };

        zone "localhost" {
                type master;
                file "root/localhost.zone";
                allow-update { none; };
        };

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

        zone "barata.info.tm" {
                type master;
                file "barata.info.tm-EXT";
                allow-update { none; };
        };

};
//---->

Dentro da rede interna  a resolução funciona normal.
Quando tento resolver num host na internet:

dig barata.info.tm @189.X.X.X

; <<>> DiG 9.3.0 <<>> barata.info.tm @189.X.X.X
;; global options:  printcmd
;; connection timed out; no servers could be reached

Porém os logs indicam que:

23-Mar-2009 11:13:36.178 queries: client 201.X.X.X#1463: view ext:
query: barata.info.tm IN A +
23-Mar-2009 11:13:40.729 queries: client 201.X.X.X#1463: view ext:
query: barata.info.tm IN A +
23-Mar-2009 11:13:45.664 queries: client 201.X.X.X#1463: view ext:
query: barata.info.tm IN A +

tcpdump -i ethX -n proto UDP
11:41:52.783267 IP 201.X.X.X.1464 > 192.168.0.3.53: 45124+ A?
barata.info.tm. (32)
11:41:52.785128 IP 192.168.0.3.53 > 201.X.X.X..1464: 45124*- 1/1/0 A
189.X.X.X (75)
11:41:56.629381 IP 201.X.X.X..1464 > 192.168.0.3.53: 45124+ A?
barata.info.tm. (32)
11:41:56.631156 IP 192.168.0.3.53 > 201.X.X.X..1464: 45124*- 1/1/0 A
189.X.X.X (75)
11:42:01.613024 IP 201.X.X.X..1464 > 192.168.0.3.53: 45124+ A?
barata.info.tm. (32)
11:42:01.614742 IP 192.168.0.3.53 > 201.X.X.X..1464: 45124*- 1/1/0 A
189.X.X.X (75)

Se tento:
dig barata.info.tm @::1

; <<>> DiG 9.4.3-P1 <<>> barata.info.tm @::1
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 921
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;barata.info.tm.                        IN      A

;; ANSWER SECTION:
barata.info.tm.         43200   IN      A       189.X.X.X

;; AUTHORITY SECTION:
barata.info.tm.         43200   IN      NS      meuhost.noip

;; Query time: 6 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon Mar 23 11:35:40 2009
;; MSG SIZE  rcvd: 75

Ou seja, não é problema com a view.

Alguém já implementou um DNS com bind9 atrás de um NAT?
É necessário outras portas além da TCP/UDP 53?

Estou usando slackware 12.2 com bind 9.4.1-P1.
Não existe nenhuma regra de firewall no DNS.

Abraço.

-- 
Oséias Ferreira.
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a