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