Hoy vamos a hablar de algo muy conocido por todos pero no siempre utilizado correctamente: el DNS. Como todos sabréis DNS es el mecanismo gracias al cual resolvemos un nombre de dominio en una dirección IP a la que finalmente nos conectaremos.
Los registros DNS más habituales son los de tipo A (AAAA en IPv6) y simplemente resuelven un nombre a una IP:
En VoIP lo habitual es definir registros SRV, que nos ayudan a mapear un servicio en un determinado transporte a otro nombre de dominio, que posteriormente será resuelto con una consulta de tipo A. Si queremos saber si un dominio tiene un servidor SIP UDP podemos hacer la iguiente consulta:
Como sabréis podemos tener varios servidores SIP escuchando distintos transportes (UDP, TCP, TLS) que no necesariamente sean el mismo servidor. Alguno tal vez ya se haya preguntado: ¿Qué transporte elijo? ¿Debería ser el cliente quien elija a cual conectarse? Para resolver esto tenemos otro tipo de registros DNS: NAPTR. Tal vez os acordéis de los registros NAPTR, ya los vimos cuando hablamos sobre ENUM.
Los registros NAPTR nos van a indicar cual el registro SRV preferido para cada servicio de ese dominio. Veamos un ejemplo:
Como se puede apreciar en la imagen el orden que un cliente SIP debería seguir para encontrar el servidor SIP al que conectarse sería el siguiente, suponiedo que su dirección SIP sea saghul@sip2sip.info:
- Realizar una consulta NAPTR al dominio sip2sip.info. La respuesta contiene _sip._udp.sip2sip.info como registro SRV prefereido.
- Realizar una consulta SRV a _sip._udp.sip2sip.info. La respuesta contiene proxy.sipthor.net.
- Realizar una consulta de tipo A a proxy.sipthor.net. La respuesta serán 3 IPs (en este caso). El cliente SIP debería intentar conectarse a esas IPs en secuencia hasta conseguir establecer una conexión el servidor.
Como se puede observar ninguna de las IPs que hemos obtenido es la que se muestra en la primera imagen, así que una consulta de tipo A al dominio no es válida para encontrar nuestro servidor SIP.
Todos estos se pueden (y deben) aplicar en entronos LAN también. Puede parecer una tontería, pero a mi no me gustaría ser el que cambia la IP a 200 terminales si fuera necesario 😉
Happy dig-ing!
Más info en el blog de Tekelec.
Este es el tipo de artículos que hay que tener en marcadores, porque es básico en instalaciones SIP pero no se usa muy a menudo, por lo que tienes a olvidarlo.
Te pongo un enlace al blog de tekelec, donde explican esto mismo para complementar tu artículo. Estos dos son los dos mejores artículos que he visto sobre el tema 🙂
http://blog.tekelec.com/blog/bid/13206/How-do-SIP-endpoints-find-the-right-servers
LoL, ese post lo debí marcar como leído el reader o algo :-S Thanks por el comment y el link Manwe, updateo en ya 🙂
Yo escribí un post parecido hace tiempo 😉