Configurar un DNS SRV para SIP

24 Jul

Usando BIND es fácil tener un balanceo de carga a una granja de servidores Asterisk.

Si esta granja obtiene los usuarios de un mismo lugar, cualquier endpoint SIP podrá registrase en cada uno de ellos, sin importarle que servidor es, ya que todos harán el mismo cometido.

Una configuración por ejemplo para 5 servidores Asterisk que recibirán las peticiones de igual forma, en el archivo de dominio serí­a la siguiente:

; Configuración de dominio.com
$TTL 86400
@ IN SOA dns administrador (
200706247 ; Serial formato: yyyymmddn donde n es un número cualquiera
10800 ; Refresh después de tres horas
3600 ; Reintentar después de una hora
604800 ; Expirar después de una semana
86400 ) ; TTL(Time to Live) mí­nimo de un dí­a

IN NS dns
dominio.com. IN A 195.222.222.222
IN MX 10 dominio.com.
dns IN CNAME dominio.com.
www IN CNAME dominio.com.
ns1 IN A 195.222.222.222
ns2 IN A 195.222.222.222

sip IN A 195.222.222.221
sip2 IN A 195.222.222.222
sip3 IN A 195.222.222.223
sip4 IN A 195.222.222.224
sip5 IN A 195.222.222.225
backup IN A 195.222.222.226

_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip2.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip3.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip4.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip5.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 1 0 5060 backup.dominio.com.

dominio.com. IN NAPTR 0 0 “s” “SIP+D2U” “” _sip._udp.dominio.com.

Como se ve tenemos 5 servidores con distintas ips públicas, a los que balancearemos las peticiones desde los terminales que resuelvan DNS SRV.

Le hemos puesto un tiempo (300) de refresco de cache, para que los terminales vayan realizando peticiones cada 300 s, por si cambiáramos el DNS en ese tiempo. Si no se pretende modificar el DNS , se pueden poner valores más altos como 43200 (12 horas).

También se puede jugar con los valores de peso, para indicar que servidores serán accedidos con mayor frecuencia que otros.

Si quieremos por ejemplo que sip2 reciba el doble de peticiones que sip.

_sip._udp.dominio.com. 300 IN SRV 0 10 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 0 20 5060 sip2.dominio.com.

Existe un servidor de backup, que aceptarí­a las peticiones en el caso de que alguno de los demás no fuera alcanzable. En configuraciones normales, si tenemos dos servidores, quizá nos interesarí­a:

_sip._udp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sip._udp.dominio.com. 300 IN SRV 1 0 5060 sip2.dominio.com.

Con lo que en caso de que el primer servidor no fuera alcanzable porque esté caí­do, buscarí­a el segundo.

Destacar que aquí­ hemos configurado DNS SRV para UDP.

Si quisiéramos dar algún servicio de SIP sobre TCP o SIP sobre TLS, tendrí­amos que configurar de acuerdo a estos servicios:

_sip._tcp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.
_sips._tcp.dominio.com. 300 IN SRV 0 0 5060 sip.dominio.com.

dominio.com. IN NAPTR 0 0 “s” “SIP+D2T” “” _sip._tcp.dominio.com.
dominio.com. IN NAPTR 0 0 “s” “SIPS+D2T” “” _sips._tcp.dominio.com.

Posteriormente en los terminales que usemos debemos configurar para emplear nuestro servidor DNS SRV, que en nuestro caso será el dominio dominio.com

En el caso de Linksys será:

0 thoughts on “Configurar un DNS SRV para SIP

  1. yo probe la configuacion y esta perfecta, pero queria configurar los clientes con

    sip.misitio.com y no solo misitio.com

    Como quedaria la configuracion?

    Saludos

  2. Hola David. Evidentemente nos hará que esa granja de asterisk, tenga los mismos usuarios (sincronizando sip.conf o bien usando realtime), así­ como que se pueda llamar de un servidor a otro (con dundi por ejemplo).

    Haré otro post comentando eso 🙂

    Saludos

  3. Muy buena entrada, pero por ejemplo ¿que pasos conllevarí­a una llamada entre usuario A y usuario B si ambos están registrados en servidores asterisk distintos?

    Saludos

Leave a Reply

Your email address will not be published. Required fields are marked *