WiLD WiFi Based Long Distance Primera Edición Grupo de Telecomunicaciones Rurales Pontificia Universidad Católica del Perú Publicación financiada por FINCYT Lima, Agosto 2009 WiLD WiFi Based Long Distance Pontificia Universidad Católica del Perú Grupo de Telecomunicaciones Rurales GTR-PUCP, http://gtr.telecom.pucp.edu.pe Edición: Daniel Carbajal, Jeffry Cornejo, José Luis Vargas, Luis Camacho, Aldo Duarte, Renzo Navarro, Yuri Pacheco. c ⃝2009, GTR-PUCP Primera edición: Agosto 2009 Hecho el Depósito Legal en la Biblioteca Nacional del Perú 𝑁 𝑜 2009-09928 ISBN: 978-9972-659-93-5 Autores: Luis Camacho, River Quispe, César Córdova, Leopoldo Liñán, David Chávez. Esta publicación ha sido elaborada gracias al financiamiento del Programa de Ciencia y Tecnología FINCYT. Los autores de este libro no se responsabilizan de los incidentes o daños que pudiera ocasionar la utilización de la información contenida en él. Este libro está publicado bajo la licencia Reconocimiento-Uso no Comercial-Compartir por Igual, versión 2.5, de Creative Commons Perú. http://creativecommons.org/licenses/by-nc-sa/2.5/pe/legalcode Índice general Índice general 1 Introducción 7 1. Redes WiFi para largas distancias 1.1. Estándares WiFi . . . . . . . . . . . . . . . . . . . 1.2. Problemática del uso de WiFi para largas distancias 1.2.1. Capa física . . . . . . . . . . . . . . . . . . . 1.2.2. Capa MAC . . . . . . . . . . . . . . . . . . . 1.3. Uso de telefonía IP . . . . . . . . . . . . . . . . . 1.4. Arquitectura de redes WiFi para larga distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Hardware y software apropiados para la construcción de routers WiFi de larga distancia 2.1. Placa SBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Tipo de procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2. Descripción de SBCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.1. RouterBOARD 532A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.2. RouterBOARD 333 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.3. Alix2C0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.4. Pronghorn SBC-250 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2.5. Pronghorn Metro SBC Quad-Radio Wireless . . . . . . . . . . . . . . . . 2.1.3. Comparación de SBCs para aplicación de redes inalámbricas . . . . . . . . . . 2.2. Tarjetas de red inalámbrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1. Comparación de tarjetas de red inalámbricas . . . . . . . . . . . . . . . . . . . 2.2.2. Pigtails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.3. Antenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. Sistema Operativo Linux Voyage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1. Características . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Driver MadWifi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1. HAL y OpenHAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 13 14 15 15 16 18 19 25 27 27 28 28 29 29 29 30 32 33 33 36 37 38 38 39 39 2.4.2. Ath5k y Ath9k . 2.4.3. Características . 2.4.4. Requerimientos 2.5. Quagga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 40 42 42 3. Software PBX Asterisk 3.1. VoIP . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Asterisk . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Protocolos VoIP . . . . . . . . . . . . . . . . . . . . 3.3.1. IAX (Inter Asterisk eXchange) . . . . . . . . . 3.3.2. SIP (Session Initiation Protocol) . . . . . . . . . 3.3.2.1. Elementos del SIP . . . . . . . . . . . . . . 3.3.2.2. Flujo de establecimiento de una sesión SIP 3.3.3. Protocolo de Descripción de Sesión SDP . . . . 3.3.4. Protocolos RTP/RTCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 46 50 50 50 52 55 56 57 4. Enrutamiento Dinámico 4.1. Tipos de Enrutamiento . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Tabla de Enrutamiento . . . . . . . . . . . . . . . . . . . . 4.1.2. Enrutamiento Estático . . . . . . . . . . . . . . . . . . . . 4.1.3. Enrutamiento Dinámico . . . . . . . . . . . . . . . . . . . 4.2. Enrutamiento Dinámico . . . . . . . . . . . . . . . . . . . . . . 4.2.1. Tipos de Protocolos de Enrutamiento Dinámico: . . . . . . 4.2.2. Características de los Protocolos de Enrutamiento Dinámico 4.2.2.1. Algoritmo de enrutamiento Vector Distancia . . . . . . 4.2.2.2. Algoritmo de enrutamiento de Estado Enlace . . . . . 4.2.2.3. Enrutamiento con clase y sin clase . . . . . . . . . . . 4.2.2.4. Convergencia . . . . . . . . . . . . . . . . . . . . . . 4.2.2.5. Balance de Carga . . . . . . . . . . . . . . . . . . . . 4.2.3. Métrica y distancia administrativa . . . . . . . . . . . . . . 4.3. OSPF, Open Shortest Path First . . . . . . . . . . . . . . . . . . 4.3.1. Áreas y clases de routers . . . . . . . . . . . . . . . . . . 4.3.2. Costo en OSPF . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2.1. Árbol de la ruta más corta . . . . . . . . . . . . . . . 4.3.2.2. Tipo de Interfaces de redes . . . . . . . . . . . . . . . 4.3.2.3. Rutas externas de tipo1 y tipo2 . . . . . . . . . . . . . 4.4. Funcionamiento de OSPF . . . . . . . . . . . . . . . . . . . . . 4.4.1. Encapsulamiento de paquetes en OSPF . . . . . . . . . . 4.4.2. Tipos de LSA (Link State Advertisement) . . . . . . . . . 4.4.3. Estados OSPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 59 60 61 61 61 62 62 63 63 64 64 64 65 66 68 68 68 69 69 70 72 73 . . . . 77 77 78 79 79 5. Voyage GTR 5.1. Identificación de las aplicaciones a implementar . . . . . . . . . . . . . . . . . . 5.2. Configuración rápida mediante archivos de las interfaces de red (Ethernet y WiFi) 5.3. Configuración rápida de enrutamiento estático . . . . . . . . . . . . . . . . . . . 5.4. Seguridad WiFi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. 5.6. 5.7. 5.8. Enrutamiento dinámico . . . . . . . . . . . . . . . . . . Telefonía IP . . . . . . . . . . . . . . . . . . . . . . . . Configuración vía web . . . . . . . . . . . . . . . . . . Adaptación de Voyage para el trabajo en entornos rurales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. Configuración e Instalación de Voyage GTR 6.1. Comandos generales en Linux . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1. Comando ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2. Comando mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3. Comando rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4. Comando fdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.5. Comando dmesg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.6. Comando lspci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.7. Comando ps aux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.8. Comando kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.9. Comando hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.10. Comando tail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.11. Comando ifconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.12. Comando ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.13. Comando ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.14. Comando route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2. Instalación de Voyage GTR . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. Acceso inicial por puerto serial o por Ethernet . . . . . . . . . . . . . . . . . 6.4. Edición de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Estructura de archivos de Voyage GTR . . . . . . . . . . . . . . . . . . . . . 6.6. Guardar archivos o carpetas de /rw . . . . . . . . . . . . . . . . . . . . . . . 6.7. Configuración previa a cualquier aplicación en Voyage GTR . . . . . . . . . 6.8. Obtención de respaldo de la configuración de las aplicaciones en Voyage GTR 6.9. Verificación del estado de Voyage GTR . . . . . . . . . . . . . . . . . . . . 6.9.1. Espacio ocupado y disponible . . . . . . . . . . . . . . . . . . . . . . . 6.9.2. RAM libre y CPU desocupado en un instante . . . . . . . . . . . . . . . 6.9.3. Fecha del sistema y último reinicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. Configuración de Redes con Voyage GTR 7.1. Interfaces de Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2. Configuración de las interfaces de red . . . . . . . . . . . . . . . . . . . . . . 7.2.1. Configuración de Ethernet y de Bridge Ethernet . . . . . . . . . . . . . . 7.2.2. Configuración de las interfaces WiFi . . . . . . . . . . . . . . . . . . . . 7.3. Configuración del enrutamiento estático, gateway y NAT . . . . . . . . . . . . 7.4. Configuración del enrutamiento dinámico con OSPF . . . . . . . . . . . . . . 7.5. Configuración del DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6. Configuración de interfaces WiFi y de parámetros TCP/IP mediante comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 80 81 82 . . . . . . . . . . . . . . . . . . . . . . . . . . 85 85 85 85 85 86 86 86 87 87 88 88 88 88 89 89 89 91 91 92 93 94 95 95 95 96 96 . . . . . . . . 99 99 100 100 101 103 103 105 106 8. Verificación del Estado de la Red de Datos 8.1. Conectividad en enlaces AP-STA . . . . . . . . . . . . . . . . . 8.1.1. Nivel de señal del enlace y relación de la calidad del enlace 8.1.2. Cantidad de clientes conectados al AP . . . . . . . . . . . 8.1.3. Corrección del alineamiento de las antenas . . . . . . . . . 8.1.4. Ping normal entre las interfaces del enlace . . . . . . . . . 8.1.5. Ping con mayor tamaño entre las interfaces del enlace . . . 8.1.6. Medición en el rendimiento de un enlace . . . . . . . . . . 8.1.7. Verificación de la tabla de rutas y la ruta de salida . . . . . 8.1.8. Ping a todas las interfaces de red . . . . . . . . . . . . . . 8.2. Conectividad en una red troncal . . . . . . . . . . . . . . . . . 8.2.1. Ping a todas las interfaces de red . . . . . . . . . . . . . . 8.2.2. Medición del rendimiento de la troncal . . . . . . . . . . . . . . . . . . . . . . . 9. Configuración de una red de Telefonía IP con Asterisk 9.1. Configuración inicial . . . . . . . . . . . . . . . . . . . . . . . . 9.2. Configuración básica de Asterisk . . . . . . . . . . . . . . . . . . 9.2.1. Configuración de los clientes SIP . . . . . . . . . . . . . . . 9.2.2. Programación de las llamadas telefónicas . . . . . . . . . . . 9.2.3. Identificación de direcciones IP de los servidores Asterisk . . 9.2.4. Grabación de archivos de sonido . . . . . . . . . . . . . . . 9.2.5. Configuración de IVR básico . . . . . . . . . . . . . . . . . 9.2.6. Comunicación con otros servidores Asterisk . . . . . . . . . 9.3. Registro de los clientes SIP . . . . . . . . . . . . . . . . . . . . . 9.4. Verificación del estado de telefonía IP con Asterisk . . . . . . . . 9.4.1. Estado del registro de clientes y tono en los teléfonos . . . . . 9.4.2. Llamada de prueba al servidor de telefonía IP . . . . . . . . . 9.4.3. Llamada de prueba a un cliente local . . . . . . . . . . . . . 9.4.4. Llamada de prueba al resto de servidores de telefonía IP . . . 9.4.5. Llamada de prueba a un cliente administrado por otro servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 109 109 112 112 115 117 117 118 119 119 119 120 . . . . . . . . . . . . . . . 121 121 122 122 123 124 125 125 125 126 128 128 128 128 129 129 10. Caso de Estudio: Red Napo Sur 10.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2. Descripción General de la Red de Comunicaciones . . . . . . . . . . . . . . . . . . 10.3. Descripción de la Red de Telecomunicaciones . . . . . . . . . . . . . . . . . . . . . 10.3.1. Enlaces Troncales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2. Características de los Equipos Instalados . . . . . . . . . . . . . . . . . . . . . 10.3.2.1. Equipos empleados en los enlaces troncales de 2.4GHz – 802.11b/g . . . . 10.3.2.2. Equipos empleados en los enlaces troncales de 5.8GHz – 802.11a . . . . . 10.3.2.3. Equipos empleados en los enlaces de distribución de 2.4GHz – 802.11g . . 10.3.3. Distribución de los equipos en los repetidores y estaciones clientes . . . . . . . 10.3.3.1. Distribución en los repetidores de Tacsha Curaray, Negro Urco, Tuta Pishco y Huamán Urco (enlaces en 2.4GHz) . . . . . . . . . . . . . . . . . . . . . 10.3.3.2. Distribución en el repetidor de Mazán (enlaces en 2.4GHz y 5.8GHz) . . . 10.3.3.3. Distribución en el repetidor de PetroPerú (enlaces en 2.4GHz y 5.8GHz) . . 131 131 132 135 135 144 144 147 148 149 149 150 151 5 10.3.3.4. Distribución en el repetidor del Hospital Regional de Loreto (enlaces 2.4GHz y 5.8GHz) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.3.5. Distribución en las estaciones clientes (enlaces de distribución) . . . . . 10.3.4. Sistema de Energía y Protección Eléctrica . . . . . . . . . . . . . . . . . . . en . . 151 . . 152 . . 153 Bibliografía 157 Glosario 161 6 Introducción Este libro es una nueva iniciativa del Grupo de Telecomunicaciones Rurales de la Pontificia Universidad Católica del Perú (GTR-PUCP) para contribuir a la ampliación y difusión del conocimiento existente sobre tecnologías apropiadas para el acceso a la información y comunicación en zonas rurales. En tal sentido, este libro tiene varios propósitos: Compartir el conocimiento generado y/o utilizado por GTR-PUCP. Incrementar la bibliografía en castellano sobre tecnologías apropiadas para zonas rurales. Servir de partida para futuras actualizaciones conforme aumente la información disponible. La mayor parte de los contenidos de este libro han sido gestados gracias al aporte financiero de FINCyT, el Fondo de Inversión en Ciencia y Tecnología, http://www.fincyt.gob.pe; una iniciativa del Estado Peruano para contribuir al incremento de la competitividad del país, fortaleciendo las capacidades de investigación e innovación tecnológica y promoviendo la articulación de la Empresa, Universidad y Estado. El libro es llamado WiLD, WiFi based Long Distance, citando un término probablemente acuñado por TIER, Technology and Infraestructure for Emerging Regions, un grupo de investigación de la Universidad de California en Berkeley. El término hace referencia al conjunto de soluciones para la transmisión inalámbrica de voz y datos basados en el protocolo 802.11, y cuya virtud más notable, es alcanzar enlaces de muy larga distancia (entre 50 y 100 km), mucho mayores que las distancias para las que originalmente fue diseñado el protocolo 802.11. El título es apropiado pues este libro trata sobre Voyage GTR, un sistema operativo basado en la distribución Linux Voyage, a la cual se han añadido aplicaciones hasta obtener un sistema operativo específico (un firmware si se quiere). Este software desarrollado instalado sobre un hardware apropiado, convierte al conjunto, en un router WiFi de largo alcance, como puede verse en la siguiente figura: 7 8 Figura 1: Router Inalámbrico Integrado ¿Por qué es importante que exista un equipo de largo alcance? La gran cobertura es una de las varias características que hace que los routers Voyage GTR sean apropiados para la creación de redes en zonas rurales. Estructura del Libro: En el primer capítulo se narra la problemática del uso del protocolo 802.11 para la transmisión de voz y datos en enlaces de larga distancia, tomando en cuenta que este protocolo nació como una solución para redes LAN. En el segundo capítulo se describen y explican el hardware y software empleados para la construcción de routers Voyage GTR. Todas estas herramientas están enmarcadas en el mundo del software y hardware libres. En los capítulos tres y cuatro se narran aspectos teóricos de dos de las características más importantes dentro de Voyage GTR: Telefonía IP y Encaminamiento Dinámico OSPF. Estas dos propiedades se implementan a través de los programas Asterisk y Quagga. En el quinto capítulo se describe Voyage GTR y todas las modificaciones y aplicaciones aãdidas a Linux Voyage para conseguir el producto final. En los capítulos seis, siete y ocho se detalla los aspectos técnicos del uso de Voyage GTR: la instalación y configuración básica, configuración de redes cableadas e inalámbricas y la verificación del estado de una red instalada. En el noveno capítulo se detalla los aspectos técnicos de la instalación de un sistema de telefonía 9 IP utilizando Asterisk. Finalmente en el décimo capítulo se presenta un caso de estudio, la red Napo Sur (provincia de Maynas, región Loreto en Perú), perteneciente a la Dirección Regional de Salud de Loreto, Perú; montada con routers Voyage GTR. Esta red sumada a la parte Norte (también instalada con los mismos equipos) forman en conjunto probablemente la red en servicio WiFi multisalto más larga del planeta. Zonas rurales en países en vías de desarrollo Las zonas rurales aisladas de países en vías de desarrollo son el contexto vital de más de la mitad de la población mundial, pese a lo cual es generalizada su casi total carencia de infraestructuras de comunicación y acceso a la información. La pretensión de dotar a estas zonas de conectividad a redes de voz y datos ha sido en los últimos años una preocupación del mayor orden de los agentes internacionales multilaterales de desarrollo, ya que en algunos casos se puede considerar un servicio básico, y en todos es un sustrato de gran importancia para el desarrollo y la promoción humana. No obstante, todos los esfuerzos por generalizar el acceso a redes de comunicación en zonas aisladas de países en desarrollo suelen topar desde los primeros pasos con la ausencia de soluciones tecnológicas realmente apropiadas, realistas y sostenibles, debido en gran parte a las siguientes características específicas de estos contextos: No sólo se carece de infraestructuras de telecomunicación; también suele ser prácticamente inexistente o de mala calidad la infraestructura de electrificación y, en muchos casos las vías de acceso. La necesidad de dotar a los sistemas de telecomunicación de alimentación eléctrica autónoma para garantizar su funcionamiento continuo y su durabilidad los encarece y dificulta su mantenimiento, y la ausencia de vías de acceso también encarece y dificulta tanto el despliegue de redes como su mantenimiento. El personal técnico cualificado necesario para el mantenimiento y operación de estas tecnologías suele encontrarse en las ciudades, y resulta caro y difícil contar con él en estas zonas. La población es pobre y dispersa, por lo que no puede soportar los costes de infraestructuras caras de instalar, mantener y operar. Tampoco los estados de los países en vías de desarrollo están en condiciones de poder subvencionar la instalación de redes de comunicaciones rurales en pro de la cobertura total, tanto por su falta de recursos como por la enorme proporción que las poblaciones rurales no contributivas representan en el total. 10 Características de las soluciones tecnológicas para este contexto Este contexto no sólo explica la causa de esa práctica incomunicación de la mitad del mundo habitado, sino que también determina las especificaciones de cualquier solución tecnológica que se pretenda aplicar de manera sostenible en entornos rurales de países en desarrollo: Tiene que ser robusta y sencilla de usar, ya que los usuarios van a ser poco cualificados y no van a contar con el apoyo continuo de asesores preparados. Tiene que requerir poco o ningún mantenimiento de técnicos especializados, ya que éstos van a estar lejos y va a resultar caro y difícil atraerlos para la resolución de los problemas. Con más razón debe ser mínima la necesidad de administración de las redes, ya que ésta genera costes fijos considerables. Debe ser de bajo consumo, ya que frecuentemente tendrá que depender de instalaciones de energías fotovoltaicas o eólicas que encarecen las instalaciones y aumentan las necesidades y costes de mantenimiento. Debe tener costes de despliegue y de operación muy bajos. Ésto excluye las redes cableadas, las de telefonía móvil y las redes satélite como soluciones únicas. En ocasiones se puede plantear el acceso al mundo de toda una red por estos medios, pero la distribución del acceso se tendrá que hacer con una tecnología complementaria más barata. Este criterio también desaconseja en muchos casos las redes radio en bandas de frecuencia licenciadas. Con estos condicionantes, el GTR-PUCP ha trabajado desde 1999 en varias líneas de investigación que persiguen determinar cuales son las tecnologías inalámbricas más apropiadas a zonas rurales aisladas de países en desarrollo, mejorarlas y aplicarlas de forma óptima. En [6] se describen distintas tecnologías propuestas para la instalación de redes de telecomunicaciones en este contexto. Todas ellas son inalámbricas, ya que dadas las características descritas anteriormente, una red cableada sería muy costosa de instalar y mantener. En el presente libro se profundizará sobre el uso de la alternativa tecnológica basada en WiFi. 1 Redes WiFi para largas distancias Desde el 2001, una de las tecnologías que se ha tomado en consideración muy seriamente para las comunicaciones de largas distancias es la IEEE802.11, popularmente llamada WiFi; si bien este estándar no se concibió para redes extensas, sus indudables ventajas de costo, uso de frecuencias libres de licencia y gran ancho de banda, han despertado el interés de diversos agentes tecnológicos de países en desarrollo. Incluso en los núcleos urbanos de muchos países se han dado experiencias de aplicación de WiFi para distribuir el acceso a Internet con la mayor cobertura posible en exteriores. Además, el enorme éxito de WiFi en todos los ámbitos ha dado lugar a una gran cantidad de productos en el mercado, casi todos ellos de bajo consumo, a precios bajos y mucha flexibilidad de uso, especialmente en combinación con desarrollos de software abierto. Respecto al uso de frecuencias en los casos en que no hay un vacío legal, la mayor parte de los estados adoptan las restricciones de la FCC en el uso de las banda ISM 2.4GHz y 5.8GHz usadas por esta tecnología. Como se puede apreciar en el Cuadro 1.1, estas normas son mucho más permisivas que las europeas y permiten realizar en las zonas rurales enlaces tanto punto a punto (PtP) como punto a multipunto (PtMP) de varias decenas de kilómetros. Máxima potencia transmisible 1000mW 100mW 10 mW Dominio legal Normativa USA y muchos países en desarrollo Europa Japón FCC 15.247 ETS 300-328 MTP Ordenance for Regulating Radio Equipment, Article 49-20 Cuadro 1.1: Máxima potencia transmisible en 2.4 GHz por regiones. Las ventajas e inconvenientes que presenta el uso de esta tecnología se indican a continuación: 11 12 CAPÍTULO 1. REDES WIFI PARA LARGAS DISTANCIAS Ventajas: Uso de frecuencias sin licencia de las bandas ISM 2.4 / 5.8 GHz con ciertas limitaciones de potencia. Velocidades desde 1 hasta 54 Mbps, siempre teniendo en cuenta que el throughput neto obtenido está alrededor de un 50-70 % de esos valores. Tecnología con estándar ampliamente conocido y fácil de configurar, lo que favorece los bajos costes de los equipos. Bajo consumo de potencia, menor a 10 W por enrutador. Flexibilidad: un nodo puede adherirse a la red si puede ver a uno de los nodos vecinos (las zonas rurales aisladas normalmente no siguen una distribución geométrica ordenada alrededor de un punto central). Hardware fácilmente integrable en un sistema impermeable que soporte condiciones meteorológicas adversas. Inconvenientes: Requiere línea de vista directa (esto podría elevar, en algunos casos, el número de repetidores necesarios aumentando demasiado el costo). Al ser una tecnología creada para redes de corto alcance, hay que solventar ciertos problemas relacionadas con su utilización para distancias de decenas de Km. El número de colisiones aumenta en relación con el número de usuarios. Tiene un número limitado de canales no interferentes, 3 en 2.4 GHz y 8 en 5.8 GHz. 1.1. Estándares WiFi La familia de estándares IEEE 802.11 (802.11a, 802.11b y 802.1g), más conocida como WiFi, tiene asignadas las bandas ISM (Industrial, Scientific and Medical) 902-928 MHz, 2.400-2.4835 GHz, 5.725-5.850 GHz para uso en las redes inalámbricas basadas en espectro ensanchado con objeto de lograr redes de área local inalámbricas (WLAN). WiFi comparte la mayoría de su funcionamiento interno con Ethernet, sin embargo difiere en la especificación de la capa física (PHY) utilizando señales radio en lugar cable y en su capa de control de acceso al medio (MAC), ya que para controlar el acceso al medio Ethernet usa CSMA/CD, mientras que WiFi usa CSMA/CA. El gran ancho de banda (entre 1 y 11 Mbps para 802.11b y hasta 54Mbps para 802.11a/g) a un precio reducido, lo presenta como una de las mejores opciones para la transmisión de datos y redes de telefonía empleando VoIP(voz sobre IP). Existe una gran diferencia entre los distintos estándares WiFi. Es por ello que a continuación se realiza una presentación teórica más detallada de cada uno de ellos. El estándar 802.11 fue aprobado por el IEEE en 1997, permitiendo trabajar con velocidades de transmisión de 1Mbps y 2Mbps. El estándar IEEE802.11b primero, y luego los estándares IEEE802.11a 1.2 Problemática del uso de WiFi para largas distancias 13 y IEEE802.11g, añadieron nuevas técnicas de modulación en la capa física logrando mayores velocidades de transmisión y una mayor robustez en la conectividad. El estándar IEEE802.11a trabaja en la banda de frecuencia de los 5GHz utilizando la técnica de transmisión OFDM. Da soporte a velocidades de transmisión de 6Mbps a 54Mbps y ocho canales no interferentes de 20MHz. Esta banda de frecuencia está menos saturada que la de 2.4GHz, lo cual es una ventaja, ya que la banda de 2.4GHz también es utilizada por algunos teléfonos inalámbricos, hornos microondas y equipos Bluetooth. El gran inconveniente de este estándar es el de no ser compatible con el IEEE802.11b, mucho más difundido. El estándar IEEE802.11b trabaja en la banda de frecuencia de 2.4GHz utilizando el sistema de transmisión HR/DSSS. Mediante el uso de la modulación CCK se da soporte a las velocidades de transmisión de 5.5Mbps y 11Mbps. Se cuenta con catorce canales (que pueden estar limitados a once o trece según el país) de 22MHz, de los cuales se pueden utilizar simultaneamente hasta tres de forma no interferente. El estándar IEEE802.11g fue desarrollado a raíz del importante problema de incompatibilidad entre los equipos de IEEE802.11a y IEEE802.11b. Además, la creación de este estándar atendía al interés en incrementar la capacidad de los equipos y redes WiFi. IEEE802.11g trabaja en la banda de frecuencia de 2.4GHz, manteniendo además los mismos canales y modulaciones de IEEE802.11b, y añade el sistema OFDM mediante el cual se soportan velocidades de transmisión de hasta 54Mbps. 1.2. Problemática del uso de WiFi para largas distancias Dado que la que la tecnología WiFi fue en su inicio diseñada para redes locales, la mayor dificultad reside en su aplicación para largas distancias. 1.2.1. Capa física Sin embargo, una cuidadosa revisión del estándar no deja entrever ningún elemento de la capa física que limite el alcance de las comunicaciones WiFi en términos de distancia si no es el balance de enlace. Los límites físicos de distancia alcanzable con WiFi dependerán, por lo tanto, de los siguientes parámetros: La máxima potencia que podamos transmitir (PIRE). Las pérdidas de propagación. La sensibilidad de recepción. La mínima relación señal a ruido que estemos dispuestos a aceptar como suficiente. El propio estándar determina que los límites de potencia que se puede transmitir dependen de la legislación que atañe a la banda de frecuencias ISM para cada región geográfica, éstas se mostraron en la Cuadro 1.1. Además, hay algunos aspectos de la capa física que deben ser tenidos en cuenta para obtener una mayor estabilidad en el enlace: Velocidad. El protocolo IEEE802.11 recoge distintas velocidades según el modo de funcionamiento: 1, 2, 5.5 y 11 Mbps para 802.11b; 6, 9, 12, 18, 24, 36, 48 y 54 Mbps para 802.11a, y el 14 CAPÍTULO 1. REDES WIFI PARA LARGAS DISTANCIAS conjunto de todas las anteriores para el modo 802.11g. Estos modos usan diferentes tipos de modulación y codificación, de forma que cuanto mayor sea la velocidad, mayor es la potencia necesaria en recepción para mantener un enlace con una BER baja. Esta potencia, llamada sensibilidad, obliga a usar velocidades bajas si se quiere lograr enlaces de larga distancia con una cierta estabilidad. La diferencia en la sensibilidad de recepción entre 1 y 11Mbps, aunque depende de equipos, suele ser de más de 10 dB, lo cual equivale prácticamente a cuadruplicar con 1Mbps el alcance que se tiene con 11Mbps. Si además se tiene en cuenta que la banda ISM 2.4 GHz impone limitaciones en cuanto al nivel de potencia que es legal transmitir, es fácil comprobar que para enlaces muy largos normalmente deben usarse las velocidades más bajas de 802.11b para tener estabilidad y buena calidad. La aparición de tarjetas con mejores sensibilidades o la tecnología 802.11g pueden ayudar a lograr velocidades mayores. Así, por ejemplo en el modelo de tarjeta Ubiquiti SR2 802.11b/g de 400mW, la diferencia de sensibilidad entre el modo b en 1 Mbps y el modo g en 6 Mbps es de sólo 3dB. Añadir también que en términos de estabilidad y prestaciones resulta mejor configurar la velocidad del canal a un valor fijo. La experiencia recomienda ser conservadores para soportar una cierta pérdida de prestaciones que sin duda se va a dar con el tiempo por pérdida de alineación de las antenas, cambios climáticos y otros factores. Fenómenos meteorológicos. En las zonas rurales es frecuente encontrar condiciones meteorológicas adversas. Aunque tradicionalmente se suele decir que las lluvias influyen “de forma sensible” a partir de los 10GHz, cuando los enlaces son muy largos una pequeña atenuación en dB/Km acaba siendo importante. Los estudios consultados no parecen conceder mucho peso a la atenuación de nubes y nieblas, pero todo depende de la distancia. Polarización. El mejor comportamiento se da con polarización vertical, pero las condiciones atmosféricas y el terreno pueden producir una cierta despolarización, con lo que la recepción de la señal empeora y su atenuación aumenta. Interferencias. Si bien en las zonas rurales aisladas esto no suele suceder, los enlaces que conectan zonas aisladas con zonas urbanas se pueden ver afectados por este problema. 1.2.2. Capa MAC Asimismo, a parte de las restricciones que impone el balance de enlace, es patente que existen restricciones explícitas de distancia ya que los resultados lo demuestran y, además, porque la capa MAC tiene multitud de tiempos constantes definidos que tienen diferente efecto en función de la distancia que haya entre estaciones. Estos tiempos se pueden apreciar en la Figura 1.1. Tras una revisión cuidadosa [5] del estándar base IEEE 802.11, se pueden extraer tres tipos de limitaciones: el temporizador de espera de los ACKs, la definición de tiempos relacionados con el Slottime, y el cálculo del vector que se encarga de controlar el tiempo que se debe esperar cuando el canal está reservado para la detección de portadora virtual (NAV). 1.2 Problemática del uso de WiFi para largas distancias 15 Figura 1.1: Esquema temporal de funcionamiento en el nivel MAC. ACKtimeout: Este parámetro se define en el texto del estándar como el tiempo en que la estación transmisora espera la llegada del ACK una vez que ha terminado la transmisión de un paquete. Así pues, para que una comunicación WiFi funcione a una determinada distancia se tiene que cumplir que el ACKtimeout sea mayor que el tiempo de propagación de ida y vuelta más el SIFS, un tiempo fijo que define la separación entre la recepción del paquete de la transmisión de su ACK en el receptor. No obstante, el estándar no da un valor claro a este parámetro, y los equipos WiFi del mercado varían mucho en su implementación del ACKtimeout; algunos sistemas tienen un valor por defecto de aproximadamente DIFS+SIFS pero que se puede modificar, y otras tienen valores no modificables pero más grandes. DIFS es el tiempo que cada estación espera una vez que detecta que el canal ha quedado libre. Cuando una estación intenta enviar un paquete a otra que está demasiado distante como para recibir de ella el ACK antes de que transcurra el ACKtimeout, se interpretará que la transmisión falló y se retransmitirá; como lo mismo le sucede a cada retransmisión, cada paquete se retransmitirá el máximo número de retransmisiones antes de descartarse y dejar paso al siguiente. La capa WiFi de la estación transmisora “creerá” que no logró mandar el paquete, pero de hecho lo probable es que hayan llegado correctamente varias copias de éste, de las que la primera se pasará a la capa superior en el receptor. El resultado es que el enlace funciona, pero con un rendimiento ínfimo debido a que todo se retransmite varias veces, por defecto 7. Slottime. Los valores de Slottime, SIFS y DIFS imponen restricciones al funcionamiento del MAC de WiFi a partir de ciertas distancias. El estándar prevé que las estaciones que transmiten son oídas por las otras dentro del mismo slot en que se ha producido la transmisión, lo cual impone un límite de unos 3 Km. Más allá de esa distancia, las prestaciones de los enlaces empeoran con la distancia, aunque aún resultan utilizables si el número de nodos activos es suficientemente bajo. La vulnerabilidad con nodos ocultos. Se considera como “nodo oculto” a la situación donde no todas las estaciones pueden escucharse, en IEEE 802.11 se emplea el mecanismo RTS/CTS para evitar colisiones entre nodos ocultos; no obstante, ese mecanismo funciona si el cómputo del NAV se corresponde con el tiempo que verdaderamente el canal va a permanecer ocupado; puesto que el NAV no se calcula teniendo en cuenta el tiempo de propagación, a medida que la distancia aumenta, su efectividad empeora; en enlaces PtMP con distancias del orden de kilómetros, el RTS/CTS es prácticamente inservible, y no hay un mecanismo alternativo. Como consecuencia de lo anterior, y dependiendo del tipo de enlace que define la arquitectura de red 802.11, se pueden sacar las siguientes conclusiones: 16 CAPÍTULO 1. REDES WIFI PARA LARGAS DISTANCIAS PtP. Cuando la distancia es mayor de 3 Km, se incrementa proporcionalmente con la distancia, en saltos de 3 Km, el número de slots en que una estación puede empezar a transmitir y colisionar con un paquete cuya transmisión se inició en un slot determinado; esto tiene relativamente poco impacto cuando la carga ofrecida es baja, pero es importante cuando el enlace está próximo a la saturación, ya que en ese caso casi siempre hay un paquete listo para ser transmitido tan pronto como se considere libre el canal, y para ventanas de contención pequeñas la probabilidad de colisión será significativa. También será necesario cuidar el ajuste del ACKTimeout fijándolo a un valor ligeramente superior a dos veces el tiempo de propagación. PtMP. Además de darse las mismas anomalías de comportamiento del MAC entre la estación transmisora y receptora de un paquete que se han comentado para PtP, las otras estaciones que observan pasivamente el canal esperando que se desocupe tomarán decisiones equivocadas al considerar el canal libre cuando no lo está. Por ejemplo, si la distancia hace que los ACK se reciban más tarde que DIFS, la estación transmisora todavía podrá esperar por el ACK si el ACKTimeout es lo suficientemente grande, pero las otras estaciones cercanas a ésta que esperan a que el canal se libere optarán a ocupar el canal de inmediato, pudiendo colisionar con cierta probabilidad con el ACK que está en camino. Por lo que hay que fijar el ACKtimeout para el enlace más largo que conforme ese PtMP. En definitiva, WiFi puede servir, aunque con cierta pérdida de prestaciones, para enlaces PtP de larga distancia si los equipos terminales permiten configurar el ACKtimeout y el Slottime; en cambio, para PtMP, aún modificando esos parámetros, el funcionamiento es notablemente peor a menos que la carga ofrecida y el número de nodos sean muy bajos. 1.3. Uso de telefonía IP Se puede utilizar la infraestructura de la red de datos WiFi para el transporte del tráfico, aplicando protocolos de VoIP para el envío de tramas y señalización. Mediante el uso de este protocolo, la red permite el acceso a servicios de telefonía local (entre establecimientos de la misma zona) de forma gratuita en las redes WiFi, y conexión con la RTPC con ciertas restricciones de llamadas salientes (las llamadas entrantes no tendrán ningún límite). Además, tiene la capacidad de habilitar servicios adicionales como buzón de voz, llamada a tres y más, transferencia de llamadas, etc., sin coste adicional. VoIP es una tecnología de gestión y enrutamiento de comunicaciones de voz a través de redes de datos (LAN, WAN) basadas en protocolos TCP/IP. El objetivo de utilizar las redes de datos para la transmisión de voz es reducir los costos de contratación en líneas telefónicas locales convencionales. Mediante este servicio los usuarios podrán establecer comunicaciones de voz con los establecimientos que forman parte de la red y con cualquier abonado de la RTPC. En el primer caso las llamadas no tienen costo y la marcación es similar al caso de anexos en una empresa privada, mientras que para evitar problemas institucionales con temas de facturación por llamadas a números telefónicos de la RTPC y para evitar también problemas legales de competencia a operadoras de telecomunicación, se ha decidido que las centralitas telefónicas instaladas permitan únicamente llamadas salientes a números de tarjetas prepago. 1.4 Arquitectura de redes WiFi para larga distancia 1.4. 17 Arquitectura de redes WiFi para larga distancia Tradicionalmente la topología de red IEEE802.11 más usada ha sido en modo infraestructura. En ella todas las estaciones que forman parte de la red se comunican entre sí a través de un punto de acceso. El punto de acceso puede además proporcionar acceso a redes exteriores. Sin embargo, la topología más básica de una red WiFi es aquella en la que un conjunto de estaciones (mínimo dos), se conectan entre sí de forma directa. Dicha topología suele recibir el nombre de red Ad-Hoc. En este tipo de redes las estaciones se comunican de forma directa a través del medio inalámbrico sin que medie ninguna otra. Debido a las limitaciones inherentes en el alcance de las transmisiones puede que no todas las estaciones sean capaces de establecer comunicación entre sí, puesto que deberán estar dentro del rango del alcance una de otra. A partir del concepto de red Ad-Hoc en WiFi se contempla el establecimiento de redes Mesh. En una red con topología Mesh una estación que desee transmitir a otra estación fuera de su alcance, comprobará en su tabla de encaminamiento a qué estación dentro de su alcance debe transmitir la información. Dicha estación recibirá el paquete y lo reenviará siguiendo el mismo procedimiento y así sucesivamente hasta alcanzar la estación destino. Esto implica que todos los nodos de la red van a gestionar los paquetes a nivel IP. Esto introduce algo más de retardo, pero éste, así como el ancho de banda, se puede gestionar de forma muy avanzada. Las redes Mesh además de incrementar sustancialmente el área de cobertura que puede alcanzar una red (de límite indefinido si la distribución y densidad de las estación es adecuada) tienen la ventaja de ser tolerantes a fallos, pues la caída de un nodo no implicará necesariamente la caída de la red (se podrán seguir enviando los mensajes a través de otras rutas). Otra topología posible es una cadena multisalto donde cada eslabón de la cadena está compuesto por un enlace punto a punto en modo infraestructura. Ver figura 1.2: Figura 1.2: Arquitectura de red cadena multisalto 18 CAPÍTULO 1. REDES WIFI PARA LARGAS DISTANCIAS En muchos casos, esta topología es la única posible para enlazar comunidades rurales establecidas a lo largo de ríos amazónicos o en valles interandinos longitudinales; por ello, es la topología más estudiada por GTR-PUCP. Al igual que una red Mesh, esta topología también permite extender notablemente la cobertura; a diferencia de ella, en una cadena multisalto el camino físico está plenamente establecido, la comunicación iniciada en un nodo intermedio necesariamente debe pasar por el nodo que lo antecede o que lo precede para llegar a su destino. Tiene el obvio inconveniente que la “rotura” de algún enlace interrumpe la comunicación entre extremos, por ello es deseable que la cadena tenga más de un punto de contacto con el exterior. Eventualmente la cadena puede cerrarse y volverse un anillo. Figura 1.3: Red cadena multisalto ramificada 1.4 Arquitectura de redes WiFi para larga distancia 19 Esta red puede ramificarse como se ve en la figura 1.3. Aunque cada nodo puede estar compuesto del mismo equipamiento hardware, podemos establecer una diferenciación funcional de tres tipos de nodos: Estación pasarela: es una estación dotada de conectividad final a Internet y a la RTPC, permitiendo al resto de estaciones de la red inalámbrica acceder a través de ella a esas redes externas. Puede haber una o varias de estas estaciones en una red inalámbrica, pero lo más frecuente es que no se disponga más que de una. El uso de más de una implica el uso de encaminamiento dinámico. Estas estaciones frecuentemente tendrán que desempeñar funciones como NAT o cortafuegos. Repetidor: los distintos repetidores se unen formando la red troncal que se encarga de conmutar las comunicaciones con otras estaciones. Estación cliente: se encuentra en los puntos de servicio a usuarios. Suele tener conectado una computadora y un teléfono IP. Además es importante distinguir entre enlaces troncales y enlaces de distribución. Los enlaces troncales constituyen la columna vertebral de la red, interconectan a todos los nodos repetidores y a la estación pasarela, transportan el tráfico combinado de varios clientes. Los enlaces de distribución permiten el acceso de los clientes a la red. Figura 1.4: Encadenamiento de enlaces punto a punto en modo infraestructura Como ya se mencionó, cada enlace punto a punto se realiza en modo infraestructura, lo que implica que un extremo de este enlace es un router que tiene una interfaz inalámbrica de red que se comporta como STA estación “final” (sin importar que en esta topología el enlace podría estar en medio de la cadena) y en el otro extremo hay otro router con una interfaz que se comporta como punto de acceso AP. Para lograr la comunicación a lo largo de toda la cadena, el router usado en cada nodo debe poseer por lo menos dos, y típicamente tres interfaces de red inalámbrica, lo que es equivalente a tener igual número de radios. En la figura 1.4 puede verse como cada una de estas interfaces se puede configurar independientemente como STA ó como AP. También es posible que en cada nodo 20 CAPÍTULO 1. REDES WIFI PARA LARGAS DISTANCIAS exista más de un router, unidos por enlaces cableados Ethernet. A fin de minimizar la interferencia, cada par de enlaces contiguos se realiza en canales diferentes. 802.11b/g tiene 11 canales, 3 de ellos no interferentes; por su parte 802.11a tiene 16 canales y 12 de ellos no solapados entre sí (4 de los 12, señalados para enlaces punto a punto). Un equipo de estas características puede verse en la fig 1.5 en la que se distinguen todos sus componentes, nótese que posee dos radios, de 400 y 80 mW. 1. Placa Alix 2. Caja de exterior metálica impermeable 3. Memoria CF de 512MB 4. Tarjeta inalámbrica SR2 (400mW) 5. Tarjeta inalámbrica CM9 (80mW) 6. Pigtail uFL-N macho 7. Pigtail uFL-N macho 8. Cable de energía 9. Cable de red cruzado 10. Prensa estopa 11. Prensa estopa Figura 1.5: Elementos del router inalámbrico. Debido a que debe existir línea de vista entre las antenas que establecerán un enlace, estas se montan en la cima de torres elevadas. Cada antena se conecta con una interfaz de red inalámbrica de un router. En microondas, las pérdidas de señal en los cables coaxiales de conexión son muy elevadas, por ello el router debe colocarse a pocos metros de las antenas, es decir que también se monta en la torre y para energizarlo es común que además se instale un sistema eléctrico autónomo en la torre [6]. 1.4 Arquitectura de redes WiFi para larga distancia Figura 1.6: Esquema de una estación repetidora. 21 22 CAPÍTULO 1. REDES WIFI PARA LARGAS DISTANCIAS 2 Hardware y software apropiados para la construcción de routers WiFi de larga distancia Un router inalámbrico es un dispositivo usado para la interconexión de redes inalámbricas con otras redes, de cualquier tipo. En el mercado actual existen muchas soluciones y formas de equipamiento para un router inalámbrico WiFi. La mayoría de ellas son soluciones propietarias diseñadas para enlaces interiores ó para enlaces exteriores de distancia media (alrededor de 30 km). En una solución propietaria, el fabricante guarda reserva sobre el hardware y software del equipo, solo brinda la información suficiente para la configuración de los mismos. Por otro lado, ninguno de los modelos propietarios disponibles en el mercado posee todos los requisitos necesarios para su uso en zonas rurales, tales como: Bajo consumo. El dimensionado de los paneles solares es proporcional al consumo energético de los diferentes componentes que conforman el router. En este sentido es importante que el hardware usado tenga un consumo reducido. Bajo coste. No se pueden implementar soluciones de un alto costo que no sean sostenibles en el medio y largo plazo por las comunidades objetivo de estas redes. Reducido tamaño. De esta forma se asegura que el diseño final del router sea lo más compacto posible. Robusto ante condiciones meteorológicas adversas. Ya que el router se suele instalar en zonas de selva y alta montaña es necesario que tenga cierta robustez en cuanto a condiciones extremas de temperatura y humedad. Tipo de procesador. El router debe contar con un procesador lo suficientemente potente para poder realizar las diferentes tareas que se le exijan. Número mínimo y tipos de interfaces inalámbricas. Debido a que el router actúa como repetidor en diversos escenarios es recomendable que al menos cuente con 3 interfaces inalámbricas. Además, es necesario que estas interfaces sean de un tipo determinado (PCMCIA, CardBus, mini-PCI) como se detalla en un apartado posterior. Resto de interfaces. Además de las interfaces inalámbricas es necesario considerar otro tipo de interfaces. Entre otras las dos más importantes son: una interfaz serie a través de la cual 23 CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 24 DE ROUTERS WIFI DE LARGA DISTANCIA poder acceder al router para labores de configuración y mantenimiento, y al menos una interfaz Ethernet para conectar otros dispositivos de red (por ejemplo un teléfono IP). También es recomendable la existencia de una interfaz USB que permita extensiones o conexiones futuras. Rangos y tipos de alimentación. Por razones de flexibilidad es recomendable que el router cuente con un rango variable de alimentación. Valores alrededor de 12V resultan ser muy útiles, ya que de esta forma se pueden alimentar de forma directa con el sistema de energía solar. También será más que recomendable que la placa seleccionada tenga la opción de poder ser alimentada a través de PoE (Power over Ethernet). Disponibilidad de watchdog. Se recomienda la existencia de un watchdog hardware que permita reiniciar la placa cuando ésta se bloquee. Disponibilidad de compra en el medio/largo plazo. Este requisito resulta especialmente importante, ya que es necesario asegurar de alguna manera que el hardware seleccionado va a seguir siendo distribuido en el medio y largo plazo. Son más que recomendable tener posibles alternativas localizadas en caso de que sea necesario llegar a usarlas. Los equipos comerciales propietarios que más se han acercado [14], [16], [22], [23], a cumplir todos los requisitos técnicos finalmente han fallado en poseer una adecuada relación costo/beneficio. Otra consideración en contra de los equipos comerciales es que no son completamente compatibles con equipos de otros fabricantes, debido a que realizan modificaciones en el acceso al medio previsto en el protocolo 802.11. Finalmente nada desdeñables son los problemas que pueden surgir al seleccionar una solución comercial propietaria tales como: dependencia tecnológica de un proveedor, descontinuidad de los productos y costos de licenciamiento futuro. Usando equipamiento genérico que soporta estándares abiertos y software libre, se pueden evitar esos riesgos. Por ello, en paralelo al surgimiento de las iniciativas para realizar enlaces WiFi de larga distancia, aparecieron en el mercado hardware, tales como placas SBC, tarjetas de red inalámbrica y otros insumos con los cuales se podía armar un router WiFi por un precio generalmente menor ó mucho menor que el de un equipo propietario comercial. La aparición del mencionado hardware motivó el desarrollo de herramientas de software libre tales como: versiones del sistema operativo Linux “a medida” (instalable en poco espacio de disco, para hardware específico) y drivers para tarjetas de red inalámbrica; y con ello finalmente la creación de routers WiFi apropiados se hizo posible. Existen muchas maneras de armar un router inalámbrico, ya que se cuenta con muchos modelos de tarjetas de red inalámbrica, placas SBC y accesorios. Por supuesto, también se puede armar routers para uso en ambientes externos y muy agrestes, lo cuál depende de contar con una adecuada caja de intemperie. 2.1 Placa SBC 25 Figura 2.1: Router inalámbrico alojado en caja de intemperie Antes de pasar a describir las herramientas hardware y software mencionadas no se puede dejar de mencionar que hay soluciones propietarias como [20] y [27] que se encuentran en un punto medio, que poseen varias virtudes de los mundos propietario y libre. 2.1. Placa SBC Single board computers (SBCs) son computadoras completas construidas en una sola tarjeta de circuito impreso (PCB, printed circuit board). Ellas incluyen microprocesador, memoria RAM, puertos de entrada y salida. No suelen incluir puertos para teclado y monitor, pues su fin no es trabajar como computadora de escritorio, sino servir para un propósito específico como puede ser un dispositivo de telemetría o un router. Por este motivo también son llamadas “computadoras empotradas” ó “embedded systems”. Algunas incorporan un sistema operativo y otras poseen ranuras para insertar discos duros de estado sólido en formato SD (Secure Digital) o CF (Compact Flash). 2.1.1. Tipo de procesador En el mercado abundan las placas madres para desarrollar dispositivos de redes de datos con procesadores sin FPU (http://en.wikipedia.org/wiki/Floating_point_unit, oating point unit) y a la vez son de distintos tipos, lo que depende del fabricante; pero estos procesadores están optimizados para manejar todo los procesos referentes a redes de datos (manejo de números enteros) como el Intel IXP425 Network Processor; aunque existen métodos para que estos procesadores sin FPU manejen procesos de punto flotante (por ejemplo la ejecución de procesos de servidores Asterisk) los tiempos de operación son mucho más lentos comparados con los procesadores que poseen FPU. Como existen distintos tipos de estos procesadores existen también muchos sistemas operativos optimizados para cada tipo; por lo que los fabricantes de hardware además desarrollan también el sistema operativo para sus placas y algunos de ellos son propietarios; pero existen sistemas operativos libres (especialmente desarrollados en base a Linux) que manejen una familia específica de estos procesadores. CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 26 DE ROUTERS WIFI DE LARGA DISTANCIA Los procesadores que sí poseen FPU como el AMD Geode LX700, mantienen compatibilidad con la arquitectura x86; específicamente este procesador es del tipo genérico, y no está optimizado para las redes de datos sino que puede manejar este tipo de procesos y otros como si fuera un procesador x86 para equipos de escritorio o servidores; pero sólo limitado por la velocidad de procesamiento. En este caso existen muchos sistemas operativos libres (en base a Linux, FreeBSD, NetBSD, OpenBSD) y propietarios que manejen arquitecturas compatibles con x86; y a la vez son sistemas genéricos; la gran ventaja con usar sistemas libres es que se puede adicionar o quitar aplicaciones que sean convenientes a nuestro trabajo. Al tener FPU se puede trabajar aplicaciones de alto nivel como por ejemplo el servidor Asterisk (http://www.asterisk.org/) que es una PBX software para implementar redes de VoIP. 2.1.2. Descripción de SBCs 2.1.2.1. RouterBOARD 532A http://www.routerboard.com/rb500.html Es una de las placas que se basa en el procesador Freescale MPC8321 por lo que no tiene FPU. Posee la gran ventaja de manejar hasta 4 y 6 interfaces inalámbricas miniPCI (por medio de tarjetas adicionales) pero con el inconveniente que a más interfaces menos potencia administrada a cada uno. Además viene con un sistema operativo propietario instalado llamado RouterOS, esto es un inconveniente por que no se podrá adicionar o cambiar aplicaciones particulares; pero existe la posibilidad de instalar otro sistema operativo no propietario no sólo en su memoria integrada sino que al poseer una ranura par CF se puede instalar otro sistema operativo sin perder el sistema propietario. Figura 2.2: RouterBOARD 532A 2.1 Placa SBC 2.1.2.2. 27 RouterBOARD 333 http://www.routerboard.com/pdf/rb333b.pdf Es una de las placas muy utilizadas por los desarrollares de redes inalámbricas. Se basa en el procesador Freescale MPC8321 por lo que no tiene FPU (unidad de punto flotante). Posee la gran ventaja de manejar tres interfaces inalámbricas miniPCI de alta potencia, además, al igual que la placa anterior viene con el sistema operativo RouterOS instalado. Figura 2.3: RouterBOARD 333 2.1.2.3. Alix2C0 http://www.pcengines.ch/alix2c0.htm Es una placa que se basa en el procesador AMD Geode LX700, es un x86 y posee FPU. No viene con ningún sistema operativo, posee ranura para CF para instalar uno. Posee dos ranuras miniPCI que con modificaciones soportará interfaces inalámbricas de alta potencia. Al ser un sistema x86 se tiene la gran facilidad de trabajar con las distintas aplicaciones de redes conocidas de alto nivel. Figura 2.4: Alix2C0 CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 28 DE ROUTERS WIFI DE LARGA DISTANCIA 2.1.2.4. Pronghorn SBC-250 http://www.adiengineering.com/php-bin/ecomm4/productDisplay.php? category_id=30&product_id=79 Es una placa que se basa en un procesador Intel IXP425, 533 Mhz, por lo que no posee FPU. Posee dos ranuras miniPCI que soportan interfaces inalámbricas de alta potencia. No trae un sistema operativo pero se le puede instalar el que ofrece el mismo fabricante u otro porque posee una ranura para CF. Es una placa que suministra más corriente a las interfaces miniPCI comparados con las otras de la tabla. Figura 2.5: Pronghorn SBC-250 2.1.2.5. Pronghorn Metro SBC Quad-Radio Wireless http://www.adiengineering.com/php-bin/ecomm4/productDisplay.php? product_id=85 Esta placa consume mucha potencia en comparación a las anteriores porque maneja 4 interfaces inalámbricas miniPCi de alta potencia, sin embargo justamente esta última característica hace deseable la prueba de esta placa. Sus características son similares al Pronghorn SBC-250; pero además posee herramientas para manejar tarjetas WiMax. Figura 2.6: Pronghorn Metro SBC Quad-Radio Wireless Intel XScale, IXP425, 533 Mhz, no FPU Intel IXP425 533Mhz, no FPU Pronghorn SBC-250 MIPs32 4Kc, 400MHz, no FPU Freescale MPC8321, 266.333 MHz, no FPU Freescale MPC8343E, 266,400,533, Mhz, no FPU AMD Geode LX700, 433 Mhz, posee FPU AMD Geode SC1100, 233 Mhz, posee FPU AMD ElanSC520, 133Mhz, posee FPU Procesador Pronghorn Metro SBC Quad-Radio Wireless RouterBOARD 532A net4526-30 600 net4826-48 600 Alix2C0 600 RouterBOARD 600 RouterBOARD 333 Equipo 2.1.3. 64MB 64MB 64MB 64MB 128MB 128MB 64MB 64MB Ram del sistema 16MB soldado y 1 ranura CF 16MB soldado y 1 ranura CF 128MB integrada y 1 ranura CF 256MB de CompactFLASH integrada 256MB de CompactFLASH integrada 1 ranura CF 64MB integrada y 2 ranuras de CF 64MB integrada Tipo de almacenamiento 2 2 3 1 1 2 3, soporta 1000Mbps 3 Puertos Ethernets 2, no menciona alta potencia, pero se hace cambios para alta potencia 2, no menciona 4 tipo |||A, no pero menciona alta potencia 2, no menciona 4 tipo |||A, no pero menciona alta potencia 2 tipo |||A/|||B más el daughterboards RB502 ($) se tiene 2 más, para alta potencia 4, menciona para alta potencia, cada uno ofrece 6.5W, soporta WiMax 2, menciona para alta potencia, cada uno ofrece 6.5W 4 tipo |||A/|||B, para alta potencia 3 tipo |||A/|||B, para alta potencia Puertos miniPCI 5VDC 48VDC (SBC48) o 24VDC (SBC-24) 6 a 22V o 25 a 56V DC (por jumper), fuente de 24W 6 a 20V DC, fuente de 10W 6 a 28V DC, fuente de 15W 7 hasta 20V, fuente de 15W 10 a 56V DC, fuente de 35W 12 a 28V DC, fuente de 25W Alimentación 190 300 200 150 200 116 245 habilitado en mayo 180 Precio aprox. ($) Comparación de SBCs para aplicación de redes inalámbricas AD|LinuxDistribution StarOS, Linux 2.6, OpenWRT, IkarusOS AD|LinuxDistribution StarOS, Linux 2.6, OpenWRT, IkarusOS MikroTik Router OS Voyage Linux Voyage Linux iMedia ALIX Linux Voyage Linux MikroTik Router OS MikroTik Router OS MikroTik Router OS Referencia del sistema operativo 2.1 Placa SBC 29 CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 30 DE ROUTERS WIFI DE LARGA DISTANCIA 2.2. Tarjetas de red inalámbrica La elección de tarjetas WiFi se basa en parámetros tales como la potencia de transmisión, sensibilidad de recepción, temperatura y humedad soportadas en operación, así como chipset incorporado. Esta última condición es importante, ya que es necesario disponer de soporte para un S.O. GNU/Linux para todos los modos (Master, Managed, Ad-hoc, Monitor) para poder construir puntos de acceso, puentes, repetidores y encaminadores. Se ha trabajado con tarjetas de dos chipsets diferentes (Intersil Prism 2.5 y Atheros), con modelos que transmiten desde 80mW hasta 600mW. Se recomienda usar como controladores de las interfaces inalámbricas el driver Hostap para el caso de tarjetas con chipset Intersil Prism 2.5 y MadWifi para tarjetas con chipset Atheros. Mientras que el driver Madwifi permite modificar el valor de ACKtimeout, CTSTimeout y SlotTime, comentados anteriormente y por lo tanto un mejor control de las prestaciones del sistema, el Hostap no permite modificar los valores anteriores, sin embargo, las tarjetas con este driver tienen un valor mayor ACKtimeout, de manera que pueden ser usadas con prestaciones aceptables en enlaces largos de hasta 30km. No obstante, mientras que estas últimas sólo pueden ser configuradas en modo b, distintos modelos con chipset Atheros soportan los estándares 802.11 a,b o g. En conclusión las características deseables son: Tarjetas de alta potencia en los estándares 802.11a/b/g. Que tengan Chipset Atheros. Consumo de corriente apropiada para la placa a utilizar. Debe ser de factor de forma miniPCI. 2.2.1. Comparación de tarjetas de red inalámbricas Interfaces Estándar Potencia máx en g en dbm Potencia máx en a en dbm Conector antena Sensibilidad Corriente SR2 g 26 @ 1-24Mbps - 1 U.FL y 1 MMCX 1.1 R52H SR5 ag a 26 @ 6Mbps - 26 @ 6Mbps 26 @ 6-24Mbps 2 U.FL 1 U.FL y 1 MMCX XR2 g 28 @ 1-24Mbps - 1 U.FL y 1 MMCX XR5 a - 28 @ 6-24Mbps 1 U.FL y 1 MMCX EMP -8602+S WLM54A -26dbm WLM54G -6B-30 ag 27 @ 6-24Mbps 22 @ 6-24Mbps 2 U.FL a - 26 @ 6-24Mbps 1 U.FL y 1 MMCX 6 Mbps -94 dBm 12 Mbps -91 dBm 6 Mbps -90dBm ag 6 Mbps -94 dBm 12 Mbps -91 dBm 6 Mbps -94 dBm 12 Mbps -91 dBm 6 Mbps -94 dBm 12 Mbps -91 dBm 6 Mbps -90 dBm a 6 Mbps -92 dBm g 6 Mbps -90 dBm a g 30 @ 6-24Mbps - 1 U.FL y 1 MCX 6 Mbps -90 dBm g 1.5 Cuadro 2.1: Comparación de tarjetas inalámbricas para WiFi de larga distancia. 0.8 1.3 1.3 1.8 1 1.5 2.2 Tarjetas de red inalámbrica 31 SR2 de Ubiquiti Networks Figura 2.7: SR2 R52H de Mikrotik Figura 2.8: R52H SR5 de Ubiquiti Networks Figura 2.9: SR5 CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 32 DE ROUTERS WIFI DE LARGA DISTANCIA XR2 de Ubiquiti Networks Figura 2.10: XR2 XR5 de Ubiquiti Networks Figura 2.11: XR5 EMP-8602+S de EnGenius Technologies Figura 2.12: EMP-8602+S 2.2 Tarjetas de red inalámbrica 33 WLM54A-26dbm de Compex Systems Figura 2.13: WLM54A 2.2.2. Pigtails Los pigtails son cables coaxiales con conectores adecuados para las tarjetas de red inalámbricas. Estos se tratan, típicamente, de conectores UFL y MMCX, mostrados en la Figura 2.14. En el otro extremo los pigtails tienen conectores N hembra o macho. Dado que los conectores UFL y MMCX son sumamente pequeños, los pigtails están fabricados con cables coaxiales muy delgados de mucha atenuación motivo por el cual deben ser lo más cortos posible (típicamente de 30 cm). (a) Pigtail MMCX. (b) Pigtail UFL. Figura 2.14: Conectores Pigtail. 2.2.3. Antenas Las antenas son dispositivos pasivos que convierten la señal de radio frecuencia enviada por los cables coaxiales en ondas electromagnéticas que se propagan en el espacio y viceversa. Dada la diversidad de situaciones en las que las que se necesitan las antenas, tales como: PtP, PtMP, con distancia entre los puntos variable, entre centenas de metros y decenas de kilómetros, y con distintas características ambientales de los lugares donde se han instalado, se utilizan multitud de modelos de antenas en función de estos requerimientos. CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 34 DE ROUTERS WIFI DE LARGA DISTANCIA En GTR-PUCP siempre se ha confiado para la adquisición de estos equipos en la marca Hyperlink, ya que es una marca ampliamente disponible y su relación calidad precio es una de las mejores del mercado. Dentro de esta marca y dado que las antenas siempre se instalan a la intemperie, se eligen los modelos específicos para exteriores. A partir de aquí la elección de la antena depende de la ganancia necesaria de la misma para poder realizar el enlace y de la frecuencia en la que se va a realizar. Estos datos se obtienen durante la etapa de diseño de la red. Es importante resaltar que los precios de las antenas aumentan con su ganacia, por lo que un ajuste fino, en lo que a ganancia se refiere, puede suponer grandes reducciones en el costo. (a) HG5829D. (b) HG2424G. (c) HG5819P. (d) HG2414SP-090. Figura 2.15: Modelos de antena Hyperlink utilizados. En la banda de 2.4 GHz algunos de los modelos utilizados son: la antena de grilla HG2424G de 24 dBi (Figura 2.15(b)), la antena de panel HG2418P de 14dBi, y las sectoriales HG2414SP-120 y la HG 2414SP-090 (Figura 2.15(d)) de 14 dBi de ganancia cada una y de 120 y 90o de haz, respectivamente. En la de 5.8 GHz se han utilizado la antena de plato HG5829D de 29 dBi dada su gran ganancia y la posibilidad de instalarle un radome, que la dota de mayor aerodinamicidad, fundamental en lugares muy ventosos (Figura 2.15(a)), la antena de grilla HG5827G de 27 dBi y la de panel HG5819P de 19 dBi (Figura 2.15(c)). NOTA: Las antenas de grilla tanto de 2.4 GHz como de 5.8 GHz tienen unas abrazaderas un tanto débiles, por lo que en zonas de mucho viento se recomienda emplear un método de sujeción adicional. 2.3. Sistema Operativo Linux Voyage Linux Voyage es una distribución derivada de Debian que está optimizada para plataformas x86 de propósito específico tales como las placas de PC Engines ALIX/WRAP o las de Soekris 45xx/48xx. La instalación típica requiere un espacio en disco de 128MB, aunque una mayor capacidad de almacenamiento permite que se puedan instalar otros paquetes adicionales. Linux Voyage es muy pequeño, por lo cuál es adecuado para ejecutarlo con características como firewall, access point inalámbrico, gateway de VoIP, etc. 2.3.1. Características Las características más resaltantes de Linux Voyage son: Su construcción está basada en la distribución Debian Sarge r3.1/Etch r4.0/Lenny r5.0 tomando solo las aplicaciones necesarias para requerir un espacio de 128MB. 2.4 Driver MadWifi 35 La capacidad del sistema se puede incrementar de acuerdo a las necesidades por medio del manejo de la aplicación apt Kernel Linux 2.6 Total soporte para placas PC Engines ALIX/WRAP Soporte WiFi Soporte para diversos drivers de redes inalámbricas como madwifi, hostap, prism54, etc. Soporte WPA vía hostapd y wpa_supplicant. Soporte WDS vía drivers hostap y madwifi. 2.4. Driver MadWifi El proyecto Madwifi (Multiband Atheros Driver for Wireless Fidelity) es una iniciativa de software libre cuyo objetivo es diseñar drivers para dispositivos de redes inalámbricas que posean chipset Atheros. El proyecto tiene 3 líneas de trabajo: Madwifi, Ath5k y Ath9k. Madwifi es estable y funciona correctamente. Los drivers Ath5k y Ath9k que también están siendo desarrollados por el proyecto Madwifi no dependerán del HAL de Atheros, sin embargo, por el momento se debe preferir Madwifi si se requiere una red inalámbrica estable. Madwifi posee licencia BSD/GPL, sin embargo el HAL se distribuye bajo licencia del fabricante, en binario y como código cerrado. En el proyecto Madwifi se han seguido las siguientes etapas: Madwifi-old: El término “old” se refiere al driver madwifi liberado en Noviembre del 2005. Este driver fue dado de baja en Junio del 2006. Madwifi-ng: El término “ng” se refiere a “next generation”. Fue el código base entre Noviembre del 2005 y junio del 2006 y en ese tiempo fué llamado así (Madwifi-ng). Madwifi: Abreviación de Madwifi-ng desde Junio del 2006. 2.4.1. HAL y OpenHAL El HAL (Hardware Abstraction Layer)se refiere a un software que da acceso a las características del hardware, en nuestro caso da acceso a las características del chipset Atheros. Los requerimientos de control de frecuencias y nivel de potencia han sido señaladas cómo requerimiento indispensable para dispositivos inalámbricos en la FCC (Federal Communications Commission), y además estos mecanismos no deban ser fácilmente vulnerables. Sin embargo, a pesar de todas estas consideraciones Atheros liberó su HAL bajo la licencia ISC (Internet Systems Consortium) lo cuál permite su uso en cualquier proyecto de software libre. Los chipset Atheros pueden ser usados en un amplio rango de frecuencias (frecuencias licenciadas y frecuencias no licenciadas). Por ese motivo el HAL es distribuido solo en forma de binario para que usuarios no autorizados no puedan modificarlo tan fácilmente y sin embargo la comunidad de software libre pueda interactuar mediante él de un modo permitido. Una de las características más resaltantes del HAL Atheros es que se puede adecuar a las características regulatorias de cada país mediante el código de ciudad (country code). OpenHAL es un software que cumple las mismas funciones que el HAL Atheros y tiene como objetivo reemplazarlo. Está basado en ar5k. Más información acerca de OpenHAL en http:// CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 36 DE ROUTERS WIFI DE LARGA DISTANCIA madwifi-project.org/wiki/About/OpenHAL Ar5k es parte del driver Ath de OpenBSD para tarjetas inalámbricas Atheros. Ar5k es el componente del driver que se comunica directamente con el hardware. 2.4.2. Ath5k y Ath9k El driver Ath5k aún está en desarrollo pero ya se encuentra disponible para uso público, puesto que se encuentra incorporado en el kernel linux (2.6.25 y posteriores). También trabaja con tarjetas de red inalámbricas Atheros, está basado en Madwifi y OpenHAL, por lo tanto no requiere del HAL de Atheros. Se encuentra alojado en el repositorio wireless-2.6. Por el momento trabaja en modo Adhoc, Cliente y Mesh Point. Debido a que no depende del HAL de Atheros está proyectado que a largo plazo reemplace a Madwifi y supere sus características. El driver Ath9k fué inicialmente desarrollado por Atheros. Atheros después liberó su código para que la comunidad de software libre continúe su desarrollo. Soporta las características disponibles en 802.11n. Está disponible en el kernel linux desde la distribución 2.6.27. 2.4.3. Características Madwifi Posee las siguientes características: -Dispositivos compatibles: Madwifi soporta dispositivos PCI, MiniPCI y Cardbus. Por el momento no hay soporte para USB. -Modos de operación: Son soportados los siguientes modos de operación: Sta (Station). También conocido como cliente o managed. Es el modo que se cargará por defecto si es que no se elige algún modo de trabajo. El dispositivo actuará como una estación cliente de una red inalámbrica. Ap (Access point). También conocido como master. El dispositivo trabaja como un punto de acceso común para que otros clientes se cuelguen a su red de trabajo. Ahdoc. La interfaz trabaja como un nodo de una red ad-hoc. Monitor. WDS (wireless distribution system). Permite la comunicación inalámbrica directa entre APs. -Encriptación: WEP (Wired Equivalent Privacy). Soportado en modos: ap, sta y adhoc. WPA (WiFi Protected Access). Soportado en modos: sta (mediante: wpa_supplicant) y ap (mediante: hostapd) 2.4 Driver MadWifi 37 WPA2/IEEE 802.11i (WiFi Protected Access 2). Soportado en modos: sta (mediante: wpa_supplicant) y ap (mediante: hostapd) -Multi-BSSID: Una de las características más interesantes de Madwifi es la creación de interfaces virtuales. Esto significa que una sola interfaz física puede funcionar de distintos modos (sta, ap, repetidor, etc). Sin embargo tiene limitaciones (como el uso de un canal común). -Atheros Super A/G: Colección de características propias de los chipset Atheros. Las cuáles fueron desarrolladas para incrementar el ancho de banda y distancias de alcance de los dispositivos Atheros. Se pueden citar las siguientes: Bursting: Característica compatible con cualquier AP. Permite enviar varias tramas en simultáneo, en vez de enviarlas en cola. De este modo se toma menos tiempo para enviar gran cantidad de datos incrementando el ancho de banda. Fast Frame: Característica no soportada por todos los AP. Permite enviar mayor información en cada trama, reduciendo tiempos de transmisión y aumentando el ancho de banda. Compression: Los datos son comprimidos en cada trama que se envía, esto se realiza mediante el algoritmo de Lempel Ziv. Una vez que la característica es habilitada, la compresión y descompresión se ejecuta dentro del chipset Atheros. Turbo Mode: Característica no soportada por todos los AP. Permite que se transmita por 2 canales, ofreciéndose así un doble ancho de banda. Es beneficioso solo si todas las estaciones de la red lo soportan. Se distinguen 2 modos Turbo. Static: Se mantiene este modo de trabajo hasta que se apague. Dinamic: La red decide en que momento se puede usar y en que momento no se puede el modo turbo, según se detecte el tráfico de los canales adyacentes. Adaptive Radio (AR): La característica de elegir cuando se puede usar y cuando no el modo turbo mediante el sondeo de la banda de radio es llamada comúnmente AR. Extended Range (XR): Característica propia de los clientes provee alcances más largos por incremento de la sensibilidad del receptor de hasta -105dBm. Adicionalmente se agregan nuevas tasas de transmisión: 3, 2, 1, 0.5, y 0.25MBits/s. -4-address header: Soporte para juntar segmentos ethernet e inalámbricos en una sola dirección o manejar 4 direcciones independientes. CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 38 DE ROUTERS WIFI DE LARGA DISTANCIA - Roaming: Escoge el mejor enlace que tiene en sistemas de distribución. - Dynamic Frequency Selection (DFS): Automáticamente evita canales usados por radar u otras aplicaciones similares. - Background scanning: Permite escanear otros canales sin perder datos. 2.4.4. Requerimientos -Hardware: Tarjetas inalámbricas PCI, miniPCI o Cardbus con chipset Atheros. La lista de equipos compatibles es amplia, para revisar una lista completa visitar http://madwifi-project.org/wiki/ Compatibility -Arquitectura: Las arquitecturas soportadas por Madwifi son las siguientes: Alpha, ARM9, ARMv4, i386, MIPS, MIPS ISA32, PowerPC (32 bits), SH4, Sparc (32 bits), Sparc64, X86_64 y XScale. -Software: *Kernel linux 2.6.x o superiores. *Privilegios de root del dispositivo en la cuál se desea instalar Madwifi. *Para Debian, Ubuntu y distribuciones afines ejecutar: apt-get install build-essential perl. *Para Red Hat, Fedora y distribuciones afines ejecutar: yum install gcc make perl. *Bajar última versión estable de Madwifi de http://madwifi-project.org/ *Aplicaciones para compilar e instalar gcc, libc headers, make y perl. *Comandos de paquete wireless-tools (iwconfig, iwllist, etc.). *Paquete wpa_supplicant para acceder a redes con encriptación WPA. 2.5. Quagga Quagga es un conjunto de programas de código abierto, para el control de protocolos de enrutamiento para sistemas Unix como NetBSD, FreeBSD, Solaris y Linux. Quagga esta bajo la licencia de GNU/General Public License (GPL). Actualmente proporciona versiones de código libre de los protocolos OSPF, RIP y BGP. 2.5 Quagga 39 La arquitectura de quagga consiste de un demonio (programa que siempre esta corriendo) central llamado Zebra. Zebra es el corazón de Quagga y funciona como el administrador del enrutamiento IP; sirve como un capa de abstracción para el kernel y proporciona un API para los clientes Quagga (Zerv. clients). Estos clientes implementan los protocolos de enrutamiento y envían las actualizaciones del enrutamiento al demonio Zebra. Los Zerv. clients son: ospfd: Implementación del OSPFv2 ripd: Implementación RIP v1 and V2 ospf6d: Implementación OSPFv3 (IPv6) ripngd: Implementación RIPng (IPv6) bgpd: Implementación BGPv4+ (incluye soporte para multicast y IPv6) Además la arquitectura de Quagga también incluye bibliotecas para el desarrollo e implementación de más protocolos, clientes y demonios. Figura 2.16: Arquitectura de Quagga CAPÍTULO 2. HARDWARE Y SOFTWARE APROPIADOS PARA LA CONSTRUCCIÓN 40 DE ROUTERS WIFI DE LARGA DISTANCIA 3 Software PBX Asterisk 3.1. VoIP Voz sobre IP (Voice over IP) es un grupo de recursos que hacen posible que la señal de voz viaje a través de redes TCP/IP. Esto significa que se envía la señal de voz en forma digital en paquetes en lugar de enviarla (en forma digital o analógica) a través de circuitos utilizables sólo para telefonía como una compañía telefónica convencional (PSTN: Public Switched Telephone Network). Los Protocolos que son usados para llevar las señales de voz sobre la red IP son comúnmente referidos como protocolos de Voz sobre IP. El tráfico de Voz sobre IP puede circular por cualquier red TCP/IP, incluyendo aquellas conectadas a Internet. VoIP es el conjunto de normas, dispositivos, protocolos, en definitiva la tecnología que permite la transmisión de la voz sobre el protocolo IP. Telefonía sobre IP es el conjunto de nuevas funcionalidades de la telefonía, tradicional debido a los servicios que se pueden ofrecer gracias a poder enviar la voz sobre el protocolo IP en redes de datos TCP/IP. La voz ha de codificarse para poder ser transmitida por la red IP. Para ello se hace uso de Codecs que garanticen la codificación y compresión del audio o del video para su posterior decodificación y descompresión antes de poder generar un sonido o imagen utilizable. Según el Codec utilizado en la transmisión, se utilizará más o menos ancho de banda y recursos del sistema de cómputo. La cantidad de ancho de banda suele ser directamente proporcional a la calidad de los datos transmitidos. Entre los Codecs utilizados en VoIP encontramos los G.711, G.723.1 y el G.729 (especificados por la ITU-T). Entre los codecs más comunes se encuentran: G.711: Estándar para la compresión de audio para telefonía. Representa las señales de audio mediante muestras comprimidas en una señal digital con tasa de muestreo de 8000 muestras por segundo con un flujo de datos de 64 Kbps. Existen dos tipos: ∙ 𝜇-law: Usado sobre todo en Norte América y Japón. Codifica cada 14 muestras en palabras de 8 bits. ∙ a-law: Usado en Europa y en el resto del mundo. Codifica cada 13 muestras en palabras de 8 bits. G.723: Estándar que puede operar a 6.3 Kbps o 5.3 kbps. 41 42 CAPÍTULO 3. SOFTWARE PBX ASTERISK G.726: Estándar basado en ADPCM (Adaptative Differential Pulse Code Modulation). Permite trabajar con velocidades de 16, 24, 32 y 40 Kbps. Este codec proporciona una disminución considerable del ancho de banda sin aumentar en gran medida la carga computacional. G.729: Se usa sobre todo en aplicaciones de Voz sobre IP por los bajos requerimientos en ancho de banda. Opera con tasas de 8 Kbps pero existen extensiones para tasas de 6.4 y 11.8 Kbps para peor o mejor calidad de voz respectivamente. GSM (Global System Mobile): Estándar que opera a 13 Kbps con una carga de CPU aceptable. Inicialmente fue desarrollado para la telefonía móvil. iLBC (Internet Low Bit rate Codec): Algoritmo complejo desarrollado por Global IP Sound (GIPS) que ofrece una buena relación ancho de banda/calidad de voz a cambio de una mayor carga computacional. Opera a 13.3 Kbps y 15.2 Kbps. Speex: Implementa un algoritmo capaz de variar la velocidad de transmisión dependiendo de las condiciones actuales de la red (VBR: Variable Bit Rate). El ancho de banda puede variar desde 2.15 a 22.4 Kbps. Actualmente no es posible garantizar la calidad de servicio sobre Internet y en cierto grado en redes LAN; por eso, se presentan diversos problemas. No es aceptable latencias (tiempo transcurrido desde el instante en que se genera un paquete hasta que se recibe) superiores a 300 ms ida y vuelta (150 ms en una dirección). La calidad de este servicio se está logrando bajo los siguientes criterios: La supresión de silencios, otorga más eficiencia a la hora de realizar una transmisión de voz, ya que se aprovecha mejor el ancho de banda al transmitir menos información. Compresión de cabeceras aplicando los estándares RTP/RTCP. Priorizar los paquetes que requieran menor latencia. 3.2. Asterisk Asterisk es una aplicación de software libre (bajo licencia GPL) que proporciona funcionalidades de una central telefónica (PBX). Como cualquier PBX, se puede conectar un número determinado de teléfonos para hacer llamadas entre sí e incluso conectar a proveedores de VoIP y de telefonía convencional tanto analógica como digital. Originalmente desarrollado para el sistema operativo GNU/Linux, Asterisk actualmente también se distribuye en versiones para los sistemas operativos BSD, MacOSX, Solaris y Microsoft Windows, aunque la plataforma nativa (GNU/Linux) es la mejor soportada de todas. Asterisk incluye muchas características como buzón de voz, conferencias, IVR, distribución automática de llamadas, y otras muchas más tal como PBX comerciales. Los usuarios pueden crear nuevas funcionalidades por medio de lenguaje script de Asterisk o añadiendo módulos escritos en cualquier lenguaje de programación soportado por Linux. Las versiones estables de Asterisk están compuestas por los módulos siguientes: Asterisk: Archivos base del proyecto. 3.2 Asterisk 43 Zaptel: Soporte para hardware Digium. Drivers de tarjetas. Addons: Complementos y añadidos del paquete Asterisk. Libpri: Soporte para conexiones digitales. Sounds: Aporta sonidos y frases en diferentes idiomas. Cada uno de estos módulos cuenta con una versión estable y una versión de desarrollo. Hasta ahora; las versiones desarrolladas son la 1.6 y la 1.4. Las versiones 1.2 y 1.0 se consideran paralizadas y ya no se continuarán manteniendo. Actualmente la rama 1.4 es la aconsejada para sistemas en producción. Figura 3.1: Arquitectura Asterisk. La arquitectura de Asterisk está basada en 4 API: API de Canales Asterisk: controla el tipo de conexión por el cual el cliente está llegando (bien sea una conexión SIP, H323, BRI, etc). API de Aplicaciones Asterisk: permite a varios módulos de tareas, cumplir varias funciones (conferencias, buzones de voz, etc). 44 CAPÍTULO 3. SOFTWARE PBX ASTERISK API de Traducción de Codecs: carga módulos, codecs, para apoyar varios tipos de audio, codificando y decodificando formatos tales como G711, G729, GSM11, etc. API de formato de ficheros Asterisk: controla la lectura y escritura de varios formatos de archivos para el almacenaje de datos en el sistema de archivos. Usando estas API Asterisk alcanza una completa abstracción entre sus funciones básicas y las diferentes tecnologías y aplicaciones relacionadas. Asterisk permite implementar los mismos servicios que una central clásica, entre ellas: Transferencia de llamadas, internas y externas. Desvío de llamadas si está ocupado o no contesta. Opción No molestar (Do Not Disturb). Parking de llamadas (Call Parking). Llamada en espera (Hold). Grupos de llamada (Ring groups). Identificador de llamante (CallerID). Operadora Digital (menús interactivos y guiados). Música en espera y en transferencia (ficheros MP3 actualizables por el usuario). Captura de llamadas de forma remota (remote pickup). Buzones de voz (general, individuales, por grupos) protegidos por contraseña. Gestión de listas negras (números telefónicos con acceso prohibido). Salas de conferencia (2 o más terminales simultáneamente). Registro y listados de llamadas entrantes y salientes, con gráficas de consumo. Detección automática de entrada de faxes. Recepción de fax desde el propio sistema y posterior envío por e-mail. Gestión de colas de llamadas entrantes. Grabación de llamadas entrantes y salientes. Monitorización de llamadas en curso. Soporta videoconferencia con protocolos SIP e IAX2. 3.3 Protocolos VoIP 45 Asterisk tiene soporte para casi todos los codecs de audio como: G.711, G.723.1, G.726, G.729, GSM, ilbc14, linear, lpc-1015, speex. Quizá lo más interesante de Asterisk es que soporta muchos protocolos VoIP como pueden ser SIP, H.323, IAX y MGCP. Asterisk permite integrar una red de telefonía IP con redes telefónicas tradicionales por medio de interfaces analógicos y digitales. Para la conexión con líneas analógicas se hace a través de dispositivos FXO y FXS. Para la conexión con líneas digitales RDSI se logra por medio de interfaces del tipo BRI (2 canales de voz de + 1 de señalización) y PRI (30 canales de voz + 1 de señalización). Las interfaces de telefonía analógica se encuentran en múltiples dispositivos de redes (routers, centrales de telefonía IP, etc.) que operan como acceso hacia los servicios de voz convencionales como la telefonía pública. Para la conexión con estas líneas analógicas se hace por medio de interfaces FXS y FXO. FXS Foreign eXchange Station: También denominada interfaz de abonado. Es el que envía la línea analógica hacia el abonado. Se trata de interfaces que permiten conectar dispositivos terminales, como un teléfono analógico convencional a un router o central de telefonía IP. Una interfaz FXS proporciona alimentación eléctrica, señalización de llamada y tono al dispositivo terminal. FXO Foreign eXchange Office: Es un puerto que recibe la línea analógica. Es la interfaz que permite conectar un dispositivo terminal a un servicio de telefonía como el servicio de telefonía pública (PSTN) o una PBX. Envía al sistema telefónico una señal de colgado o descolgado. FXS y FXO son siempre pares que se corresponden mutuamente; una interfaz FXS se conecta en el otro extremo de la línea a una interfaz FXO. Cuando se instala una central telefónica (PBX), la línea telefónica se conecta al puerto FXO de la PBX, la cual provee múltiples puertos FXS para conectar los teléfonos o aparatos de fax. Un adaptador telefónico o ATA actúa como un FXS. Figura 3.2: Interfaces FXS y FXO. 3.3. Protocolos VoIP El objetivo de VoIP es dividir en paquetes los flujos de audio para transportarlos sobre redes basadas en IP. Los protocolos de redes IP originalmente no fueron diseñados para el transporte en tiempo real de audio o cualquier otro tipo de flujo de audio/video; por lo que se han creado protocolos para VoIP, cuyo mecanismo de conexión abarca una serie de transacciones de señalización entre terminales que cargan flujos de audio para cada dirección de la conversación. 46 3.3.1. CAPÍTULO 3. SOFTWARE PBX ASTERISK IAX (Inter Asterisk eXchange) IAX es uno de los protocolos utilizado por Asterisk; es utilizado para manejar conexiones VoIP entre servidores Asterisk, y entre servidores y clientes que también utilizan protocolo IAX. El protocolo IAX ahora se refiere generalmente al IAX2, la segunda versión del protocolo IAX. IAX es robusto, lleno de novedades y muy simple en comparación con otros protocolos. Permite manejar una gran cantidad de codecs y un gran número de flujo audio/video, lo que significa que puede ser utilizado para transportar virtualmente cualquier tipo de dato. Esta capacidad lo hace muy útil para realizar videoconferencias o realizar presentaciones remotas. IAX utiliza un único puerto UDP, generalmente el 4569, para comunicaciones entre puntos finales para señalización y datos. El tráfico de voz es transmitido in-band (se refiere a las comunicaciones que tienen lugar dentro de un método de comunicación previamente establecido), lo que hace a IAX2 un protocolo casi transparente a los cortafuegos y realmente eficaz para trabajar dentro de redes internas. En esto se diferencia de SIP, que utiliza una cadena RTP out-of-band (se refiere a las comunicaciones que tienen lugar fuera de un método de comunicación previamente establecido) para entregar la información. IAX soporta Trunking (red), donde un simple enlace permite enviar datos y señalización por múltiples canales. Cuando se realiza Trunking, los datos de múltiples llamadas son manejados en un único conjunto de paquetes, lo que significa que un datagrama IP puede entregar información para más llamadas sin crear latencia adicional. Esto es una gran ventaja para los usuarios de VoIP, donde las cabeceras IP son un gran porcentaje del ancho de banda utilizado; en contraparte se consumirá mayores recursos del equipo de cómputo. El principal objetivo de IAX ha sido minimizar el ancho de banda utilizado en la transmisión de voz y vídeo a través de la red IP, con particular atención al control y a las llamadas de voz y proveyendo un soporte nativo para ser transparente a NAT. La estructura básica de IAX se fundamenta en la multiplexación de la señalización y del flujo de datos sobre un simple puerto UDP entre dos sistemas. 3.3.2. SIP (Session Initiation Protocol) SIP (Session Initiation Protocol); fué desarrollado por el IETF MMUSIC (Multiparty Multimedia Session Control)) Working Group; con la intención de ser el estándar para la iniciación, moderación y la finalización de sesiones multimedia de dos pares (unicast) o multipares (multicast). SIP es un protocolo genérico, es un estándar y su RFC es la 3261. SIP ofrece flexibilidad para controlar sesiones multimedia como llamadas de voz y video, videoconferencia, mensajería instantánea; juegos online y telefonía IP. Una sesión puede ser una simple llamada telefónica de doble vía o puede ser una sesión de conferencia multimedia con muchas personas participando. SIP es un protocolo de señalización orientado a conexiones end-to-end; esto quiere decir que toda la lógica se encuentra almacenada en los dispositivos finales (salvo el enrutamiento de mensajes SIP). La ventaja es la estabilidad que se obtiene pues los servidores no son saturados con mensajes SIP; la desventaja de esto es que los encabezados son mucho mayores. SIP esta basado en arquitectura cliente-servidor similar al HTTP y el SMTP. Esta similitud es natural ya que SIP fue diseñado para que la telefonía se vuelva un servicio más en la Internet. SIP es un protocolo de la capa de Aplicaciones de la familia TCP/IP. Está relacionado estrechamente con el Protocolo SDP y coexiste junto con otros protocolos del mismo nivel y funciones, como el H323. 3.3 Protocolos VoIP 47 SIP no es protocolo de propósito general; su objetivo es ayudar a establecer y finalizar la comunicación. SIP se apoya de otros protocolos para lograr una llamada telefónica, una sesión de video conferencia o mensajería instantánea; etc. Los protocolos que apoyan comúnmente son: RTSP (RealTime Streaming Protocol) para el control de flujos y sesión, SDP (Session DescriptionProtocol) para describir los flujos, RTP/RTCP (Real Time Protocol / Real Time Control Protocol) para el transporte de datos en tiempo real y RSVP (Resource Reservation Setup Protocol) junto a DiffServ (Differentiated Services) para la calidad del servicio y la reserva de recursos. Figura 3.3: SIP (Session Initiation Protocol) En las redes TCP/IP, las conversaciones (flujo audio/video) que usan señalización del tipo SIP hacen uso del RTP. El protocolo RTP es el encargado de llevar las conversaciones (flujo audio/video) de un lado a otro. De la misma forma que en una conversación existen dos flujos de voz, en una conversación en una red TCP/IP se tiene dos flujos de paquetes RTP. Figura 3.4: La señalización SIP y las conversaciones de voz (RTP) viajan por caminos distintos. Los Network Address Translators (NATs) son los problemas del RTP. El efecto de un NAT en voz sobre TCP/IP es que no se pueden recibir conexiones iniciadas desde el exterior; el que inicia la llamada desde dentro del NAT no puede escuchar a la otra parte. Si los dos comunicantes se encuentran dentro de NAT ningún flujo de audio originado detrás de los NAT llegará a su destino final. Para este problema ya existen soluciones implementadas en Asterisk. 48 3.3.2.1. CAPÍTULO 3. SOFTWARE PBX ASTERISK Elementos del SIP La configuración más simple para establecer una sesión SIP es utilizando sólo dos agentes de usuario (UA) conectados uno a otro. Los elementos básicos de un sistema son los UA y los servidores; estos últimos pueden ser de diferentes tipos: Proxy, de Registro y de Redirección. El protocolo SIP permite el establecimiento de sesiones multimedia entre dos o más usuarios. Para hacerlo se vale del intercambio de mensajes entre las partes que quieren comunicarse. User agents (UA): Los Agentes de usuario son los puntos extremos del protocolo SIP, es decir son los que emiten y procesan los mensajes del protocolo SIP. Un videoteléfono, un teléfono, un cliente de software y cualquier otro dispositivo similar es un agente de usuario para SIP. El protocolo SIP no se ocupa de la interfaz de estos dispositivos con el usuario final, sólo se interesa por los mensajes que estos generan y cómo se comportan al recibir determinados mensajes. Los agentes de usuario se comportan como clientes (UAC: User Agent Clients) y como servidores (UAS: User Agent Servers). Un agente de usuario se comporta en UAC cuando realizan una petición y son UAS cuando la reciben y responden a la misma. Por esto los agentes de usuario deben implementar un UAC y un UAS. Servidores de Registro: El protocolo SIP permite establecer la ubicación física de un usuario determinado, esto es en qué punto de la red está conectado. Para ello se vale del mecanismo de registro. Cada usuario tiene una dirección lógica que es invariable respecto de la ubicación física del usuario. Una dirección lógica del protocolo SIP es de la forma usuario@dominio. La dirección física es dependiente del lugar en donde el usuario está conectado (su dirección IP). Cuando un usuario inicializa su terminal (p. e. conectando su teléfono o abriendo su software de telefonía SIP) el agente de usuario SIP que reside en dicho terminal envía una petición con el método REGISTER a un Servidor de Registro, informando a qué dirección física debe asociarse la dirección lógica del usuario. El Servidor de Registro realiza entonces dicha asociación; esta asociación tiene un período de vigencia; termina si no es renovada; también mediante un desregistro. Un Servidor de Registro es comúnmente sólo una entidad lógica y la mayoría de las veces se localiza junto con el Servidor Proxy. Servidores Proxy y de Redirección: Para encaminar un mensaje entre un agente de usuario cliente y un agente de usuario servidor normalmente se recurre a los servidores. El Proxy, se encarga de encaminar las invitaciones de la sesión para llevarlos hasta el UA llamado. Como Redirección, genera una respuesta que indica al que origina la comunicación la dirección del destino o de otro servidor que lo acerque al destino. Este tipo de servidor sólo escucha peticiones y regresa respuesta que contiene la localización actual de un usuario en particular u otro servidor. La principal diferencia es que el servidor Proxy queda formando parte del camino entre el UAC y el (o los) UAS, mientras que el servidor de Redirección una vez que indica al UAC cómo encaminar el mensaje ya no interviene más. Un mismo servidor puede actuar como Redirección o como Proxy dependiendo de la situación. Un agente de usuario normalmente encamina todos sus pedidos hacia un servidor de su propio dominio. Es este quien determina (por sus propios medios o valiéndose de otros servidores) las ubicaciones de los usuarios que son llamados por el agente de usuario en cuestión. Un conjunto de usuarios que pertenecen a una compañía o proveedor de servicios de comunicaciones, conforman un dominio. Este dominio, que se indica en una dirección SIP después del caracter “@” es 3.3 Protocolos VoIP 49 normalmente atendido por un servidor o más de uno. Este servidor recibe las peticiones de sus usuarios. Este servidor será el encargado de determinar la dirección física del usuario llamado. Un servidor que recibe las peticiones destinadas a un dominio específico es denominado servidor entrante (Inbound Server). Es habitual también, que exista un servidor que reciba las peticiones originadas por los usuarios de un dominio hacia otros dominios. Este recibe el nombre de Servidor Saliente (Outbound Server). Mensajes SIP: Existen dos tipos básicos de mensajes SIP, peticiones y respuestas. Las solicitudes y las respuestas emplean el formato de mensaje genérico, que consiste en una línea inicial (Star – Line o Request – Line) seguida de un o más campos de cabecera (Message Header), una línea vacía que indica el final de las cabeceras, y por último, el cuerpo del mensaje (Message Body) que es opcional. La línea inicial contiene la versión del protocolo; el método y direcciones involucradas en la sesión para las peticiones; mientras que el estado de la sesión para el caso de las respuestas. El encabezado contiene información relacionado con la llamada en forma de texto; por ejemplo el origen y destino de la petición, el identificador de la llamada, etc. El cuerpo del mensaje o carga útil (payload) lleva la información (comúnmente SDP o ISUP en caso de una troncal hacia la PSTN). Las peticiones (Request Line) se emplean para iniciar alguna acción o para información; incluyen el nombre del método al que invocan, el identificador del destinatario, el protocolo SIP que se esta utilizando; para esto utiliza métodos y son: Invite: Utilizado para invitar un usuario para participar en una sesión o para modificar parámetros. Ack: Confirma el establecimiento de una sesión. Option: Solicita información sobre las capacidades de un servidor. Bye: Indica la finalización de una sesión. Cancel: Cancela una petición pendiente. Register: Registra un UA. Las peticiones no contienen por lo general un cuerpo de mensaje; porque no lo requiere. Las respuestas (Status Line) se generan como retorno de una petición, devolviendo un código de estado; la línea llevará el SIP utilizado, código de respuesta y una pequeña descripción de ese código. Podemos recibir estas respuestas según el rango: 1xx: Mensaje provisional. La petición fue recibida pero se desconoce aun el resultado del procesamiento. El emisor detiene el envío de retransmisión después de recibir una petición de este tipo. Un ejemplo es el código 180=ringing o el 100=trying. 2xx: Éxito. Son respuestas finales positivas. La petición fue recibida y procesada exitosamente. Por ejemplo 200=OK significa que el extremo llamado acepto la invitación a la sesión. 3xx: Redirección: Son usados para redireccionar las llamadas. Dan información acerca de la nueva localización de un usuario o sobre un Proxy alterno que puede resolver satisfactoriamente alguna petición . El emisor del mensaje de petición debe reenviar su petición a otro para que su petición sea atendida. 50 CAPÍTULO 3. SOFTWARE PBX ASTERISK 4xx: Fallo de método. Son respuestas finales negativas. Falla del lado del emisor, mala sintaxis del mensaje, etc. 5xx: Fallos de servidor. Falla del lado del servidor. Aparentemente la petición es válida pero el Proxy es incapaz de procesarla. El emisor debe reintentar después. 6xx: Fallos globales. La petición no puede ser atendida en ningún Proxy. Transacciones SIP: Una transacción SIP es una secuencia de mensajes entre dos elementos de Red. Una transacción corresponde a una petición y todas las respuestas a esa petición. Esto quiere decir que una transacción incluirá cero o más respuestas provisionales y una o más respuestas finales; en el caso de un mensaje INVITE puede ser dividido por un Proxy y por lo tanto tendrá múltiples respuestas finales. Las entidades SIP que almacenan el estado de las transacciones son denominadas Stateful; lo que hace por medio del registro de cada transacción. Diálogos SIP: Un dialogo SIP es una conversación peer-to-peer entre dos UA. Los diálogos son identificados usando los campos Call-ID, From y To. Los mensajes con estos campos iguales pertenecen al mismo dialogo. El campo CSEQ es utilizado para ordenar los mensajes en un dialogo. De hecho el CSEQ representa el número de transacción. De forma simple se puede decir que un diálogo es una secuencia de transacción. 3.3.2.2. Flujo de establecimiento de una sesión SIP En una sesión SIP común se encuentra etapas como: Registro: Para que un usuario pueda ser llamado por otro, este debe registrarse primero ante el Proxy. El registro consiste en el envío de un mensaje REGISTER seguido de su correspondiente respuesta 200 (OK). En caso de que el usuario no haya dado credenciales validas recibirá por respuesta un mensaje 407, con lo cual tendrá que reenviar el mensaje de Registro hasta que tenga éxito. Invitación a una sesión: Una invitación inicia con el mensaje INVITE dirigido comúnmente al Proxy. Este responde con TRYING (100) para detener las retransmisiones y reenvía las peticiones hacia el usuario llamado. Todas las respuestas provisionales generadas por el usuario llamado son regresados al usuario origen. Por ejemplo RINGING (180) que es un mensaje que se envía cuando el usuario es contactado y comienza a timbrar. Una respuesta 200 (OK) es generada en cuanto el usuario llamado descuelga el auricular. Terminación de sesión: Una sesión es finalizada cuando uno de los usuarios envía el mensaje BYE al otro extremo. El otro usuario confirma el final de la conversación enviando por respuesta un mensaje 200 (OK). La transacción para finalizar la sesión se realizará de un extremo a otro sin pasar por el Proxy a menos que en el mismo se haya establecido un proceso de Registro de ruta. Existen situaciones en las que el Proxy requiere estar en la ruta de todos los mensajes con fines de control del tráfico o por ejemplo, cuando existe un NAT. El Proxy o los Proxy logran esto por medio de la inserción del campo RECORD ROUTE en los encabezados de los mensajes SIP. 3.3.3. Protocolo de Descripción de Sesión SDP Session Description Protocol (SDP); es un formato para describir parámetros de inicialización de flujo audiovisual. SDP esta diseñado para transportar información de la sesión hacia los destinatarios, 3.3 Protocolos VoIP 51 Figura 3.5: Registro SIP así como información de los flujos audiovisuales referentes a la misma. Este permite además asociar más de un flujo audiovisual a una misma sesión; por ejemplo en una misma sesión puede existir un flujo para audio y uno más para video o transferencia de documentos. SDP es exclusivamente para propósito de descripción y negociación de los parámetros de sesión. No transporta el flujo audiovisual en sí. Fue pensado para trabajar en conjunto con otros protocolos como SIP, Megaco o HTTP. El transporte de información acerca de los flujos audiovisuales permite a los destinatarios participar en la sesión si ellos soportan dichos flujo. Además SDP permite la negociación de los parámetros de flujo tales como la tasa de muestreo de la señal, el tamaño de los paquetes, etc. La información que SDP incluye en sus paquetes de forma general es la siguiente: La versión del protocolo El nombre de la sesión y su propósito El tiempo que la sesión esta activa. Los medios relacionados con la sesión (video, audio, formatos para video, audio, etc.) Las direcciones IP y los puertos pertinentes para el establecimiento de la sesión. Los atributos específicos a la sesión o a los medio dentro de ella 52 CAPÍTULO 3. SOFTWARE PBX ASTERISK Figura 3.6: Inicio de una sesión SIP Figura 3.7: Fin de una sesión SIP 3.3.4. Protocolos RTP/RTCP Son los protocolos usados para transportar flujo de audio/video en Telefonía IP. RTP es utilizado para transportar flujos en tiempo real (Real Media Streaming) y RTCP para monitorear la calidad del servicio, así como para transportar información acerca de los participantes en la sesión. Sus funciones son: 3.3 Protocolos VoIP 53 Identificación del tipo de carga útil transportada (codecs de audio/video) Verificar la entrega de los paquetes en orden (marca de tiempo) y si resulta necesario recordar los bloques fuera de orden. Transportar información de sincronización para la codificación y decodificación. Monitoreo de la entrega de la información. RTP utiliza UDP para el transporte de la información y aprovecha la suma de verificación del mismo (Checksum) para verificar integridad de los datos. RTP no posee ningún método para garantizar la calidad de servicio ni la entrega ordenada de paquetes. RTCP también utiliza UDP para enviar paquetes de control hacia todos los participantes de una sesión. Los servicios que provee RTCP son los siguientes: Dar seguimiento a la calidad en la distribución de los datos, así como mantener el control de los codecs activos. Transportar un identificador constante para la fuente RTP. Anunciar el número de participantes por sesión con el fin de ajustar la tasa de transmisión de datos. 54 CAPÍTULO 3. SOFTWARE PBX ASTERISK 4 Enrutamiento Dinámico El router es un componente importante en una red de datos; se encarga de conectar múltiples redes entre si, por tanto, es responsable de entregar paquetes entre estas distintas redes. Los routers son computadoras que poseen CPU, memoria y un sistema operativo; y posee varias interfaces, cada una perteneciente a una red IP distinta. La principal tarea del router es determinar la mejor ruta hacia una red para enviar los paquetes; para esto utiliza protocolos de enrutamiento estático y dinámico para construir su tabla de enrutamiento. 4.1. Tipos de Enrutamiento 4.1.1. Tabla de Enrutamiento Cuando se muestra una tabla de enrutamiento se observa las redes conectadas directamente, las rutas estáticas o rutas provenientes de protocolos de enrutamiento dinámico; la dirección y la máscara de la red remota o conectada directamente y la interfaz de salida y/o la dirección IP del router del siguiente salto para llegar a esta red; además se incluye información adicional, como la métrica de enrutamiento y la distancia administrativa. A continuación puede verse una tabla de enrutamiento: root@hrradiofonia-30c1: # route -n Kernel IP routing table Destination Gateway Genmask 10.13.30.0 0.0.0.0 255.255.255.240 200.37.75.16 0.0.0.0 255.255.255.240 10.14.30.0 0.0.0.0 255.255.255.240 10.11.0.0 10.13.30.1 255.255.240.0 10.11.16.0 10.13.30.1 255.255.240.0 10.14.0.0 10.13.30.1 255.255.240.0 10.12.16.0 10.13.30.1 255.255.240.0 10.13.16.0 10.13.30.1 255.255.240.0 10.12.0.0 10.13.30.1 255.255.240.0 10.13.0.0 10.13.30.1 255.255.240.0 10.14.16.0 10.13.30.1 255.255.240.0 0.0.0.0 200.37.75.17 0.0.0.0 root@hrradiofonia-30c1: # 55 Flags U U U UG UG UG UG UG UG UG UG UG Metric 0 0 0 0 0 0 0 0 0 0 0 0 Ref 0 0 0 0 0 0 0 0 0 0 0 0 Use 0 0 0 0 0 0 0 0 0 0 0 0 Iface eth1 vlan1 br0 eth1 eth1 eth1 eth1 eth1 eth1 eth1 eth1 vlan1 56 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO Cuando un router recibe un paquete, usa su tabla de enrutamiento para determinar la mejor ruta para poder enviar el paquete; en este caso puede ocurrir una de tres situaciones. Redes conectadas directamente: Si la dirección IP de destino del paquete pertenece a un dispositivo en una red que está directamente conectado a una de las interfaces del router; el paquete se enviará a este dispositivo. Redes remotas: Si la dirección IP de destino del paquete pertenece a una red remota, entonces el paquete se enviará a otro router. Sin determinación de ruta: si la dirección IP de destino del paquete no pertenece ya sea a una red conectada o remota, y si además el router no posee una ruta por defecto, entonces el paquete será descartado. El router enviará un mensaje ICMP de destino inalcanzable a la dirección IP de origen del paquete. Existen varias formas de agregar rutas: 1.- Por medio de redes directamente conectadas. 2.- Por medio de rutas estáticas 3.- Por medio de rutas aprendidas mediante un protocolo de enrutamiento dinámico. Antes de configurar cualquier enrutamiento estático o dinámico en un router, éste solo conoce a las redes conectadas directamente; éstas son las únicas redes que se muestran en la tabla de enrutamiento hasta que se configure el enrutamiento estático o dinámico. Las rutas estáticas y dinámicas no pueden existir en la tabla de enrutamiento sin las redes conectadas directamente. El router desencapsula el paquete de capa 3 de la trama de capa 2, examina la dirección IP de destino del paquete IP para encontrar la mejor ruta en la tabla de enrutamiento y encapsula el paquete de capa 3 en una nueva trama de capa 2 y envía la trama desde la interfaz de salida; a esta función se le conoce como conmutación. Cada router toma su decisión en forma independiente, según la información de su propia tabla de enrutamiento. En este proceso es posible que el router haya recibido el paquete encapsulado en un tipo de trama de enlace de datos, como una trama Ethernet, y ahora al momento de enviar el paquete, el router lo encapsulará en otro tipo de trama de enlace de datos de tecnología LAN como Ethernet o WAN como T1 que usa PPP, Frame Relay o ATM. El hecho de que un router tenga cierta información en su tabla de enrutamiento no significa que los otros routers tengan la misma información. La información de enrutamiento sobre una ruta desde una red a otra no suministra información de enrutamiento sobre la ruta inversa o de regreso. Dado que los routers no necesariamente tienen la misma información en sus tablas de enrutamiento, los paquetes pueden recorrer la red en un sentido, utilizando una ruta, y regresar por otra ruta. Esto se denomina enrutamiento asimétrico. El enrutamiento asimétrico es más común en Internet, que usa el protocolo de enrutamiento BGP, que en la mayoría de las redes internas. 4.1.2. Enrutamiento Estático El enrutamiento estático es creado manualmente a diferencia de los protocolos dinámicos, que intercambian las tablas de enrutamiento mediante actualizaciones periódicas. El enrutamiento estático es una solución muy conveniente cuando la cantidad de nodos no es tan amplia. Las rutas estáticas deben usarse cuando: 4.2 Enrutamiento Dinámico 57 Si una red está compuesta por unos pocos routers. Si una red se conecta a Internet solamente a través de un único ISP (Internet Service Provider). Si una red extensa está configurada con una topología hub-and-spoke. 4.1.3. Enrutamiento Dinámico El uso de protocolos de enrutamiento dinámico hace que los routers aprendan automáticamente las rutas hacia las redes remotas y mantienen actualizada su tabla de enrutamiento; compensando de esta manera los cambios en la topología de la red. Un protocolo de enrutamiento dinámico requiere menos sobrecarga administrativa, pero en cambio consumirá parte de los recursos del router, como tiempo del CPU y ancho de banda de los enlaces. A menudo se encontrará una combinación de ambos tipos de enrutamiento. Un protocolo de enrutamiento debe estar diseñado para: Describir el costo de la mejor ruta haciendo uso de una métrica de encaminamiento. Contemplar la existencia de múltiples rutas activas entre dos redes. Propagar la información de encaminamiento con precisión evitando crear rutas incorrectas. Minimizar el tráfico de la red debido al propio protocolo de enrutamiento. Minimizar la carga de los routers que no desarrollan funciones de encaminamiento. Evitar repentinos picos de tráfico en la red después del cambio de una ruta. Escalar bien a redes más grandes. Converger rápidamente en una topología aceptada por todos los routers después de un cambio de rutas. Evitar propagar fallos de encaminamiento a largas distancias. Tener aspectos de seguridad que prevengan falsas notificaciones. 4.2. Enrutamiento Dinámico 4.2.1. Tipos de Protocolos de Enrutamiento Dinámico: Existen multitud de protocolos de enrutamiento diferentes, unos basados en el algoritmo del vector distancia (vector distance) y otros en estado del enlace (link state). Para determinar políticas de intercambio de tráfico en una red se ha creado el concepto de Sistema Autónomo (AS, Autonomous System). Un AS es la subred que es administrada o gestionada por una autoridad común, que tiene un protocolo de enrutamiento homogéneo mediante el cual intercambia información en toda la subred, y que posee una política común para el intercambio de tráfico con otras redes o AS. Normalmente cada ISP (Internet Service Provider) o empresa constituye un AS. 58 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO En Internet se dan dos niveles jerárquicos de enrutamiento, el que se realiza dentro de un AS y el que se efectúa entre ASs. Al primero se le denomina enrutamiento interno; y al otro enrutamiento externo. Dado que los requerimientos en uno y otro caso son muy diferentes, se utilizan protocolos de enrutamiento distintos. Los protocolos de enrutamiento dentro de un AS se denominan IGP (Interior Gateway Protocol), mientras que los utilizados entre AS diferentes se llaman EGP (Exterior Gateway Protocol). IGP describe una necesidad y no el nombre de un protocolo definido. La mayoría de las redes corporativas operan como sistemas autónomos, aunque no estén conectados a Internet, por lo que los IGP son utilizados con abundancia. Los protocolos IGP nunca aparecen en Internet, sino que permanecen restringidos al ámbito de un Sistema Autónomo. Entre los IGP se tiene a: RIP, IGRP, EIGRP, OSPF, IS-IS y BGP. Diferencia entre Enrutamiento Estático y Dinámico: Enrutamiento estático Ventajas Desventajas Poco procesamiento del CPU. Fácil de comprender y mantener en redes pequeñas. Fácil de configurar. Se usa para enrutamiento desde y hacia redes de conexión única. Uso de ruta por defecto, cuando no hay una mejor coincidencia en la tabla de enrutamiento. Configuración y mantenimiento prolongados Propenso a errores en redes extensas. Requiere de intervención del administrador para mantenimiento. No es adecuado para redes en crecimiento rápido. Requiere de conocimiento de toda la red para su implementación. Enrutamiento dinámico Ventajas Desventajas Menos trabajo para agregar o quitar redes. Ajuste automático ante cambios en la topología. Menos propenso a errores de configuración. Escalable; el crecimiento de la red usualmente no es un problema Requiere recursos del router (CPU y ancho de banda del enlace). Requiere de más conocimientos para la configuración y solución de problemas. Cuadro 4.1: Enrutamiento estático Versus enrutamiento dinámico. 4.2.2. Características de los Protocolos de Enrutamiento Dinámico 4.2.2.1. Algoritmo de enrutamiento Vector Distancia El algoritmo de vector distancia se basa en calcular la dirección y la distancia hasta cualquier enlace en la red. La distancia se define en términos de una métrica como el conteo de saltos y la dirección es simplemente el router del siguiente salto o la interfaz de salida. RIP cuenta los saltos efectuados hasta llegar al destino mientras que IGRP además utiliza otra información como el retardo y el ancho de banda. 4.2 Enrutamiento Dinámico 59 El encaminamiento de un protocolo basado en vector de distancias requiere que un router informe a sus vecinos de los cambios en la topología periódicamente y en algunos casos cuando se detecta un cambio en la topología de la red. Los cambios son detectados periódicamente ya que la tabla de encaminamiento de cada router se envía a todos los vecinos que usan el mismo protocolo. Una vez que el router tiene toda la información; actualiza su propia tabla reflejando los cambios y luego informando a sus vecinos de los mismos. Abajo se muestra a que tipo pertenece los protocolos conocidos: Protocolos IGP: De vector distancia: RIP y RIPv2: Routing Information Protocol IGRP: Interior Gateway Routing Protocol EIGRP: Enhanced IGRP Protocolos IGP: De estado del enlace: IS-IS: Intermediate System to Intermediate System OSPF: Open Shortest Path First Protocolos EGP: De vector distancia: BGP: Border Gateway Protocol 4.2.2.2. Algoritmo de enrutamiento de Estado Enlace Un protocolo de estado del enlace es un protocolo que envía información sobre los enlaces entre los routers; y están pensados para mantener las tablas de enrutamiento precisas y libres de bucles. Enlace se refiere a la conexión entre los routers (conexión física). Los routers usan la información del estado de los enlaces recopilados de otros routers en una base de datos para crear el mapa de la red; seleccionar la mejor ruta y mantener una imagen de la red completa. De esta manera, un algoritmo SPF (Shortest Path First) como el algoritmo Dijkstra calcula la mejor ruta como el camino más corto a todos los nodos basado en la velocidad del enlace. A diferencia de los protocolos de vector distancia, los protocolos de estado de enlace, no envían actualizaciones periódicas de la información de enrutamiento; éstos sólo envían actualizaciones cuando se produce un cambio en la topología de forma incremental. 4.2.2.3. Enrutamiento con clase y sin clase Los protocolos de enrutamiento con clase no pueden usarse en redes que se subdividen usando más de una máscara de subred. Un ejemplo de este tipo es RIP v1, que no envía información de la máscara de subred en las actualizaciones de enrutamiento. En los protocolos sin clase, se envía la máscara de subred, junto con la dirección de red, como parte de las actualizaciones de enrutamiento. La mayoría de las redes modernas requieren protocolos sin clase por que utilizan VLSM (variable length subnet mask) y redes no contiguas. 60 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO 4.2.2.4. Convergencia La convergencia se da cuando todas las tablas de enrutamiento de una red están en un estado de uniformidad. El tiempo de convergencia es el tiempo que tardan los routers en compartir información, calcular las mejores rutas y actualizar su tabla de enrutamiento. Por lo general, RIP e IGRP tienen convergencia lenta, mientras que EIGRP y OSPF tienen una convergencia más rápida. 4.2.2.5. Balance de Carga Cuando dos o más rutas que llevan al mismo destino, resultan con la misma métrica, el router realizará un balance de carga del enlace, de manera que utiliza todos los enlaces que tienen el mismo costo (métrica) para ese destino. Se sabe que el balance de carga esta en uso, por que al mostrar la tabla de enrutamiento dos o mas rutas se asociarán con el mismo destino. Esta característica dependerá de la aplicación que hace uso del protocolo de enrutamiento. 4.2.3. Métrica y distancia administrativa Una métrica es un valor cuantitativo que se usa para medir la distancia hacia una ruta determinada; es una forma de evaluar cual ruta es la más conveniente basándose en el conteo de saltos, ancho de banda, carga en el tráfico de la red, confiabilidad u otro valor establecido por el administrador para indicar la preferencia de una ruta. La mejor ruta se determina por la métrica más baja. Cada protocolo tiene una forma distinta de medir la calidad de un camino hacia una red remota, y unos son más precisos que otros porque evalúa mayor cantidad de variables al momento de elegir. RIP: conteo de saltos, menor es mejor. IGRP e EIGRP: evalúa ancho de banda, retardo, confiabilidad y carga, se elige como mejor ruta la que se evalué con el resultado más bajo. IS-IS y OSPF: Evalúa el ancho de banda y obtiene el costo, la mejor ruta es la del costo más bajo. Si un router tiene dos caminos hacia la misma red, sólo se pondrá en la tabla de enrutamiento a aquella que tenga mejor métrica; la única excepción es cuando los dos caminos tienen exactamente la misma métrica; en ese caso se agregarán ambos caminos a la tabla de enrutamiento; este comportamiento se denomina frecuentemente ECMP (Equal Cost MultiPath). La cantidad de rutas de misma métrica que un router permite agregar a la tabla dependerá de la configuración del equipo. Las distancias administrativas son una forma de dar prioridad cuando existe información sobre una red proveniente de más de un origen de enrutamiento (protocolo); para seleccionar la mejor ruta. A cada origen se le asigna un orden de preferencia, incluidas rutas estáticas y redes directamente conectadas. La siguiente tabla muestra las distancias administrativas. El protocolo de origen de la ruta que tenga menor distancia administrativa va a ser el que termine llenando la tabla de enrutamiento. Cuando en una red todos los routers ejecutan varios protocolos de enrutamiento dinámico a la vez; por ejemplo RIP y EIGRP; todas las métricas de RIP serían significativamente menores a las de EIGRP, por lo que equivocadamente se podría pensar que el router va a optar por los caminos RIP dada la métrica más baja. Otro ejemplo; si se tiene que RIP y 4.3 OSPF, Open Shortest Path First Origen de la Ruta 61 Distancia Administrativa Directamente Conectada 0 Estática 1 Ruta EIGRP resumen 5 BGP Externa 20 EIGRP Interna 90 IGRP 100 OSPF 110 IS-IS 115 RIP 120 EGP 140 ODR 160 EIGRP Externo 170 BGP Interno 200 Desconocido 255 Cuadro 4.2: Tabla de distancias administrativas por defecto. OSPF conocen como llegar a la red 200.0.0.0/24; dado que OSPF tiene menor distancia administrativa (110 < 120), OSPF va a ser el que escriba la ruta en la tabla de enrutamiento. Si se configura una ruta estática con interfaz de salida, esta aparecerá como directamente conectada en la tabla de enrutamiento, y por defecto su distancia administrativa será 1. Las redes conectadas directamente siempre tienen un valor de distancia administrativa de 0 puesto que no existe una mejor ruta que tener directamente conectada una red a una de sus interfaces. 4.3. OSPF, Open Shortest Path First La respuesta del IETF a los problemas de RIP fue OSPF (Open Shortest Path First); OSPF es un protocolo de enrutamiento basado en el estado del enlace. OSPF provee una rápida convergencia y soporta máscaras de subred de longitud variable. Su complejidad es notablemente superior respecto al RIP. Fue desarrollado por el OSPF Working Group del IETF. Entre las características más notables de OSPF podemos destacar las siguientes: Es un algoritmo dinámico autoadaptivo, que reacciona a los cambios de manera automática y rápida. Soporta una diversidad de parámetros para el cálculo de la métrica. Soporta el parámetro de tipo de servicio (Tos) de la cabecera del datagrama IP. Realiza balance de carga si existe más de una ruta con la misma distancia hacia un destino dado; dependerá de la aplicación y su configuración. Puede operar con seguridad usando MD5 para autentificar a sus puntos antes de realizar nuevas rutas y antes de aceptar avisos de enlace-estado. 62 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO Soporta rutas de red, de subred y de host. Acepta CIDR (Classless Inter-Domain Routing). OSPF está diseñado para trabajar tanto en redes punto a punto como de múltiples accesos, como de difusión (Ethernet o Token Ring) o de no-difusión (X.25). En OSPF no existe un intercambio de rutas directamente, lo que los routers transmiten mutuamente es el estado del enlace. En los protocolos de estado enlace cada router dentro de la misma área OSPF transmite a sus vecinos paquetes LSA (Link State Advertisement) que contienen la descripción de cada una de las redes conectadas directamente a ese router. Con esta información el router construye su tabla de enrutamiento con la mejor ruta. Una vez que un router recibe los LSA de sus vecinos, estos son almacenados en una base de datos local llamada Link State Database (LSDB). Los routers llegan a estar sincronizados cuando todos los routers dentro de la misma área cuentan con exactamente la misma base de datos de estado enlace; en este punto todos los routers conocen sobre todos los destinos posibles en esa área; pero los LSA hasta este punto no son consideradas como rutas; para calcular las rutas hacia cada destino el router usa un algoritmo conocido como SPF (Shortest Path First) también se conocido con el nombre de su creador, Dijkstra, para calcular la ruta más corta a cada destino. OSPF utiliza un algoritmo de enlace-estado, a fin de construir y calcular el camino más corto para todos los destinos. El algoritmo de por sí es bastante complicado. A continuación una descripción simple de las distintas etapas del algoritmo: Tras la inicialización o debido a cualquier cambio en la información de enrutamiento, un router se podrá generar un anuncio estado enlace. Todos los routers intercambiarán los anuncios d estado enlace por medio de inundaciones ( ooding). Cada router que recibe una actualización del estado enlace debe guardar una copia en su base de datos de estado enlace y propagar la actualización a otros routers. Después de que la base de datos de cada router se ha completado; el router calculará una ruta de acceso más corta para todos los destinos. El router utiliza el algoritmo de Dijkstra para calcular el camino más corto. Los puntos de destino, el costo asociado y el próximo salto para llegar a esos destinos formarán la tabla de enrutamiento IP. En caso de que no se produzcan cambios en la red OSPF, como el cambio del costo de un enlace o una red añadida o suprimida, OSPF debe estar estático. Las modificaciones que se produzcan se comunicarán a través de paquetes estado enlace; y el algoritmo de Dijkstra vuelve a calcular para encontrar el camino más corto. 4.3.1. Áreas y clases de routers OSPF divide al sistema autónomo (AS) en áreas, de forma que un router sólo necesita conocer la topología e información de enrutamiento correspondiente a su área. Los algoritmos de enrutamiento se aplican dentro de cada área. En todo AS hay al menos un área, el área 0 denominada backbone. Un router puede pertenecer simultáneamente a dos o más áreas, en cuyo caso debe disponer de la información de enrutamiento y ejecutar los cálculos correspondientes a todas ellas. Al menos un router de cada área debe estar además en el backbone, para conectar dicha área con el resto del AS. 4.3 OSPF, Open Shortest Path First 63 Dos áreas sólo pueden hablar entre sí a través del backbone. Las rutas entre diferentes áreas circulan siempre por el backbone, por lo tanto todas las áreas deben conectar con el backbone. Si no es posible hacer una conexión directa con el backbone, se puede hacer un enlace virtual entre redes. Las áreas ponen un límite en el anuncio de las actualizaciones del estado enlace. Las inundaciones y el cálculo del algoritmo de Dijkstra, en un router se limitan a cambios dentro de la zona. Todos los routers dentro de un espacio tienen exactamente la misma base de datos del estado enlace. En OSPF se contemplan cuatro clases de routers: Routers backbone: Los que se encuentran en el área backbone. Routers internos: Los que pertenecen únicamente a un área. Routers periféricos de área: Son los que están en mas de un área, y por tanto las interconectan (una de las áreas siempre es necesariamente el backbone). Routers periféricos de AS: Los que intercambian tráfico con routers de otros ASes. Estos routers pueden estar en el backbone o en cualquier otra área. Standard Area: Este tipo de área se conecta a la de backbone. Todos los routers del área conocen los demás routers del área y tiene la misma base de datos topológica. Sin embargo cada router tiene su propia tabla de enrutamiento. Backbone Area: El backbone, también denominado área cero, forma el núcleo de una red OSPF. Es la única área que debe estar presente en cualquier red OSPF, y mantiene conexión, física o lógica, con todas las demás áreas en que esté dividida la red. La conexión entre un área y el backbone se realiza mediante los ABR (Area Border Router). OSPF espera que todas las áreas inyecten la información de encaminamiento en el backbone y este inyectará aquella información en otras áreas. Stub Area: Un área Stub es aquella que no recibe rutas externas (LSA tipo 5). Por lo tanto, los rouerts necesitan normalmente apoyarse en las rutas predeterminadas para poder enviar tráfico a rutas fuera del segmento Stub. Área Totally Stub: Es idéntica al Stub Area (no acepta LSA tipo 5); pero además no acepta rutas hacia redes de otras áreas y no conoce las rutas hacia routers ASBR (LSA tipos 3 y 4). La única forma de salir del área es mediante una ruta por defecto. Este tipo de área es muy útil para sitios remotos con pocas redes y conectividad limitada con el resto de la empresa. Esta es una solución propietaria de Cisco Systems. Not-so-Stubby Area: También conocidas como NSSA, constituyen un tipo de área Stub. No aceptan LSA de tipo 4 y 5 pero puede importar rutas externas hacia el domino OSPF como rutas externas NSSA (LSA tipo 7). En estas áreas se crean los LSA de tipo 7 que son transformados a LSA de tipo 5 por el ABR del NSSA, de esta forma se puede propagar al resto del dominio OSPF. Los routers que pertenecen a múltiples áreas, y conectan estas áreas con el área backbone son llamados routers de borde de area (ABR, Area Border Router). Los ABR deben mantener la información que describe el backbone y las de las otras áreas adjuntas. Un router que tiene todos sus interfaces 64 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO 1y2 3 4 5 7 Backbone Area Type Si Si Si Si No Non-Backbone, Non-Stub Si Si Si Si No Stub Si Si No No No Totally Stubby Si No No No No Not-so-Stubby Si Si Si No Si Cuadro 4.3: Áreas OSPF. dentro de una misma área es llamado un router interno (IR, Internal Router). Routers que actúan como gateway entre OSPF y otros protocolo de enrutamiento (IGRP,EIGRP, IS-IS, RIP, BGP, Static) u otros casos de enrutamiento OSPF son llamados routers de frontera de un sistema autónomo (ASBR, Autonomous System Boundary Router). Un router puede ser un ABR o un ASBR; un router puede ser un router interno o un router de borde del área y al mismo tiempo ser un ASBR. 4.3.2. Costo en OSPF El costo (también llamado métrica) de una interfaz en OSPF es una un indicativo del gasto necesarios para enviar los paquetes a través de esta interfaz. El costo de una interfaz es inversamente proporcional al ancho de banda de la interfaz. Un gran ancho de banda indica un bajo costo. Hay más gasto y retardo en un enlace de 56Kbps serial que en un 10Mbps Ethernet. La fórmula usada para calcular el costo es: costo= 10000 0000/bandwith in bps Por defecto el costo de una interfaz es calculado y basado en el ancho de banda; pero se puede forzar el costo de una interfaz por medio de comandos. 4.3.2.1. Árbol de la ruta más corta La ruta más corta es calculada por el algoritmo Dijkstra. El algoritmo coloca cada router en la raíz de un árbol y calcula la ruta más corta para cada destino basado sobre el costo acumulativo requerido para llegar a ese destino. Cada router tiene su propia visión de la topología, aunque todos los routers construirán un árbol de camino más corto usando la misma base de datos de enlace estado. Abajo se muestra la construcción de la ruta más corta de cada destino del router RTA. 4.3.2.2. Tipo de Interfaces de redes Los routers de una red basada en OSPF se conectan a ella a través de una o varias interfaces con las que se conectan a otros routers de la red. El tipo de enlace define la configuración que asume la interfaz correspondiente. OSPF soporta redes broadcast, redes No broadcast y redes punto a punto. El tipo de red en la que esté trabajando OSPF determinará el funcionamiento del protocolo, y este a su vez puede ser optimizado por el administrador de la red. 4.4 Funcionamiento de OSPF 65 Figura 4.1: Árbol de la ruta más corta 4.3.2.3. Rutas externas de tipo1 y tipo2 Las rutas externas se enmarcan en dos categorías; externa de tipo 1 y externa de tipo 2. La diferencia entre ambos está en la forma en que el costo de la ruta se calcula. El costo de una ruta de tipo 2 es siempre el costo externo, independientemente de su costo en el interior para llegar a esa ruta. El costo de tipo 1, es la adición de los costos externos y el costo interno utilizado para llegar hasta esa ruta. Una ruta de tipo 1 es siempre preferible a una ruta de tipo 2 para el mismo destino. Esto se ilustra en el diagrama siguiente: Figura 4.2: Rutas externas de tipo1 y tipo2 4.4. Funcionamiento de OSPF Cuando un router arranca, primero inicializa las estructuras de datos necesarias y espera las indicaciones de los protocolos de bajo nivel para indicar que sus interfaces estén operativas. El router utiliza el protocolo Hello para descubrir sus vecinos; el router envía paquetes Hello y espera a que le sean devueltos. En redes punto a punto y broadcast se detectan los vecinos dinámicamente enviando paquetes de saludo multicast. En las redes en la que no es posible usar broadcast será necesaria cierta información de configuración para descubrir vecinos. 66 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO En este punto por medio del protocolo Hello también se elegirá DR (Designated Router) y BRD (Backup Designated Router) para la red, si es necesario (en redes broadcast). El router intentará formar adyacencias (adjacencies) con algunos de sus nuevos vecinos recién descubiertos en base a estos routers. Una adyacencia es una relación formada entre dos routers vecinos determinados con el fin de intercambiar información de enrutamiento. No todos los pares de vecinos son adyacencias. Las bases de datos de estado enlace se sincronizan entre pares de routers adyacentes. Cuando hay un router DR es este el que decide que routers son adyacentes. Las adyacencias controlan la distribución de la información de enrutamiento ya que las actualizaciones sólo se envían entre los routers adyacentes. Las adyacencias de los routers se reflejan en los contenidos de sus LSA; esto permite al protocolo detectar routers caídos de forma oportuna. Los LSA inundan el área; asegurándose que todos los routers en un área tienen la misma base de datos de estado enlace. Esta base de datos consiste en una colección de LSA originados por cada router perteneciente al área. De esta base de datos cada router calcula el árbol de la primera ruta más corta (SPF, Shortest Path First) consigo mismo como raíz. Cada vez que se recibe un LSA se calcula el árbol SPF mediante el algoritmo de Dijkstra y se genera una tabla de enrutamiento. 4.4.1. Encapsulamiento de paquetes en OSPF Los paquetes OSPF se encapsulan en IP con tipo de protocolo de transporte número 89. En la cabecera OSPF existe un campo que indica el tipo de paquete. Todos los paquetes OSPF comparten una común cabecera. Cada paquete OSPF empieza con una cabecera de 24 bytes. Esta cabecera contiene toda la información necesaria para determinar si los paquetes deben ser aceptados para futuros procesos. Abajo se muestra el encapsulamiento del OSPF y su cabecera. Figura 4.3: Encapsulamiento de paquetes OSPF 4.4 Funcionamiento de OSPF 67 Figura 4.4: Longitud del campo en bytes Version number: identifica la versión del OSPF usada. Type: Identifica el tipo del paquete del OSPF. Los routers OSPF cuentan con 5 tipos de paquetes para identificar a sus vecinos y para actualizar la información de enrutamiento. Tipo Nombre 1 Hello 2 Database Descriptor (DBD) 3 Link State Request (LSR) 4 5 Link State Update (LSU) Link State Ack (LSAck) - Link-State Advertisement (LSA) Función Descubrir y mantener los vecinos Resumen del contenido de la base de datos. Describe el contenido de la base de datos topológica. Se intercambian estos mensajes cuando se inicializa una adyacencia. Petición de una descripción la base de datos. Este tipo de mensajes se intercambian cuando un router descubre que cierta información de su base de datos está obsoleta. Actualización de la base de datos; es la respuesta al LSR. Reconocimiento de los LSU. Describen el estado local de un router o red, para un router incluye el estado de las interfaces y sus adyacencias. Van empaquetados en DBD, LSU, LSR o LSAck. Cuadro 4.4: Tipos de paquetes OSPF Packet length: Especifica la longitud del paquete, incluyendo el encabezado OSPF, en bytes. Router ID: Identifica el origen del paquete. Area ID: Identifica el área a la que pertenece el paquete. Todos los paquetes OSPF están asociados a una sola área. Checksum: Verifica el contenido total del paquete por si ha sufrido algún daño durante su tránsito. Authentication type: Contiene el tipo de autentificación. El tipo de autentificación se configura en cada área. Authentication: Contiene la información de autentificación. Data: Contiene información encapsulada de las capas superiores. 68 4.4.2. CAPÍTULO 4. ENRUTAMIENTO DINÁMICO Tipos de LSA (Link State Advertisement) Los LSAs describen el estado de una red o de un router. Esta descripción cubre el estado de todos los interfaces de los routers y sus adyacencias. Tipo Nombre 1 Router-LSA 2 Network-LSA 3,4 Summary-LSA 5 AS-External-LSA 6 Group Membership LSA 7 Routers in a Notso-stubby-area (NSSA) Descripción Se originan en todos los routers. Describe un conjunto de estados y el costo de interfaces de routers para un área; cada router puede generar un Router LSA para todos sus interfaces. Sólo se propagan en un área. Se originan en los routers DR sobre un segmento. Esta información es una indicación de todos los routers conectados sobre un particular segmento multiacceso como un Ethernet, Token Ring y FDDI (broadcast) multiaccess); además contiene una lista de los routers conectados a ún area determinada. Se envían sólo dentro de un área. Describen las redes en el AS pero externas a un área. Se originan en los Routers de borde área(ABR); cada uno describe una ruta hacia un destino fuera del área, aunque todavía dentro del AS. Normalmente los Summary LSA son difundidos dentro del backbone y del backbone podrá pasar a otras áreas por medio de los ABR. El tipo 3 describe rutas hacia redes a través del AS y el tipo 4 describe rutas hacia routers ASBR. Originados por un ASBR. Cada uno describe una ruta con destino a otro sistema autónomo. Estas redes son difundidas vía redistribución. Los ASBR tiene la tarea de difundir estas rutas dentro de un AS. Estos LSAs van por las áreas estándar y backbone. Este es una extensión Multicast OSPF (MOSPF); un protocolo de enrutamiento multicast que no es de uso general. Routers NNSA no reciben External LSA de una ABR; pero permiten enviar información de enrutamiento externo por redistribución. Estos routers usan LSA de tipo 7 para informarles a los ABR acerca de estas rutas externas las cuales transformarán a tipo 5 (LSA External) para ser inundados en el resto de la red OSPF. Cuadro 4.5: Tipos de LSA Rutas que son generadas dentro de un área son llamados rutas Intra-Area; rutas que se originan de otras áreas son llamados rutas Inter-Area; rutas que se originan de otros protocolos de enrutamiento y que son inyectados dentro del AS vía redistribución son llamados rutas External. Múltiples rutas al mismo destino son preferidas en el orden siguiente: Intra-Area, Inter-Area, External type 1, External type 2. 4.4 Funcionamiento de OSPF 69 Figura 4.5: Rutas originadas en una determinada área 4.4.3. Estados OSPF Para una comprensión mas profunda de OSPF es necesario comprender las relaciones o estados que tienen entre sí los routers que utilizan OSPF. Estado desactivado (Down): En el estado desactivado, el proceso OSPF del router no ha intercambiado información con ningún vecino. OSPF se encuentra a la espera de pasar al siguiente estado (etapa de inicialización). Estado de inicialización (Init): Los routers envían paquetes de tipo 1 (Hello) en intervalos regulares (por defecto 10 segundos en Quagga y en Cisco) para establecer relación con sus routers vecinos, cuando una interfaz recibe su primer paquete Hello entonces decimos que el router ha entrado en estado Init y está preparado para entrar en el siguiente estado. Estado bidireccional (Two-Way): Utilizando paquetes Hello, cada router OSPF intenta establecer una comunicación bidireccional con cada router vecino que está ubicado en la misma red IP. Un router entra en estado two-way en el momento que se ve en una de las actualizaciones de uno de sus vecinos. El estado two-way es la relación más básica que pueden tener los routers OSPF, pero la información de enrutamiento no se intercambia en este estado. Para aprender sobre enlaces de otros routers el router tiene que tener al menos una adyacencia completa. Estado de ExStart: Técnicamente, cuando un router y su vecino entran en estado ExStart, su conversación se caracteriza por una adyacencia, pero los routers todavía no tienen una adyacencia completa. El estado ExStart se establece utilizando paquetes de tipo 2. Entre los dos routers se utilizan paquetes Hello para determinar cual de los dos es el maestro y cual es el esclavo en su relación y se intercambian paquetes de tipo 2. Estado de Intercambio (Exchange): En el estado exchange se utilizan paquetes de tipo 2 para enviar información de estado del enlace. En otras palabras, un router describen sus bases de datos de estado del enlace a otro router. Si alguna de las rutas no está en la base de datos del enlace del router receptor de la información, este solicita una actualización completa, la cual se realiza en el estado Loading. 70 CAPÍTULO 4. ENRUTAMIENTO DINÁMICO Estado cargando (Loading): Después de que todas las bases de datos han sido descritas a cada router, se tiene que solicitar una información que es más completa utilizando paquetes de tipo 3. Cuando un router recibe un paquete de tipo 3, este responde con una actualización mediante un paquete de tipo 4. Los paquetes de tipo 4 describen la información de estado del enlace que es el corazón de los protocolos de enrutamiento de estado del enlace. Los paquetes de tipo 4 son respondidos con paquetes de tipo 5. Estado de adyacencia completa (Full adjacency): Cuando termina el estado Loading, los routers están en una adyacencia completa. Cada router mantiene una lista de sus vecinos adyacentes, llamada base de datos de adyacencia. 5 Voyage GTR El Grupo de Telecomunicaciones Rurales de la PUCP ha adaptado Voyage 0.5.2 para la implementación de enlaces inalámbricos WiFi de larga distancia; a esta Voyage, más sus aplicaciones adaptadas se le llama Voyage GTR que puede descargarse desde http://gtr.telecom.pucp.edu. pe/webfm_send/987 5.1. Identificación de las aplicaciones a implementar Voyage (http://www.voyage.hk/) es un sistema operativo basado en Linux, derivado de la distribución Debian; Voyage es un sistema genérico que no contiene todas las aplicaciones para implementar redes de datos; contiene sólo lo básico; como los controladores para el manejo de las interfaces Ethernet y para el manejo de las interfaces inalámbricas en base a chipset Atheros. Voyage se instala en plataformas x86; y está optimizado para equipos embebidos (también llamados (Single Board Computer), SBC) como las WRAP, ALIX de PC Engines (http://www. pcengines.ch) y las Soekris 45xx/48xx de Soekris Engineering (http://www.soekris.com) que son placas dedicadas para implementar enlaces inalámbricos de larga distancia. Un router de larga distancia debe contener ciertas aplicaciones para poder implementar redes WiFi de larga distancia; a Voyage original le faltan aplicaciones para cumplir con esta tarea; haciendo una relación entre las características comunes de los equipos comerciales, a Voyage le faltaría implementar: 1. 2. 3. 4. 5. 6. Configuración rápida y cómoda de las interfaces de red, Enrutamiento estático, NAT y DHCP Implementar seguridad WPA-PSK Enrutamiento dinámico Telefonía IP Configuración vía web Estas características se ha implementado en Voyage GTR, pero además se ha tenido cuidado en que todas estas aplicaciones trabajen conjuntamente y que Voyage GTR tenga las herramientas necesarias para su trabajo en entornos rurales. Estas herramientas son: 71 72 CAPÍTULO 5. VOYAGE GTR 1. 2. 3. 4. 5.2. Administración de la memoria y del espacio de disco Conservación y borrado de registros de sistema (logs) Creación de archivos de respaldo Apagado, reinicio y conservación de fecha Configuración rápida mediante archivos de las interfaces de red (Ethernet y WiFi) Todas las configuraciones de las interfaces de red se realizan por medio de comandos; para no perder esta configuración se debe crear un script que contenga estos comandos y poder ser ejecutados en el arranque del sistema. Existen archivos para realizar una configuración rápida y ordenada como /etc/network/interfaces; pero por defecto no contiene herramientas para configurar interfaces WiFi en base a los controladores madwifi. Existe una aplicación llamada mad wifi-ifupdown que incorpora en /etc/network/interfaces variables para poder configurar enlaces WiFi; pero esta aplicación advierte que no está garantizado su funcionamiento; aunque su uso hace cómodo la configuración. Por tanto se corrigió y se adicionó variables en esta aplicación para ser usado en Voyage GTR. Al instalar mad wifi-ifupdown se tuvo que crear carpetas adicionales para ser adaptado a la estructura de Voyage. Se creó una plantilla en /etc/network/interfaces; para configurar las interfaces de red; esta plantilla es sólo útil para dispositivos WiFi que hacen uso del madwifi, se puede usar sólo WEP y WPA2-PSK, y está dedicado sólo para el modo infraestructura; además se puede configurar bridging (una misma dirección para varias interfaces) entre interfaces Ethernet. Para lograr esta plantilla: 1. en /etc/network/if-pre-up.d/madwifi se adicionó la configuración de: 1. La velocidad de transmisión. 2. La distancia. 3. La diversidad. 4. Se corrigió la activación de la interfaz al elegir WEP. 2. en /etc/network/if-up.d/madwifi se adicionó la creación del archivo PID de seguridad WPA-PSK en la sección del archivo mencionado, correspondiente a hostapd; y se anuló la opción de VAP en las interfaces de red. 3. en /etc/network/if-down.d/madwifi se corrigió la deshabilitación incorrecta de WPAPSK en la sección del archivo correspondiente a hostapd. 4. se modificó /etc/init.d/networking para hacer más efectiva la deshabilitación del WPAPSK en las secciones correspondiente a hostapd y a wpa_ supplicant. 5.3 Configuración rápida de enrutamiento estático 5.3. 73 Configuración rápida de enrutamiento estático Para configurar las rutas estáticas se utiliza comandos pero para que la configuración quede o se active después de un reinicio se necesita de un script que se ejecute en el arranque del sistema. Esto no es práctico por lo cual se ha creado un archivo de configuración apoyado de un script para configurar las rutas estáticas. El archivo de configuración /etc/network/nat-static-routes será el archivo para la configuración de las rutas estáticas, además permitirá la configuración de la ruta por defecto y del NAT, todo esto a través de variables. En este archivo se ha creado un plantilla para esta configuración. Se ha creado el script /etc/init.d/mgnat-static-routes que permita coger la configuración de /etc/network/nat-static-routes y ejecutarlo. Además se ha modificado /etc/init.d/networking para que la configuración hecha en /etc/network/nat-static-routes sea cargada cada vez que se ejecute /etc/init.d/networking restart a través de /etc/network/nat-static-routes. Además se implementó un servidor DHCP, para esto se utilizó la aplicación dnmasq que ya viene con Voyage; pero se creó una plantilla en /etc/dnsmasq.conf que servirá como ejemplo de una configuración básica. 5.4. Seguridad WiFi Actualmente la seguridad WEP no es muy confiable en redes WiFi; por lo cual se debe usar WPA que requiere una conectividad sin intermitencias; pero como se va a trabajar en enlaces largos que podrían tener repentinas desconexiones, WPA sería inadecuado. Por tanto en estas redes se usará una variante de WPA que es WPA-PSK, que no necesita servidores de autenticación y que soporta mejor las desconexiones y que además es más seguro que el WEP. Voyage incluye el servicio de seguridad WiFi a través de las aplicaciones hostapd y wpa_ supplicant pero son versiones antiguas; por ello se hizo uso de las versiones actuales y se desarrolló plantillas para que la configuración sea ordenada y rápida. Al instalarlas se tuvo que crear carpetas adicionales para ser adaptado a la estructura de Voyage. Se creó archivos de configuración para hasta tres interfaces WiFi, tanto para hostapd como para wpa_ supplicant. Los archivos creados son: /etc/hostapd/hostapd-ath0.conf /etc/wpa_ supplicant/wpasupplicant-ath0.conf La elección del uso de este tipo de seguridad se ha hecho en /etc/network/interfaces; para ser activados por /etc/init.d/networking. El hostapd instalado hacía que el MTU de las interfaces WiFi sea de 2400, cambiando el valor de 1500 que se usa por defecto; esto traía problemas al implementar OSPF en estas interfaces; porque no aceptaban un valor alto en el MTU; para esto se compiló de nuevo el hostapd modificando el cambio forzado del MTU en hostapd.h. 5.5. Enrutamiento dinámico Voyage no trae ninguna aplicación para este caso; quagga es el software que posee las aplicaciones para configurar enrutamiento dinámico con protocolos como RIP y OSPF. En este caso se 74 CAPÍTULO 5. VOYAGE GTR implementó OSPF; para lo cual se creó plantillas para que la configuración sea ordenada y rápida. Al instalar quagga se tuvo que crear carpetas adicionales para ser adaptado a la estructura de Voyage. Se realizó muchas pruebas en laboratorio y campo para llegar a establecer una plantilla del OSPF para ser usado como ejemplo de una configuración básica; los archivos involucrados en esta plantilla son: voyage: # cat /etc/quagga/ospfd.conf voyage: # cat /etc/quagga/zebra.conf 5.6. Telefonía IP Aunque un servidor de Telefonía IP normalmente necesita un equipo de mayor potencia que una placa ALIX; Asterisk, un servidor de Telefonía IP de código abierto, puede ser instalado en estas placas para que realice tareas mínimas como comunicación entre usuarios telefónicos y comunicación entre usuarios administrados por otros Asterisk. La placa ALIX al tener un CPU y RAM reducidos estará limitado a administrar hasta unas 5 llamadas simultaneas con clientes SIP administrados por otros servidores Asterisk. En un punto de la red que pertenezca a una zona rural no es necesario implementar servidores de gran capacidad por que los usuarios son pocos (menos de 10 clientes SIP). Voyage no trae Asterisk, se instaló la versión 1.4, la más actual en estos momentos. Para instalarla se necesitó de sus dependencias y más que nada de los módulos zaptel. Al instalar Asterisk se tuvo que crear carpetas adicionales para ser adaptado a la estructura de Voyage. Por defecto, al instalar Asterisk no se crea su archivo logrotate, dado que es necesario se creó /etc/logrotate.d/asterisk para controlar los log del Asterisk. Además se ha creado el script /etc/init.d/asterisk que permita la carga programada del Asterisk cada vez que el sistema inicie. Se ha establecido una plantilla para ser usada como ejemplo de una configuración básica. La placa ALIX está limitado en recursos por lo que el Asterisk no puede usar todos sus módulos, se ha limitado y se ha adaptado a Voyage (/etc/asterisk/modules). Además se ha instalado los archivos de sonido en español y se ha creado algunos archivos de sonido adicionales para el uso de la plantilla. La plantilla desarrollada es para realizar la comunicación entre clientes SIP de un mismo Asterisk y con clientes SIP administrados por otros Asterisk y además de permitir la comunicación con la red de telefonía pública; la plantilla contempla a los archivos: /etc/asterisk/extensions.conf /etc/asterisk/sip.conf /etc/asterisk/iax.conf Se tuvo problemas cuando el equipo que contenía al Asterisk no tenía una ruta por defecto; en este caso el Asterisk no trabaja correctamente; para esto se encontró una solución que es la de poner el nombre del equipo en /etc/hosts. 5.7 Configuración vía web 5.7. 75 Configuración vía web Para el uso común de los usuarios tener una interfaz web facilita la configuración de las interfaces de red; por tanto se decidió incluir una en Voyage GTR. Se estudió los proyectos pertinentes de interfaces Web que existen hasta la fecha, tales como: 1. WiFiAdmin, http://wifiadmin.sourceforge.net 2. TierConf (http://tier.cs.berkeley.edu/wiki/SBC:TierConf), del grupo TIER. Está basado en m0n0wall (http://m0n0.ch/wall/), que a su vez usa PHP. 3. Pyramid Linux de la empresa Metrix http://metrix.net/page.html?chapter=0&id=3 Antiguamente el tamaño de las CF suponía una limitación relativa para elegir un interfaz Web (por ejemplo se buscaban servidores http ligeros, que ocuparan poco espacio). Hoy, con las CF de gran capacidad a muy bajo precio, esa limitación prácticamente ha desaparecido, pero sí sigue siendo importante que la aplicación requiera poco recurso de procesamiento. Se decidió realizar una interfaz propia, debido a que las opciones evaluadas no poseían opción para configuración de enrutamiento dinámico o la opción no era apropiada. A la interfaz web de Voyage GTR se le ha llamado Uya. Uya se ha liberado con licencia GPLv3 y puede descargarse desde http://code.google.com/ p/uya/ La interfaz web Uya ha sido construida mediante el lenguaje de programación Python, básicamente se usó 2 paquetes python: configmod y configmod-web. Configmod. Posibilita las siguientes tareas: *Leer archivos: Configmod lee archivos de configuración y crea uno solo. *Escribir archivos: Configmod actualiza archivos usando un solo archivo de configuración. Config-web. Es una máscara web para configmod que usa la aplicación cherrypy como servidor web. También se puede usar Uya desde linea de comandos. Para crear o actualizar el archivo de configuración principal de Uya se ejecuta el siguiente comando: uya - - read-config Ahora se puede modificar el archivo /etc/uya/uya.conf con un editor se texto y luego de la edición se ejecuta la escritura mediante la ejecución del siguiente comando: uya - - write-config Scripts de escritura/lectura La máscara web de Uya (frontend) usa las opciones de lectura/escritura de Uya, pero el modo en que estas opciones son invocadas es configurable (revisar /etc/uya/scripts). Si se usa una distribución que normalmente está en modo lectura (read-only) se necesitará ejecutar unos scripts que permitan realizar los cambios pertinentes hacia el modo escritura. Para Voyage se ha desarrollado el script que se muestra a continuación: 76 CAPÍTULO 5. VOYAGE GTR #!/bin/sh # /etc/uya/scripts/write.sh # # Example write script for Voyage Linux # if test $# -ne 2; then echo “Usage: $(basename $0) CONFIGFILE TEMPLATEFILE” exit 1 fi STATE=$(mount ∣ grep “ROOT_FS on / type” ∣ cut -d”(” -f2 ∣ head -c2) test “$STATE ” = ”ro” && remountrw uya -write-config -f “$1 ” -t “$2 ” RETVAL=$? test “$STATE ” = “ro” && remountro exit $RETVAL Archivos modificados Uya modifica los siguientes archivos de configuración: *General: -Hostname: /etc/hostname y /etc/hosts -Dns: /etc/resolv.conf -Ntpdate: /etc/default/ntpdate (variable NTPSERVERS) *Interfaces: /etc/network/interfaces Ethernet(ethX interfaces) Wireless (athX madwifi interfaces). WPA2-PSK crea archivos de autenticación /etc/wpa_supplicant/wpasupplicant-INTERFACE.conf y /etc/hostapd/hostapd-INTERFACE.conf files. Routing(brX interfaces) *Enrutamiento Estático: /etc/quagga/daemons (deshabilitados zebra y ospfd). Dynamic routing: /etc/quagga/daemons (habilitados zebra y ospfd). Gateway y NAT: /etc/network/statics-routes-nat Static routes: /etc/network/statics-routes-nat (ROUTESX entries) Por defecto: /etc/quagga/zebra.conf y /etc/quagga/ospfd.conf 5.8. Adaptación de Voyage para el trabajo en entornos rurales Voyage GTR se usará en zonas rurales; por tanto su administración estará limitada; quizás se deje de vigilar por mucho tiempo (cada 6 meses debe existir revisiones) según las condiciones de acceso. Por ello se debe asegurar que las funciones de los servicios implementados trabajen correctamente por buen tiempo con el mínimo de mantenimiento. Voyage es un sistema que ocupa unos 100MB en la Compact Flash (CF); por lo que la CF debe ser al menos de 256MB. Pero Voyage GTR con todas las aplicaciones instaladas, puede llegar a ocupar unos 400MB por 5.8 Adaptación de Voyage para el trabajo en entornos rurales 77 tanto la CF debe ser de al menos 1GB; este tamaño aún sigue siendo muy bajo comparado con las computadoras estándares. Voyage es un sistema que se carga en modo lectura; pero un sistema operativo por más que se cargue en modo lectura necesita crear archivos temporales y reescribir o crear archivos. La partición donde está instalada Voyage pertenece a la CF y se carga en modo lectura; pero existe una carpeta, la /rw, que está contenida en la RAM del sistema en un espacio delimitado (originalmente a 8MB); por tanto está en modo escritura; en este espacio se podrá manipular archivos o carpetas que se encuentren aquí; pero al estar en RAM se perderá la información después de un reinicio. En /rw están ubicados especialmente los log del sistema y archivos que necesitan ser modificados por las aplicaciones en cualquier tiempo. Los log aumentan de tamaño mientras funcione el sistema; en Voyage GTR pueden crecer a razón de 0.5MB por día; este tamaño no es crítico; pero puede existir momentos en que los log crezcan rápidamente y los 8MB dedicados para /rw puede resultar poco; por tanto se aumenta hasta 32MB. Este aumento de espacio no quiere decir que se está quitando 32MB a los 128MB de la RAM; sino que mientras se necesite espacio se puede usar hasta un límite de 32MB. La modificación se hace en /etc/fstab. La aplicación logrotate que ya viene con Voyage será la encargada de borrar los log antiguos. Para evitar que los log crezcan muy rápido antes de que actúe logrotate, se desarrolló el script /etc/ cron.hourly/cleanrw como tarea cron, para que cada hora evalúe el espacio en /rw, si es menor a 5MB deberá eliminar el exceso de log. Toda lo modificado en /rw se pierde después de un reinicio; pero se modificó el script /etc/init.d/ voyage-util que permite guardar todo lo que se modifique en /rw para recuperarlo despues de un reinicio. Para indicar que carpeta o archivo de /rw se desea conservar se indicará en /etc/voyage.conf. Los equipos con Linux pueden permanecer encendidos por mucho tiempo y trabajan correctamente; pero es recomendable realizar reinicios periódicamente. Para esto se crea la tarea cron para programar reinicios /etc/cron.d/reboot-board. La placa ALIX no posee batería para conservar la fecha del sistema mientras esté sin energía (apagado); si se desea tener la fecha sincronizada se deberá usar ntpdate. Se implementó scripts para conservar el tiempo mientras se reinicia el sistema. Si el sistema reinicia, la fecha del sistema se conserva pero si se apaga el equipo (se quita la energía) la fecha actual se pierde y al encender de nuevo, la fecha es antigua, alrededor de 1980. Existe aplicaciones que van creando archivos o carpetas mientras el sistema arranca pero como las fuentes fueron instaladas posteriores a 1980, en la creación de estos archivos o carpetas puede existir advertencias o quizás errores. Para evitar esto se desarrolló los script /etc/init.d/a-before y /etc/init.d/z-after para conservar la fecha después de un reinicio (sin quitar la energía de la placa) y si el equipo se apaga (se quita la energía del sistema) se configura la fecha del sistema a una fecha aproximada al momento del grabado de Voyage GTR en la CF. Se activó el watchdog para que reinicie al equipo si se está consumiendo demasiados recursos en un momento. Si el promedio de uso del CPU en un minuto es más de 24 %, o en 5 minutos es más de 18 %, o en 15 minutos es más de 12 % el sistema reiniciará; además si el sistema sólo cuenta con 1MB de RAM libre el sistema reiniciará. Para tener un buen mantenimiento del sistema es necesario tener un respaldo, para esto se ha creado scripts que permitan generar un respaldo de la configuración de las distintas aplicaciones; pero sin crear copia de todo el sistema. El archivo /etc/backup.list es donde se indica las carpetas y archivos a respaldar; el script /usr/local/sbin/mgbackup se encargará de generar el respaldo en un archivo comprimido. Como ya se ha mencionado, se ha generado una distribución con varias aplicaciones a la que se llama Voyage GTR y para poder instalarla se puede usar los script de Voyage original; pero en este caso se desarrolló un script que permite una instalación más específica y además que permite coger el respaldo obtenido y copiar a una Voyage GTR y así obtener una copia particular de la configuración de equipos. Además en Voyage se instaló utilitarios para ser usados por medio de comandos, como: vim, telnet, mutt, jnettop, lsof, cu, lynk, nmap y killall. 78 CAPÍTULO 5. VOYAGE GTR 6 Con guración e Instalación de Voyage GTR 6.1. Comandos generales en Linux Para un correcto entendimiento de la configuración e instalación de Voyage GTR, es necesario un repaso de algunos comandos linux. 6.1.1. Comando ls Muestra la lista de carpetas y archivos que contiene una carpeta. gtr-v106:/var# ls backups cache lib local lock log mail opt run spool tmp gtr-v106:/var# Gtr-v106: # ls-la drwxr-xr-x 4 root drwxr-xr-x 8 root -rw------- 1 root -rw-r-r--- 1 root -rw-r-r--- 1 root drwx------ 2 root drwxr-xr-x 2 root -rw-r-r--- 1 root gtr-v106:# 6.1.2. root root root root root root root root 160 180 21 432 110 60 40 0 Apr 8 10:22 . Dec 31 1999 .. Apr 7 07:28 .bash_ history Jul 15 2008 .bashrc Nov 10 2004 .profile Apr 6 07:40 .ssh Apr 8 10:21 backup Apr 8 10:22 configuracion.sh Comando mkdir Sirve para crear directorios. Gtr-v106: # mkdir backup 6.1.3. Comando rm Sirve para borrar archivos o carpetas. Gtr-v106: # rm -r carpeta gtr-v106: # rm archivo.txt 79 80 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR 6.1.4. Comando fdisk Muestra y manipula la tabla de particiones. Con al opción -l se muestra la lista de todas las particiones encontradas en el equipo. root@gtrdesktop: # fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x31b931b9 Device Boot Start /dev/sda1 1 * /dev/sda2 3648 /dev/sda5 3648 /dev/sda6 7295 /dev/sda7 10942 /dev/sda8 14589 /dev/sda9 14711 /dev/sda10 17143 End 3647 19457 7294 10941 14588 14710 17142 19457 Blocks 29294496 126993825 29294496 29294496 29294496 979933+ 19535008+ 18595206 Id 7 5 b 83 83 82 83 83 System HPFS/NTFS Extended W95 FAT32 Linux Linux Linux swap / Solaris Linux Linux Disk /dev/sdb: 519 MB, 519192576 bytes 16 heads, 63 sectors/track, 1006 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Disk identifier: 0x88a4f2af Device Boot Start /dev/sdb1 1 * root@gtrdesktop: # 6.1.5. End 1006 Blocks 506992+ Id 83 System Linux Comando dmesg Muestra un mensaje de diagnóstico que contiene eventos generados en el arranque del sistema y durante la depuración de aplicaciones. gtr-v106: # dmesg Linux version 2.6.23-486-voyage (2.6.23-2) (root@punknix-uml) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 PREEMPT Wed May 21 15:31:49 GMT 2008 ... 6.1.6. Comando lspci Se usa para listar todos los dispositivos PCI reconocidos en el equipo. 6.1 Comandos generales en Linux 81 voyage: # lspci 00:00.0 Host bridge: Cyrix Corporation PCI Master 00:0d.0 Ethernet controller: Atheros Communications, Inc. AR5006X 802.11abg NIC (rev 01) 00:0e.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller 00:11.0 Ethernet controller: Atheros Communications, Inc. AR5006X 802.11abg NIC (rev 01) 00:12.0 ISA bridge: National Semiconductor Corporation SC1100 Bridge 00:12.1 Bridge: National Semiconductor Corporation SC1100 SMI 0:12.2 IDE interface: National Semiconductor Corporation SCx200 IDE (rev 01) 00:12.3 Multimedia audio controller: National Semiconductor Corporation SCx200 Audio 00:12.5 Bridge: National Semiconductor Corporation SC1100 XBus voyage: # 6.1.7. Comando ps aux Comando que muestra información acerca de los procesos que se ejecutan en el equipo. voyage: # ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ... root 1801 0.0 0.4 2172 580 ? S<s Apr02 0:02 udevd -daemon root 2937 0.0 0.4 1752 612 ? Ss Apr02 2:16 /sbin/wpa_ supplicant -B -P /var/run/wpa_ supplicant.ath0.p daemon 3020 0.0 0.2 1680 352 ? Ss Apr02 0:00 /sbin/portmap root 3109 0.0 0.4 1624 612 ? Ss Apr02 0:03 /sbin/syslogd root 3115 0.0 0.2 1576 376 ? Ss Apr02 0:00 /sbin/klogd -x root 3247 0.0 1.2 4720 1620 ? Ss Apr02 0:22 /usr/lib/postfix/master postfix 3255 0.0 1.3 4764 1704 ? S Apr02 0:01 qmgr -l -t fifo -u root 3256 0.0 0.4 1736 556 ? Ss Apr02 0:00 /usr/sbin/pptpd quagga 3275 0.0 0.7 2636 944 ? Ss Apr02 0:01 /usr/lib/quagga/zebra -daemon -A 127.0.0.1 quagga 3279 0.0 1.0 3268 1368 ? Ss Apr02 7:54 /usr/lib/quagga/ospfd -daemon -A 127.0.0.1 root 3287 0.0 0.8 4852 1080 ? Ss Apr02 0:00 /usr/sbin/sshd root 3325 0.0 0.6 2192 884 ? Ss Apr02 0:03 /usr/sbin/cron root 3333 0.0 0.3 1620 440 ? Ss Apr02 0:59 /usr/sbin/watchdog asterisk3356 0.1 4.6 13876 5848 ? Ssl Apr02 8:59 /usr/sbin/asterisk -p -U asterisk root 3397 0.0 0.3 1572 496 ttyS0 Ss+ Apr02 0:00 /sbin/getty -L ttyS0 38400 root 9697 0.7 1.8 7624 2320 ? Ss 10:45 0:00 sshd: root@pts/0 root 9701 6.2 2.0 3664 2540 pts/0 Ss 10:46 0:02 -bash root 9719 0.0 0.7 2216 888 pts/0 R+ 10:46 0:00 ps aux voyage: # 6.1.8. Comando kill Sirve para cancelar procesos que se están ejecutando en el sistema. voyage: # kill 3356 82 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR 6.1.9. Comando hostname Muestra y modifica el nombre del sistema. voyage: # hostname voyage voyage: # 6.1.10. Comando tail Muestra la última parte de archivos. Con la opción -f se puede ver como cambia el contenido de los archivos. voyage: # tail -f /var/log/syslog Apr 8 08:55:08 voyage - MARK Apr 8 09:15:01 voyage /USR/SBIN/CRON[9286]: (root) CMD ( cd / && run-parts -report /etc/cron.hourly) Apr 8 09:35:08 voyage - MARK Apr 8 09:55:08 voyage - MARK Apr 8 10:15:01 voyage /USR/SBIN/CRON[9550]: (root) CMD ( cd / && run-parts -report /etc/cron.hourly) Apr 8 10:35:09 voyage - MARK Apr 8 10:45:36 voyage kernel: eth0: Autonegotiation advertising 0x5e1 partner 0x00. Apr 8 10:45:36 voyage kernel: eth0: link down. Apr 8 10:45:46 voyage kernel: eth0: Autonegotiation advertising 0x5e1 partner 0x45e1. Apr 8 10:45:46 voyage kernel: eth0: link up. voyage: # 6.1.11. Comando ifconfig Muestra las condiciones en la cual se encuentra una interfaz de red y también sirve para configurar los parámetros de red. voyage: # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0D:B9:07:E9:C0 inet addr:20.20.20.210 Bcast:20.20.20.255 Mask:255.255.255.0 inet6 addr: fe80::20d:b9ff:fe07:e9c0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:485434 errors:0 dropped:0 overruns:0 frame:0 TX packets:52531 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:30162474 (28.7 MiB) TX bytes:4139442 (3.9 MiB) Interrupt:10 Base address:0x8000 voyage: # 6.1.12. Comando ping Manda una mensaje de prueba a un dispositivo de red y espera una respuesta mostrando el tiempo de respuesta de cada paquete que envía; si no recibiera respuesta esto significaría que no hay conexión con ese dispositivo. 6.2 Instalación de Voyage GTR 83 voyage: # ping 20.20.20.1 -c 5 PING 20.20.20.1 (20.20.20.1) 56(84) bytes of 64 bytes from 20.20.20.1: icmp_ seq=1 ttl=64 64 bytes from 20.20.20.1: icmp_ seq=2 ttl=64 64 bytes from 20.20.20.1: icmp_ seq=3 ttl=64 64 bytes from 20.20.20.1: icmp_ seq=4 ttl=64 64 bytes from 20.20.20.1: icmp_ seq=5 ttl=64 data. time=0.723 time=0.639 time=0.641 time=0.700 time=0.641 ms ms ms ms ms -- 20.20.20.1 ping statistics -5 packets transmitted, 5 received, 0 % packet loss, time 3998ms rtt min/avg/max/mdev = 0.639/0.668/0.723/0.048 ms voyage: # 6.1.13. Comando ssh Mediante la ejecución de este comando se puede ingresar remotamente a otros equipos conectados a la red. voyage: # ssh 20.20.20.1 The authenticity of host '20.20.20.1 (20.20.20.1)'can't be established. RSA key fingerprint is 44:d6:51:d7:3c:eb:3b:20:30:3e:79:50:57:6f:02:a4. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '20.20.20.1'(RSA) to the list of known hosts. root@20.20.20.1's password: gtr-v106: # En el ejemplo anterior se ingresa a la placa ALIX que tiene como IP la 20.20.20.68 desde una PC. 6.1.14. Comando route Muestra y manipula la tabla de rutas IP. @gtrdesktop: # route -n Kernel IP routing table Destination Gateway 20.20.20.0 0.0.0.0 169.254.0.0 0.0.0.0 0.0.0.0 20.20.20.1 root@gtrdesktop: # 6.2. Genmask 255.255.255.0 255.255.0.0 0.0.0.0 Flags U U UG Metric 0 1000 0 Ref 0 0 0 Use 0 0 0 Iface eth1 eth1 eth1 Instalación de Voyage GTR Para instalar Voyage GTR en una Compact Flash (CF) se introduce la memoria CF en el lector/grabadora de memorias USB y se conecta a una PC con Linux y se ejecuta el script de instalación. Para la instalación se recomienda trabajar como usuario root en la PC; se debe obtener la versión de Voyage GTR junto al script que permite su grabado; ambos se podrían guardar en la carpeta /root/. Ahora se ejecuta el script que permite el grabado de Voyage GTR. 84 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR root@gtrdesktop: # ls grabar-voyage-gtr voyage-gtr-0.5.tar.gz root@gtrdesktop: # bash grabar-voyage-gtr #################################################################### Grabado de la voyage gtr * Fuentes del voyage: /root/voyage-gtr-0.5.tar.gz * Elija si es para alix(2c0/3c1) soekris(4511/4521) wrap(2E/1E): alix * Archivos de configuracion: - - - - - - - Dispositivos encontrados en la PC Disk /dev/sda: 80.0 GB, 80026361856 bytes Disk /dev/sdb: 1008 MB, 1008730112 bytes Disk /dev/sdc: 1039 MB, 1039417344 bytes - - - - - - - !!! cuidado con lo elegido !!! * Seleccione CF, dispositivo (sdx): sdc * Se desea chequear la CF (si|no):si - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Resumen: Fuente: voyage-gtr-0.5.tar.gz Archivos conf: Hardware: alix Dispositivo CF: sdc Chequeo CF: si continuar(si/no)?: si #################################################################### ... buscando particiones montadas ... dispositivo /dev/sdc posee particion /dev/sdc1 montada ... particion /dev/sdc1 fue desmontada - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... se encontro 15860 cilindros en /dev/sdc ... creando la particion /dev/sdc1 ... formateando /dev/sdc1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... montando /dev/sdc1 en /mnt/tmp-voyage ... copiando voyage-gtr-0.3.tar.gz a /mnt/tmp-voyage ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... instalando GRUB ... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... desmontando directorio /mnt/tmp-voyage ... chequeando integridad de la particion ROOT_ FS: clean, 15075/63488 files, 74024/253756 blocks - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ... grabacion finalizada #################################################################### root@gtrdesktop: # Si no se muestra ningún tipo de error o advertencia se puede dar por finalizada la grabación y se puede extraer la CF y desconectar la lectora/grabadora del puerto USB. 6.3 Acceso inicial por puerto serial o por Ethernet 6.3. 85 Acceso inicial por puerto serial o por Ethernet Una vez instalado Voyage en la CF, ésta se coloca en la placa ALIX y se procede al acceso; para esto se usará una PC con Linux y un cable serial nulo; quizás sea necesario un adaptador serial-USB si la PC carece de puerto serial sin encender la placa ALIX, se procede a conectar el cable serial a la PC y a la placa ALIX; en un terminal, como administrador, se ejecuta los siguientes comandos: Con puerto serial: # chmod 777 /dev/ttyS0 # cu -l /dev/ttyS0 -s 38400 Con puerto serial y adaptador serial-USB: # chmod 777 /dev/ttyUSB0 # cu -l /dev/ttyUSB0 -s 38400 Al energizar la placa ALIX, en el terminal se podrá observar como se carga Voyage Linux hasta que se pida el ingreso del usuario y la contraseña; por defecto el usuario es root y la contraseña es voyage. El uso del puerto serial es muy importante porque nos permite ingresar a los equipos sin usar sus interfaces de red y en caso de fallas para observar los problemas en el equipo El puerto Ethernet eth0 de la placa esta configurado por defecto con la IP 11.11.11.1/24; por lo cual en un inicio se puede ingresar por este puerto con ssh. Para ingresar se usará un cable cruzado y una vez que la placa este encendida y cargado el sistema operativo (alrededor de un minuto) se puede hacer: # ssh root@11.11.11.1 Después de esto se pedirá el ingreso de la clave, en éste caso inicial será voyage. 6.4. Edición de archivos La partición donde se instala Voyage GTR inicialmente carga en modo lectura. voyage: # mount rootfs on / type rootfs (rw) none on /sys type sysfs (rw) none on /proc type proc (rw) udev on /dev type tmpfs (rw) /dev/disk/by-label/ROOT_ FS on / type ext2 (ro,noatime) /dev/disk/by-label/ROOT_ FS on /dev/.static/dev type ext2 (rw) tmpfs on /lib/init/rw type tmpfs (rw,nosuid) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec) tmpfs on /rw type tmpfs (rw) voyage: # Para editar los archivos y carpetas se debe pasar el sistema al modo escritura; cuando acabe se debe regresar el sistema al modo escritura. voyage: # remountrw ... ...editar archivos ... voyage: # remountro 86 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR 6.5. Estructura de archivos de Voyage GTR Un sistema operativo por más que se cargue en modo lectura necesita crear archivos temporales y rescribir o crear archivos; la partición donde está instalada Voyage GTR pertenece a la CF y es la se que carga en modo lectura. Voyage:/# ls -l total 101 -rwxr-xr-x 1 root root 9743 Jun 29 -rwxr-xr-x 1 root root 20711 Jun 22 drwxr-xr-x 2 root root 2048 Jul 22 drwxr-xr-x 3 root root 1024 Jul 15 drwxr-xr-x 13 root root 12860 Apr 24 drwxr-xr-x 65 root root 3072 Apr 24 drwxr-xr-x 3 root root 1024 Jul 22 drwxr-xr-x 2 root root 1024 Jun 28 lrwxrwxrwx 1 root root 33 May 8 -2.6.23-486-voyage lrwxrwxrwx 1 root root 33 May 8 ->boot/initrd.img-2.6.23-486-voyage drwxr-xr-x 12 root root 3072 Jul 15 drwx------ 2 root root 12288 Jul 15 drwxr-xr-x 2 root root 1024 Jun 28 drwxr-xr-x 2 root root 1024 Oct 28 drwxr-xr-x 4 root root 1024 Jul 22 dr-xr-xr-x 44 root root 0 Dec 31 drwxr-xr-x 8 root root 1024 Apr 24 lrwxrwxrwx 1 root root 8 May 8 drwxr-xr-x 8 root root 160 Apr 24 drwxr-xr-x 2 root root 3072 Jul 22 drwxr-xr-x 2 root root 1024 Jun 28 drwxr-xr-x 10 root root 0 Dec 31 -rw-r-r--- 1 root root 352 Jul 11 lrwxrwxrwx 1 root root 7 May 8 drwxr-xr-x 10 root root 1024 Apr 24 drwxr-xr-x 7 root root 1024 Jul 1 lrwxrwxrwx 1 root root 30 May 8 -2.6.23-486-voyage lrwxrwxrwx 1 root root 30 May 8 ->boot/vmlinuz-2.6.23-486-voyage -rw-r-r--- 1 root root 11213 Jun 29 -rw-r-r--- 1 root root 17239 Jun 29 -rw-r-r--- 1 root root 3165 Jun 29 -rw-r-r--- 1 root root 96 Apr 24 -rw-r-r--- 1 root root 54 Apr 24 voyage:/# 2008 2008 2008 2008 16:06 17:17 2008 2008 2009 CHANGELOG README bin boot dev etc home initrd initrd.img ->boot/initrd.img 2009 initrd.img-2.6.23-486-voyage 2008 2008 2008 2006 2008 1999 14:58 2009 14:58 2008 2008 1999 2008 2009 14:53 2008 2009 lib lost+found media mnt opt proc ro root ->/rw/root rw sbin srv sys test.conf tmp ->/rw/tmp usr var vmlinuz ->boot/vmlinuz 2009 vmlinuz-2.6.23-486-voyage 2008 2008 2008 16:06 20:27 voyage.depends.list voyage.dpkg-l voyage.dpkg.list voyage.gtr.variables voyage.gtr.version Pero la carpeta /rw está contenida en un espacio delimitado (hasta 32MB) de la RAM del sistema, por tanto está en modo escritura; por lo que en este espacio se podrá editar los archivos que se encuentren aquí y también crear o eliminar archivos; pero al estar en RAM se perderá la información después de un reinicio. 6.6 Guardar archivos o carpetas de /rw voyage:/var# ls -l total 5 drwxr-xr-x 2 root drwxr-xr-x 6 root drwxr-xr-x 16 root drwxrwsr-x 2 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root drwxr-xr-x 2 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root lrwxrwxrwx 1 root voyage:/var# root root root staff root root root root root root root 1024 1024 1024 1024 12 11 12 1024 11 13 11 87 Apr Jul Apr Oct May May May Jun May May May 24 18:00 backups 15 2008 cache 24 11:40 lib 28 2006 local 8 2009 lock ->/rw/var/lock 8 2009 log ->/rw/var/log 8 2009 mail ->/rw/var/mail 28 2008 opt 8 2009 run ->/rw/var/run 8 2009 spool ->/rw/var/spool 8 2009 tmp ->/rw/var/tmp Por ejemplo /root, /var/log, /var/spool están ubicados físicamente en /rw pero que es sí son /rw/root, /rw/var/log, /rw/var/spool respectivamente; por tanto /root, /var/log, /var/spool son enlaces a estas carpetas. Cuando el sistema reinicia se perderá /rw/root, /rw/var/log, /rw/var/spool y todo lo modificado o creado en estas carpetas; entonces para crear de nuevo estas carpetas, se tiene a /ro; todo lo que está en /ro se copiará a /rw, por tanto una vez que el sistema levante los enlaces /root, /var/log, /var/spool estarán apuntando de nuevo a /rw/root, /rw/var/log, /rw/var/spool; lo creado o modificado en éstas carpetas antes del reinicio se perderá en /ro no se guarda directamente los cambios hechos en estas carpetas; por tanto lo que se copie de /ro a /rw sólo será la estructura inicial. voyage:/rw# ls -l total 0 drwxr-xr-x 2 root drwxr-xr-x 4 root drwxr-xr-x 2 root drwxrwxrwt 2 root drwxr-xr-x 2 root drwxr-xr-x 9 root voyage:/rw# voyage: # cd /ro/ voyage:/ro# ls -l total 6 drwxr-xr-x 2 root drwxr-xr-x 4 root drwxr-xr-x 2 root drwxrwxrwt 2 root drwxr-xr-x 2 root drwxr-xr-x 9 root voyage:/ro# 6.6. root 40 Jun 29 2008 dev root 140 Apr 24 16:28 etc root 140 Apr 24 22:40 root root 40 Dec 31 1999 tmp root 40 Jun 29 2008 usr root 180 Jun 29 2008 var root root root root root root 1024 1024 1024 1024 1024 1024 Jun Apr Jul Jun Jun Jun 29 2008 dev 24 16:28 etc 23 2008 root 29 2008 tmp 29 2008 usr 29 2008 var Guardar archivos o carpetas de /rw Todo lo modificado o creado en /rw se perderá después de un reinicio; pero existe la posibilidad de guardar estas modificaciones; en el archivo /etc/voyage.conf, específicamente en la variable VOYAGE_ SYSTEM_ SYNCDIRS se indica que carpeta o carpetas (por ende su contenido) se desea guardar; en la variable VOYAGE_ SYSTEM_ SYNCFILES se indica que archivo o archivos se desea guardar. Debe descomentar 88 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR estas variables si se van a usar. Una vez que reinicia el equipo todo el contenido de las carpetas o archivos seleccionados para guardar se guardarán, incluyendo su contenido, en /ro; cuando el sistema cargue después del reinicio, en /rw estará lo guardado. voyage: # cat /etc/voyage.conf # # This file generated automatically by copyfiles.sh # on Tue Jul 15 15:40:18 PET 2008 # VOYAGE_ PROFILE=ALIX VOYAGE_ SYSTEM_ CONSOLE=serial # VOYAGE_ SYSTEM_ SYNCDIRS=/var/log" # VOYAGE_ SYSTEM_ SYNCFILES=/var/log/syslog /var/log/kern.log" VOYAGE_ SYSTEM_ SERIAL=38400 VOYAGE_ SYSTEM_ PCMCIA=no VOYAGE_ SYSTEM_ MODULES=”lm90; w83627hf; scx200_ acb base=0x810,0x820; geodewdt; led-class; leds-alix; ledtrig-heartbeat; ledtrig-timer" SYSTEM_ BOOTSTRAP=grub Voyage: # Si ya no se desea seguir guardando se comenta de nuevo las variables. 6.7. Configuración previa a cualquier aplicación en Voyage GTR Dar nombre al equipo, editar /etc/hostname; el nombre del equipo no debe contener puntos ni espacios en blanco o caracteres extraños. voyage: # cat /etc/hostname voyage voyage: # Dar una clave al sistema voyage: # passwd Si el equipo no va a ser un servidor de tiempo, se puede indicar un servidor o servidores NTP editando la variable NTPSERVERS. voyage: # cat /etc/default/ntpdate ... # NTPSERVERS=”0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian .pool.ntp.org 3.debian.pool.ntp.org" NTPSERVERS=”200.16.6.80" ... Configurar el reinicio del equipo; editar el archivo /etc/cron.d/reboot-board y descomentar la opción de reinicio aleatorio de entre las 4 y 4:30 horas cada sábado o reinicio a las 4 horas todos los días. También se puede configurar uno particular. 6.8 Obtención de respaldo de la configuración de las aplicaciones en Voyage GTR 89 voyage: # cat /etc/cron.d/reboot-board PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # min hour dom month dow user command #0 4 6 root (sleep `echo $(( $RANDOM / 20 ))` ; reboot) * * #0 4 * * * root reboot voyage: # 6.8. Obtención de respaldo de la configuración de las aplicaciones en Voyage GTR Para sacar un respaldo de la configuración hecha en Voyage GTR se debe indicar que archivo o carpeta se debe respaldar; esto se indica en el archivo de configuración /etc/backup.list; originalmente éste archivo contiene una lista de los archivos y/o carpetas que deberían ser respaldados; si en esta lista no se encuentra una carpeta o archivo en particular se adiciona línea por línea. Después se ejecuta el script mgbackup con la opción backup: red-sur: # mgbackup backup ... 32: guardando /etc/default/snmpd 33: guardando /etc/snmp 34: guardando /etc/quagga/daemons 35: guardando /etc/quagga/ospfd.conf 36: guardando /etc/quagga/zebra.conf 37: guardando /etc/uya/passwd ... finalizado respaldo ... solo guarde el /opt/backup-conf-red-sur.tar.gz red-sur: # Si no se muestra error en la creación del respaldo, se creará en /opt un archivo comprimido con el nombre del equipo. Después de la creación del respaldo, el sistema regresar al modo lectura. La opción Archivos de configuración mostrada al ejecutar el script que permite el grabado de Voyage GTR en la CF, se utilizará para indicar el archivo de respaldo (obtenido antes) que se copiará en esta grabación de Voyage GTR; es decir Voyage GTR que se obtendrá aquí será idéntica en configuración de Voyage GTR de donde se sacó el respaldo. 6.9. Verificación del estado de Voyage GTR 6.9.1. Espacio ocupado y disponible Dependiendo del tipo de router se debe observar el espacio disponible en el disco total y en las particiones críticas. Normalmente es necesario que se tenga al menos la mitad de espacio disponible en cada partición, si se tiene ocupando más de la mitad, se debe eliminar archivos innecesarios y vigilar. Anotar: Espacio ocupado y disponible de las particiones críticas del equipo. En el router GTR se tiene dos particiones críticas que son la /ro y /rw. 90 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR voyage: # df -l Filesystem 1K-blocks Used Available Use % Mounted on rootfs 998808 272816 675256 29 % / udev 10240 20 10220 1 % /dev /dev/disk/by-label/ROOT_ FS 998808 272816 675256 29 % / /dev/disk/by-label/ROOT_ FS 998808 272816 675256 29 % /dev/.static/dev tmpfs 63384 0 63384 0 % /lib/init/rw tmpfs 63384 0 63384 0 % /dev/shm tmpfs 32768 664 32104 3 % /rw voyage: # 6.9.2. RAM libre y CPU desocupado en un instante Esto dará una idea de cuanta RAM o CPU se está usando en el equipo para prevenir un uso excesivo de los recursos del sistema. Si se tiene un uso alto se debe seguir vigilando para asegurarse que quizás sólo sea un instante donde muchas aplicaciones estén con mucho trabajo. En un diseño no puede estar contemplado una carga alta y constante por mucho tiempo, si esto sucede se debe buscar las aplicaciones que causan el excesivo consumo o quizás reiniciar el equipo para regresar al estado normal. El uso excesivo se da generalmente en pocos instantes y con poca duración, en este instante se puede llegar a más de 60 % de RAM y casi 100 % de CPU; pero en el resto del tiempo generalmente se debe tener un consumo de alrededor de 20 % de RAM; y el CPU debe estar casi en 90 % si uso. Anotar: RAM libre en un instante de trabajo normal. CPU desocupado en un instante de trabajo normal. gtr-v106: # free total used free Mem: 126768 47564 79204 -/+ buffers/cache: 19812 106956 Swap: 0 0 0 gtr-v106: # shared 0 buffers 2604 cached 25148 gtr-v106: # top top - 15:01:42 up 10:43, 1 user, load average: 0.01, 0.02, 0.00 Tasks: 34 total, 1 running, 33 sleeping, 0 stopped, 0 zombie Cpu(s): 1.3 %us, 1.0 %sy, 0.0 %ni, 95.4 %id, 0.0 %wa, 0.3 %hi, 2.0 %si, 0.0 %st Mem: 126768k total, 68964k used, 57804k free, 2800k buffers Swap: 0k total, 0k used, 0k free, 45956k cached ... 6.9.3. Fecha del sistema y último reinicio Tomar la fecha del sistema para saber si está sincronizando o no con el servidor de tiempo. Se recomienda que esté sincronizado; si no lo está por motivos de red se podría fijar la fecha manualmente. Además se debe evaluar el correcto reinicio programado del router, se puede evaluar observando el último reinicio del equipo. Anotar: Fecha del sistema. Fecha del último reinicio del sistema. 6.9 Verificación del estado de Voyage GTR gtr-v106: # date Fri May 8 15:05:18 PET 2009 gtr-v106: # gtr-v106: # date -set "05/11/09 14:51" voyage: # uptime 14:29:10 up 10:10, 1 user, load average: 0.00, 0.00, 0.00 voyage: # 91 92 CAPÍTULO 6. CONFIGURACIÓN E INSTALACIÓN DE VOYAGE GTR 7 Con guración de Redes con Voyage GTR 7.1. Interfaces de Red Para empezar a configurar las interfaces de red se debe asegurar que el sistema reconozca los dispositivos; para esto se puede hacer: voyage: # lspci 00:01.0 Host bridge: Advanced Micro Devices [AMD] Unknown device 2080 (rev 33) 00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block 00:09.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96) 00:0b.0 Ethernet controller: VIA Technologies, Inc. VT6105M [Rhine-III] (rev 96) 00:0c.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01) 00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03) 00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01) 00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02) 00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02) voyage: # Además se debe asegurar que el sistema disponga de los controladores para estos dispositivos, aunque esto ya se ha hecho al implementar Voyage Gtr; se puede observar en /var/log/syslog una vez que el sistema este cargado. 93 94 CAPÍTULO 7. CONFIGURACIÓN DE REDES CON VOYAGE GTR voyage: # voyage: # cat /var/log/syslog |grep wifi May 20 15:40:16 voyage kernel: wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps May 20 15:40:16 voyage kernel: wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps May 20 15:40:16 voyage kernel: wifi0: turboG rates: 6Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps May 20 15:40:16 voyage kernel: wifi0: H/W encryption support: WEP AES AES_CCM TKIP May 20 15:40:16 voyage kernel: wifi0: mac 5.9 phy 4.3 radio 4.6 May 20 15:40:16 voyage kernel: wifi0: Use hw queue 1 for WME_AC_BE traffic May 20 15:40:16 voyage kernel: wifi0: Use hw queue 0 for WME_AC_BK traffic May 20 15:40:16 voyage kernel: wifi0: Use hw queue 2 for WME_AC_VI traffic May 20 15:40:16 voyage kernel: wifi0: Use hw queue 3 for WME_AC_VO traffic May 20 15:40:16 voyage kernel: wifi0: Use hw queue 8 for CAB traffic May 20 15:40:16 voyage kernel: wifi0: Use hw queue 9 for beacons May 20 15:40:16 voyage kernel: wifi0: Atheros 5212: mem=0xe0080000, irq=9 voyage: # voyage: # cat /var/log/syslog |grep eth May 20 15:40:16 voyage kernel: eth0: VIA Rhine III (Management Adapter) at 0xe0000000, 00:0d:b9:16:e7:9c, IRQ 10. May 20 15:40:16 voyage kernel: eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1. May 20 15:40:16 voyage kernel: eth1: VIA Rhine III (Management Adapter) at 0xe0040000, 00:0d:b9:16:e7:9d, IRQ 12. May 20 15:40:16 voyage kernel: eth1: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000. May 20 15:40:16 voyage kernel: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1 May 20 15:40:28 voyage kernel: eth0: no IPv6 routers present voyage: # 7.2. Configuración de las interfaces de red Los archivos de configuración están editados con una plantilla que se puede modificar o adicionar rápidamente. En el archivo /etc/network/interfaces se especifica la configuración de las interfaces de red. En este archivo no se pone la ruta por defecto, eso se hará en /etc/network/natstatic-routes. 7.2.1. Configuración de Ethernet y de Bridge Ethernet Para configurar las interfaces Ethernet se descomenta las líneas correspondientes y se cambiará la IP/Máscara de red si es necesario. auto eth0 iface eth0 inet static address 10.10.10.1 netmask 255.255.255.240 #auto eth1 #iface eth1 inet static #address 11.11.11.1 #netmask 255.255.255.0 7.2 Configuración de las interfaces de red 95 Si se desea crear bridge, sólo se podrá hacer entre las Ethernet; se debe descomentar el bloque del bridge y poner la IP/Máscara de red; además la configuración de las interfaces involucradas deben ser comentadas. auto br0 iface br0 inet static address 11.11.10.1 netmask 255.255.255.0 bridge_ports eth0 eth1 bridge_stp off bridge_maxwait 5 7.2.2. Configuración de las interfaces WiFi La configuración implica los siguientes pasos: Elección si es AP ó STA. Configuración parámetros WiFi Establecer seguridad Configuración de la IP/MASK Si es AP se descomenta las líneas: #--ap ath_parent wifi0 ath_vaptype ap Si es STA se descomenta las líneas: #--cliente ath_parent wifi0 ath_vaptype sta #ath_vapopts nosbeacon Sólo en el caso de que en una placa se mezclen AP y STA la línea #ath_vapopts nosbeacon del STA deberá ser descomentada. Algunos parámetros WiFi son obligatorios, se cambiará de valor según sea necesario. #--otros parametros wifi ath_distance 19800 está en metros, cada interfaz de un mismo enlace debe estar configurado con la misma distancia; si se tiene varios STA se coloca la distancia más larga que existe entre el AP y el STA (NOB) ath_diversity 0 puede ser 1 habilitado o 0 deshabilitado) (NOB) ath_txantenna 1 puede ser 1 o 2; se refiere al conector de la tarjeta inalámbrica donde será conectado la antena para transmitir; si ath_diversity es 1 no interesa su valor ath_rxantenna 1 puede ser 1 o 2; si ath_diversity es 1 no interesa su valor ath_txpower 23 está dado dBm, si se pone debe ser un valor valido, puede ser de 0 a 30, se debe conocer antes según la tarjeta inalámbrica (NOB) 96 CAPÍTULO 7. CONFIGURACIÓN DE REDES CON VOYAGE GTR ath_wirelessmode 11g puede ser 11a o 11g (OB) ath_ssid EHAS1 nombre de la red (OB) ath_channel 11 puede ser 1 al 11 en 2.4GHz o 36 al 160 en 5.8GHz (OB si es AP) ath_rate 9M puede ser 6M, 9M, 12M ... 54M (NOB) (NOB: no obligatorio, OB: obligatorio) Para la seguridad; se puede elegir si se usa WEP o WPA-PSK; si se usa WEP aquí se pone la clave que debe ser en hexadecimal; si se usa WPA2-PSK se descomenta el bloque respectivo si es STA o AP; y se debe editar el archivo mencionado donde se cambiara el nombre de la red y la clave WPA2-PSK. Si se usa WEP; se habilita y además se configura la clave; se elige 10 números hexadecimales (WEP de 64b) o 26 (WEP de 128b). #--seguridad wep ath_security wep ath_wep_key1 12345ABCDE Si se usa WPA2-PSK en una AP se habilita: #--seguridad wpa-psk ap ath_security wpa2 ath_wpa_cfgfile /etc/hostapd/hostapd-ath0.conf Si se usa WPA2-PSK en una STA se habilita: #--seguridad wpa-psk sta wpa_driver madwifi wpa_conf /etc/wpa_supplicant/wpasupplicant-ath0.conf Por último se configura la IP y la Máscara de red de la interfaz. #--ip y netmask address 10.10.1.2 netmask 255.255.255.240 Si se ha elegido seguridad WPA2-PSK además de habilitar las opciones se debe editar los archivos adicionales; donde sólo se cambiará el nombre de la red y la clave WPA2-PSK (en caracteres y debe ser desde 8 a 63 caracteres). Existe un archivo plantilla para cada interfaz dependiendo si es STA o AP. Si se está configurando un cliente que es ath0 entonces se edita /etc/wpa_supplicant/wpasupplicant-ath0.conf y se cambia el ESSID y la clave WPA2-PSK. ... ssid="LOCAL0" scan_ssid=1 ... priority=10 psk="gtrcaswifi" #psk=70df87c28aee0e42b49f55450df0f822200933ff3968406176fbcd41eb9a8a72 Si se esta configurando un AP que es ath2 entonces se edita /etc/hostapd/hostapd-ath2.conf y se cambia el ESSID y la clave WPA2-PSK. ... ssid=LOCAL2 ... wpa_passphrase=gtrcaswifi 7.3 Configuración del enrutamiento estático, gateway y NAT 97 Para activar los cambios realizados se ejecuta /etc/init.d/networking restart además se actualiza la configuración hecha /etc/network/statics-routes-nat. 7.3. Configuración del enrutamiento estático, gateway y NAT Para poner en la ruta por defecto, NAT o rutas estáticas se usa el archivo /etc/network/nat-static-routes, donde se encuentran variables que serán habilitadas según el uso. Si el equipo debe tener una ruta por defecto se habilita la variable DEFAULT_GW, y se pone la dirección IP de la ruta por defecto (gateway). DEFAULT_GW="10.13.1.2" Si se desea adicionar rutas estático se habilitando la variable ROUTEX (donde X es 1,2,3...100) y en cada una se pone la red, la máscara de red y la salida por donde se accederá a esta red; además se pone la métrica. ROUTE1="10.14.1.0/28 10.13.1.2 1" Si se adiciona otra ruta se van adicionando variables numeradas. Esta limitado hasta 100 variables. ROUTE2="10.15.1.0/28 ROUTE3="10.15.1.0/28 ROUTE4="10.15.1.0/28 .... 10.13.1.2 10.13.2.2 10.13.3.2 1" 1" 1" Para NAT sólo se optara por habilitar o no habilitar; si se habilita se descomenta la variable DEFAULT_NAT y se elige la interfaz que hará de NAT en el equipo. DEFAULT_NAT= “eth1” Al ejecutar /etc/init.d/networking restart se actualiza la configuración hecha en /etc/network/interfaces y en /etc/network/statics-routes-nat. Si se va a usar OSPF, se recomienda configurar las rutas estáticas en zebra.conf y no hacerlo en este archivo. 7.4. Configuración del enrutamiento dinámico con OSPF Para la enrutamiento con OSPF los archivos usados son: curco-2n2:/etc/quagga# ls daemons ospfd.conf zebra.conf .... Para los comentarios en zebra.conf y ospfd.conf se usa el símbolo ! En /etc/quagga/daemons se pone en yes si se desea usar OSPF. 98 CAPÍTULO 7. CONFIGURACIÓN DE REDES CON VOYAGE GTR ..... zebra=yes bgpd=no ospfd=yes ospf6d=no ripd=no ripngd=no isisd=no En zebra.conf; antes de todo se pone un nombre que podría ser el mismo que en ospfd.conf. Hostname ospf-voyage Se habilita las interfaces involucradas en el enrutamiento; se descomenta el bloque respectivo. Además se puede cambiar el ancho de banda, por defecto esta en 10MB. interface ath0 bandwidth 10000000 ipv6 nd suppress-ra Si este equipo pertenece a una red OSPF y está conectado a un equipo vecino que no pertenece a una red OSPF y además existe redes detrás de este equipo vecino; entonces si se quiere que la red OSPF acceda a éstas redes; entonces en éste archivo de debe especificar la ruta para llegar a esa red indicando por donde se llegaría y además de la distancia. En resumen se está adicionadas rutas estáticas en una red OSPF. ip route 10.14.1.0/28 10.13.1.2 1 Si hay más redes se debe adicionar más líneas de estas ip ip route route 10.14.2.0/28 10.14.3.0/28 10.15.1.2 10.15.1.2 1 1 Aquí también se puede poner la ruta por defecto del equipo; pero será mejor hacerlo en /etc/network /nat-static-routes. Para la configuración en si del OSPF se edita el archivo /etc/quagga/ospfd.conf. Se pone un nombre. hostname ospf-voyage Se debe habilitar las interfaces involucradas descomentando los bloques respectivos; además se debe poner un costo (valor entero), para que no se use el ancho de banda configurado en zebra.conf. interface ath2 ip ospf cost 10 Ahora se debe especificar el identificador del equipo en la red OSPF, es importante este valor y debe ser distinto en la red OSPF (al menos en una misma área). ospf router-id 0.0.1.2 Ahora se debe poner las redes locales involucradas en la red OSPF; indicando Red/Máscara y el área al cual pertenece. 7.5 Configuración del DHCP network network network network 10.10.1.0/28 10.10.2.0/28 10.11.1.0/28 10.21.1.0/28 99 area area area area 0.0.0.0 0.0.0.0 0.0.0.1 0.0.0.2 Si este equipo es el límite entre áreas OSPF se debe indicar las redes que están el área que no sea el cero. area area area area 0.0.0.1 0.0.0.1 0.0.0.2 0.0.0.2 range range range range 10.11.0.0/16 10.12.0.0/16 10.21.0.0/16 10.22.0.0/16 Si al equipo se le ha adicionado rutas estáticas (zebra.conf); entonces se debe especificar como se debe publicar estas rutas a la red OSPF; para esto se descomenta la siguiente línea especificando la métrica y el tipo; si no se desea publicar estas rutas estáticas se deja comentada la línea. redistribute static metric 10 metric-type 1 Si se ha configurado una puerta de salida equipo (/etc/network/nat-static-routes); entonces se debe especificar como se debe publicar en la red OSPF. Para esto se descomenta una de las siguientes líneas: default-information originate metric 10 metric-type 1 ! default-information originate always metric 10 metric-type 1 La diferencia está en always; con éste los routers tendrán una ruta por defecto este configurado o no en el router que lo publica; sin always los routers tendrán una ruta por defecto mientras este configurado en el router que lo publica. Al ejecutar /etc/init.d/quagga stop y /etc/init.d/quagga start se actualiza los cambios del enrutamiento. Si una vez que OSPF ya está trabajando se hace /ect/init.d/networking restart lo del OSPF se perderá, para activar de nuevo se debe ejecutar /etc/init.d/quagga restart. 7.5. Configuración del DHCP Para habilitar el servicio en el arranque; se debe poner yes en la variable RUNDNSMASQ en el archivo /etc/default/dnsmasq. El archivo de configuración es /etc/dnsmasq.conf; en este archivo se especifica: a) La interfaz por donde se brindará este servicio. interface=br0 b) El rango de IP (inicio-final) y la Máscara de red; además del tiempo de asignación de la IP. dhcp-range=192.168.114.7,192.168.114.14,255.255.255.240,24h c) La ruta por defecto de los equipos clientes. dhcp-option=3,192.168.114.1 100 CAPÍTULO 7. CONFIGURACIÓN DE REDES CON VOYAGE GTR Para completar se debe especificar los DNS que usará este servicio; para esto se descomenta los DNS en /etc/resolv.conf los que se necesite. Para activar el servicio se ejecuta /etc/init.d/dnsmasq restart. 7.6. Configuración de interfaces WiFi y de parámetros TCP/IP mediante comandos Crear la interfaz ath0 como AP nodo-a: # wlanconfig ath0 create wlandev wifi0 wlanmode ap Crear la interfaz ath0 como STA nodo-a: # wlanconfig ath0 create wlandev wifi0 wlanmode sta Activar la interfaz ath0 nodo-a: # ifconfig ath0 up Configurar al modo 802.11g a ath0 (3 → g; 1 → a, 2 → b) nodo-a: # iwpriv ath0 mode 3 Desactivar la diversidad y activar la RX y TX por el conector principal; para la ath0 (wifi0) nodo-a: # echo 0 >/proc/sys/dev/wifi0/diversity nodo-a: # echo 1 >/proc/sys/dev/wifi0/txantenna nodo-a: # echo 1 >/proc/sys/dev/wifi0/rxantenna Configurar el ESSID, canal, velocidad de TX, clave WEP de 64bits y limitar la potencia de TX nodo-a: # iwconfig ath0 essid PUCP channel 11 rate 12M key aabbccddee txpower 10 Configurar la distancia (en metros) del enlace nodo-a: # athctrl -i wifi0 -d 1000 Configurar la IP/MASK de la interfaz ath0 nodo-a: # ifconfig ath0 12.12.12.1 netmask 255.255.255.0 Configurar la IP/MASK de la interfaz eth0 nodo-a: # ifconfig eth0 10.10.1.1 netmask 255.255.255.0 Configurar la IP/MASK de la interfaz eth1 7.6 Configuración de interfaces WiFi y de parámetros TCP/IP mediante comandos 101 nodo-a: # ifconfig eth1 192.168.1.2 netmask 255.255.255.0 Configurar una puerta de salida nodo-a: # route add default gw 192.168.1.1 Configurar una ruta nodo-a: # route add -net 10.10.2.0/24 gw 12.12.12.2 metric 10 Configurar NAT sobre eth1 nodo-b: # iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE Si se desea configurar DNS se debe indicar en /etc/resolv.conf. Si una interfaz está como STA y se desea pasar a modo AP (o al revés), antes se debe deshabilitar la interfaz lógica creada, así: nodo-a: # wlanconfig ath0 destroy y después se creará la interfaz lógica: nodo-a: # wlanconfig ath0 create wlandev wifi0 wlanmode ... Para eliminar rutas no deseadas se puede hacer: nodo: # route del -net 192.168.20.0/24 gw 10.10.1.2 Para anular toda entrada de la tabla NAT se hace: nodo: # iptables -t nat -F Se debe recordar que se está trabajando con comandos; después de un reinicio se perderá la configuración. 102 CAPÍTULO 7. CONFIGURACIÓN DE REDES CON VOYAGE GTR 8 Veri cación del Estado de la Red de Datos Como se ha comentado ampliamente en 1.4, con la tecnología WiLD se puede llega a construir grandes redes de datos. Estas se encuentran compuestas de redes troncales y de distribución. Una red troncal consiste tradicionalmente en líneas relativamente largas que recogen y reparten el tráfico a las zonas de distribución situadas en pequeñas poblaciones. En la figura 8.1 se puede apreciar la red troncal de color negro y la red de distribución de color rojo. Tomando como base el escenario presentado, a continuación se detalla las medidas de verificación de buen estado, que debe realizarse en una red instalada con routers con sistema operativo Voyage GTR. Figura 8.1: Redes Troncal y de Distribución 103 104 CAPÍTULO 8. VERIFICACIÓN DEL ESTADO DE LA RED DE DATOS 8.1. Conectividad en enlaces AP-STA Se debe de tener en cuenta que en una conexión a realizar puede llegar a existir uno o varios AP (Master) ó STA (Managed o Cliente), sin importar si este enlace pertenece a la red troncal o de distribución. Este tipo de configuración lo realiza el Router Inalámbrico. Figura 8.2: Enlace AP-STA 8.1.1. Nivel de señal del enlace y relación de la calidad del enlace Para analizar un enlace se debe saber que interfaces están involucradas y quien es Master (AP) y Managed (STA); podemos comprobar el enlace directamente usando el comando iwconfig; pero si se tiene una interfaz Managed entonces se puede escanear los AP (Master) de sus alrededores y observar el AP al que debería conectarse. En el cuadro de abajo se observa que la red PUCP está activa, posee seguridad (probablemente WEP), está trabajando en el canal 11 y se tiene una buena señal de recepción que es alrededor de 72dBm (con link Quality 23/94). nodo-b: # iwlist ath0 scan ath0 Scan completed : Cell 01 - Address: 00:0C:42:18:F7:74 ESSID:“PUCP” Mode:Master Frequency:2.462 GHz (channel 11) Quality=23/94 Signal level=-72 dBm Noise level=-95 dBm Encryption key:on Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Extra:bcn_int=100 Extra:wme_ie=dd180050f2020101830002a3400027a4000042435e Extra:ath_ie=dd0900037f010100240000 Estos parámetros representan la calidad del enlace. En largas distancias se puede asumir que se debe lograr un nivel de entre -65dBm y -75dBm con una calidad (Link Quality) de unos 20dB; si se tiene un nivel por debajo de -75dBm hasta -80dBm el enlace estará muy inestable y tendrá un rendimiento bajo. Tomar nota por cada router del enlace: Nivel de señal del enlace 8.1 Conectividad en enlaces AP-STA 105 Calidad del enlace nodo-b: # iwconfig ath0 ath0 IEEE 802.11g ESSID:"PUCP"Nickname: Mode:Managed Frequency:2.462 GHz Access Point:00:0C:42:18:F7:74 Bit Rate=12 Mb/s Tx-Power=10 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:AABB-CCDD-EE Security mode:restricted Power Management:off Link Quality=22/94 Signal level=-73 dBm Noise level=-95 dBm Rx invalid nwid:241 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 nodo-a: # iwconfig ath1 ath1 Link encap:Ethernet HWaddr 00:0C:42:18:F7:74 Mode:Master Frequency:2.462 GHz Access Point:00:0C:42:18:F7:74 Bit Rate=12 Mb/s Tx-Power=10 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:AABB-CCDD-EE Security mode:restricted Power Management:off Link Quality=26/94 Signal level=-70 dBm Noise level=-96 dBm Rx invalid nwid:84237 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 En los nodos Managed se observa la MAC del AP, con esto se puede asegurar que existe enlace entre el STA y el AP; además se observa nivel aceptable de 70dBm (con un link quality de 25/94 aprox.). Además con el resultado de ésta información se debe verificar el nombre la red WiFi, el canal, la potencia configurada, la velocidad máxima, y la seguridad apoyada de otros archivos. Con el siguiente comando se observará las potencias configurables en las tarjetas inalámbricas; por ejemplo este resultado corresponde a una SR2 de Ubiquiti (posee un offset de 10dBm). nodo-b: # iwlist ath0 txpower ath0 8 available transmit-powers : 0 dBm (1 mW) 4 dBm (2 mW) 6 dBm (3 mW) 8 dBm (6 mW) 10 dBm (10 mW) 12 dBm (15 mW) 14 dBm (25 mW) 16 dBm (39 mW) Current Tx-Power:10 dBm (10 mW) Si se ha anulado la diversidad en una interfaz y se ha configurada el conector principal (Main) para transmitir y recibir, se debe observar: nodo-b: 0 nodo-b: 1 nodo-b: 1 nodo-b: # cat /proc/sys/dev/wifi0/diversity # cat /proc/sys/dev/wifi0/txantenna # cat /proc/sys/dev/wifi0/rxantenna # 106 CAPÍTULO 8. VERIFICACIÓN DEL ESTADO DE LA RED DE DATOS 8.1.2. Cantidad de clientes conectados al AP Según el diseño se debe comprobar que todos los clientes estén conectados al AP. Anotar la cantidad de clientes conectados al AP. voyage: # cat /proc/net/Madwifi/ath0/associated_sta 8.1.3. Corrección del alineamiento de las antenas En un enlace de larga distancia (punto a punto o punto a multipunto) uno de los objetivos grandes a cumplir es dejar las antenas alineadas lo mejor posible. En enlaces punto a punto es probable que se usen antenas directivas. En enlaces punto multipunto lo más probable es que se use antenas sectoriales; en este caso se puede empezar apuntando la antena sectorial a la bisectriz del arco formado por el conjunto de antenas con el que se desea establecer enlace. Para alinear las antenas se necesita inicialmente conocer el ángulo de elevación y el azimut y encontrar la mejor posición apoyados por medio de un alineador de antenas externo; pero para lograr mayor precisión se puede usar las herramientas de los equipos a instalar; en este caso; se puede usar el comando iwconfig para poder corregir el alineamiento de las antenas de un enlace. Si por ejemplo; en un enlace punto a punto de unos 40Km con tarjetas de 400mW y antenas directivas de 24dBi en ambos puntos; se obtiene un nivel de señal de -91dBm (que es muy cerca al nivel de ruido de -94dBm) y una calidad del enlace de 3; no se podrá establecer ningún enlace; se tendría que corregir el alineamiento de las antenas. nodo-c: # iwconfig ath0 ath0 IEEE 802.11g ESSID:ÇUSCO2"Nickname: Mode:Managed Frequency:2.417 GHz Access Point:Not-Associated Bit Rate=6 Mb/s Tx-Power=off Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:6375-7363-6F Security mode:restricted Power Management:off Link Quality=3/94 Signal level=-91 dBm Noise level=-94 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 Si al mejorar el alineamiento se tiene un nivel de alrededor -84dBm con una calidad de 12 se logrará tener enlace; pero al tener un nivel muy bajo será muy inestable. Abajo se muestra que existe demasiada pérdida de paquetes y un rendimiento bajo. nodo-c: # iwconfig ath0 ath0 IEEE 802.11g ESSID:ÇUSCO2"Nickname: Mode:Managed Frequency:2.412 GHz Access Point:00:0C:42:18:F7:74 Bit Rate=6 Mb/s Tx-Power=off Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:6375-7363-6F Security mode:restricted Power Management:off Link Quality=12/94 Signal level=-84 dBm Noise level=-96 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 8.1 Conectividad en enlaces AP-STA 107 nodo-c: # ping 10.1.2.1 -c 10 PING 10.1.2.1 (10.1.2.1) 56(84) bytes of data. 64 bytes from 10.1.2.1: icmp_seq=2 ttl=64 time=0.624 ms 64 bytes from 10.1.2.1: icmp_seq=4 ttl=64 time=0.588 ms 64 bytes from 10.1.2.1: icmp_seq=5 ttl=64 time=0.596 ms ... -- 10.1.2.1 ping statistics -0 packets transmitted, 4 received, 60 % packet loss, time 9007ms rtt min/avg/max/mdev = 0.588/0.605/0.624/0.028 ms nodo-c: # iperf -c 10.1.2.1 -i 5 -t 15 ---------------------------------------Client connecting to 10.1.2.1, TCP port 5001 TCP window size: 16.0 KByte (default) ---------------------------------------[ 3] local 10.1.2.2 port 3962 connected with 10.1.2.1 port 5001 [ 3] 0.0- 5.0 sec 104 KBytes 170 Kbits/sec [ 3] 5.0-10.0 sec 56.0 KBytes 91.8 Kbits/sec [ 3] 10.0-15.0 sec 104 KBytes 170 Kbits/sec [ 3] 0.0-15.6 sec 272 KBytes 143 Kbits/sec nodo-c: # Si se logra tener un nivel de -71dBm y una calidad de 22; el rendimiento mejorará, y no existirá pérdida de paquetes, al menos en el mayor tiempo. nodo-c: # iwconfig ath0 ath0 IEEE 802.11g ESSID:ÇUSCO2"Nickname: Mode:Managed Frequency:2.412 GHz Access Point:00:0C:42:18:F7:74 Bit Rate=6 Mb/s Tx-Power=off Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:6375-7363-6F Security mode:restricted Power Management:off Link Quality=22/94 Signal level=-71 dBm Noise level=-93 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 nodo-c: # ping 10.1.2.1 -c 10 PING 10.1.2.1 (10.1.2.1) 56(84) bytes of data. 64 bytes from 10.1.2.1: icmp_seq=1 ttl=64 time=1.34 ms 64 bytes from 10.1.2.1: icmp_seq=2 ttl=64 time=0.624 ms 64 bytes from 10.1.2.1: icmp_seq=3 ttl=64 time=0.599 ms ... -- 10.1.2.1 ping statistics -10 packets transmitted, 10 received, 0 % packet loss, time 8999ms rtt min/avg/max/mdev = 0.597/0.795/1.456/0.314 ms nodo-c: # iperf -c 10.1.2.1 -i 5 -t 15 ---------------------------------------Client connecting to 10.1.2.1, TCP port 5001 TCP window size: 16.0 KByte (default) ---------------------------------------[ 3] local 10.1.2.2 port 3962 connected with 10.1.2.1 port 5001 [ 3] 0.0- 5.0 sec 2.73 MBytes 4.97 Mbits/sec [ 3] 5.0-10.0 sec 2.54 MBytes 4.26 Mbits/sec [ 3] 10.0-15.0 sec 1.88 MBytes 3.15 Mbits/sec [ 3] 0.0-15.0 sec 7.15 MBytes 4.00 Mbits/sec nodo-b: # 108 CAPÍTULO 8. VERIFICACIÓN DEL ESTADO DE LA RED DE DATOS Si con estos mismos equipos se está trabajando en enlaces más cortos, de alrededor de 15Km este nivel de recepción obtenido aún se puede mejorar, al menos hasta llegar a -55dBm; pero para enlaces de 40Km con estas tarjetas inalámbricas y antenas directivas, este nivel puede ser lo mejor que se logre. Lograr un aceptable nivel de la señal y calidad del enlace no necesariamente garantiza un buen rendimiento; además se debe observar los tiempos de ping que se hacen y el rendimiento (ver más adelante) que se puede lograr; el resultados de estos esta relacionado con la correcta configuración de la distancia del enlace. Inicialmente se puede dejar configurado el enlace con una distancia obtenida por medio de los simuladores de enlaces WiFi y de las coordenadas obtenidas. Una vez en campo se puede encontrar la distancia más óptima que puede estar alrededor de más o menos 300m del que se ha configurado. El cambio de la distancia se debe hacer en ambos lados del enlace. En un enlace punto multipunto la distancia a configurar es la que se tiene con la antena mas alejada. Si no se ha configurado la distancia, por defecto se mostrará: nodo-b: 48 nodo-b: 9 nodo-b: 48 nodo-b: # cat /proc/sys/dev/wifi0/acktimeout # cat /proc/sys/dev/wifi0/slottime # cat /proc/sys/dev/wifi0/ctstimeout # Si se ha configurado para una distancia de 1000m por ejemplo; se tendría estos valores: nodo-b: 89 nodo-b: 43 nodo-b: 89 nodo-b: # cat /proc/sys/dev/wifi0/acktimeout # cat /proc/sys/dev/wifi0/slottime # cat /proc/sys/dev/wifi0/ctstimeout # Para no cambiar la distancia en /etc/network/interfaces se puede configurar por comandos y una vez encontrado la distancia correcta se escribe en este archivo. nodo-a: # athctrl -i wifi0 -d 10000 nodo-b: # athctrl -i wifi1 -d 10000 8.1.4. Ping normal entre las interfaces del enlace Una vez que se haya verificado los enlaces WiFi se debe verificar los parámetros TCP/IP de cada interfaz de red. La IP y la máscara de red se observa con el comando ifconfig: 8.1 Conectividad en enlaces AP-STA 109 nodo-a: # ifconfig ath0 ath0 Link encap:Ethernet HWaddr 00:0C:42:18:F7:68 inet addr:10.1.2.2 Bcast:10.1.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:42ff:fe18:f768/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:28725 errors:0 dropped:0 overruns:0 frame:0 TX packets:27958 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4651917 (4.4 MiB) TX bytes:2217302 (2.1 MiB) nodo-a: # ifconfig ath1 ath1 Link encap:Ethernet HWaddr 00:0C:42:18:F7:74 inet addr:10.1.2.1 Bcast:10.1.2.255 Mask:255.255.255.0 inet6 addr: fe80::20c:42ff:fe18:f774/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6687 errors:0 dropped:0 overruns:0 frame:0 TX packets:7962 errors:0 dropped:5 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1015702 (991.8 KiB) TX bytes:3055968 (2.9 MiB) nodo-a: # Se prueba la conectividad con el comando ping. Además de observar si la otra interfaz responde al ping; se debe observar la regularidad de los ping que generalmente pueden oscilar entre 1 a 3ms en un enlace aceptable; y además la pérdida de paquetes que generalmente deben estar entre 1 a 3 paquetes perdidos por cada 60 transmitidos (1 minuto). Para esta prueba se debe hacer un ping de unos 30 paquetes y por cada AP - STA del enlace y anotar: Si la otra interfaz responde al ping Regularidad de los tiempos del ping, Pérdida de paquetes El resultado de los ping esta relacionados con la distancia del enlace y con nivel y calidad de la señal, se debe tener en cuenta de éstos en esta prueba; quizás se tenga valor altos respecto a los referenciales. voyage: # ping 11.11.11.1 -c 40 PING 11.11.11.1 (11.11.11.1) 56(84) bytes of data. 64 bytes from 11.11.11.1: icmp_seq=1 ttl=64 time=0.204 ms 64 bytes from 11.11.11.1: icmp_seq=2 ttl=64 time=0.118 ms 64 bytes from 11.11.11.1: icmp_seq=3 ttl=64 time=0.101 ms 64 bytes from 11.11.11.1: icmp_seq=4 ttl=64 time=0.133 ms 64 bytes from 11.11.11.1: icmp_seq=5 ttl=64 time=0.100 ms ... 64 bytes from 11.11.11.1: icmp_seq=39 ttl=64 time=0.098 ms 64 bytes from 11.11.11.1: icmp_seq=40 ttl=64 time=0.105 ms -- 11.11.11.1 ping statistics -40 packets transmitted, 40 received, 0 % packet loss, time 38991ms rtt min/avg/max/mdev = 0.097/0.109/0.204/0.021 ms voyage: # 110 CAPÍTULO 8. VERIFICACIÓN DEL ESTADO DE LA RED DE DATOS Si se obtiene resultados muy alejados de lo aceptable; se debe cambiar la distancia; cambiando en pasos de 100m hasta encontrar el más óptimo. Después de cada cambio se debe repetir la prueba de ping, como los ping de mayor tamaño y el rendimiento del enlace. 8.1.5. Ping con mayor tamaño entre las interfaces del enlace Un ping con mayor bytes transmitidos muestra una aproximación de la carga que puede soportar el enlace; esto se observa en la regularidad del tiempo de transmisión de paquetes y la pérdida de éstos. Si se transmiten 1500 bytes en el enlace ejemplo, el tiempo de cada ping debe ser regular y estar alrededor de 3 a 6ms; si se tiene una irregularidad notable por ejemplo saltos de 5ms a 20ms en varios pings, se debe seguir vigilando y revisar el enlace. La pérdida de paquetes debe ser muy baja o casi nula comparada con la cantidad que se está enviando en total. De la misma manera que el ping normal, esta prueba está relacionada con la distancia, el nivel y calidad del enlace. Para esta prueba se debe hacer ping con una cantidad de unos 30 paquetes; se debe anotar. Si la otra interfaz responde al ping Regularidad de los tiempos del ping. Pérdida de paquetes voyage: # ping 11.11.11.1 -c 50 -s 1500 PING 1528 1528 1528 1528 1528 ... 1528 1528 11.11.11.1 bytes from bytes from bytes from bytes from bytes from (11.11.11.1) 1500(1528) bytes 11.11.11.1: icmp_seq=1 ttl=64 11.11.11.1: icmp_seq=2 ttl=64 11.11.11.1: icmp_seq=3 ttl=64 11.11.11.1: icmp_seq=4 ttl=64 11.11.11.1: icmp_seq=5 ttl=64 of data. time=1.157 time=1.117 time=1.111 time=1.113 time=1.114 ms ms ms ms ms bytes from 11.11.11.1: icmp_seq=39 ttl=64 time=1.120 ms bytes from 11.11.11.1: icmp_seq=40 ttl=64 time=1.106 ms -- 11.11.11.1 ping statistics -40 packets transmitted, 40 received, 0 % packet loss, time 38991ms rtt min/avg/max/mdev = 1.104/1.114/1.157/1.017 ms voyage: # 8.1.6. Medición en el rendimiento de un enlace La prueba con ping (simple y de mayor tamaño) se hacen simultáneamente con la prueba del rendimiento; y estas tres están relacionados directamente con la distancia configurada. Si se ha verificado el buen nivel de señal y la poca pérdida de paquetes en el enlace; el rendimiento que se obtendrá debe estar entre 3 a 9Mbps. Tenga en cuenta la relación que existe entre el nivel de ruido y la velocidad configurada; si se tiene un enlace de entre 1 a 2Mbps en buen tiempo (ausencia de lluvia y neblina) se debe revisar el enlace buscando posibles fallas o mejoras al enlace; un valor menor a 1Mbps es un enlace malo y debe mejorarse. Se recomienda realizar la prueba por unos 50s a más y por cada AP - STA del enlace y anotar: Rendimiento por cada intervalo de tiempo de la prueba Rendimiento promedio al finalizar la prueba 8.1 Conectividad en enlaces AP-STA 111 nodo-b: # iperf -s ---------------------------------------Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ---------------------------------------[ 4] local 10.1.2.2 port 5001 connected with 10.1.2.1 port 2545 [ 4] 0.0-50.1 sec 8.66 MBytes 4.82 Mbits/sec nodo-a: # iperf -c 10.1.2.2 -i 5 -t 15 ---------------------------------------Client connecting to 10.1.2.2, TCP port 5001 TCP window size: 16.0 KByte (default) ---------------------------------------[ 3] local 10.1.2.1 port 2545 connected with 10.1.2.2 port 5001 [ 3] 0.0- 5.0 sec 2.88 MBytes 4.84 Mbits/sec [ 3] 5.0-10.0 sec 2.90 MBytes 4.86 Mbits/sec [ 3] 10.0-15.0 sec 2.87 MBytes 4.81 Mbits/sec ... [ 3] 0.0-50.1 sec 8.66 MBytes 4.82 Mbits/sec nodo-a: # 8.1.7. Verificación de la tabla de rutas y la ruta de salida Se debe revisar que las redes a las que se desea acceder estén en la tabla de rutas de los equipos que conforman el enlace; además de la ruta por defecto si se ha configurado. En la tabla se observa las redes accesibles y no los equipos accesibles; para esto se usa, el comando route, con él se pueden ver las redes accesibles (Flag con UG) inclusive si se está usando OSPF. Anotar: Si los equipos del enlace contienen todo las rutas configuradas o no. nodo-b: # route -n Kernel IP routing table Destination Gateway Genmask 10.1.4.0 10.1.3.2 255.255.255.0 10.1.53.0 0.0.0.0 255.255.255.0 10.1.52.0 0.0.0.0 255.255.255.0 10.1.55.0 10.1.3.2 255.255.255.0 10.1.54.0 10.1.3.2 55.255.255.0 10.1.2.0 0.0.0.0 255.255.255.0 10.1.3.0 0.0.0.0 55.255.255.0 0.0.0.0 10.1.2.1 0.0.0.0 nodo-b: # Flags UG U U UG UG U U UG Metric 0 0 0 0 0 0 0 0 Ref 0 0 0 0 0 0 0 0 Use 0 0 0 0 0 0 0 0 Iface ath1 eth1 eth0 ath1 ath1 ath0 ath1 ath0 Si se trabaja con enrutamiento dinámico las redes accesibles aparecerán en la tabla de rutas; si alguno no aparece se debe comprobar; quizás el problema es que ciertos enlaces estén caídos; para esto se puede usar traceroute. nodo-b: # traceroute 10.1.4.2 traceroute to 10.1.4.2 (10.1.4.2), 30 hops max, 40 byte packets 1 10.1.1.2 (10.1.1.2) 0.573 ms 0.593 ms 1.258 ms 2 10.1.2.2 (10.1.2.2) 4.837 ms 2.315 ms 3.682 ms 3 10.1.3.2 (10.1.3.2) 8.673 ms 4.597 ms 5.248 ms 4 10.1.4.2 (10.1.4.2) 12.935 ms 6.315 ms 7.682 ms nodo-b: # 112 CAPÍTULO 8. VERIFICACIÓN DEL ESTADO DE LA RED DE DATOS Si se trabaja con enrutamiento estático necesariamente se debe comprobar el acceso a la red con el comando traceroute para verificar que la red es accesible. Si el equipo tiene salida a Internet se debe comprobar. nodo-b: # ping www.google.com -c 5 PING www.google.com (64.233.169.147) 56(84) bytes of data. 64 bytes from www.google.com (64.233.169.147); icmp_seq=1 ttl=244 64 bytes from www.google.com (64.233.169.147): icmp_seq=2 ttl=244 64 bytes from www.google.com (64.233.169.147): icmp_seq=3 ttl=244 64 bytes from www.google.com (64.233.169.147): icmp_seq=4 ttl=244 64 bytes from www.google.com (64.233.169.147): icmp_seq=5 ttl=244 time=96.8 time=94.8 time=96.9 time=95.2 time=96.3 ms ms ms ms ms -- www.google.com ping statistics -5 packets transmitted, 5 received, 0 % packet loss, time 4000ms rtt min/avg/max/mdev = 94.866/96.034/96.918/0.849 ms nodo-b: # 8.1.8. Ping a todas las interfaces de red Una vez revisado las rutas, se debe hacer ping (con una cantidad de 20 paquetes) desde cada equipo que conforma el enlace hacia el resto de las interfaces de la red y observar: Si a todos se llega correctamente o no. Anotar además posibles retardos o pérdida de paquetes hacia una interfaz en particular para su revisión posterior cuando se esté en ese nodo. 8.2. Conectividad en una red troncal Al hacer estas pruebas es probable que existan demasiadas pérdidas de paquetes; se debe tener en cuenta el tiempo (lluvias, neblinas en zonas alejadas) y la gran distancia entre cada par de nodos de la troncal, es recomendable realizar la prueba en tiempos buenos, en todo el tramo de la red. El gráfico de abajo muestra una red troncal típica; la prueba se realiza desde los routers ubicados en los extremos de la troncal. Figura 8.3: Enlace Troncal 8.2 Conectividad en una red troncal 8.2.1. 113 Ping a todas las interfaces de red Se debe hacer ping desde uno de los extremos de la troncal hacia el resto de las interfaces de la red y observar si a todos se llega correctamente o no; debe anotar además posibles retardos o pérdidas de paquetes hacia una interfaz en particular para su revisión posterior cuando se visite ese nodo. Anotar: Si es accesible a la interfaz o no Observar si existe demasiada pérdida de paquetes. 8.2.2. Medición del rendimiento de la troncal Se espera tener un rendimiento de 1 a 2Mpbs; dependerá del número de enlaces que exista; pero aunque se tenga muchos enlaces conectados un rendimiento menor a 1Mpbs seria muy bajo para el funcionamiento correcto de los servicios de la red. Se recomienda realizar la prueba del rendimiento con el iperf con un tiempo total de unos 50s a más; tal como la se muestra en el cálculo del rendimiento de un enlace. Se debe anotar: Rendimiento observado por cada intervalo de tiempo de la prueba. Rendimiento promedio al finalizar la prueba. 114 CAPÍTULO 8. VERIFICACIÓN DEL ESTADO DE LA RED DE DATOS 9 Con guración de una red de Telefonía IP con Asterisk 9.1. Configuración inicial Si se va ha usar asterisk en un equipo donde exista OSPF se debe poner el nombre del equipo también en /etc/hosts. voyage: # cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 voyage Para activar el servicio en el arranque del sistema se debe poner en yes la variable RUNASTERISK en el archivo /etc/default/asterisk. voyage: # vim /etc/default/asterisk # This file allows you to alter the configuration of the Asterisk # init.d script # RUNASTERISK=yes voyage: # Es recomendable cargar el módulo ztdummy; descomentar en: voyage: # cat /etc/modules ... ledtrig-heartbeat ledtrig-timer #zaptel #ztdummy voyage: # Esto permitirá que se cargue después de un reinicio; pero si se desea que se cargue en este momento se puede hacer: voyage: # modprobe ztdummy 115 116 CAPÍTULO 9. CONFIGURACIÓN DE UNA RED DE TELEFONÍA IP CON ASTERISK 9.2. Configuración básica de Asterisk El Asterisk en la Voyage, (/etc/asterisk/modules.conf), está adaptado para realizar tareas mínimas, al ser un equipo de bajo rendimiento para este tipo de aplicación. Se ha desarrollado una configuración básica para realizar la comunicación entre clientes SIP de un mismo Asterisk y con clientes SIP administrados por otros Asterisk y además permitir la comunicación con la red de telefonía pública; esta configuración involucra a los archivos sip.conf, extensions.conf, y iax.conf, todos éstos ubicados en /etc/asterisk/. Se puede tomar esta configuración como plantilla para una configuración particular. Recuerde que los comentarios en estos archivos de configuración empiezan con ; al inicio de la línea. 9.2.1. Configuración de los clientes SIP El archivo /etc/asterisk/sip.conf tiene una configuración inicial para clientes SIP; donde se puede especificar los identificadores del cliente y los codecs a usar. [general] ; bindport=5060 disallow=all allow=ulaw allow=g726aal2 allow=gsm allow=ilbc allow=g726 ; [210] type=friend host=dynamic language=es context=center secret=passwd username=210 callerid=210 dtmfmode=rfc2833 qualify=yes ; Para configurar clientes SIP con puerto FXO, se puede usar la identificación 10; cambiado sólo lo necesario. [10] type=friend port=5061 host=dynamic language=es context=center secret=passwd username=10 callerid=10 dtmfmode=rfc2833 qualify=yes ; 9.2 Configuración básica de Asterisk 9.2.2. 117 Programación de las llamadas telefónicas En /etc/asterisk/extensions.conf es donde se configura la comunicación telefónica. En la parte [globals] se especifica las variables usadas, aquí se muestra variables que representan la IP de los otros Asterisk de la red. [globals] ; IP-SERVER200= IP-SERVER300=20.20.20.13 IP-SERVER400= IP-SERVER-PSTN= PHONE-DEFAULT= La variable PHONE-DEFAULT= contiene el teléfono que responderá por defecto después de escuchar el IVR en una llamada proveniente del exterior. En la parte (center) se especifica con que equipos se tendrá comunicación; está divido en: comunicación con equipos locales, con equipos de otros Asterisk y con la telefonía pública Aquí se muestra una especie de prueba de llamado al servidor, se especifica un número que identifique al servidor Asterisk. ;prueba de llamada al servidor exten =>200,1,Macro(call-svlocal,200) ; Aquí se especifica los números telefónicos locales. ;llamar area local exten =>210,1,Macro(dial-svlocal,SIP,${EXTEN}) exten =>211,1,Macro(dial-svlocal,SIP,${EXTEN}) ;exten =>_21[0-9],1,Macro(dial-svlocal,SIP,${EXTEN}) Para comunicarse con otros servidores se especifica la numeración telefónica de estos, se puede usar rangos como en este caso; además debe poner la IP del Asterisk que administra este rango de números telefónicos; como se observa esto se hace en base a variables por ejemplo IP-SERVER300 donde su valor estará en la sección de variables. Para la comunicación con la telefonía pública se especifica los números permitidos; tenga en cuenta que se debe diferenciar de los números telefónicos usados en la red; a veces se usa un prefijo; en este caso se antepone un cero, si se desea llamar al 147 sería 0147, si se desea una comunicación sin restricción se puede usar _0. En el cuadro de abajo se muestran los comandos para comunicarse con la telefonía pública para el Asterisk donde se va a registrar al cliente SIP que va ha conectar la telefonía IP con la telefonía pública. En la primera parte se muestra los números permitidos para llamar a la telefonía pública y la segunda parte se muestra al identificador 11 que se usará para identificar todas las llamadas entrantes de la telefonía pública; como se observa, están redirigidas al IVR. ;llamar a clientes de otros servidores exten =>_3[0-5]X,1,Macro(dial-svred, $IP-SERVER300, ${EXTEN}) exten =>_4XX,1,Macro(dial-svred, $IP-SERVER400, ${EXTEN}) En el cuadro de abajo se muestran los comandos para un Asterisk que no registre al equipo que une a la telefonía IP con la telefonía pública; en este caso el Asterisk deberá comunicarse con el Asterisk que registre a este equipos que une ambas redes. 118 CAPÍTULO 9. CONFIGURACIÓN DE UNA RED DE TELEFONÍA IP CON ASTERISK ;exten =>0147,1,Macro(dial-svred,$IP-SERVER-PSTN,${EXTEN}) exten =>_0.,1,Macro(dial-svred,$IP-SERVER-PSTN,${EXTEN}) 9.2.3. Identificación de direcciones IP de los servidores Asterisk Si un Asterisk tiene que establecer comunicación con otro Asterisk que está en un equipo que posee varias IP, se debe elegir la IP de la interfaz que está más próxima entre la comunicación de ambos Asterisk. Abajo se muestra las IP que contendría cada Asterisk en extensions.conf para comunicarse con el resto de los Asterisk. Figura 9.1: Identificación de direcciones IP de los servidores Asterisk 9.2.4. Grabación de archivos de sonido Para hacer archivos se sonido del tipo gsm, se puede usar la función implementada en /etc /asterisk/extensions.conf; para esto se llama al 170; después de escuchar el beep se procederá a grabar por el teléfono hasta que se presione el símbolo #; después se escuchará lo grabado y terminará la llamada. ;grabacion de archivos de sonido gsm exten =>170,1,Macro(sounds-record,gsm) ; Los archivos serán grabados en /root/ con el nombre de mensaje-pbx-X.gsm donde X cambiará (0, 1, 2 ...) según se vaya grabando; cambien de nombre y según su uso deberá ser guardado en /var/lib/asterisk/sounds/es/. 9.2.5. Configuración de IVR básico El IVR se utiliza para contestar y direccionar las llamadas entrantes provenientes de la telefonía pública; esto está en /etc/asterisk/extensions.conf. Se debe especificar los archivos de sonido para el saludo correspondiente; xivr_bienvenido_pucp contiene un saludo presentando a la institución; xivr_opciones_pucp contiene la opción de esperar para que sea respondido por algún cliente SIP; xnumero_incorrecto contiene el mensaje de “numero incorrecto” Los archivos de sonido en español deben estar en /var/lib/asterisk/ sounds/es/. Además se debe especificar en la variable PHONE-DEFAULT el número telefónico que deberá contestar si no se elige un teléfono válido. En la parte final se especifica los números telefónicos al que puede acceder el llamante de la red de telefonía pública. 9.3 Registro de los clientes SIP 119 ;ivr basico ; (ivr) ; exten =>s,1,Set(CHANNEL(LANGUAGE)=es) exten =>s,2,Background(xivr_bienvenido_pucp) exten =>s,3,Background(xivr_opciones_pucp) exten =>s,4,Set(TIMEOUT(digit)=3) exten =>s,5,Set(TIMEOUT(response)=9) exten =>t,1,Goto(center,${PHONE-DEFAULT},1) exten =>i,1,Set(LANGUAGE()=es) exten =>i,2,Playback(xnumero_incorrecto) exten =>i,3,Goto(s,3) ; exten =>_2XX,1,Goto(center,${EXTEN},1) exten =>_3XX,1,Goto(center,${EXTEN},1) exten =>_4XX,1,Goto(center,${EXTEN},1) ; 9.2.6. Comunicación con otros servidores Asterisk El archivo /etc/asterisk/iax.conf se utiliza para la comunicación con otros Asterisk no es necesario que se edite; posee una configuración general; si se hace cambios en este se debe tener en cuenta que estos cambios deben estar reflejados en /etc/asterisk/extensions.conf. [general] ; bindport=4569 language=es disallow=all allow=ulaw allow=g726aal2 allow=gsm allow=ilbc allow=g726 ; [iaxuser] type=user username=iaxuser callerid=iaxuser secret=passwd context=center ; 9.3. Registro de los clientes SIP Una vez configurado los archivos se comprobará el registro de los clientes y el funcionamiento del Asterisk. Se utilizará el script /etc/init.d/asterisk para iniciar y detener el Asterisk. nodo-b: # nodo-b: # nodo-b: # /etc/init.d/asterisk start /etc/init.d/asterisk stop /etc/init.d/asterisk restart Para correr el Asterisk Para detener el Asterisk Para reiniciar el Asterisk En este caso se inicia la ejecución del Asterisk; para observar el estado del registro de los clientes y del propio Asterisk se debe acceder a entorno CLI del Asterisk. 120 CAPÍTULO 9. CONFIGURACIÓN DE UNA RED DE TELEFONÍA IP CON ASTERISK nodo-b: # asterisk -vvvvr == Parsing '/etc/asterisk/asterisk.conf': Found == Parsing '/etc/asterisk/extconfig.conf': Found Asterisk 1.2.13, Copyright (C) 1999 - 2006 Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'show warranty'for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'show license'for details. ========================================================================= Connected to Asterisk 1.2.13 currently running on nodo-b (pid = 7834) Verbosity is at least 4 nodo-b*CLI> nodo-b*CLI>sip show peers Name/username Host Dyn Nat ACL Port Status 10/10 (Unspecified) D 0 UNKNOWN 211/211 (Unspecified) D 0 UNKNOWN 210/210 (Unspecified) D 0 UNKNOWN nodo-b*CLI> Dentro del CLI con el comando sip show peers se puede observar si los clientes se han registrado; en el mensaje de arriba mostrado en la última columna se observa que los tres clientes están con el mensaje UNKNOWN por tanto no están registrados si aparece OK entonces si estarán registrados. Si ya se ha configurado los clientes SIP se debe comprobar su registro en el Asterisk. nodo-b*CLI> - Registered SIP '210át 10.1.52.3 port 5060 expires 3600 - Saved useragent "Linksys/SPA3102-3.3.6(GW)"for peer 210 - Registered SIP '10át 10.1.52.3 port 5061 expires 3600 - Saved useragent "Linksys/SPA3102-3.3.6(GW)"for peer 10 nodo-b*CLI>sip show peers Name/username Host Dyn Nat ACL Port Status 10/10 10.1.52.3 D 5061 OK (12 ms) 211/211 (Unspecified) D 0 UNKNOWN 210/210 10.1.52.3 D 5060 OK (13 ms) 3 sip peers (2 online , 1 offline) Se observa que los clientes 10 y 210 están ya registrados. Para salir del CLI sólo se hace exit. nodo-b*CLI>exit Executing last minute cleanups nodo-b: # Si se modifica los archivos de configuración para cargar ésta nueva configuración en el Asterisk se hace: nodo-b*CLI>reload Pero mejor quizás sea detener el Asterisk y de nuevo cargarlo así: nodo-b*CLI>stop now Executing last minute cleanups nodo-b: # /etc/init.d/asterisk start Debe asegurarse que el Asterisk esté activo; para esto se puede usar ps -le | grep asterisk si arroja resultado entonces el Asterisk está corriendo; sino no lo está. Si por cualquier motivo no se puede ejecutar 9.4 Verificación del estado de telefonía IP con Asterisk 121 el Asterisk entonces se debe ejecutar con la opción: nodo-b:: # asterisk -vvvvc ... ... Asterisk Ready. *CLI> En la Voyage-GTR el Asterisk corre como root. Con esto se observará la carga de cada módulo del Asterisk, si uno de ellos falla nos lo mostrará; si la falla es grave no continuará con la carga del Asterisk y se detendrá en el primer error grave; si todo está correcto se llegará al CLI del Asterisk, con esto se tendrá asegurado que la falla no es debido a la carga de algún módulo; si aún hay fallas se debe seguir observando los mensaje que aparecerán en el CLI. Si todo está bien; se sale del CLI, pero como en este caso se ha ingresado al CLI con la opción -c, entonces no se podrá usar el comando exit, para esto se debe detener el Asterisk y cargar de nuevo así: *CLI>stop now nodo-b: # /etc/init.d/asterisk start No olvide que debe comprobar de nuevo que el Asterisk esté cargado o activo. 9.4. Verificación del estado de telefonía IP con Asterisk 9.4.1. Estado del registro de clientes y tono en los teléfonos En el cuadro de abajo se observa el registro de los equipos clientes telefónicos 10 y 210; porque aparece OK en Status. El tiempo de registro de los equipos telefónicos deberá ser menor a 50ms; si se tiene un tiempo mayor se debe evaluar instalar un servidor en la misma red del equipo cliente. Anotar: Que equipos están registrados El tiempo de registro de los clientes telefónicos nodo-b*CLI>sip show peers Name/username Host Dyn Nat ACL Port 10/10 10.1.52.4 D 5061 211/211 (Unspecified) D 0 210/210 10.1.52.3 D 5060 3 sip peers (2 online , 1 offline) Status OK (12 ms) UNKNOWN OK (13 ms) Los equipos telefónicos deben dar tono una vez descolgado el auricular. 9.4.2. Llamada de prueba al servidor de telefonía IP Se debe realizar una llamada de prueba al servidor Asterisk, además se debe observar el resultado de ésta llamada en el CLI del Asterisk la correcta ejecución de los comandos: 122 CAPÍTULO 9. CONFIGURACIÓN DE UNA RED DE TELEFONÍA IP CON ASTERISK voyage-112*CLI> - Executing [200@center:1] Macro("SIP/210-081b0fb8", çall-svlocal|200") in new stack - Executing [s@macro-call-svlocal:1] Set("SIP/210-081b0fb8", ÇHANNEL(language)=es") in new stack - Executing [s@macro-call-svlocal:2] Playback("SIP/210-081b0fb8", "xservidor") in new stack - <SIP/210-081b0fb8>Playing 'xservidor'(language és') - Executing [s@macro-call-svlocal:3] SayDigits("SIP/210-081b0fb8", "200") in new stack - <SIP/210-081b0fb8>Playing 'digits/2'(language és') - <SIP/210-081b0fb8>Playing 'digits/0'(language és') - <SIP/210-081b0fb8>Playing 'digits/0'(language és') - Executing [s@macro-call-svlocal:4] Wait("SIP/210-081b0fb8", "1") in new stack - Executing [s@macro-call-svlocal:5] Hangup("SIP/210-081b0fb8", ) in new stack == Spawn extension (macro-call-svlocal, s, 5) exited non-zero on 'SIP/210-081b0fb8ín macro 'call-svlocal' == Spawn extension (center, 200, 1) exited non-zero on 'SIP/210-081b0fb8' voyage-112*CLI> 9.4.3. Llamada de prueba a un cliente local Se debe realizar una llamada de prueba a un cliente administrado por el mismo servidor Asterisk al que se está evaluando, además se debe observar el resultado de ésta llamada en el CLI. Anotar: Si se realiza sin problemas una llamada de prueba con un cliente local. Codec utilizado en la conversación. Calidad en la conversación. voyage-112*CLI> voyage-112*CLI> - Executing (210@center:1) Macro("SIP/211-b7200470", "dial-svlocal|SIP|210") in new stack - Executing (s@macro-dial-svlocal:1) Dial("SIP/211-b7200470", "SIP/210|26") in new stack - Called 210 - SIP/210-081b0fb8 is ringing - SIP/210-081b0fb8 answered SIP/211-b7200470 - Native bridging SIP/211-b7200470 and SIP/210-081b0fb8 voyage-112*CLI> voyage-112*CLI> voyage-112*CLI>sip show channels Peer User/ANR Call ID Seq (Tx/Rx) Format Hold Last Message 20.20.20.199 210 1a234c1f236 00103/00000 0x4 (ulaw) No Tx: ACK 20.20.20.113 211 355739771-5 00102/00011 0x4 (ulaw) No Tx: ACK 2 active SIP channels voyage-112*CLI> voyage-112*CLI> voyage-112*CLI>core show channels Channel Location State Application(Data) SIP/210-081b0fb8 (None) Up AppDial((Outgoing Line)) SIP/211-b7200470 s@macro-dial-svlocal Up Dial(SIP/210|26) 2 active channels 1 active call voyage-112*CLI> voyage-112*CLI> == Spawn extension (macro-dial-svlocal, s, 1) exited non-zero on 'SIP/211-b7200470ín macro 'dial-svlocal' == Spawn extension (center, 210, 1) exited non-zero on 'SIP/211-b7200470' voyage-112*CLI> 9.4.4. Llamada de prueba al resto de servidores de telefonía IP Se debe realizar una llamada de prueba a los otros servidores Asterisk y observar en el CLI de ambos Asterisk la correcta ejecución de los comandos. Anotar: Si se realiza sin problemas una llamada de prueba al resto de los servidores de telefonía de la red. 9.4 Verificación del estado de telefonía IP con Asterisk 123 voyage-112*CLI> - Executing (300@center:1) Macro("SIP/210-081b0fb8", "dial-svred|20.20.20.13|300") in new stack - Executing (s@macro-dial-svred:1) Dial("SIP/210-081b0fb8", ÏAX2/iaxuser:passwd@20.20.20.13/300|28") in new stack - Called iaxuser:passwd@20.20.20.13/300 - Call accepted by 20.20.20.13 (format ulaw) - Format for call is ulaw - IAX2/20.20.20.13:4569-9518 answered SIP/210-081b0fb8 - Hungup ÍAX2/20.20.20.13:4569-9518' == Spawn extension (macro-dial-svred, s, 1) exited non-zero on 'SIP/210-081b0fb8ín macro 'dial-svred' == Spawn extension (center, 300, 1) exited non-zero on 'SIP/210-081b0fb8' voyage-112*CLI> voyage*CLI> - Accepting AUTHENTICATED call from 20.20.20.112: >requested format = ulaw, >requested prefs = (ulaw), >actual format = ulaw, >host prefs = (ulaw|g726), >priority = mine - Executing Macro(ÏAX2/20.20.20.112:4569-16325", çall-svlocal|300") in new stack - Executing Set(ÏAX2/20.20.20.112:4569-16325", "LANGUAGE()=es") in new stack - Executing Playback(ÏAX2/20.20.20.112:4569-16325", "xservidor") in new stack - Playing 'xservidor'(language és') - Executing SayDigits(ÏAX2/20.20.20.112:4569-16325", "300") in new stack - Playing 'digits/3'(language és') - Playing 'digits/0'(language és') - Playing 'digits/0'(language és') - Executing Wait(ÏAX2/20.20.20.112:4569-16325", "1") in new stack - Executing Hangup(ÏAX2/20.20.20.112:4569-16325", ) in new stack == Spawn extension (macro-call-svlocal, s, 5) exited non-zero on ÍAX2/20.20.20.112:4569-16325ín macro 'call-svlocal' == Spawn extension (macro-call-svlocal, s, 5) exited non-zero on ÍAX2/20.20.20.112:4569-16325' - Hungup ÍAX2/20.20.20.112:4569-16325'voyage*CLI> 9.4.5. Llamada de prueba a un cliente administrado por otro servidor Se debe realizar una llamada de prueba a un cliente remoto que sea administrado por otro Asterisk; anotar si esto se realiza sin problemas, comentar sobre la calidad de la conversación; además se debe observar en el CLI de ambos Asterisk si la comunicación se realiza con el codec configurado, si los comandos se ejecutan correctamente. Se debe realizar llamado a todos, si es necesario. Anotar: Si se realiza sin problemas una llamada de prueba con un cliente administrado por otro servidor. Codec utilizado en la conversación. Calidad de la conversación. voyage-112*CLI> - Executing (310@center:1) Macro("SIP/210-081b0fb8", "dial-svred|20.20.20.13|310") in new stack - Executing (s@macro-dial-svred:1) Dial("SIP/210-081b0fb8", ÏAX2/iaxuser:passwd@20.20.20.13/310|28") in new stack - Called iaxuser:passwd@20.20.20.13/310 - Call accepted by 20.20.20.13 (format ulaw) - Format for call is ulaw - IAX2/20.20.20.13:4569-11764 is ringing - IAX2/20.20.20.13:4569-11764 stopped sounds - IAX2/20.20.20.13:4569-11764 answered SIP/210-081b0fb8 voyage-112*CLI> voyage-112*CLI> voyage-112*CLI>core show channels Channel Location State Application(Data) IAX2/20.20.20.13:456 (None) Up AppDial((Outgoing Line)) SIP/210-081b0fb8 s@macro-dial-svred:1 Up Dial(IAX2/iaxuser:passwd@20.20 2 active channels 1 active call voyage-112*CLI> voyage-112*CLI> voyage-112*CLI>sip show channels Peer User/ANR Call ID Seq (Tx/Rx) Format Hold Last Message 20.20.20.199 210 1208132620- 00101/00051 0x4 (ulaw) No Rx: ACK 1 active SIP channel 124 CAPÍTULO 9. CONFIGURACIÓN DE UNA RED DE TELEFONÍA IP CON ASTERISK voyage-112*CLI> voyage-112*CLI> - Hungup ÍAX2/20.20.20.13:4569-11764' == Spawn extension (macro-dial-svred, s, 1) exited non-zero on 'SIP/210-081b0fb8ín macro 'dial-svred' == Spawn extension (center, 310, 1) exited non-zero on 'SIP/210-081b0fb8' voyage-112*CLI> voyage-112*CLI> voyage*CLI> - Accepting AUTHENTICATED call from 20.20.20.112: >requested format = ulaw, >requested prefs = (ulaw), >actual format = ulaw, >host prefs = (ulaw|g726), >priority = mine - Executing Macro(ÏAX2/20.20.20.112:4569-1642", "dial-svlocal|SIP|310") in new stack - Executing Dial(ÏAX2/20.20.20.112:4569-1642", "SIP/310|26") in new stack - Called 310 - SIP/310-0817d6c8 is ringing - SIP/310-0817d6c8 answered IAX2/20.20.20.112:4569-1642 voyage*CLI> voyage*CLI> == Spawn extension (macro-dial-svlocal, s, 1) exited non-zero on ÍAX2/20.20.20.112:4569-1642' in macro 'dial-svlocal' == Spawn extension (macro-dial-svlocal, s, 1) exited non-zero on ÍAX2/20.20.20.112:4569-1642' - Hungup ÍAX2/20.20.20.112:4569-1642' voyage*CLI> voyage*CLI> 10 Caso de Estudio: Red Napo Sur 10.1. Generalidades El presente documento presenta la memoria técnica de los trabajos de instalación y puesta en operación de los sistemas de comunicación de voz y datos del Proyecto “Mejora de las condiciones de salud de la población materno-infantil a través del uso apropiado de las Tecnologías de la Información y las Comunicaciones (TIC) en centros y puestos de salud del Río Napo (Perú)” el cuál ha sido financiado por el Ayuntamiento de Madrid y ejecutado por la Fundación EHAS y el Grupo de Telecomunicaciones Rurales de la Pontificia Universidad Católica del Perú (GTR-PUCP). El proyecto fue ejecutado en los distritos de Punchana, Mazán y Napo, en la provincia de Maynas, departamento de Loreto. Contempló la interconexión de cinco establecimientos de salud rurales, el Vicariato de San José del Amazonas (donde existe un albergue de reposo para los pacientes y sus familiares que son referidos al Hospital Regional de Loreto para atenciones especializadas en la ciudad de Iquitos), la oficina de Radiofonía de la Dirección Regional de Salud y los ambientes de Emergencia del Hospital Regional de Loreto. Adicionalmente esta nueva red ha sido interconectada con la red instalada por el proyecto PAMAFRO que incluyó a once establecimientos de salud. A la fecha el objetivo ha sido cumplido en su totalidad. Con los sistemas de comunicación de voz y datos operando se está contribuyendo a la reducción de la morbi-mortalidad Materno Infantil en esta zona rural aislada del Perú. Figura 10.1: Departamento de Loreto (izquierda) y Provincia de Maynas (derecha). 125 126 10.2. CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Descripción General de la Red de Comunicaciones El Proyecto contempló la instalación de sistemas de comunicaciones de voz y datos en los ambientes del Hospital Regional de Loreto, Planta de Ventas PetroPerú y Vicariato (Distrito de Punchana); CS Mazán y PS Huamán Urco (Distrito de Mazán); y PS Tuta Pishco, PS Negro Urco y PS Tacsha Curaray (Distrito de Napo). En la siguiente tabla se muestra los datos georeferenciales de los establecimientos de salud que fueron beneficiados con la instalación del sistema de transmisión de voz y datos: Ítem 01 02 03 04 05 06 07 08 Establecimiento Emergencia HRL Radiofonía DISA Loreto Vicariato CS Mazán PS Huamán Urco PS Tuta Pishco PS Negro Urco PS Tacsha Curaray Latitud 3∘ 43’33.85” 3∘ 43’32.78” 3∘ 43’34.13” 3∘ 29’51.70” 3∘ 19’07.10” 3∘ 06’35.00” 3∘ 01’14.20” 2∘ 48’48.00” Longitud 73∘ 15’09.44” 73∘ 15’15.49” 73∘ 14’29.50” 73∘ 05’29.70” 73∘ 13’04.30” 73∘ 08’19.00” 73∘ 23’26.80” 73∘ 32’27.00” Altura (msnm) 105 105 105 115 116 106 139 115 Tabla 10.1.- Coordenadas geográficas de los establecimientos de salud. En la siguiente figura se muestra la ubicación geográfica de los establecimientos mencionados en la Tabla 1. Figura 10.2: Ubicación geográfica de los establecimientos de salud. En la siguiente tabla se muestra los datos georeferenciales de la ubicación de las torres ventadas de los establecimientos de salud y de las instalaciones que forman parte de la red troncal del sistema de transmisión de voz y datos: 10.2 Descripción General de la Red de Comunicaciones Item 01 02 03 04 05 06 07 Torres y/o Soportes Hospital Regional de Loreto Planta de Ventas PetroPerú Mazán Huamán Urco Tuta Pishco Negro Urco Tacsha Curaray Latitud 3 43’33.80” 3∘ 43’32.29” 3∘ 29’59.90” 3∘ 19’07.60” 3∘ 06’31.40” 3∘ 01’23.10” 2∘ 48’47.60” ∘ 127 Longitud 73∘ 15’12.17” 73∘ 14’36.25” 73∘ 05’28.00” 73∘ 13’01.90” 73∘ 08’17.50” 73∘ 23’31.50” 73∘ 32’27.20” Altura (msnm) 105 105 109 116 106 131 135 Tabla 10.2.- Coordenadas geográficas de las torres ventadas y soportes de antenas. En la siguiente figura se muestra la ubicación geográfica de las torres ventadas e instalaciones mencionadas en la Tabla 2. Figura 10.3: Ubicación geográfica de las torres ventadas. En la siguiente tabla se detallan las distancias existentes en los enlaces de la red troncal Ítem 01 02 03 04 05 06 Enlaces HRL PetroPerú PetroPerú Mazán Huamán Urco Mazán Huamán Tuta Pishco Urco Negro Urco Tuta Pishco Negro Urco Tacsha Curaray Distancia (Km) 1.11 30.23 24.52 24.93 29.74 28.58 Tabla 10.3.- Distancia de los enlaces. En la Figura 4 se muestra el esquema de la ampliación de la red del Napo, específicamente se observa la red troncal, los enlaces de distribución, los repetidores y las estaciones clientes. 128 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Figura 10.4: Esquema de la ampliación de la red del Napo. La red troncal a quedado formada por siete repetidores con lo cual se han establecido seis nuevos enlaces. En el caso de los enlaces de distribución hacia los establecimientos de salud cada estación repetidora cuenta con un cliente, salvo el caso del repetidor ubicado en el Hospital Regional de Loreto, el cuál cuenta con dos clientes. En la siguiente figura se muestra en detalle un segmento de red. Figura 10.5: Topología detallada de un segmento de red. 10.3 Descripción de la Red de Telecomunicaciones 129 10.3. Descripción de la Red de Telecomunicaciones 10.3.1. Enlaces Troncales Haciendo uso del software Radio Mobile y los datos georeferenciales adquiridos durante la visita de estudio de campo se diseñó cada uno de los enlaces troncales de la red inalámbrica con el objetivo de obtener el mejor rendimiento utilizando equipos inalámbricos 802.11b para los enlaces rurales (desde Tacsha Curaray hasta Mazán) y utilizando equipos inalámbricos 802.11a para los enlaces urbanos (desde Mazán hasta el Hospital Regional de Loreto). Ver Tabla 4. Luego de realizado los trabajos de instalación se han adquirido los datos georeferenciales finales de cada estación y los resultados de las simulaciones se detalla a continuación. Figura 10.6: Esquema de la red troncal simulada con el software de Radio Mobile. Enlace Establecimientos 01 HRL PetroPerú 02 PetroPerú Mazán 03 Huamán Urco Mazán Huamán 04 Tuta Pishco Urco Negro Urco 05 Tuta Pishco Negro Urco Tacsha Curaray 06 Estándar 802.11a 802.11a 802.11b 802.11b 802.11b 802.11b Tabla 10.4.- Estándar de los enlaces de la red troncal 130 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Parámetros del enlace urbano Hospital Regional Loreto – PetroPerú Frecuencia mínima (MHz): 5180 Frecuencia máxima (MHz): 5805 Modo estadístico: Difusión: 90 % tiempo / 80 % ubicaciones / 80 % situaciones Clima: Continental Sub-Tropical Sistema empleado: R52H (tx: 80mW rx: -90dBm) en modo 802.11a Tipo de antena: Directiva tipo grilla de 27dBi de ganancia Pérdida de línea: 0.5dB Figura 10.7: Perfil del enlace Hospital Regional de Loreto – PetroPerú. Figura 10.8: Enlace Hospital Regional de Loreto – PetroPerú. 10.3 Descripción de la Red de Telecomunicaciones Parámetros del enlace urbano PetroPerú – Mazán Frecuencia mínima (MHz): 5180 Frecuencia máxima (MHz): 5805 Modo estadístico: Difusión: 90 % tiempo / 80 % ubicaciones / 80 % situaciones Clima: Continental Sub-Tropical Sistema empleado: R52H (tx: 250mW rx: -90dBm) en modo 802.11a Tipo de antena: Directiva tipo grilla de 27dBi de ganancia Pérdida de línea: 0.5dB Figura 10.9: Perfil del enlace PetroPerú – Mazán. Figura 10.10: Enlace PetroPerú – Mazán. 131 132 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Parámetros del enlace rural Mazán – Huamán Urco Frecuencia mínima (MHz): 2400 Frecuencia máxima (MHz): 2483 Modo estadístico: Difusión: 90 % tiempo / 80 % ubicaciones / 80 % situaciones Clima: Continental Sub-Tropical Sistema empleado: R52H (tx: 320mW rx: -95dBm) en modo 802.11b Tipo de antena: Directiva tipo grilla de 27dBi de ganancia Pérdida de línea: 0.5dB Figura 10.11: Perfil del enlace Mazán – Huamán Urco. Figura 10.12: Enlace Mazán – Huamán Urco. 10.3 Descripción de la Red de Telecomunicaciones Parámetros del enlace rural Huamán Urco – Tuta Pishco Frecuencia mínima (MHz): 2400 Frecuencia máxima (MHz): 2483 Modo estadístico: Difusión: 90 % tiempo / 80 % ubicaciones / 80 % situaciones Clima: Continental Sub-Tropical Sistema empleado: R52H (tx: 320mW rx: -95dBm) en modo 802.11b Tipo de antena: Directiva tipo grilla de 27dBi de ganancia Pérdida de línea: 0.5dB Figura 10.13: Perfil del enlace Huamán Urco – Tuta Pishco. Figura 10.14: Enlace Huamán Urco – Tuta Pishco. 133 134 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Parámetros del enlace rural Tuta Pishco – Negro Urco Frecuencia mínima (MHz): 2400 Frecuencia máxima (MHz): 2483 Modo estadístico: Difusión: 90 % tiempo / 80 % ubicaciones / 80 % situaciones Clima: Continental Sub-Tropical Sistema empleado: R52H (tx: 320mW rx: -95dBm) en modo 802.11b Tipo de antena: Directiva tipo grilla de 27dBi de ganancia Pérdida de línea: 0.5dB Figura 10.15: Perfil del enlace Tuta Pishco – Negro Urco. Figura 10.16: Enlace Tuta Pishco – Negro Urco. 10.3 Descripción de la Red de Telecomunicaciones Parámetros del enlace rural Negro Urco – Tacsha Curaray Frecuencia mínima (MHz): 2400 Frecuencia máxima (MHz): 2483 Modo estadístico: Difusión: 90 % tiempo / 80 % ubicaciones / 80 % situaciones Clima: Continental Sub-Tropical Sistema empleado: R52H (tx: 320mW rx: -95dBm) en modo 802.11b Tipo de antena: Directiva tipo grilla de 27dBi de ganancia Pérdida de línea: 0.5dB Figura 10.17: Perfil del enlace Negro Urco – Tacsha Curaray. Figura 10.18: Enlace Negro Urco – Tacsha Curaray. 135 136 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR 10.3.2. Características de los Equipos Instalados 10.3.2.1. Equipos empleados en los enlaces troncales de 2.4GHz – 802.11b/g Equipo Fabricante Interface 802.11b/g Ubiquiti Networks Antena Hyperlink Technologies Router Computadora PC Engines SR2 Super Range 2 HG2424G ALIX 2C0 Heliax SuperFlex Cables Coaxiales Cables pigtail Modelo Hyperlink Características Interface 2.4GHz 802.11b/g mini-PCI Chipset Atheros AR5213 MAC/BB Potencia de transmisión real de 24dBm, +/-1dB para una tasa de 1-24 MbpsSensibilidad para una tasa de 5.5Mbps de -95dBm, (en estándar 802.11b) Consumo de corriente @3.3VTransmisión: 1-24 Mbps 1300mA, +/-100mARecepción: 350mA, +/-50mA Antena direccional 2.4GHz Banda ISM 24dBi Peso: 3.62Kgs 233 MHz AMD Geode SC1100 CPU 128 MB SDRAM Almacenamiento a través de una Compact Flash. Consume alrededor de 3 a 5W con 12V DC 2 Puertos Ethernet 2 Puertos miniPCI Sistema operativo: Pebble Linux, Voyage Linux, AstLinux, AspisOS, iMedia Wrap Linux, etc. El sistema operativo instalado es la Voyage-GTR-0.4 Impedancia característica Pérdida por metro Conectores usados : 50 Ω : 0.1 dB : N macho Un extremo conector: UFL (Compatible con Hirose/iPax/Mini-PCI). Otro extremo conector: N hembra Longitud: 20cm Frecuencia de trabajo: 2.4GHz – 6GHz. Atenuación: 5.38dB/metro en 6GHz Tabla 10.5.- Características de los equipos 802.11b/g de la red troncal. 10.3 Descripción de la Red de Telecomunicaciones 10.3.2.2. 137 Equipos empleados en los enlaces troncales de 5.8GHz – 802.11a Equipo Fabricante Modelo Características Interface 5.8GHz 802.11a/b/g mini-PCI Chipset Potencia de transmisión real 24dBm Sensibilidad -90dBm @ 6Mbps Interface 802.11a Mikrotik Antena Hyperlink Technologies HG5827G Mikrotik 333MHz CPU 64MB SDRAM Consume 19W con 12V DC RouterBoard 3 Puertos Ethernet 333 3 Puertos miniPCI Sistema operativo: RouterOS 3.20 Licencia nivel 4 Router Computadora R52H Heliax SuperFlex Cables Coaxiales Cables pigtail Antena direccional tipo grilla 5.8GHz Banda ISM 27dBi Peso: 2.4Kgs Impedancia característica : 50 Ω Pérdida por metro : 0.1dB Conectores usados : N macho Un extremo conector: UFL (Compatible con Hirose/iPax/Mini-PCI). Otro extremo conector: N hembra Longitud: 20cm Frecuencia de trabajo: 2.4GHz – 6GHz. Atenuación: 5.38dB/metro en 6GHz Hyperlink Tabla 10.6.- Características de los equipos 802.11a de la red troncal. 10.3.2.3. Equipos empleados en los enlaces de distribución de 2.4GHz – 802.11g Equipos Fabricante Modelo Características Interface 2.4GHz 802.11a/b/g mini-PCI Potencia de salida máxima en estándar g: 25dBm Interface inalámbrica Mikrotik Antenas Hyperlink Technologies HG2414P-NF 2.4 GHz Banda ISM IEEE 802.11b, 802.11g Wireless LAN Antena Panel Yagi 14dBi Routers Linksys WRT54GL Router, posee 5 puertos Ethernet, 1 puerto Internet y punto de acceso Wireless-G (802.11g) a 54 Mbps R52H Tabla 10.7.- Características de los equipos 802.11g elegidos para el enlace de distribución. 138 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR 10.3.3. Distribución de los equipos en los repetidores y estaciones clientes 10.3.3.1. Distribución en los repetidores de Tacsha Curaray, Negro Urco, Tuta Pishco y Huamán Urco (enlaces en 2.4GHz) En la siguiente figura se muestran los equipos que se han instalado en los repetidores (enlaces troncales y de distribución) implementados en Tacsha Curaray, Negro Urco, Tuta Pishco y Huamán Urco. En cada repetidor se han instalado dos placas ALIX, las cuales han sido etiquetadas como ALIX n1 y ALIX n2. La placa n1 cuenta con dos tarjetas inalámbricas: una tarjeta SR2 para enlazar con su vecino del norte y una tarjeta inalámbrica R52H encargada de establecer el enlace con su cliente local. En el caso de la placa n2 cuenta con solo una tarjeta inalámbrica SR2. La cuál permite el enlace con su vecino del sur. Adicionalmente en ésta placa se encuentra instalado el servidor Asterisk local. La energía de alimentación es proporcionada por el sistema fotovoltaico. Figura 10.19: Esquema de conexiones en una estación repetidora de los enlaces rurales (Tacsha Curaray Negro Urco Tuta Pishco Huamán Urco). 10.3 Descripción de la Red de Telecomunicaciones 10.3.3.2. 139 Distribución en el repetidor de Mazán (enlaces en 2.4GHz y 5.8GHz) En el repetidor de Mazán se han instalado una placa ALIX y una placa MIKROTIK. La placa ALIX cuenta con una tarjeta inalámbrica SR2 para enlazar con el repetidor de Huamán Urco (2.4GHz) y tiene instalado el servidor Asterisk. La placa MIKROTIK cuenta con dos tarjetas inalámbricas R52H: la primera para enlazar con el repetidor ubicado en Planta de Ventas de PetroPerú (enlace troncal en la frecuencia de 5.8GHz) y la segunda tarjeta para el enlace con el Centro de Salud de Mazán (enlace de distribución en la frecuencia de 2.4GHz). La energía es proporcionada por el sistema fotovoltaico. Figura 10.20: Esquema de conexiones de la estación repetidora de Mazán. 140 10.3.3.3. CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Distribución en el repetidor de PetroPerú (enlaces en 2.4GHz y 5.8GHz) En el repetidor de PetroPerú se han instalado una placa ALIX y una placa MIKROTIK. La única función que cumple la placa ALIX n2 es ser el servidor Asterisk local. Los enlaces inalámbricos los administra la placa MIKROTIK n1 mediante tres tarjetas inalámbricas R52H. Los enlaces hacia el repetidor de Mazán y el repetidor ubicado en el Hospital Regional de Iquitos son enlaces en la frecuencia de 5.8GHz. En el caso del enlace de distribución hacia el Vicariato de San José del Amazonas se realiza en la frecuencia de 2.4GHz. La energía es proporcionada desde la caseta de energía ubicada en la base de la torre. Figura 10.21: Esquema de conexiones de la estación repetidora de PetroPerú. 10.3.3.4. Distribución en el repetidor del Hospital Regional de Loreto (enlaces en 2.4GHz y 5.8GHz) En el repetidor del Hospital Regional de Loreto se ha instalado una placa MIKROTIK con tres tarjetas inalámbricas R52H. El enlace con el repetidor ubicado en Planta de Ventas se realiza en la frecuencia de 5.8GHz. Y los dos enlaces de distribución uno hacia la oficina de Radiofonía de la Dirección Regional de Salud y el segundo hacia los ambientes de Emergencia del Hospital Regional de Loreto se realizan en la frecuencia de 2.4GHz 10.3 Descripción de la Red de Telecomunicaciones 141 Figura 10.22: Esquema de conexiones de la estación repetidora de PetroPerú. 10.3.3.5. Distribución en las estaciones clientes (enlaces de distribución) En la siguiente figura se muestran los equipos inalámbricos y la red LAN instalados en cada estación cliente (enlace de distribución); el Linksys es un equipo para interiores por lo que sus antenas fueron reemplazados por una antena panel de 14dBi para exteriores. Todos los enlaces de distribución son en la frecuencia de 2.4GHz. En la Figura 24 se muestra en detalle los equipos instalados en cada estación cliente. 142 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Figura 10.23: Esquema de conexiones en una estación cliente. 10.3.4. Sistema de Energía y Protección Eléctrica En cada estación rural se han instalado sistemas de energía fotovoltaica con su respectivo sistema de protección eléctrica tanto en las estaciones repetidoras como los enlaces de distribución. En las siguientes dos figuras se muestran los esquemas de ambos sistemas con los equipos y elementos empleados. En el caso de las estaciones ubicadas en la ciudad de Iquitos son alimentadas con energía eléctrica de la red pública de Electro Oriente y el sistema de protección eléctrica empleado es el encontrado ya instalado previamente en cada establecimiento. 10.3 Descripción de la Red de Telecomunicaciones 143 Figura 10.24: Esquema del sistema de energía en una estación cliente rural y de su sistema de protección eléctrica. Figura 10.25: Esquema del sistema de energía en una estación repetidora rural y de su sistema de protección eléctrica. 144 CAPÍTULO 10. CASO DE ESTUDIO: RED NAPO SUR Los pozos de tierra construidos en las estaciones rurales son pozos horizontales de 10m de longitud lineales en el caso de las estaciones clientes y de 20m de longitud en forma cuadrada alrededor de la base de la torre ventada. La sección de ambos pozos es de 50cm de ancho por 60cm de profundidad. En el caso del repetidor ubicado en la Planta de Ventas de PetroPerú la torre ventada cuenta con su sistema de protección eléctrica instalada y supervisada por la misma empresa. Similar caso se presenta en con el repetidor ubicado en el Hospital Regional de Loreto donde los equipos han sido aterrados al sistema de protección eléctrica del mismo hospital. En la siguiente tabla se detalla las lecturas de resistencia de los pozos de tierra construidos en las comunidades de Negro Urco, Tuta Pishco, Huamán Urco y Mazán. Establecimiento Mazán Huamán Urco Tuta Pishco Negro Urco Resistencia de los Pozos Tierra Estación Cliente (Ω) Estación Repetidora (Ω) 8.65 7.11 1.65 5.32 3.81 6.75 6.42 8.95 Tabla 10.8.- Medida de resistencia de los sistemas PAT. Bibliografía [1] B. Raman,“Digital Gangetic Plains: 802.11-Based Low-Cost Networking for Rural Areas, 2001 − 2004: A Report”, by Bhaskaran Raman, Ed., DGP Media Labs Asia Team, July 2004. [2] Chieng, D.; Tan, S.W.; Rahim, R.; Ting, A.,“QoS Performance Analysis of Multi-Radio Multi-Hop Wi-Fi Chain Network”, Wireless Broadband and Ultra Wideband Communications, 2007. AusWireless 2007. The 2nd International Conference on , vol., no., pp.38-38, 27-30 Aug. 2007 [3] E Brewer, M Demmer, Bowei W. Du, M Ho, M Kam, S Nedevschi, J Pal, Rabin Patra, S Surana, and K Fall,“The case for technology in developing regions”, (2005). Computer. 38 (6), pp. 25+. [4] Experiences in using WiFi for Rural Internet in India, Bhaskaran Raman and Kameswari Chebrolu, IEEE Communications Magazine, Jan 2007, Special Issue on New Directions In Networking Technologies In Emerging Economies. [5] Francisco Javier Simó Reigadas, “Modelado y Optimización de IEEE 802.11 para su aplicación en el despliegue de redes extensas en zonas rurales aisladas de países en desarrollo”, 2007. http://www.ehas.org/uploads/file/difusion/academico/Tesis/TesisJSimo. pdf [6] Grupo de Telecomunicaciones Rurales-PUCP, “Redes Inalambricas para Zonas Rurales”, Primera Edición, 2008 http://gtr.telecom.pucp.edu.pe/ [7] Long Distance Wireless Mesh Network Planning: Problem Formulation and Solution, Sayandeep Sen and Bhaskaran Raman. The 16th Annual Interntional World Wide Web Conference (WWW 2007), May 2007, Banff, Canada. [8] Long-Distance 802.11b Links: Performance Measurements and Experience, Kameswari Chebrolu, Bhaskaran Raman, and Sayandeep Sen, 12th Annual International Conference on Mobile Computing and 145 146 BIBLIOGRAFÍA Networking (MOBICOM), Sep 2006, Los Angeles, USA. [9] Pablo Osuna et al., “Application of IEEE 802.11 Technology for Health Isolated Rural Environments”, Proc. IFIP WCIT, Santiago, Chile, Aug. 2006. [10] Rabin Patra and Sergiu Nedevschi, “Design and Implementation of High Performance WiFi Based Long Distance Networks”, 2007. http://www.usenix.org/events/nsdi07/tech/patra.html [11] S. Garigala. Experimental Validation of Simultaneous Operation in an 802.11 Multi-hop Mesh Network. Master's thesis, Indian Institute of Technology, Kanpur, July 2004. [12] S. Xua and T. Saadawi. Revealing the problems with 802.11 medium access control protocol in multi-hop wireless ad hoc networks. Computer Networks, 38, 2002. [13] Z. Fu, P.Zerfos, H. Luo, S. Lu, L. Zhang, and M. Gerla. The impact of Multihop Wireless Channel on TCP Throughput and Loss. In IEEE INFOCOM, 2003. [14] Alvarion. http://www.alvarion.com/ [15] Asterisk. http://www.asterisk.org/ [16] Cisco Systems. http://www.cisco.com/ [17] HyperGain HG2424G 2.4 Ghz 24 dBi High Perfomance Reflector Grid Antenna. http://www.hyperlinktech.com/web/hg2424g.php [18] International Telecommunications Union - Statistics. http://www.itu.int/ITU-D/ict/statistics/ [19] MadWifi. http://madwifi-project.org/ [20] Mikrotik http://www.routerboard.com/ [21] PC Engines. http://www.pcengines.ch/ BIBLIOGRAFÍA [22] Rad Data Communications. http://www.rad.com/ [23] Redline Communications. http://www.redlinecommunications.com/ [24] Software Quagga. http://www.quagga.net/ [25] Trango Broadband. http://www.trangobroadband.com/ [26] TIER. http://tier.cs.berkeley.edu/ [27] Ubiquiti. http://www.ubnt.com/ [28] Voyage-Linux. http://linux.voyage.hk/ [29] Waverider Communications. http://www.waverider.com/ 147 148 BIBLIOGRAFÍA Glosario ACK Acknowledgment code. ACPI Interfaz Avanzada de Configuración y Energía. ADSL Asymmetric Digital Subscriber Line. AFSK Audio frecuency-shift Keying. ANSI American National Standards Institute. API Application Program Interface. ATA Analog Telephone Adapter. API Application Programming Interface. BER Bit Error Rate. CA Collision Avoidance. CCK Complementary Code Keying. CD collision Detection. CF Compact Flash. CPU Central processing unit. CRC Cyclic redundancy check. CSMA Carrier sense multiple access. CSQ Carrier Squelch. D/A Digital Analogico. DAMA Demand Assigned Multiple Access. DHCP Dynamic Host Configuration Protocol. 149 150 DIFS Tiempo que cada estación espera una vez que detecta que el canal ha quedado libre. DNS Domain Name Server. DQPSK Differential-quadrature Phase Shift Keying. DTMF Multi Frecuencia de Tono Dual. ETSI European Telecommunications Standards Institute. FCC Federal Communications Commission. FCS Frame check sequence. FEC Forward Error Correction. FM Frequency Modulation. FSK Frequency-shift keying. FXO Foreign Exchange Office. FXS Foreign Exchange Station. GPG GNU Privacy Guard. GPS Global Positioning System. GSM Global System for Mobile communications. HAL Hardware Abstraction Layer. HF High Frecuency. HR/DSSS High Rate/Direct-sequence spread spectrum. IAX Inter-Asterisk eXchange protocol. ICMP Protocolo de Mensajes de Control de Internet. IEEE Institute of Electrical and Electronics Engineers. IP Internet Protocol. ISM Industrial, Scientific and Medical. ITU International Telecommunication Union. LAN Local Area Network. LUF Lowest useable frequency. MAC Media Access Control. MIB Management Information Base, Base de Información de Gestión. MINSA Ministerio de salud. Glosario Glosario 151 MUF Maximum Usable Frequency. MVC Modelo-Vista-Control, Model-View-Controller. NAT Traducción de Dirección de Red. NAV Network Allocation Vector. NIC Network Interface Card. NTP Network Time Protocol. OFDM Orthogonal Frequency-Division Multiplexing. ONG Organización No Gubernamental. PAT Puesta a tierra. PHY Physical layer. PIRE La máxima potencia que podamos transmitir. PtMP punto a multipunto. PtP punto a punto. PTT Push-to-talk. PWM Pulse Width Modulation. QoS Quality of service. RIC Repeater Interface Controller. ROE Relación de onda estacionaria. RRCONN Round Robin Connections. RTPC Red Telefónica Pública Conmutada. RTS/CTS Request to Send / Clear To Send. S.O. Sistema Operativo. SIFS Tiempo fijo que define la separación entre la recepción del paquete de la transmisión de su ACK en el receptor. SIP Session Initiation Protocol. SMTP Simple Mail Transfer Protocol. SNMP Simple Network Management Protocol. SNR Signal Noise Ratio. SREJ Rechazo selectivo de paquetes. 152 TCP Transmission Control Protocol. TIC Tecnologías de la información y las comunicaciones. TOS Campo de 8 bits incluido dentro de un paquete IP. UDP User Datagram Protocol. UHF Ultra High Frecuency. UUCP Unix to Unix CoPy. VHF Very High Frecuency. VoIP Voice Over IP, Voz sobre IP. VSAT Very Small Aperture Terminals. WAN Widee Area Network. WiFi Wireless Fidelity. WiLD WiFi based Long Distance. WiMAX Worldwide Interoperability for Microwave Access. WLAN Wireless LAN. Glosario