====== Como tener un DNS en linux que preste servicio a las dos redes, la LAN y la WAN ====== =====Introducción===== En la LAN tengo como red 172.20.1.0/24 y en la WAN tengo 192.160.159.160/28. Para no tener dos DNS, uno que responda a la LAN y otro para la WAN pondremos un solo DNS que cuando pidan por la LAN www.dominio.cu me responda el IP 172.20.1.1, que este va a ser mi IP de DNS por la LAN y cuando pidan por la WAN www.dominio.cu le responderá el IP 192.160.159.162 que este va a ser mi IP de DNS por la WAN. El procedimiento que emplearemos entonces para dar solución al siguiente problema planteado lo haremos mediante las "VISTAS" Después de interpretada esta problemática pasamos entoces a los pasos para lograrlo =====Instalación===== 1.- Instalar el bind9 apt-get install bind9 2.- Instalar este paquete que nos posibilita hacerle comprobaciones de nuestra configuración. apt-get install dnsutils =====Configuración===== 3.- Borramos todo el contenido del fichero /etc/bind/named.conf.local y le ponemos esto dentro acl "lan" { 172.20.1.0/24; }; acl "servidores-lan" { 172.20.1.0/28; }; acl "servidores-wan" { 192.160.159.160/28; 200.55.x.y/32; 192.160.159.181/32; 192.160.159.114/32; }; view "vlan" { match-clients { lan; !any; }; allow-recursion { servidores-lan; }; zone "dominio.cu" IN { type master; file "dominio.cu.lan.zone"; allow-transfer { 172.20.1.4; }; allow-update { none; }; notify yes; }; zone "1.20.172.in-addr.arpa" IN { type master; file "172.20.1.in-addr.arpa"; allow-transfer { 172.20.1.4; }; allow-update { none; }; notify yes; }; }; view "vwan" { match-clients { any; !lan; }; allow-recursion { any; }; zone "dominio.cu" IN { type master; file "dominio.cu.wan.zone"; allow-transfer { 192.160.159.164; }; allow-update { none; }; notify yes; }; zone "160/28.159.168.192.in-addr.arpa" IN { type master; file "192.160.159.in-addr.arpa"; allow-transfer { 192.160.159.164; }; allow-update { none; }; notify yes; }; =====Interpretación de las líneas===== Que quiere decir cada una de estas líneas: - Lo primero, una acl para la LAN con el rango de IP de la LAN, otra acl para los servidores de esa LAN y una tercera acl para los servidores DNS de la WAN. - Lo segundo es la vista para la LAN donde permite solo la LAN y deniega todo lo demás, y dentro de la vista las zonas directas e inversas que están en este caso en el directorio /var/cache/bind con el nombre dominio.cu.lan.zone y 172.20.1.in-addr.arpa respectivamente. - Lo tercero es la vista para la WAN donde permite a todos excepto a la LAN y dentro de la vista, las zonas directas e inversas que también están en el directorio /var/cache/bind con el nombre dominio.cu.wan.zone y 192.160.159.in-addr.arpa respectivamente. Es necesario darse cuenta que en el directorio /var/cache/bind hay 4 ficheros entonces: los dos primeros son los de las zonas directas e inversas de la LAN y los dos segundos de las zonas directas e inversas de la WAN ¿Qué contienenen esos ficheros de zona inversa y directa? en el caso de la LAN el fichero de la zona directa dominio.cu.lan.zone contiene esto: ;-------------- vcl - LAN --------------- ;------------------------------------------- $TTL 1d ; tiempo de vida de la zona $ORIGIN dominio.cu. ; nombre de dominio base @ IN SOA ns1.dominio.cu. admin.dominio.cu. ( 2007062901 ; se = numero serial 12h ; ref = tiempo para refrescar 15m ; ret = tiempo de reintento para actualizacion 3w ; ex = tiempo de expiracion 2h ; min = minimo ) ;-------------- Servidores DNS --------------- ;--------------------------------------------- @ IN HINFO REMINUS "Debian 4.0" @ IN NS ns1.dominio.cu. @ IN NS ns2.dominio.cu. ;-------------- Servidores MX --------------- ;-------------------------------------------- @ IN MX 0 mx.dominio.cu. @ IN TXT "v=spf1 a:mx.dominio.cu -all" ;-------------- HOSTS - ALIAS --------------- ;-------------------------------------------- ;Servidor VCLSERVER vclserver IN A 172.20.1.1 ns1 IN CNAME vclserver @ IN A 172.20.1.1 www IN CNAME vclserver www.isp IN CNAME vclserver sarg IN CNAME vclserver y el fichero de la zona inversa 172.20.1.in-addr.arpa contiene esto: ;-------------- vcl - LAN --------------- ;------------------------------------------- $TTL 1d ; tiempo de vida de la zona $ORIGIN 1.20.172.IN-ADDR.ARPA. ; rango de la red @ IN SOA ns1.dominio.cu. admin.dominio.cu. ( 2007060501 ; se = numero serial 12h ; ref = tiempo para refrescar 15m ; ret = tiempo de reintento para actualizacion 3w ; ex = tiempo de expiracion 2h ; min = minimo ) ;-------------- Servidores DNS --------------- ;--------------------------------------------- @ IN NS ns1.dominio.cu. @ IN NS ns2.dominio.cu. ;-------------- IP - Host --------------- ;----------------------------------------- 1 IN PTR vclserver.dominio.cu. 4 IN PTR vclserver1.dominio.cu. 8 IN PTR admin.dominio.cu. En el caso de los fichero de la zona directa e inversa para la WAN es lo mismo pero lo único que cambia son los números IP de la WAN. Como se explicaba al inicio, el DNS por la LAN es el 172.20.1.1 y opr la WAN es 192.160.159.162 4.- Volvemos al directorio /etc/bind al fichero named.conf.options, borramos todo lo que contiene y le ponemos esto dentro options { directory "/var/cache/bind"; query-source address * port 53; forwarders {200.55.x.y;192.160.159.181;192.160.159.114;}; auth-nxdomain no; # conform to RFC1035 #listen-on-v6 { any; }; }; Luego reiniciamos el bind invoke-rc.d bind9 restart y si todo salió bien no debe dar ningún error. Para comprobar esto ponemos en al consola: nslookup www.dominio.cu 172.20.1.1 y debe devolver esto Server: 172.20.1.1 Address: 172.20.1.1#53 www.dominio.cu canonical name = vclserver.dominio.cu. Name: vclserver.dominio.cu Address: 172.20.1.1 y si comprobamos por la WAN nslookup www.dominio.cu 192.160.159.162 debe devolver esto Server: 192.160.159.162 Address: 192.160.159.162#53 www.dominio.cu canonical name = vclserver.dominio.cu. Name: vclserver.dominio.cu Address: 192.160.159.162 suerte con las vistas en los DNS by whilo ;-)