DNS SRV en Asterisk PBX

¿Cuantos de ustedes sabían que los registros SRV del DNS funcionan solamente con el canal chan_pjsip?

Esto quiere decir que aunque se configuren correctamente, si se utiliza el canal chan_sip no sirven de nada. Pero, ¿Para que se utilizan los registros SRV? Para balanceo de carga y respaldo, esto quiere decir que si correctamente configurados se pueden utilizar para balancear la carga entre distintos servidores Asterisk y para cada uno de ellos definir una prioridad y un peso.

Primero miramos como funciona el DNS del canal PJSIP de Asterisk presente a partir de la versión 14.

Primera iteración

Cada vez que se realiza una llamada con el canal PJSIP, se realizará una consulta en paralelo para los siguientes registros DNS: NAPTR, SRV, A y AAAA; esto dependiendo del tipo de transporte disponible. Si las consultas NAPTR o SRV devuelve resultados, las consultas A y AAAA serán descartadas.

Segunda iteración

Si se ha encontrado un registro NAPTR en la primera iteración, se realizará una consulta SRV, A y AAAA dependiendo del contenido del registro NAPTR. Si se ha encontrado solamente un registro SRV, se realizará una consulta en los registros A y AAAA relacionados con el contenido del los registros SRV

Tercera iteración (opcional)

Si en la segunda iteración se ha encontrado un registro NAPTR y ese registro estaba relacionado con uno o más registros SRV, se realiza una consulta a los correspondientes registros A y AAAA

¿Cómo funciona el respaldo?

Al finalizar el proceso de consulta las IP y los puertos resultado de la consulta se utilizan para empezar la llamada. Si el primer destino falla, automáticamente se intentará utilizar el segundo. El orden es definido, en el caso de registros SRV, por la prioridad y peso de cada uno de ellos.

¿Cómo funciona el Balancemiento?

El balancemiento se realizará en base al valor de prioridad y peso de cada registro SRV. Si la prioridad y peso tienen los mismos valores, el trafico se debería distribuir uniformemente; en un escenario con dos servidores, 50% de trafico cada uno. Si la prioridad es igual pero el peso es de 1 para el primer registro y 2 para el segundo, el segundo recibirá 2/3 del trafico.

¿Cómo utilizo esta funcionalidad?

Realizando las llamadas PJSIP utilizando el nombre de dominio en lugar de la IP

Ejemplo: la PBX de un cliente utiliza mis servidores para terminar trafico. En la PBX de mi cliente, la troncal que apunta a mis servicios deberá tener un nombre de dominio configurado en lugar de una IP. Ese nombre de dominio aparecerá en el registro SRV:

y por cada valor presente en la columna Target se creará un registro DNS A asociando a cada valor una IP, ejemplo:

y:

Si queremos utilizar el unbound resolver que es mucho más potente y completo del DNS presente en el core de Asterisk, primero tenemos que instalar la librería unbound que en CentOS 7:

yum install unbound-devel -y

Luego el modulo se podrá seleccionar en el make menuconfig:

Fuente: Blog de Asterisk

Vota el Articulo: 

No votes yet
Evalúa la calidad del articulo
Subscribe to Comments for "DNS SRV en Asterisk PBX" Subscribe to VozToVoice - All comments