Table Of ContentUniversidad de Almería
Titulación de Ingeniero en Informática
Diseño e implementación de un
sistema VoIP de alta
disponibilidad y alto
rendimiento
Autor:
Francisco José Méndez Cirera
Tutores:
Julio Gómez López
Francisco Gil Montoya
Almería, febrero 2009
© Francisco Méndez y Julio Gómez
http://www.adminso.es
Tanto la memoria de este trabajo como el software desarrollado se distribuyen bajo la
licencia GNU GPL v3.
La Licencia Pública General GNU (GNU GPL) es una licencia libre, sin derechos para
software y otro tipo de trabajos.
Las licencias para la mayoría del software y otros trabajos prácticos están destinadas a
suprimir la libertad de compartir y modificar esos trabajos. Por el contrario, la Licencia
Pública General GNU persigue garantizar su libertad para compartir y modificar todas
las versiones de un programa--y asegurar que permanecerá como software libre para todos sus
usuarios.
Cuando hablamos de software libre, nos referimos a libertad, no a precio. Las
Licencias Públicas Generales están destinadas a garantizar la libertad de distribuir
copias de software libre (y cobrar por ello si quiere), a recibir el código fuente o poder
conseguirlo si así lo desea, a modificar el software o usar parte del mismo en nuevos programas
libres, y a saber que puede hacer estas cosas.
Para obtener más información sobre las licencias y sus términos puede consultar:
• http://www.gnu.org/licenses/gpl.html (Licencia original en inglés)
• http://www.viti.es/gnu/licenses/gpl.html (Traducción de la licencia al castellano)
© Francisco Méndez y Julio Gómez
http://www.adminso.es
Dar las gracias a todos los familiares que me
apoyan y me llevan en su corazón, especialmente, a mi
padre por enseñarme a disfrutar del trabajo, a mi
madre por escucharme en todo momento, a mi abuela
por prestarme siempre toda su atención y a mi tía por
ayudarme en las etapas anteriores de mi vida, sin
olvidar, a mi primo Carlitos, a mi hermana Alba, a mi
tio Carlos y a mi abuela Antonia que siempre me
recuerdan.
Además, dedicar estas líneas a todos mis
compañeros, destacando a Popo, Jajemaru y a los
niños del laboratorio: Carlos, Euflamingos, Camacho y
Marisa, junto a todos mis amigos, con los que tantos
momentos de mí vida he compartido, en especial, mi
primo Carlinjos, Franchu, Maui y Patxi, y los últimos,
DiegoRio, Ivaninjos, SilexMint y Jose Encuestas.
Para despedirme, y sin ninguna duda, sin la
aportación de mis tutores de proyecto y especialmente
amigos, Julio y Paco, este trabajo nunca hubiera sido
llevado a cabo.
A todos, Gracias.
© Francisco Méndez y Julio Gómez
http://www.adminso.es
INDICE
INTRODUCCIÓN...............................................................................................1
CCAAPPÍÍTTUULLOO 11 INTRODUCCIÓN AA LLAA TTEELLEEFFOONNÍÍAA...................................5
1 La telefonía tradicional............................................................5
1.1 Sistemas analógicos........................................................................5
1.1.1 FXS..........................................................................................6
1.1.2 FXO.........................................................................................7
1.2 Sistemas digitales............................................................................7
1.2.1 RDSI........................................................................................7
1.2.2 E1/T1.......................................................................................8
1.2.3 Otros........................................................................................9
1.3 Redes móviles................................................................................10
1.3.1 GSM (2G)..............................................................................10
1.3.2 UMTS (3G)............................................................................12
2 VoIP la nueva revolución.......................................................13
2.1 Evolución......................................................................................13
2.2 Ventajas.........................................................................................14
2.3 Arquitectura..................................................................................15
2.3.1 Teléfonos IP..........................................................................16
2.3.2 Gateways y adaptadores analógicos......................................19
2.3.3 Dispositivos GSM/UMTS......................................................20
2.3.4 Softphones.............................................................................20
2.3.5 Proxy’s y enrutadores............................................................21
CCAAPPÍÍTTUULLOO 22 INTRODUCCIÓN AA LLAA AALLTTAA DDIISSPPOONNIIBBIILLIIDDAADD YY AALLTTOO
RREENNDDIIMMIIEENNTTOO...............................................................................................23
1 Introducción...........................................................................23
1.1 Alta disponibilidad........................................................................23
1.2 Alto rendimiento............................................................................24
2 Beneficios de estos servicios en la VoIP................................25
CCAAPPÍÍTTUULLOO 33 ASTERISK...............................................................................27
1 Introducción...........................................................................27
2 Arquitectura Asterisk.............................................................28
3 Instalación de Asterisk............................................................29
3.1 Descargando el software...............................................................29
3.2 Instalación del software...............................................................30
4 Configuración de Asterisk......................................................32
© Francisco Méndez y Julio Gómez
http://www.adminso.es
VIII Diseño e implementación de un sistema VoIP de alta disponibilidad y alto rendimiento
5 Funcionamiento de Asterisk...................................................36
CCAAPPÍÍTTUULLOO 44 ALTA DISPONIBILIDAD EN GNU/LINUX........................39
1 Introducción...........................................................................39
1.1 Soluciones Software para alta disponibilidad...............................39
1.1.1 Servicios................................................................................39
1.1.2 Datos.....................................................................................40
1.2 Soluciones hardware.....................................................................40
1.2.1 Servicios................................................................................40
1.2.2 Datos.....................................................................................41
2 Proyectos de alta disponibilidad...........................................41
3 Linux-HA: Heartbeat..............................................................43
3.1 Heartbeat-1 vs Heartbeat-2..........................................................45
3.2 Arquitectura Heartbeat-2..............................................................46
3.3 Un ejemplo del funcionamiento interno de Heartbeat..................49
3.4 Instalar Heartbeat-2.....................................................................50
3.5 Configurar Heartbeat-2................................................................51
3.5.1 Configurar authkeys..............................................................52
3.5.2 Configurar ha.cf....................................................................52
3.5.3 Configurar haresources.........................................................59
3.5.4 Configuración de los Agentes de Recurso (RA)....................60
3.5.5 Configurando Heartbeat-2....................................................61
3.5.6 ¿Qué es un recurso?...............................................................62
3.5.7 El archivo CIB.xml................................................................63
3.5.8 Otras posibles configuraciones..............................................70
3.6 Funcionamiento de Heartbeat.......................................................73
3.6.1 El cálculo de puntuación de un recurso en un nodo..............74
3.6.2 Ejemplos de cálculo de puntuaciones en diversos escenarios75
3.7 Principales problemas..................................................................79
3.7.1 SplitBrain..............................................................................79
3.7.2 ¿Cómo resolver el SplitBrain?...............................................80
3.8 Comandos de administración........................................................81
4 DRBD.......................................................................................83
4.1 Conceptos fundamentales..............................................................83
4.2 Modos de funcionamiento de DRBD.............................................84
4.3 Otras funcionalidades de DRBD...................................................84
4.3.1 Comprobación de la integridad de datos en línea..................84
4.3.2 Recuperación automática del SplitBrain...............................85
4.3.3 Datos anticuados temporalmente...........................................85
4.4 Instalar DRBD 8...........................................................................86
4.5 Configuración de DRBD 8............................................................87
5 MySQL Replication.................................................................90
5.1 Conceptos fundamentales..............................................................91
5.2 Funcionamiento de la replicación MySQL...................................93
5.3 Funcionamiento avanzado de la replicación MySQL...................95
5.4 Configuración de MySQL Replication..........................................97
CCAAPPÍÍTTUULLOO 55 ALTO RENDIMIENTO EN GNU/LINUX..........................101
1 Introducción al alto rendimiento........................................101
2 Proyectos de alto rendimiento.............................................102
3 Protocolos de comunicación................................................103
3.1 Protocolos de Señalización.........................................................103
3.2 SIP. Session Initiation Protocol..................................................104
3.2.1 Conceptos básicos...............................................................105
3.3 Protocolos de Audio....................................................................117
4 KAMAILIO. El proxy SIP de código abierto......................120
4.1 Arquitectura KAMAILIO.............................................................121
4.2 Un ejemplo del funcionamiento interno de KAMAILIO..............123
4.3 Instalación de KAMAILIO..........................................................125
4.4 Configuración de KAMAILIO.....................................................128
© Francisco Méndez y Julio Gómez
http://www.adminso.es
ÍNDICE IX
4.5 Módulos de autenticación MySQL..............................................135
4.6 Integración con LDAP................................................................139
4.7 El módulo de balanceo Dispatcher.............................................145
4.8 Problema de SIP & RTP: NAT....................................................150
4.8.1 Tipos de NAT.......................................................................152
4.8.2 Soluciones por parte del cliente...........................................153
4.8.3 Soluciones por parte del proxy KAMAILIO.........................154
CCAAPPÍÍTTUULLOO 66 Esquemas de sistemas VoIP con alta disponibilidad y alto rendimiento
157
1 Introducción.........................................................................157
2 Esquema básico....................................................................157
3 Esquema 1.............................................................................159
4 Esquema 2.............................................................................160
5 Esquema 3.............................................................................161
6 Conclusiones.........................................................................162
CCAAPPÍÍTTUULLOO 77 Diseño, implementación y prueba de un sistema de telefónia VoIP de alta
disponibilidad 163
1 Introducción.........................................................................163
2 Análisis..................................................................................163
3 Diseño....................................................................................165
4 Implementación....................................................................168
5 Pruebas de rendimiento.......................................................170
5.1 Introducción a SIPp....................................................................170
5.2 Arquitectura del escenario de prueba.........................................171
5.3 Instalar SIPp...............................................................................173
5.4 Configuración del escenario de prueba G711-G729..................174
5.4.1 Configuración del servidor Asterisk....................................174
5.4.2 Configuración de los clientes SIPp......................................176
5.4.3 Configuración del servidor SIPp.........................................180
5.5 Realización de pruebas de rendimiento G711-G729..................182
5.5.1 Inicio de la prueba en el servidor SIPp................................183
5.5.2 Inicio de Sar en el servidor Asterisk....................................183
5.5.3 Inicio de la prueba en los clientes SIPp...............................184
5.6 Resultados de la prueba de rendimiento G711-G729.................184
5.7 Configuración del escenario de prueba G711-G711..................186
5.7.1 Configuración del servidor SIPp.........................................186
5.8 Realización de la prueba de rendimiento G711-G711................189
5.9 Resultados de la prueba de rendimiento G711-G711.................189
5.10 Conclusiones...............................................................................192
Apéndice I: SPLITBRAIN, FENCING Y QUORUM....................................193
1. SplitBrain............................................................................193
2. Fencing................................................................................194
3. Quorum...............................................................................194
4. Alternativas a Fencing.........................................................195
APÉNDICE II: BIBLIOGRAFíA Y URLs.....................................................197
© Francisco Méndez y Julio Gómez
http://www.adminso.es
Description:Tanto la memoria de este trabajo como el software desarrollado se GSM o
Global System for Mobile communications proveniente en un principio de.