Como utilizar DNS con zimbra

Como utilizar DNS con zimbra

Introducción

En el primer capítulo de la serie “Como montar un servidor zimbra” mostraba la instalación básica. Después de pruebas con el entorno que estoy preparando, he visto problemas en la recepción de correos externos. El problema es debido a que el servidor tiene una IP privada, mientras que el DNS resuelve el nombre del servidor a la IP pública. Si el servidor zimbra tuviera directamente la IP pública no sería necesario hacer nada.

En este post trataré de explicaros como solucionar este problema con Split-DNS.

Hay que tener en cuenta que este procedimiento implica reiniciar servicios de zimbra, por lo que si el servidor está en producción, será necesario informar a los usuarios o realizar estas tareas fuera de horario laboral.

Esquema

Cache DNS

Zimbra hace un uso muy intensivo de DNS, por lo que es altamente recomendable utilizar un sistema de cache DNS. El servicio que nos proporciona el propio zimbra no es útil en este caso, ya que no nos permite modificar determinada entradas DNS para que resuelva por la IP privada.

Para mantener la funcionalidad de cache DNS y añadir la posibilidad de modificar registros DNS del dominio de correo, utilizaremos dnsmasq.

Desactivar zimbra-dnscache

El primer paso es desactivar este servicio. Si no lo hacemos e instalamos dnsmasq nos aparecerá un error indicando que el puerto 53 ya está en uso. Para ello ejecutamos:

su - zimbra
zmdnscachectl stop
zmprov ms `zmhostname` -zimbraServiceEnabled dnscache -zimbraServiceInstalled dnscache

Primero paramos el servicio y seguidamente desactivamos y desinstalamos el servicio dnscache. Reiniciamos los servicios para validar que todo sigue funcionando ejecutando

zmcontrol restart

Finalmente verificamos que no tenemos el servicio dnscache

zmprov gs `zmhostname` zimbraServiceEnabled zimbraServiceInstalle

Verificamos también que no existe ningún proceso ejecutándose en el puerto 53

lsof -i:53

La ejecución de este comando no debería mostrar ninguna salida.

Activar dnsmasq

Lo primero que debemos hacer es instalar el servicio dnsmasq. Es un proceso extremadamente sencillo, ya que solamente debemos ejecutar:

apt-get install dnsmasq

Ahora, si volvemos a verificar si hay algun servicio en el puerto 53 veremos una salida similar a esta

root@mail:~# lsof -i:53
COMMAND   PID    USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
dnsmasq 22379 dnsmasq    4u  IPv4 91207290      0t0  UDP *:domain 
dnsmasq 22379 dnsmasq    5u  IPv4 91207291      0t0  TCP *:domain (LISTEN)
dnsmasq 22379 dnsmasq    6u  IPv6 91207292      0t0  UDP *:domain 
dnsmasq 22379 dnsmasq    7u  IPv6 91207293      0t0  TCP *:domain (LISTEN)

Ahora indicaremos al servicio dnsmasq que la direccion mail.eslinux.org resuelve por la IP privada

echo "address=/mail.eslinux.org/172.16.4.5" > /etc/dnsmasq.d/eslinux.conf

Seguidamente reiniciamos el servicio para activar los cambios:

service dnsmasq restart

Para verificar que los cambios se han aplicado correctamente ejecutamos:

dig mail.eslinux.org @172.16.4.5

La salida que nos debería aparecer es similar a esta:

; <<>> DiG 9.10.3-P4-Ubuntu <<>> mail.eslinux.org @172.16.4.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13826
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mail.eslinux.org.        IN    A

;; ANSWER SECTION:
mail.eslinux.org.    0    IN    A    172.16.4.5

;; Query time: 0 msec
;; SERVER: 172.16.4.5#53(172.16.4.5)
;; WHEN: Mon Mar 20 10:02:07 CET 2017
;; MSG SIZE  rcvd: 50

Esta misma consulta realizada a un servidor DNS público, nos debería devolver la IP pública del servidor.

dig mail.eslinux.org @8.8.8.8

; <<>> DiG 9.10.3-P4-Ubuntu <<>> mail.eslinux.org @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64243
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;mail.eslinux.org.        IN    A

;; ANSWER SECTION:
mail.eslinux.org.    3599    IN    A    123.54.22.5

;; Query time: 170 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Mar 20 10:08:03 CET 2017
;; MSG SIZE  rcvd: 82

Con estos cambios no deberíamos tener problemas ni en enviar ni recibir desde nuestro servidor zimbra.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *