Texto Guia

EX – TIP. Experto en Telefonía IP – Módulo 1 1. INTRODUCCIÓN A TCP/IP 1.1 REDES Y TCP/IP: Una red es un conjunto de ord

Views 124 Downloads 0 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

EX – TIP. Experto en Telefonía IP – Módulo 1

1. INTRODUCCIÓN A TCP/IP 1.1 REDES Y TCP/IP: Una red es un conjunto de ordenadores, conectados entre si, que pueden comunicarse compartiendo datos y recursos. Los ordenadores suelen estar conectados mediante cables. Pero si la red es extensa, las conexiones pueden realizarse a través de lineas telefónicas, microondas, e incluso satélites. Las redes se clasifican en redes de área local (LAN: local área network) y redes de área amplia (WAN: wide área network). Las redes LAN abarcan una zona no demasiado grande, mientras que las WAN pueden abarcar varios países. Internet es una red, que a su vez se compone de otras redes, que pueden ser LANs (conectadas mediante Ethernet y otros protocolos de redes como pueden ser IPX/SPX, AppleTalk o por supuesto el standard de internet: TCP/IP) o WANs (mediante módems a través de líneas telefónicas, conexiones ISDN, etc...). Para que la comunicación entre ordenadores sea posible, es necesaria la existencia de un protocolo. Un protocolo es un conjunto de convenciones que determinan como se realiza el intercambio de datos entre dos ordenadores o aplicaciones. El protocolo usado por todas las redes que forman parte de Internet se llama abreviadamente TCP/IP. Mientras que las grandes organizaciones tienen sus propias LANs y Gateway, los usuarios particulares deben conectarse mediante módems. Existen dos formas para la conexión de estos últimos: La conexión por Dial y por el nivel IP. La primera consiste en conectarse con el servidor del ordenador del proveedor del servicio y tener acceso a los programas y utilidades que ofrece este servidor, para este tipo de conexión solo se necesita un terminal y un módem, ejemplos de proveedores de este servicio son CIX, CompuServe y Delphi. Una conexión de nivel IP es mucho más complicada, pero ofrece mucha mayor flexibilidad. Se necesita de la instalación de una serie de drivers de red en el ordenador local, un stack TCP/IP y un driver de bajo nivel de módem. Una vez configurado el stack del protocolo, ya se puede ejecutar cualquier tipo de software TCP/IP que lo reconozca y tener acceso directo a Internet. Internet es una red, a través de la cual se encuentran interconectadas una gran cantidad de redes de ordenadores, de forma que cada ordenador puede comunicarse con cualquier otro independientemente del tipo o del sistema operativo que utilice. Por eso el protocolo común de comunicaciones usado en Internet es el TCP/IP.

Academy Xperts Bolivia

1

EX – TIP. Experto en Telefonía IP – Módulo 1

Cuando se transmite información de un ordenador a otro, esta no es transmitida de una sola vez, sino que se divide en paquetes pequeños, evitando de esta manera la monopolización de los recursos de la red por un solo usuario. Por los cables de la red viajan paquetes de información provenientes de diferentes ordenadores y con destinos también diferentes. Para alcanzar su destino, estos paquetes atraviesan en el camino cierto número de ordenadores y otros dispositivos que hacen que la transmisión sea posible. Las distintas partes que forman Internet están conectadas por un conjunto de ordenadores llamados Routers, cuya misión principal es redirigir los paquetes de información que reciben por el camino adecuado para que alcancen su destino. El protocolo IP (Internet Protocol) se encarga de etiquetar cada paquete de información con la dirección apropiada. Cada ordenador conectado, tiene una dirección Internet IP Address única y exclusiva, que está formada por cuatro números separados por puntos, cada uno de los cuales puede tomar valores entre 0 y 255. Mientras, el protocolo TCP (Transmission Control Protocol) se encarga de dividir la información en paquetes de tamaño adecuado, numerarlos para que puedan volver a unirse en el orden correcto y añadir cierta información extra necesaria para la transmisión y posterior decodificación del paquete. En 1982, TCP/IP Internet incluía unos cuantos cientos de ordenadores concentrados principalmente en Norte América. En la primavera de 1993, ya había más de 1.200.000 ordenadores conectados a Internet en 45 países repartidos por los 7 continentes, y su tamaño sigue duplicandose cada 10 meses. Al principio los usos básicos que ofrecía la red eran los de correo electrónico, transferencia de ficheros y conexiones remotas. En la actualidad existe una gran cantidad de usuarios que diseñan protocolos de aplicación para construir sus aplicaciones software. La variedad de las aplicaciones que usan TCP/IP consisten en sistemas de monitorizacion y control de plataformas industriales, sistemas de control de inventarios de almacén, aplicaciones que permiten compartir el acceso a archivos entre sistemas alejados geográficamente, como también posibilitar teleconferencias y aplicaciones de sistemas multimedia. El protocolo TCP/IP incluye a su vez muchos protocolos de aplicación y cada día aparecen nuevos protocolos, pero solo algunos de ellos han sido documentados y forman parte del protocolo oficial TCP/IP (Standard Application Protocols), que entre sus aplicaciones características se encuentran: FTP, Telnet y E-Mail. 1.2 DEFINICIÓN DEL CONJUNTO DE PROTOCOLOS TCP/IP: El conjunto de protocolos TCP/IP incluye los protocolos de control de transporte e Internet, así como otros:

Academy Xperts Bolivia

2

EX – TIP. Experto en Telefonía IP – Módulo 1

FUNCIONES DEL SOFTWARE DE COMUNICACIONES: - Intercambio fiable de datos entre dos hosts: 1. 2. 3. 4. 5. 6. 7. 8.

Empaquetar los datos. Determinar la ruta a seguir. Transmisión de los datos por el medio físico. Ensamblado de los datos entrantes para el mantenimiento de la secuencia correcta y evitar la pérdida de fragmentos. Comprobar si existen datos repetidos. Notificar al emisor los datos que no se hayan recibido correctamente. Entregar los datos a la aplicación requerida. Manejar eventos de errores y problemas.

PILA DE PROTOCOLOS: El modelo ISO/OSI asocia los protocolos que definen la funcionalidad de cada capa y representa una red como una pila vertical de módulos o capas. El modelo asocia al menos un protocolo con cada capa. Se estructura en capas verticales y protocolos apilados. El modelo de referencia ISO/OSI define siete capas funcionales para el diseño de redes. Aunque el diseño TCP/IP sólo utiliza cinco de ellas con sus protocolos respectivos. Mientras los datos fluyen por la pila de protocolos, los protocolos TCP/IP pueden dividirlos en unidades más pequeñas.

Academy Xperts Bolivia

3

EX – TIP. Experto en Telefonía IP – Módulo 1

1.3 CAPAS DE LA RED: Los diseñadores de software de comunicaciones utilizan el concepto de capas para organizar una red en módulos funcionales bien definidos. Los principios fundamentales para desarrollar las capas en el Modelo OSI, son: 1. Crear una nueva capa cada vez que el programa de red necesite un nivel de abstracción distinto. 2. Cada capa debe desempeñar una función bien definida. 3. Elegir la función de cada capa teniendo en cuenta la definición de protocolos estandarizados internacionalmente. 4. Elegir los límites de la capa para minimizar el flujo de información a través de las interfaces. 5. El número de capas debe ser lo suficientemente grande para que los diseñadores no necesiten colocar funciones distintas en la misma capa. LA CAPA FISICA: Transmite datos a través de los canales de comunicación de la red. Incluye los elementos físicos para tal función, tales como líneas de transmisión de red. Se encarga de determinar las propiedades mecánicas y eléctricas de dicho canal, así como los detalles de procedimiento relacionados con estas características, como por ejemplo determinar el punto de nivel de voltaje para el cambio del estado lógico de representación de los datos binarios. Debe asegurar que cuando un extremo de la comunicación envia un bit con valor 1, el otro extremo reciba un bit con el mismo valor. Y también determinar el tipo de comunicación que emplean las transferencias de datos, simplex, duplex o semiduplex. LA CAPA DE ENLACE: Se encarga de transformar los datos binarios que le llegan de la capa física en tramas de datos y viceversa. Ayuda a localizar la definición de información que fluye entre la capa física y la capa de red. Creación y reconocimiento de los límites de la trama de datos, para lo que se vale de la inclusión de una máscara de bit al inicio y al término de la trama. También tiene como misión la resolución de los problemas ocasionados por daños, perdida o duplicidad de las tramas. Así como la implementación de mecanismos de regulación del flujo de datos, que permita al transmisor conocer la capacidad de recepción del otro extremo.

Academy Xperts Bolivia

4

EX – TIP. Experto en Telefonía IP – Módulo 1

La tarjeta de interface de red representa el enlace de datos en el sistema. Su función principal es evitar que la información dentro de la capa física se pierda. Son específicas para cada tecnología de red. Incluye dos módulos de protocolos: . El protocolo de Resolución de Direcciones. ARP: Que se encarga de traducir las direcciones de la capa de red a direcciones de la capa de enlace. . El protocolo de Resolución de Direcciones Inverso. RARP: Traduce las direcciones de la capa de enlace a direcciones de Red. En el conjunto de protocolos TCP/IP la capa de enlace envía y recibe datos por el módulo IP de la capa de red. LA CAPA DE RED: Determina la ruta que siguen los datos para alcanzar su destino. Tiene como misión el manejo y el control del tráfico, congestión y tasa de transferencia a través de las líneas de transmisión, así como la perdida de datos en la red. Es el sistema de entrega primario dentro de la red. Entrega unidades de datos como paquetes individuales, cada uno de los cuales contiene las direcciones del destino y fuente para fines de enrutamiento. Define la interface entre los sistemas y toda conmutación de paquetes entre las direcciones fuente y destino. Asegura que se reciban los paquetes correctamente, así como la secuenciación. Las tablas de enrutamiento se utilizan para enrutar los datos, y son bases de datos para buscar la trayectoria correcta. Se pueden establecer tablas de enrutamiento tanto estáticas como dinámicas, siendo las dinámicas aquellas que se actualizan de modo automático. También se encarga de la resolución de los problemas de interconexión de redes heterogéneas. LA CAPA DE TRANSPORTE: Se encarga de aceptar los datos de la capa de sesión, dividirlos en unidades más pequeñas, pasarlos a la capa de red y asegurar que lleguen correctamente al otro extremo. La capa de transporte en el otro extremo, debe reensamblar los datos fragmentados y entregarlos a la aplicación correcta. Maneja todos los problemas de administración de tráfico relacionados con el enrutamiento y la entrega. La capa de transporte se necesita para realizar el trabajo de multiplexión transparente a la capa de sesión. Crea una conexión de red independiente para cada conexión de transporte solicitada por la capa de sesión.

Academy Xperts Bolivia

5

EX – TIP. Experto en Telefonía IP – Módulo 1

Determina el tipo de servicio que tiene que ofrecer a la capa de sesión y a los usuarios de la red y se determina cuando se establece la conexión. Debe ocuparse del establecimiento y liberación de conexiones a través de la red. LA CAPA DE SESION: La capa de sesión negocia y establece las conexiones entre los procesos y aplicaciones en diferentes anfitriones. Los profesionales en redes denominan asignación al proceso de preparar una sesión. Se encarga de transformar datos empaquetados para transmisiones de red en datos de aplicación. Maneja las solicitudes de la aplicación para cambiar la tasa de flujo y el control de errores. Es la interface del usuario con la red. La capa de sesión proporciona testigos para regular el tráfico de la información, los testigos pueden ser intercambiados y sólo el extremo que posea el testigo puede realizar la operación crítica. Esta capa proporciona una forma para insertar puntos de verificación en el flujo de datos, con objeto de conseguir un alto grado de sincronización en las transferencias de datos entre el emisor y el receptor. En ocasiones se fusionan las capas de sesión y transporte, aunque en la mayoría de los casos la funcionalidad requerida por una capa de sesión no desaparece sino que otro software de red asume la responsabilidad. LA CAPA DE PRESENTACION: La capa de presentación se ocupa de los aspectos de sintaxis y semántica de la información que se transmite. Determina como aparecen los datos ante el usuario. Esta capa debe integrar la diversidad de software de diferentes sistemas operativos y otras características de la gran variedad de sistemas que existen en Internet de tal manera que haga que las diferencias sean transparentes a las aplicaciones de red. La capa de presentación ofrece servicios tales como el cifrado de datos para garantizar la seguridad, la compresión de datos para reducir la cantidad de los mismos que debe transportar la red y mejorar el ancho de banda efectivo. CAPA DE APLICACIÓN: La capa de aplicación contiene todos los detalles relacionados con aplicaciones específicas o programas de cómputo diseñados para usuarios de red.

Academy Xperts Bolivia

6

EX – TIP. Experto en Telefonía IP – Módulo 1

Para resolver el problema de las diferencias que surgen dada la gran cantidad de terminales incompatibles que existen, se define un terminal virtual de red abstracto, y que a partir del software se pueden transferir funciones a los terminales reales. Otra de las funciones de esta capa es la transferencia de archivos entre dos sistemas diferentes, requiriendo la resolución de tales diferencias y otras incompatibilidades. Existiendo entre otras funciones también: El correo electrónico, el servicio de directorio y otros servicios de propósito general y específico. 1.4 MODELO CLIENTE-SERVIDOR: TCP/IP como otros muchos protocolos de comunicación , provee mecanismos básicos para transferir datos , en particular , permite al programador establecer comunicaciones entre dos programas de aplicación y poder transferir información del uno al otro , es lo que se llama comunicación peer-to-peer (par a par) , este tipo de aplicaciones pueden ejecutarse en la misma maquina o en diferentes. En la práctica un método organizativo domina el uso de TCP/IP, es el paradigma Cliente-Servidor. El fundamento principal para el modelo cliente-servidor es el problema de rendezvous (cita), de que ambos sistemas estén conectados al mismo tiempo. Este problema se resuelve, asumiendo que en todo tipo de comunicación entre dos sistemas, uno de ellos debe ejecutar la aplicación y esperar a que el otro sistema se conecte. Así para asegurarse de que los ordenadores están listos para la comunicación, muchos administradores de sistemas acuerdan que la ejecución de los programas de comunicación, comience automáticamente cuando arranca el sistema. El modelo cliente-servidor se divide en dos categorías, dependiendo si la aplicación espera la comunicación o la inicia. Este modelo usa la dirección de inicialización para averiguar si un programa es cliente o servidor. En general la aplicación que la inicia es el cliente. Cada vez que una aplicación cliente se ejecuta, contacta con un servidor, enviándole la señal request y esperando una respuesta, que cuando le llega le permite continuar con el proceso. Para enviar un request, la aplicación cliente necesita de una serie de parámetros que permiten al usuario especificar totalmente el sistema destino y el número de puerto del protocolo destino. Cuando se quiere diseñar software cliente-servidor, se debe escoger entre dos tipos de interacción: sin conexión UDP o orientado a conexión TCP, una u otra elección determina el nivel de fiabilidad del sistema. TCP es el protocolo más fiable para comunicarse a través de INTERNET, verifica la llegada de los datos y automáticamente retransmite los segmentos que no lo han hecho. Calcula un checksum sobre los datos para determinar que no ha habido errores durante la transmisión. Usa números de secuencia para asegurarse de que la información llega

Academy Xperts Bolivia

7

EX – TIP. Experto en Telefonía IP – Módulo 1

ordenada y automáticamente elimina los paquetes duplicados. Dispone de un flujo de control, para asegurarse de que la velocidad de transmisión del emisor no supere la de recepción del receptor. Finalmente TCP informa tanto al cliente como al servidor si en algún momento la red es inoperable por cualquier motivo. Sin embargo, las aplicaciones que usan UDP, no disponen de garantías sobre la fiabilidad de recuperación de la información. Aquí deben ser las propias aplicaciones cliente o servidor las que tienen que tomar las apropiadas medidas para detectar y corregir errores. UDP no introduce errores, solamente depende del subyacente IP para entregar los paquetes de información. IP, en cambio, depende de las subyacentes conexiones hardware y de los gateways intermedios. Por lo tanto UDP funciona bien, si la red lo hace correctamente. Se suele utilizar en redes locales, donde la probabilidad de que se den errores es más baja. Manteniendo el estado de la información en el servidor se puede mejorar la eficiencia de la red, pero también puede consumir más recursos de los que convendría, si el sistema de transporte de datos permite las opciones de duplicados, retraso o paquetes perdidos. Una aplicación servidor puede necesitar acceder a servicios de la red, actuando de esta forma como un cliente, en una red no es inusual que esto ocurra, pero se debe de evitar que aparezcan dependencias circulares entre los servidores. Por lo tanto, las aplicaciones no pueden ser divididas fácilmente en clientes y servidores, porque muchas de ellas realizan ambas operaciones. PROCESOS CONCURRENTES EN LAS APLICACIONES CLIENTE-SERVIDOR. El término concurrente se refiere a la real o aparente ejecución simultánea de varios programas. La primera es el multiproceso, donde se necesitan múltiples procesadores, mientras que la segunda, se refiere al tiempo compartido, donde solo existe un único procesador que se encarga de repartir su capacidad de proceso entre varios programas. La concurrencia en el proceso de datos es fundamental entre los sistemas que interactúan de forma distribuida y se da de múltiples formas; entre máquinas de una sola red, muchos pares de programas de aplicación pueden comunicarse al mismo tiempo, compartiendo la red que los interconecta de manera que parece que las aplicaciones se ejecuten independientemente. El hardware de la red fuerza unas reglas de acceso que permiten que cada par de máquinas comunicándose puedan intercambiar mensajes. INTERFAZ DEL PROGRAMA A PROTOCOLOS En muchas implementaciones, el software del protocolo TCP/IP reside en los sistemas operativos de los ordenadores, así cuando un programa de aplicación usa TCP/IP para comunicarse, debe por tanto interactuar con el sistema operativo .Las

Academy Xperts Bolivia

8

EX – TIP. Experto en Telefonía IP – Módulo 1

rutinas que el sistema operativo dispone para la comunicación definen el interface entre la aplicación y el software del protocolo, es lo que se denomina application interface. TCP/IP fue diseñado para ser compatible con una gran variedad de sistemas informáticos, por este motivo, TCP/IP no especifica los detalles de cómo las aplicaciones interfieren con él , solo sugiere ciertos requerimientos de funcionalidad y deja que los diseñadores de los sistemas escojan los detalles. La Universidad de Berkeley (California) consiguió definir una interfaz para el sistema operativo UNIX, que es lo que ha llegado a conocerse como socket interface (interfaz de conexión). También AT&T definió una interfaz para el sistema V UNIX conocida con las siglas de TLI (Transport Layer Interface). Una interfaz debe soportar los siguientes tipos de operaciones:             

Asigne recursos locales para la comunicación. Especifique los puntos de la comunicación: local y remoto. Iniciar una conexión (cliente). Espere a que le llegue una conexión (servidor). Enviar o recibir datos. Determinar cuando llega la información. Generar datos urgentes. Manipular la información urgente que llega. Terminar de forma correcta la conexión. Terminación de la conexión remota. Abortar la comunicación. Procesar las condiciones de error o de una desconexión. Liberar los recursos locales cuando termine la comunicación.

La interfaz conceptual definida por los standards de TCP/IP no específica las representaciones de los datos o los detalles de programación, solamente otorga un ejemplo de una posible interfaz que un sistema operativo puede ofrecer a los programas de aplicación que usan TCP/IP.

Academy Xperts Bolivia

9

EX – TIP. Experto en Telefonía IP – Módulo 1

1.5 TCP /IP Y COMUNICACIONES ENTRE REDES

Sean las redes A, B y C de la figura, estas redes forman una red común y cada una de ellas es una subred de la misma. El que se trate de subredes no significa que realicen menos funciones que las redes convencionales, sino que las tres redes forman una única red lógica y las subredes contribuyen en las operaciones globales de interconexión. Los gateways (pasarelas) entre redes se diseñan de forma que sean transparentes a las aplicaciones de los usuarios finales. De hecho, las aplicaciones de usuarios residen en ordenadores conectados a las redes. Las pasarelas no necesitan cargarse con los protocolos del nivel de aplicación. Como no son invocados por la pasarela, ésta se puede dedicar a otras tareas, como la gestión del tráfico entre las redes. No se ocupa de funciones del nivel de aplicación como acceso a bases de datos, correo electrónico y gestión de archivos. Además de la transparencia para el nivel de aplicación, la mayoría de los diseñadores intentan que las pasarelas sean transparentes a las subredes, y viceversa. El propósito principal de la pasarela es recibir una PDU que contenga información de direccionamiento suficiente para que se pueda encaminar hacia su destino final o hasta la pasarela siguiente. EJEMPLO DE LAS OPERACIONES DE TCP/IP

Academy Xperts Bolivia

10

EX – TIP. Experto en Telefonía IP – Módulo 1

En este ejemplo se supone que la aplicación de usuario de un ordenador A envía una PDU de aplicación al protocolo del nivel de aplicación de un ordenador B. El software de transferencia de archivos realiza unas determinadas funciones y añade una cabecera de transferencia de archivos a los datos del usuario. De los niveles de aplicación del ordenador A, la PDU se pasa a TCP, que es un protocolo de nivel de transporte. TCP realiza varias funciones y añade una cabecera a la PDU que se le transfiere. La unidad de datos se denomina ahora segmento. Después, TCP pasa estos segmentos al nivel de red, que trabaja con IP, que a su vez realiza unos determinados servicios y añade otra cabecera. La unidad resultante es el datagrama, que se pasa a los niveles inferiores. El nivel de enlace de datos añade una cabecera y una cola, y la unidad de datos que ahora se denomina trama, se envía a la red a través del nivel físico. Si el ordenador B enviara datos al ordenador A, el proceso se invertiría. TCP/IP desconoce lo que realmente circula por la red. El gestor de la red es libre de manejar la PDU de cualquier forma que considere oportuna. Es en el nivel IP donde se toman las decisiones de encaminamiento basándose en la información de direccionamiento proporcionada por el ordenador principal. Después de tomar las decisiones de encaminamiento, el datagrama se envía al enlace de comunicaciones conectado con la subred apropiada. El datagrama es reencapsulado para formar la trama en el nivel de enlace de datos y se pasa a la subred siguiente. Esta unidad se mueve por la red de forma transparente, hasta que llega al ordenador destino. 1.6 PROTOCOLO IP: La capa de red es el corazón de cualquier red basada en TCP/IP. Esta capa incluye al protocolo Internet (IP), el protocolo de control de mensajes de Internet (ICMP) y el protocolo de manejo de grupos de Internet (IGMP) , siendo estos últimos dos , de apoyo a IP para manejar mensajes especiales de la red, tales como los de error y transmisiones múltiples. IP es un protocolo simple, fácilmente implementable que provee una interfaz estándar a partir de la cual el resto de protocolos y servicios pueden ser construidos, sin tener que preocuparse de las diferencias que existan entre las distintas subredes por las cuales circulan los datos. LA ESTRUCTURA DE DIRECCIONES IP Se añade a las direcciones físicas, un nuevo esquema de direccionamiento, para permitir la interconexión de diferentes tipos de redes. Una dirección internet es una dirección IP. Cada tarjeta de interface en una red específica contiene una dirección

Academy Xperts Bolivia

11

EX – TIP. Experto en Telefonía IP – Módulo 1

IP única. Las redes TCP/IP identifican los ordenadores y las redes a las que están conectados utilizando direcciones IP de 32 bits. DIRECCION IP = DIR. DE RED + DIR. DE ORDENADOR Una dirección IP es de 32 bits, es decir, 4 bytes. Aunque siempre se identifican generalmente en notación decimal, la cual representa cada byte como una serie de numeros decimales separados por puntos. Ej: 235.75.70.2 Identifican un punto de conexión en una red, una maquina puede tener varias direcciones distintas. La dirección IP combina un número de red y un número de dirección en la red. Siendo el byte de mayor orden el que especifica a la red y los tres bytes de menor orden identifican al host dentro de la red. Aunque no es realmente así, ya que el byte de mayor orden nos ofrece más información. Dado que si fuese realmente así, sólo nos permitiría identificar un número máximo de 255 redes. Para evitar esto, se ha ideado un esquema de codificación, donde se utilizan los primeros bits de tal byte, para la identificación de la clase de dirección. La clase de dirección, especifica cuantos bytes utiliza la dirección como número de identificación de la dirección de red. Por lo tanto, las clases de direcciones IP:

Academy Xperts Bolivia

12

EX – TIP. Experto en Telefonía IP – Módulo 1

Ejemplo : Sea la dirección IP 138.100.75.19 ( Clase B)

Direcciones Especiales: Rangos de direcciones IP reservadas: Son una serie determinada de rangos de direcciones IP, que a fin de que pudieran usarse para la confección de redes locales, fueron excluidas de Internet.

  

Host Local : Todo 0´s Host en esta red : Todo 0´s / host Difusión limitada : Todo 1´s . Difusión dirigida: Red / Todo 1´s



Loopback : 127.0.0.1

Si se diseña una red TCP/IP que no va a estar conectada a Internet se puede utilizar cualquier dirección IP, con la salvedad de que no se pueden utilizar direcciones IP, que comiencen por 0. Tampoco por 127, ya que se reservan para los procesos de resolución de problemas y diagnosis de la red. Las direcciones IP de los nodos no pueden terminar con cero. Y también hay que tener en cuenta que a las direcciones

Academy Xperts Bolivia

13

EX – TIP. Experto en Telefonía IP – Módulo 1

IP de nodos no se les puede asignar el valor 255, ya que este valor se emplea para enviar broadcasts a todos los elementos de una red. La máscara de red es un valor con el mismo formato e importancia que la dirección IP. Aplicada sobre la dirección IP de un adaptador de red, establece donde termina la dirección de la red externa y dónde comienza la dirección de la red local o segmento al que se encuentra conectado dicho adaptador. Las máscaras dividen redes en subredes, y esas subredes por medio de otras mascaras pueden dividirse en redes de menor tamaño. A partir de una máscara de red se puede calcular el número de nodos que pertenecen al mismo segmento. Ej: Supóngase la máscara de una red de Clase C : - Decimal: 255.255.255.0 - En Binario: 11111111.11111111.11111111.00000000 Los 1´s se asocian con la parte de la red externa y los 0´s con la red local. El número de nodos por segmento en esta red será el máximo número que podamos representar con un número binario de tantas cifras como ceros de red local tengamos. En este caso: 2 elevado a 8 = 256 (Excluyendo aquellos nodos con direcciones IP no permitidas). IP es un ejemplo de servicio no orientado a conexión. Permite, sin establecimiento de llamada previo, el intercambio de datos entre dos ordenadores (sin embargo, los dos ordenadores generalmente comparten un protocolo común de transporte orientado a conexión). Como IP no es orientado a conexión, se pueden perder datagramas entre las dos estaciones de usuario. Por esta razón es fundamental un protocolo de transporte de nivel superior, como TCP, que solucione esos problemas. Dado que IP es un protocolo de tipo datagrama, no dispone de mecanismos para proporcionar fiabilidad. No proporciona procedimientos de recuperación de errores en las redes subyacentes, ni mecanismos de control de flujo. La mayoría de estos problemas se pasan al nivel superior, TCP. IP soporta operaciones de fragmentación, que son operaciones por las que una unidad de datos de protocolo (PDU) se divide y segmenta en unidades más pequeñas, lo que es muy útil, ya que no todas las redes utilizan PDUs del mismo tamaño. PROTOCOLOS DE DIRECCIÓN DE INTERNET: Las direcciones de nivel físico, tal es el caso de las Ethernet, son de 6 bytes de longitud, mientras que las IP son de cuatro. Para resolver este problema y realizar

Academy Xperts Bolivia

14

EX – TIP. Experto en Telefonía IP – Módulo 1

la oportuna traducción de direcciones, se tienen los protocolos de resolución de direcciones. Existen dos protocolos: ARP: Protocolo de resolución de direcciones: Averigua la dirección física a partir de la dirección IP. Se encarga de modular mapas de direcciones en la capa de red (IP) a la dirección correspondiente en la capa de enlace. Siendo la dirección de la capa de enlace de una tecnología especifica. El mapeo de ARP, es dinámico. ARP vuelve a mapear direcciones de modo automático cuando cambia la configuración de la red. El mensaje ARP se envía en el campo de datos de una trama. Un campo en la cabecera de la trama permite identificar el tipo de mensaje. Una estación A quiere comunicar con B, de la que conocemos su dirección IP, pero no su dirección física. A pregunta a B su dirección física mediante una difusión (parte superior de la figura). Todas las estaciones de la red reciben el mensaje, pero sólo B responde. El paquete de consulta, se compondrá de la dirección física de A, dirección IP de A y dirección IP de B. Mientras que el paquete de respuesta, aparte de todo lo anterior nos enviará la dirección física de B. RARP: Protocolo de resolución de direcciones inverso: Se encarga de mapear una dirección de la capa de enlace a la dirección IP correspondiente. 1.7 El datagrama de IP: El protocolo Internet IP es el sistema de entrega del conjunto de protocolos TCP/IP. IP emplea datagramas sin conexión y poco fiables para llevar la información a través de una red TCP/IP. A estos datagramas se les conoce como datagramas IP o paquetes IP, cada uno de los cuales incluye un encabezado IP y los datos reales. Así una red TCP/IP encapsula casi toda la información dentro de un datagrama IP. El encabezado IP es un flujo de datos en serie de al menos 20 bytes de longitud. El datagrama IP se envía encapsulado en el campo de datos de una trama Ethernet: FORMATO DE UN DATAGRAMA IP:

Academy Xperts Bolivia

15

EX – TIP. Experto en Telefonía IP – Módulo 1

(n) = NUMERO DE BITS EN EL CAMPO El campo versión identifica la versión de IP en uso , actualmente la 4 (Ipv4). El campo de longitud de cabecera contiene 4 bits con el valor de la longitud de cabecera del datagrama. La longitud se mide en palabras de 32 bits. (Valor mínimo = 5 ). El campo de tipo de servicio (TOS) se puede utilizar para identificar varias funciones QOS de Internet : El retardo de tránsito, el caudal efectivo , la prioridad y la fiabilidad. - 3 bits para la prioridad (se ignoran), 4 bits para el tipo de servicio y un bit a cero. 

Los 4 bits de tipo de servicio permiten al usuario solicitar las condiciones deseadas (solo un bit a 1):

Se recomienda el uso de los siguientes valores para el tipo de servicio , dependiendo de la aplicación :

Academy Xperts Bolivia

16

EX – TIP. Experto en Telefonía IP – Módulo 1

El campo longitud en un fragmento indica la longitud de dicho fragmento. Además hay que tener en cuenta dos bits en el campo de flags : - do not fragment : Indica que el datagrama no puede ser fragmentado. - More fragments : Indica que este fragmento no es el último de una serie. Hay que tener en cuenta que en el caso de que se pierda un fragmento , esto conlleva a la perdida de todo el datagrama. El proceso de reensamblado se realiza en el receptor, que establece un plazo de reensamblado , y cuando el plazo se cumple sin que se reciban nuevos fragmentos del mismo datagrama , el host destino descarta los recibidos y envía un mensaje de error al origen. El valor recomendado para el plazo de reensamblado es de 60 y 120 segundos.

El parámetro de tiempo de vida (TTL) se utiliza para medir el tiempo que un datagrama lleva en la interred. Todas las pasarelas deben observar el valor de este campo y descartarlo si es cero, deben también decrementar su valor en todos los datagramas que procesan. Este campo también se utiliza para que los ordenadores limiten el tiempo de vida de los segmentos que pasan por la interred. Idealmente, los valores del campo TTL se pueden configurar, asignándose su valor en función de las prestaciones observadas de la red. El campo de protocolo se utiliza para identificar el siguiente protocolo en la estructura de niveles por encima de IP que va a recibir el datagrama en el ordenador destino. Por ejemplo, el número 6 identifica a TCP. El checksum de la cabecera se utiliza para detectar distorsiones en la cabecera. No se realizan comprobaciones en la cadena de datos de usuario, pero exige que un protocolo de nivel superior en el ordenador sea el que realice algún tipo de comprobación de errores para velar por la integridad de los datos.

Academy Xperts Bolivia

17

EX – TIP. Experto en Telefonía IP – Módulo 1

El datagrama de IP lleva dos direcciones. Se denominan dirección de fuente y de destino y no se modifican durante toda la vida del datagrama. El campo de opciones se emplea para identificar diversos servicios adicionales. Este campo no se utiliza en todos los datagramas. La mayoría de los esquemas utilizan este campo para gestión de la red y diagnósticos. Permite especificar: encaminamiento fuente, confidencialidad del datagrama, registro de la ruta (RR), etc... El campo de relleno se puede utilizar para asegurarse de que la cabecera del datagrama se alinea exactamente con una división de intervalo de 32 bits. Finalmente, el campo de datos contiene los datos de usuario. IP estipula que la combinación de los campos de cabecera y de datos no puede sobrepasar 65535 octetos. 1.8 PRINCIPALES SERVICIOS DE IP Los routers y bridges (puentes) son dispositivos que se utilizan para compartir información entre redes y sistemas. Los routers trabajan a nivel de la capa de red, y se les suele asociar a un protocolo, como es el caso de IP, en cuyo caso hablamos de router IP. Este tipo de dispositivos reducen el tráfico de datos en la red, puesto que al trabajar a nivel de red disponen de la inteligencia necesaria para distinguir que paquetes pertenecen a una red y que paquetes pertenecen a otra. Los bridges, sin embargo, gestionan el tráfico de datos a nivel de la capa física y , por tanto, no se preocupan en absoluto del protocolo que se encuentre por encima. La transición de datos de una red a otra se realiza muy rápidamente pero con el incoveniente de que toda la información que se produzca en una red es transmitida a la otra y viceversa, lo que conlleva a un considerable aumento de la congestión.

Encaminamiento de fuente de IP: IP utiliza como parte de su algoritmo de encaminamiento un mecanismo denominado encaminamiento de fuente, que permite que un protocolo de nivel superior (ULP) determine la forma en que las pasarelas IP encaminan el datagrama. ULP tiene la opción de pasar una lista de direcciones interred al módulo de IP. Esta lista contiene los nodos IP intermedios que se van a atravesar durante el encaminamiento del datagrama hacia su destino final. La última dirección de la lista es el destino final de un nodo intermedio. Cuando IP recibe un datagrama, utiliza la dirección del campo de encaminamiento de fuente para determinar el siguiente salto intermedio. IP utiliza un campo puntero para averiguar la siguiente dirección IP. Si la comprobación del puntero y de los campos de longitud indica que la lista se ha completado, el campo de dirección IP de destino se utiliza para encaminamiento. El módulo IP reemplaza entonces el

Academy Xperts Bolivia

18

EX – TIP. Experto en Telefonía IP – Módulo 1

valor de la lista de encaminamiento de fuente con su propia dirección. Por supuesto, hay que incrementar el puntero en el valor de una dirección (4 bytes) para que en el siguiente salto se pueda recuperar la siguiente dirección de IP de la ruta. Así, el datagrama sigue la lista de fuente dictada por el ULP y almacena también la ruta durante el camino. Operaciones de encaminamiento: La pasarela de IP toma decisiones de encaminamiento basándose en la lista de encaminamiento. Si el ordenador destino reside en otra red, la pasarela debe decidir la ruta de encaminamiento hacia la misma. En cada pasarela se mantiene una tabla de rutas que contiene la siguiente pasarela a atravesar. Dicha tabla contiene una entrada por cada red alcanzable .Estas tablas pueden ser estáticas o dinámicas. La tabla de rutas contiene una dirección de IP por cada red alcanzable y la dirección de una pasarela vecina (es decir, una pasarela directamente conectada a esta red). La pasarela vecina es la ruta más corta hacia la red de destino. Las tablas de encaminamiento contienen información sobre los posibles destinos y como llegar a ellos. Se encuentran en routers y hosts y deben ser compactas y pequeñas para que sean eficaces en su funcionamiento. Sólo deben contener información sobre redes destino y de los routers que nos conducen a ellas. Ej. Tabla encaminamiento de un router:

Los routers intercambian información para mantener actualizadas las tablas de encaminamiento. No existe ningún protocolo obligatorio para actualizar las tablas de encaminamiento, pero existen algunos que caen dentro del tipo IGP (Interior Gateway Protocol) que se pueden utilizar, como: - RIP: Routing Information Protocol (Protocolo de Vector de Distancias). - OSPF: Open Shortest Path First (Protocolo de estado de enlace). El encaminamiento de IP se basa en un concepto denominado métrica de distancia. Este valor es el número mínimo de saltos entre la pasarela y el destino final. La pasarela consulta su tabla de encaminamiento e intenta encontrar una dirección de red de destino igual a una entrada de red contenida en la tabla de Academy Xperts Bolivia

19

EX – TIP. Experto en Telefonía IP – Módulo 1

encaminamiento. Si no se encuentra se descarta el datagrama y se forma un mensaje de error que se devuelve a la fuente de IP , esto lo hace un protocolo adjunto a IP , denominado Protocolo de Mensajes de Control de Internet ICMP . El mensaje contiene un código de "destino inalcanzable". Si se encuentra una dirección igual en la tabla de encaminamiento, la pasarela lo utiliza para determinar el puerto de salida. Encaminamiento relajado y estricto: IP proporciona dos opciones para el encaminamiento de los datagramas hasta su destino final. El encaminamiento relajado de fuente deja a los módulos de IP libertad para escoger los saltos intermedios que se deben realizar para alcanzar las direcciones obtenidas en la lista de fuentes. En cambio, el encaminamiento estricto de fuente exige que los datagramas viajen sólo por las redes cuyas direcciones están indicadas en la lista de fuentes. Ambos tipos de encaminamiento requieren que exista la característica de grabación de ruta, esta opción funciona de la misma forma que el encaminamiento de fuente, cualquier módulo de IP que reciba un datagrama debe añadir su dirección a una lista de grabación de ruta. Otra opción muy útil de IP, es la posibilidad de incluir marcas temporales en los datagramas cuando atraviesan cada módulo de IP de la interred. De esta forma, el gestor de IP puede determinar la ruta del datagrama y además el instante en que cada módulo procesó el datagrama. Lo cual es muy útil para determinar la eficacia de las pasarelas y de los algoritmos de encaminamiento. 1.9 ICMP (Protocolo de mensajes de control interés): El protocolo Internet (IP) es un protocolo no orientado a la conexión, y, por tanto, no proporciona mecanismos de corrección ni de información de errores. Se basa en un módulo denominado protocolo de mensajes de control interred (ICMP) para informar de los errores ocurridos en el procesamiento de los datagramas y proporcionar algunos mensajes de administración y de estado. ICMP reside en ordenadores o pasarelas y acompaña a IP. Notificará al ordenador si el destino no se puede alcanzar. Entre sus funciones también está la de gestionar o crear un mensaje de tiempo sobrepasado en el caso de que expire el periodo de vida de un datagrama. ICMP se encarga solamente de informar de los errores ocurridos, pero en ningún caso los corrige. Los mensajes de ICMP se sitúan en la parte de usuario del datagrama de IP. El campo de protocolo de la cabecera de IP se pone a 1 para indicar que se está utilizando ICMP.

Academy Xperts Bolivia

20

EX – TIP. Experto en Telefonía IP – Módulo 1

Cada mensaje ICMP tiene su propio formato, pero todos comienzan con los mismos campos: -

Tipo (8 bits): Identifica el tipo de mensaje. Código (8 bits): Más Información sobre el tipo de mensaje. Checksum (16 bits): Utiliza el mismo algoritmo que IP.

Existen 15 tipos distintos de mensajes ICMP, el tipo de mensaje determina su significado y su formato. Entre los principales tipos destacan:

Los mensajes de error contienen la cabecera IP más los 8 primeros bytes de datos del datagrama original. También hay que tener en cuenta que para prevenir broadcast storms, nunca se generan mensajes de error en respuesta a: - Un mensaje de error ICMP. - Un datagrama destinado a una dirección IP de difusión. - Un fragmento que no sea el primero. - Un datagrama cuya dirección origen no defina una maquina única, es decir, no puede ser cero, loopback o de difusión. A. Mensajes de Eco (Petición y Respuesta): La respuesta devuelve los mismos datos que se recibieron en la petición. Se utilizan para construir la herramienta PING, que permite comprobar si un destino está activo y si existe una ruta hasta él. También nos permite medir el tiempo de "ida y vuelta", así como estimar la fiabilidad de la ruta. Puede ser utilizado tanto por hosts como por routers. B. Mensaje de Destino Inalcanzable: Son enviados por un router cuando no puede enviar o entregar un datagrama IP. Se envían al emisor del datagrama original.

Academy Xperts Bolivia

21

EX – TIP. Experto en Telefonía IP – Módulo 1

El campo código contiene un entero con información adicional, entre los que destaca:

C. Paquete de restricción (source quench): Se utiliza para informar a un host sobre problemas de congestión en la red. Es enviado por un router cuando tiene problemas, debido a la recepción de un número excesivo de datagramas. La recepción de un paquete de restricción provocará una disminución de la tasa de inyección de datagramas del host. La situación se normaliza gradualmente cuando dejan de recibirse más mensajes de este tipo. D. Mensaje Time Exceded: Este tipo de mensajes pueden ser enviados por routers y hosts. Los routers lo envían cuando descartan un datagrama al finalizar su tiempo de vida. Y los hosts al ocurrir un timeout mientras se esperan todos los fragmentos de un datagrama. 1.10 IPv6: Una nueva Versión Entre las características de esta nueva versión de IP, destacan: - Direcciones de 128 bits (16 bytes). Estructuradas jerárquicamente, pudiendo disponer de más de dos niveles de jerarquía. Se utilizará representación hexadecimal. 

Formato de cabecera más flexible, con menos campos fijos que en la Ipv4 y cabeceras de extensión opcionales.



Nuevas necesidades en seguridad, flexibilidad en el encaminamiento y necesidades de tráfico.

Academy Xperts Bolivia

22

EX – TIP. Experto en Telefonía IP – Módulo 1

Se ha previsto una fase de transición donde puedan convivir ambos protocolos, permitiendo que las direcciones antiguas puedan codificarse fácilmente como nuevas. Se permitirán dispositivos capaces de encaminar paquetes IPv6 e IPv4, así mismo el empleo de túneles permitirá encapsular tráfico IPv6 que tenga que atravesar zonas IPv4.

1. ¿Qué es Linux? Linux es, a simple vista, un Sistema Operativo. Es una implementación de libre distribución UNIX para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los procesadores i486, Pentium, Pentium Pro y Pentium II, así como los clones AMD y Cyrix. También soporta máquinas basadas en SPARC, DEC Alpha, PowerPC/PowerMac, y Mac/Amiga Motorola 680×0.

Academy Xperts Bolivia

23

EX – TIP. Experto en Telefonía IP – Módulo 1

Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. Historia de Linux LINUX hace su aparición a principios de la década de los noventa, era el año 1991 y por aquel entonces un estudiante de informática de la Universidad de Helsinki, llamado Linus Torvalds empezó, -como una afición y sin poderse imaginar a lo que llegaría este proyecto, a programar las primeras líneas de código de este sistema operativo llamado LINUX. Este comienzo estuvo inspirado en MINIX, un pequeño sistema Unix desarrollado por Andy Tanenbaum. Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix, en estas discusiones se hablaba sobre todo del desarrollo de un pequeño sistema Unix para usuarios de Minix que querían más. Linus nunca anuncio la versión 0.01 de Linux (agosto 1991), esta versión no era ni siquiera ejecutable, solamente incluía los principios del núcleo del sistema, estaba escrita en lenguaje ensamblador y asumía que uno tenía acceso a un sistema Minix para su compilación. El 5 de octubre de 1991, Linus anuncio la primera versión “Oficial” de Linux, -versión 0.02. Con esta versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de C) pero no mucho más funcionaba. En este estado de desarrollo ni se pensaba en los términos soporte, documentación, distribución .Después de la versión 0.03, Linus salto en la numeración hasta la 0.10, más y más programadores a lo largo y ancho de internet empezaron a trabajar en el proyecto y después de sucesivas revisiones, Linus incremento el número de versión hasta la 0.95 (Marzo 1992). Más de un año después (diciembre 1993) el núcleo del sistema estaba en la versión 0.99 y la

Academy Xperts Bolivia

24

EX – TIP. Experto en Telefonía IP – Módulo 1

versión 1.0 no llego hasta el 14 de marzo de 1994. Desde entonces no se ha parado de desarrollar, la versión actual del núcleo es la 2.2 y sigue avanzando día a día con la meta de perfeccionar y mejorar el sistema. Linus Benedict Torvalds

Linus Benedict Torvalds nació en Helsinki, Finlándia, el año 1969. Empezó a “trabajar” con ordenadores a los 10 años, cuando su abuelo le compró un Comodore el año 1980. Éste buen señor era un matemático y estadista. Trabajava a la Universidad y fué quién “enganchó” al mundo de los computadores a nuestro buen amigo Linus. Con el paso del tiempo, Linus pasó a tener un Sinclair QL, un gran ordenador de Clive Sinclair (creador del conocido Spectrum), que tenía algún pequeño error de diseño. Linus se sintió especialmente atraído por esta máquina, después de crear aplicaciones para ésta computadora y de haber retocado su hardware con la finalidad de adaptarlo a sus necesidades. El problema que tenía dicha máquina era que los recursos eran insuficientes para poder llevar a la práctica los planes de Linus. Además, no era un equipo compatible. Así pues, el mes de enero de 1991 compró su primer PC, un 386. Retrocedamos otra vez en el tiempo, hasta 1988. Éste año fué cuando Linus entró a la Universidad. Este mismo año fué cuando un sistema operativo didáctico, basado en Unix y creado por Andy Tannenbaum, empezó a cobrar importancia. Dicho sistema operativo era el famoso Minix. Linus entró a formar parte de la comunidad de usuarios de Minix. Tannenbaum cometió un error en su sistema operativo. Era demasiado limitado, tanto técnicamente como políticamente, es decir, en ningún momento tuvo en cuenta la posibilidad de incluir Minix al proyecto GNU (creado el año 1983 por Richard Stallman). En realidad, la creación de Andy Tannenbaum estaba pensada para ser distribuida comercialmente. Su principal error fué ceder todos los derechos Academy Xperts Bolivia

25

EX – TIP. Experto en Telefonía IP – Módulo 1

a Prentice Hall, que empezó a cobrar 150 dólares por licencia (unas 22.500 ptas. / 135.23 euros). Así pues, Linus tomó la decisión de cambiar esta política debido a que el sistema Minix era ideal para los estudiantes de sistemas operativos, y su precio era considerablemente alto. Llegamos de nuevo al año 1991, cuando Linus se acabó de comprar su primer 386. En aquellos momentos, la intención de nuestro amigo era clara: crear un nuevo Kernel de UNIX basado en el Kernel de Minix y modificarlo periódicamente de manera que fuera capaz de ejecutar aplicaciones GNU. A pesar de todo, no toda la vida del Sr. Linus ha estado dedicada exclusivamente al sistema operativo Linux… Actualmente Linus Torvalds vive desde el año 1997 en Santa Clara, California, junto con su esposa Tove y sus dos hijas, Patricia Miranda y Daniela. Le encanta jugar con sus dos pequeñas. Está trabajando para Transmeta, aunque nadie no sabe demasiado bien en qué trabaja. Parece ser que existe una cláusula en su contrato que le impide revelar dicha información. De todas formas, se sabe que Transmeta está desarrollando un nuevo procesador con un juego de instrucciones RISC capaz de ejecutar código x86. Tal vez una de las aficiones más conocidas de Linus es que le le gusta la cerveza, más aún si es Guinness. Así lo demostraron los miembros del SVLUG (Silicon Valley Linux User Group) cuando Linus fue a visitarlos para llevar a cabo una conferencia y le regalaron una caja de cerveza… Poca cosa más se sabe de este personaje que ha cambiado la forma de ver los ordenadores durante estos últimos años y que ha conseguido dar un buen empujón al proyecto GNU. Características de Linux 

Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los programas que se están utilizando en un momento dado serán ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa.



Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.



Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su utilización en otras plataformas, como Alpha, ARM,MIPS, PowerPC y SPARC.



Multiprocesador: Soporte para sistemas con más de un procesador está disponible para Intel y SPARC.



Funciona en modo protegido 386.



Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.



Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un programa que están siendo usadas actualmente.



Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de

Academy Xperts Bolivia

26

EX – TIP. Experto en Telefonía IP – Módulo 1

memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. 

Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. Este límite se puede aumentar fácilmente con el cambio de unas cuantas líneas en el código fuente.



La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.



Librerías compartidas de carga dinámica (DLL’s) y librerías estáticas.



Se realizan volcados de estado (core dumps) para posibilitar los análisis postmortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.



Compatible con POSIX, System V y BSD a nivel fuente.



Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.



Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.



Control de tareas POSIX.



Pseudo-terminales (pty’s).



Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.



Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.



Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.

Academy Xperts Bolivia

27

EX – TIP. Experto en Telefonía IP – Módulo 1



Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.



Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no es necesario ningún comando especial para usar la partición MS-DOS, esta parece un sistema de archivos normal de Unix (excepto por algunas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable.



Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS.



Soporte en sólo lectura de HPFS-2 del OS/2 2.1



Sistema de archivos de CD-ROM que lee todos los formatos estándar de CDROM.



TCP/IP, incluyendo ftp, telnet, NFS, etc.



Appletalk.



Software cliente y servidor Netware. Lan Manager / Windows Native (SMB), software cliente y servidor.



Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP, Netrom, etc.

¿Qué son las “distribuciones” de GNU/Linux? Una distribución es un modo de facilitar la instalación, la configuración y el mantenimiento de un sistema GNU/Linux. Al principio, las distribuciones se limitaban a recopilar software libre, empaquetarlo en disquetes o CD-ROM y redistribuirlo o venderlo. Ahora las grandes distribuciones -RedHat, SuSE, Caldera, Mandrake, Corel Linux, TurboLinux…- son potentes empresas que compiten entre sí por incluir el último software, a veces también software propietario, con instalaciones gráficas capaces de autodetectar el hardware y que instalan un sistema entero en unos cuantos minutos sin apenas preguntas. Entre las distribuciones de GNU/Linux, destaca el proyecto Debian/GNU. Debian nace como una iniciativa no comercial de la FSF, aunque luego se independiza de ésta y va más allá del propio sistema GNU/Linux. Es la única de las grandes distribuciones que no tiene intereses comerciales ni empresariales. Son sus propios usuarios, muy activos, quienes mantienen la distribución de modo comunitario, incluidas todas sus estructuras de decisión y funcionamiento. Su objetivo es recopilar, difundir y promover el uso del software libre. Reúne el mayor catálogo de software libre, todos ellos probados, mantenidos y documentados por algún desarrollador voluntario. En una distribución

Academy Xperts Bolivia

28

EX – TIP. Experto en Telefonía IP – Módulo 1

hay todo el software necesario para instalar en un ordenador personal; servidor, correo, ofimática, fax, navegación de red, seguridad, etc. Linux frente a los otros sistemas operativos Linux es una muy buena alternativa frente a los demás sistemas operativos. Más allá de las ventajas evidentes de costo, ofrece algunas características muy notables. En comparación con las otras versiones de Unix para PC, la velocidad y confiabilidad de Linux son muy superiores. También está en ventaja sobre la disponibilidad de aplicaciones, ya que no hay mucha difusión de estos otros Unixes (como Solaris, XENIX o SCO) entre los usuarios de PC por sus altos costos. Comparado con sistemas operativos como los diferentes Microsoft Windows, Linux también sale ganando. Los bajos requisitos de hardware permiten hacer un sistema potente y útil de aquel 486 que algunos guardan en un armario. Esta misma característica permite aprovechar al máximo las capacidades de las computadoras más modernas. Es poco práctico tener una PC con 16 Mb de RAM y ponerle un sistema operativo que ocupa 13 (que es lo que reporta sobre Windows 95 el System Information de Symantec). No solo es superior respecto a el sistema de multitarea y de administración de memoria, sino también en la capacidades de networking (conectividad a redes) y de multiusuario (aun comparando con sistemas multiusuario como NT). La única desventaja de Linux frente a estos sistemas, es la menor disponibilidad de software, pero este problema disminuye con cada nuevo programa que se escribe para el proyecto GNU, y con algunas empresas que están desarrollando software comercial para Linux (por ej.,) 2. Introducción a Linux Usuarios, cuentas, claves y permisos Antes de empezar a trabajar en un sistema LINUX es necesario estar registrado en el mismo, por medio de un nombre clave, llamado identificador de usuario (login name), al que se le suele asociar una clave de paso (password). Estos datos se asignan a los usuarios en el momento de su creación, y deben ser guardados de forma que ninguna otra persona pueda acceder al sistema. A cada usuario se le asigna una zona propia de trabajo, su directorio propio (home directory), y un determinado intérprete de comando (una especie de COMMAND.COM). Incluso su propio archivo profile que, en lenguaje DOS viene a ser un AUTOEXEC.BAT propio. También se pueden asociar a varios usuarios en grupos de usuarios. Todos estos elementos se agrupan bajo el nombre de cuenta de usuario. Los procesos y archivos a los que un usuario puede acceder están limitados por medio de los permisos. Un usuario puede permitir que otros usuarios tengan o no acceso a su información, o un acceso parcial (lectura, escritura, ejecución, etc.). Por regla general, un usuario podrá moverse y mirar en casi todo el sistema pero sólo podrá trabajar en la zona que se le ha asignado.

Academy Xperts Bolivia

29

EX – TIP. Experto en Telefonía IP – Módulo 1

De todo lo anterior se deduce que tiene que existir un usuario encargado de crear las cuentas del resto de los usuarios, asignar los permisos, claves, etc. A este usuario especial se le denomina superusuario (root). El superusuario es el todopoderoso sobre el sistema, tiene acceso a todo y puede hacer cualquier cosa. Entre otras cosas, se encarga del arranque y descarga del sistema, realización de copias de seguridad, etc. LINUX tiene un excelente sistema de ficheros donde se almacena todo. Al conectarse, un usuario se encuentra en un determinado punto de la estructura llamado, directorio propio (home directory). Este directorio está “colgado” de otro directorio denominado generalmente home, y que tiene como nombre, generalmente, el identificador de usuario. Así, el directorio propio de un usuario cuyo identificador sea, por ejemplo, asi1, será /home/asi1. Observa que la barra de directorio / es la contraria a la usada por el MS-DOS. Introducción al Shell Una vez registrado como usuario, se está abriendo una sesión. Durante esa sesión, Linux se sitúa en el directorio base de un usuario (home directory) y ejecuta un programa conocido como shell, que no es otra cosa que un un programa destinado a atender ordenes introducidas desde el terminal y traducidas como un conjunto de instrucciones internas. El shell busca en el directorio de trabajo del usuario el archivo .bash_profile y lo ejecuta (personaliza el entorno de trabajo del usuario). El shell tiene su propio entorno, formado por una serie de variables con unos valores determinados. Estas variables describen el entorno de ejecución del usuario, ya que son heredadas por él. Varios tipos de programas pueden emplearse como shells, pero en casi todas las versiones de Linux existen diversos shells estándares disponibles. 





El shell Bourne es el shell original de UNIX (desarrollado en los AT & T Bell Laboratories) y por tanto el más antiguo y, los demás tienen algunas particularidades de las que carece Bourne. Se encuentra en /bin/sh. El shell C fue desarrollado en la Universidad de California en Berkeley como un shell más apropiado para programadores. Se ejecuta como /bin/csh. Su sintaxis es muy parecida al lenguaje de programación C. Esta es una de las razones por las que los guiones o scripts de shell escritos para el shell C no son ejecutables bajo los shell Bourne y Korn. Sin embargo, el shell C tiene algunas características como la edición de comandos, el historial y la creación de alias. El shell Korn tiene todas las características del shell C pero emplea la sintaxis del Bourne. (ksh).

Academy Xperts Bolivia

30

EX – TIP. Experto en Telefonía IP – Módulo 1



El shell por omisión de Linux es bash (derivado de Bourne Again Shell), el que está en /bin/bash y proporciona varias características mejoradas, como la edición de comandos, el historial de comandos y cómo completar comandos.



Sintaxis de las órdenes Los comandos suelen llevar una serie de argumentos que modifican su comportamiento general. Las órdenes suelen tener tres partes diferenciadas: el comando, los modificadores y argumentos principales. comando [-modificadores] [argumento(s)] Muchos comandos representan en realidad la ejecución de un archivo del sistema, generalmente situado en el bajo el directorio /bin. También existen otros comandos, que no son archivos independientes; estos comandos están integrados en los propios shells (similar al command.com del MS-DOS). Por ejemplo, el comando cd (cambiar de directorio) está integrado en el shell y es ejecutado directamente por el intérprete de comandos sin tener que buscar un archivo. $ pr –d nota El comando pr se utiliza para imprimir ficheros. Esta orden indica que copie el fichero nota al terminal, pero algo significará el modificador (-d). En este caso, lo que significa es que la copia se realice a doble espacio, significado del modificador d. La ejecución varía según las características de los modificadores. $ pr –n –d nota $ pr –nd nota Estos ejemplos, que son equivalentes, significan, además de lo anterior, que numere las líneas del fichero nota. $ pr nota examen Este ejemplo permite imprimir 2 ficheros, nota y examen. Así pueden existir múltiples combinaciones para ejecutar ordenes, que pueden tener 0 ó más argumentos. Esta última instrucción tiene 2 argumentos; la orden pr se le llama argumento cero, nota es el primer argumento y examen el segundo. Los argumentos deben ir separados por espacios en blanco. Los argumentos normalmente son nombres de archivos o cadenas que dan instrucciones al comando. Si un argumento contiene un espacio en intercalado debe situarse la cadena entre comillas a fin de evitar que el shell piense que son dos argumentos y no uno.

Academy Xperts Bolivia

31

EX – TIP. Experto en Telefonía IP – Módulo 1

$grep New York Esta orden trata de buscar la palabra New en el fichero York. Si el objetivo consiste en encontrar la cadena “New York” debería escribirse: $grep “New York” y en ese caso la cadena New York se pasa al comando grep como un argumento. Expansión de la línea órdenes Existe una técnica por la cual podemos hacer referencia a un grupo de archivos simultáneamente, utilizando los llamados caracteres comodines. Los comodines son caracteres mediante los que podemos simbolizar parte del nombre de un archivo haciendo referencia a más de uno al mismo tiempo. Los comodines * y ? del DOS funcionan de modo idéntico en LINUX.  Con * podemos simbolizar parte de un nombre, o un nombre completo.  Con ? hacemos referencia a un sólo carácter, pudiendo repetirse tantas veces como caracteres queramos sustituir.  *arch Identifica cualquier archivo que acabe con arch, incluido arch.  arch* Identifica cualquier archivo que comience por arch, incluido arch.  *arch* Identifica cualquier archivo que contenga la cadena arch.  arch? Identifica cualquier archivo que comience por arch seguido de un carácter Ejemplos utilizando el comando cat: Visualiza todos los archivos del directorio $cat * Idem que empiecen por LE. Por ejemplo LE, LEI, LEEME $cat LE* Idem que contengan una letra seguida de ota. Por ejemplo nota, sota, rota. No visualizará el fichero ota. $cat ?ota Además tenemos la posibilidad de especificar rangos, para lo que dispondremos, entre corchetes, el rango de caracteres que deseemos utilizar. Lista los ficheros de nombre fichl, fich2, …fich9 $ls fich[1-9]

Academy Xperts Bolivia

32

EX – TIP. Experto en Telefonía IP – Módulo 1

Idem para fich1 y fich9 $ls fich[19] Existen, pues, tres caracteres especiales que facilitan la expansión de una línea de comandos, llamados caracteres comodín y son: * utilizado para sustituir una cadena de 0 ó más caracteres. ? para sustituir un carácter cualquiera. [ ] para sustituir un carácter por uno de los de la lista. En una misma orden se puede incluir cualquier número y tipo de comodines, siendo afectados por la orden sólo aquellos archivos que cumplan con la plantilla. Una orden ideal para ver en pantalla los archivos a los que afectaría una referencia compuesta por caracteres comodines es echo. Esta orden se utiliza para imprimir cualquier parámetro que se dé a continuación, pero en el caso de que contengan caracteres comodines se intentará buscar nombres de archivos existentes que los cumplan. Es aconsejable utilizar esta orden para ver los archivos que se verían afectados antes de ciertas operaciones, como la de borrado. Veamos un ejemplo:     

$ls archivo archivo1 archivo90 archivoa archivo3 $echo archivo* archivo archivo1 archivo90 archivoa archivo3 $echo archivo? archivo1 archivoa archivo3 $echo archivo[1a] archivo1 archivoa $echo archivo[1-9] archivo1 archivo3

Para evitar la interpretación de los comodines: El carácter de escape \ precediendo al comodín: $echo \ * Encerrando la cadena entre comillas simples: $echo ‘No puedo ver $HOME ni * ’ Encerrando la cadena entre dobles comillas: se evita la interpretación de lo que aparece en su interior, menos el $: $echo “puedo ver $HOME, pero no * ” Ejemplos: $echo ABC‘\*’ $echo “El símbolo del prompt es \$PS1” Algunos caracteres especiales: \NNN código ascii \\ Barra invertida “\” \N nueva línea \a Pítido

Academy Xperts Bolivia

33

EX – TIP. Experto en Telefonía IP – Módulo 1

\r Retorno de carro \t Tabulador Nota: Para su representación con echo es necesario usar la sintaxis extendida (opción -e) Truco: Una forma de escribir menos es utilizando la tecla de tabulación. Por ejemplo: Si queremos teclear more directorio/larguisimo.soy/joselito una forma de hacerlo más corto sería: mordireclargjos Tal y como va encontrado ocurrencias que sean identificables de forma única, irá escribiendo en pantalla. Si encuentra más de una ocurrencia que puede darse no escribe y al volver a pulsar saca la lista de posibilidades.

3. Comandos básicos de Linux Empecemos por unas cuantas ordenes básicas para manejarse por el terminal de Linux: 

Listar los directorios.

ls Por ejemplo, si estamos en /etc y usamos ls: nos mostrará todos los directorios que hay dentro de /etc 

Moverse por los directorios

cd Por ejemplo: cd /etc/carpeta1 Nos llevaría al directorio carpeta1 dentro de /etc Para retroceder directorios podemos usar o cd / y nos llevaría a la raiz, o cd /etc , y nos llevaría al directorio etc, o ir retrocediendo con puntos (cada 2 puntos equivale a un directorio) por ejemplo estando en /etc/carpeta1, usar cd .. nos haría retroceder al directorio etc, y usar

Academy Xperts Bolivia

34

EX – TIP. Experto en Telefonía IP – Módulo 1

cd ../.. nos haría retroceder hasta el directorio raíz (/) Si se usa cd sin especificar ninguna ruta, seremos llevados a nuestro home.



Copiar directorios o ficheros

cp Por ejemplo: cp archivo1 archivo2 De esta forma nos estaría copiando el archivo1, con el nombre de archivo2 

Mover un archivo o renombrarlo

mv Por ejemplo: mv archivo1 /etc/archivo2 De esta forma estaríamos moviendo el fichero archivo1, del directorio en el que nos encontramos, a /etc, renombrandolo como archivo2 

Borrar ficheros o directorios

rmrm -r Por ejemplo: rm archivo1 Nos borraria el fichero llamado archivo1 del directorio en el que nos encontramos. Para borrar directorios usaremos rm -r 

Mostrar por terminal un fichero de texto plano

cat Por ejemplo: cat archivo1

Academy Xperts Bolivia

35

EX – TIP. Experto en Telefonía IP – Módulo 1

Nos mostraría por el terminal lo que esta escrito en archivo1 (El comando less y el more hace lo mismo que el cat ) 

Crear directorios

mkdir Por ejemplo: mkdir carpeta1 Nos crearia un directorio dentro de nuestro directorio actual llamado carpeta1 

Crear ficheros

touch Por ejemplo: touch archivo1 Nos crearía un fichero en blanco llamado archivo1 dentro de nuestro directorio actual. 

Editar ficheros de texto plano

nano Por ejemplo: nano archivo1 Nos abriría en el terminal el archivo1 para poder editarlo. 

Visualizar un calendario del mes

cal Por ejemplo: cal Nos mostraría en el terminal un calendario del mes en que nos encontremos.

Academy Xperts Bolivia

36

EX – TIP. Experto en Telefonía IP – Módulo 1



Visualizar fecha y hora

date Por ejemplo: date Nos aparecería por terminal la fecha y la hora actuales. 

Visualizar información de los usuarios

finger Por ejemplo: finger Fernando Nos mostraría información del usuario llamado Fernando creado en nuestro sistema. 

Limpiar la pantalla del terminal

clear Por ejemplo: clear Nos desplazaría hacia arriba todo lo escrito en el terminal dejándolo en blanco para escribir nuevamente. 

Visualizar con que usuario estamos conectados.

whoami Por ejemplo: whoami Nos mostraría por terminal el nombre de usuario con el que estamos conectados al sistema. 

Visualizar información de los usuarios del sistema conectados

who Por ejemplo: who Nos mostraría información sobre los usuarios conectados en el sistema. 

Añadir un usuario al sistema

adduser Academy Xperts Bolivia

37

EX – TIP. Experto en Telefonía IP – Módulo 1

Por ejemplo: adduser Y el terminal nos solicitaría el nombre del nuevo usuario, su contraseña etc. También sirve useradd 

Eliminar a un usuario

userdel Por ejemplo: userdel Fernando Nos eliminaría al usuario Fernando del sistema. 

Cambiar la contraseña de usuario

passwd Por ejemplo: passwd Y el terminal nos solicitaría la antigua contraseña y la nueva dos veces. 

Ejecutar un comando como root (superusuario)

sudo Por ejemplo: sudo rm archivo1 De esta forma estamos borrando el archivo1, siendo superusuario, lo que nos permitiría borrar el archivo aun no siendo propietarios del mismo ni teniendo permiso de escritura sobre el. Nos pedirá la contraseña de root para ejecutar la orden, despues de ejecutar el comando seguiremos con el usuario con el que hubiéramos logueado previamente. 

Loguear como root (superusuario)

sudo su Por ejemplo:

Academy Xperts Bolivia

38

EX – TIP. Experto en Telefonía IP – Módulo 1

sudo su Nos pediría la contraseña de superusuario, y ya estaríamos logueados con el hasta que usáramos el comando exit . 

Visualizar información sobre los comandos

man Por ejemplo: man ls Nos mostraría el manual del comando ls. 

Visualizar pantalla de ayuda de un comando

--help Por ejemplo: ls –help Nos mostraría una pequeña ayuda sobre el comando ls (es menos extenso que el man.) Bueno que decir, que estos comandos disponen de muchísimas opciones.Por ejemplo el comando ls, lista los archivos del directorio en el que nos encontremos, pero eso no significa que no podamos visualizar el contenido de otra carpeta en la que no estamos. Si estamos en /home, y usamos ls nos mostrara el contenido de /home, pero si estamos en /home, y usamos ls /etc/apache2 nos mostrara el contenido del directorio llamado apache2 dentro de etc, ya que hemos empezado la trayectoria absoluta desde el directorio raíz O si estamos en /home, y usamos el ls, vemos que tenemos un directorio llamado Usuario1, no hace falta que entremos dentro del directorio Usuario1 para visualizar su contenido, podemos usarls /home/Usuario1Ademas esto, el comando ls también dispone de otras opciones, por ejemplo ls -al la opción a nos mostraría los archivos y directorios ocultos, y la opción l nos listaría de forma ordenada con información de permisos, usuario, grupo etc… La mejor forma de aprender todo esto es abrir un terminal de linux y ponerse manos a la obra a moverse por directorios, curiosear cosas, mover archivos, copiarlos, crear directorios…Y leer los manuales y la ayuda de los comandos.

Academy Xperts Bolivia

39

EX – TIP. Experto en Telefonía IP – Módulo 1

4. Sistema de ficheros en Linux Introducción: Para saber administrar un sistema es fundamental comprender la organización de ese sistema. La organización de un sistema informático se llama sistema de ficheros. Vamos a estudiar cómo se organiza internamente un sistema de archivos en Linux y los comandos que se utilizan para manipularlo. El sistema de ficheros es la parte del núcleo más visible por los usuarios; se encarga de abstraer propiedades físicas de diferentes dispositivos para proporcionar una interfaz única de almacenamiento: el archivo. Cada sistema Unix tiene su sistema de archivos nativo (por ejemplo, ext2 en Linux, UFS en Solaris o EFS en IRIX), por lo que para acceder a todos ellos de la misma forma el núcleo de Unix incorpora una capa superior denominada VFS ( Virtual File System) encargada de proporcionar un acceso uniforme a diferentes tipos de sistema de ficheros. Un inodo o nodo índice es una estructura de datos que relaciona un grupo de bloques de un dispositivo con un determinado nombre del sistema de ficheros. Internamente, el núcleo de Unix no distingue a sus archivos por su nombre sino por un número de inodo. Tipos de ficheros: Un fichero o archivo es el elemento básico del Sistema de Ficheros. La mayoría de los sistemas operativos tienen distintos tipos de ficheros. Para Linux se pueden clasificar los ficheros en 3 tipos: ficheros normales, directorios y ficheros especiales (dispositivo de bloques, dispositivo de caracteres y enlaces). Se pueden definir los ficheros normales como secuencias de bytes destinadas a almacenar información (texto, datos, programas) ya sea generada por los usuarios del sistema o por el propio sistema para su funcionamiento. Las reglas generales para el nombrado de ficheros en Linux son las mismas que para sistema Unix 

Un nombre de fichero puede tener de 1 a 255 caracteres.



No se permiten los caracteres como: metacaracteres ? * [ ] ‘ “ ` $ # | \ ; & { } carácter / (delimitador de directorios) carácter espacio, caracteres de control.

Academy Xperts Bolivia

40

EX – TIP. Experto en Telefonía IP – Módulo 1



Unix distingue entre mayúsculas y minúsculas. Se recomienda utilizar siempre minúsculas pues , por convenio, las variables y macros del sistema se escriben en mayúsculas.



No existe extensión. Pueden haber varios puntos. Se recomienda utilizar nombres con un punto y a continuación algo que indique el tipo de fichero de que se trata.

Los directorios son ficheros utilizados para almacenar y referenciar otros ficheros. Para Linux los directorios son tratados como ficheros y realmente contienen información sobre la estructura del sistema de ficheros. Los directorios están organizados en grafos (árbol). Existe un directorio que no posee antecedente o padre. Es el directorio raíz. Su símbolo es el carácter /. Cada fichero se puede referenciar unívocamente expresando un camino hacia él, desde el directorio raiz (ruta absoluta). Un fichero se puede referenciar desde el subárbol actual (ruta relativa). Cualquier directorio contiene dos ficheros por defecto que a su vez son directorios: . es un directorio que señala al propio directorio. .. es un directorio que señala al directorio padre o antecedente del actual. El contenido de los ficheros directorio es una tabla que mantiene una relación entre un nombre de fichero y su número de inodo. En Linux, toda operación de E/S se realiza sobre un fichero de dispositivo. Toda entidad, sea física o lógica, se representa como un fichero (no hay unidades); a diferencia de otros sistemas como MSDOS, por esto los dispositivos físicos (discos, CDROM, terminal, impresora,…) se representan como ficheros especiales. Estos ficheros especiales se localizan en un directorio llamado /dev. Algunos de los más importantes son:        

/dev/console Consola principal del sistema /dev/fd* Para la disquetera /dev/hd* Para el disco duro /dev/ttyS*, /dev/cua* Puertos serie del sistema /dev/sd* Discos duros con interfaz SCSI. (Para las particiones se sigue la misma notación que en los dispositivos IDE) /dev/lp* Puertos paralelo (de impresión, etc.) /dev/null Dispositivo nulo, cualquier dato enviado a este dispositivo se pierde. /dev/tty Consolas virtuales (el sistema simula la conexión a varios terminales)

Estos archivos pueden clasificarse como de bloques o de caracteres Los dispositivos de bloques, (cuyo atributo es una ‘b’) se acceden bloque a bloque, como discos (/dev/hda) o disquetes (/dev/fd0). Los dispositivos de caracteres, (de atributo una ‘c’) se acceden carácter a carácter como un puerto serie (/dev/cua) Existen otros ficheros especiales llamados enlaces que la información que almacenan es un “puntero” a otro fichero del sistema. Los enlaces pueden ser

Academy Xperts Bolivia

41

EX – TIP. Experto en Telefonía IP – Módulo 1

fuertes (duros) o débiles (simbólicos). Cualquier cambio realizado en alguno de los ficheros enlazados afecta al otro. La orden ln permite crear este tipo de ficheros. La diferencia entre ellos es que un enlace fuerte representa un nuevo nombre pero con el mismo número de inodo. Esto implica que aunque se elimine el fichero original el fichero no desaparece físicamente hasta que no se elimina el último enlace. Un enlace simbólico representa un nuevo inodo pero la eliminación del original provoca, indirectamente, la desaparición de todos los enlaces.

Jerarquía de ficheros en Linux Al conjunto de todos los ficheros y directorios se le conoce como árbol de directorios. La imagen es más parecida a un árbol invertido, con la raíz en la cima y las ramas colgando de ella. Siguiendo este símil, en UNIX/Linux todos los directorios y ficheros cuelgan del raíz (“/”). Es el directorio más importante del sistema. En él debe existir lo mínimo para que el sistema pueda arrancar: programas y bibliotecas imprescindibles para el arranque, diagnóstico y recuperación del sistema: el kernel, la biblioteca C o libc, las utilidades básicas como cp, rm, mv, etc. Nota: En Linux, no existen divisiones artificiales como las letras de unidad de Windows, sino que todos los sistemas de ficheros del ordenador están integrados en el mismo árbol.

Academy Xperts Bolivia

42

EX – TIP. Experto en Telefonía IP – Módulo 1

/bin Binarios de los comandos esenciales (cp, rm, ls, etc.), usados por todos los usuarios. /boot Ficheros estáticos para el arranque del sistema (kernels, ficheros del gestor de arranque) /dev Ficheros de dispositivos /etc Configuración específica del sistema. Contiene algunos ficheros imprescindibles como /etc/passwd y /etc/shadow (ficheros que contienen los usuarios para acceder al sistema), /etc/group (la lista de grupos y sus miembros), /etc/fstab (la lista de montaje de dispositivos), etc. /lib Bibliotecas compartidas esenciales y módulos del kernel /mnt Directorio para montajes temporales /opt Paquetes software adicionales (los no incluidos en la distribución)

Academy Xperts Bolivia

43

EX – TIP. Experto en Telefonía IP – Módulo 1

/sbin Binarios esenciales para el sistema, usados por el administrador (fsck, mkfs, init, etc.) /tmp Ficheros temporales /usr La mayoría de programas del sistema y sus ficheros relacionados /var Datos variables /home Ficheros de los usuarios /root Ficheros del administrador del sistema (root) /proc Sus contenidos no están en el sistema de ficheros normal, sino que son creados por el kernel cuando se le dice que monte ahí un sistema de ficheros de tipo “proc”. Es un directorio virtual por decirlo así. En este sistema de ficheros se puede encontrar y alterar información del sistema: configuración de dispositivos, opciones del kernel, información sobre los procesos en ejecución, etc.

Nota: Normalmente sólo el administrador (root) puede escribir en los directorios del raíz salvo en /home y /tmp ya que están pensados para almacenar ficheros (temporales en el caso de /tmp) de los usuarios. Los directorios /usr y /var son tan complejos como el directorio raíz: En /usr irán la inmensa mayoría de los programas del sistema, tanto para los usuarios como para el administrador, y los ficheros de datos que éstos necesiten. En él encontraremos algunos directorios como los que había en el directorio raíz. Su función es similar a la de sus homónimos del raíz, pero nada de lo que se encuentre en /usr debe ser necesario para iniciar o recuperar el sistema. Algunos de estos directorios son:    



bin La mayor parte de los programas de usuario include Ficheros de cabecera para programas compilados en C lib Como su homónimo del raíz: bibliotecas, tanto dinámicas como estáticas local Jerarquía local. Es como una copia de /usr pero destinado a programas creados o compilados de forma local (es el directorio usado cuando instalamos un programa a partir de los fuentes: los programas así instalados están al margen del sistema de gestión de paquetes de la distribución, y por eso se ponen en un directorio aparte. También es usado para instalar los scripts o programas “caseros” que hayamos hecho nosotros: /usr/local/bin o /usr/local/sbin es el lugar adecuado para éstos) sbin Programas (no vitales) para el administrador

Academy Xperts Bolivia

44

EX – TIP. Experto en Telefonía IP – Módulo 1

   

share Ficheros de datos independientes de la arquitectura: imagenes, documentación (/usr/share/doc), etc. X11R6 Directorio para el sistema X Window games Para juegos src Para fuentes de programas

En /var como su nombre indica se encuentran directorios con datos variables, que cambiarán con el paso del tiempo por la acción de los programas del sistema. (Esto incluye desde correo hasta ficheros de log, pasando por bases de datos o cachés creadas por los programas del sistema). Algunos de estos directorios son: 

      



cache Datos cacheados por las aplicaciones que realizan operaciones de cálculo o de E/S (incluyendo esto descargas de la red) costosas para almacenar aquí los datos, y no tener que volver a reprocesarlos. Por ejemplo, la herramienta apt-get (/var/cache/apt). libnInformación variable de los programas. (Su nombre es un poco confuso, porque en realidad no hay ninguna biblioteca aquí) localnDatos variables para los programas de /usr/local lock Ficheros de bloqueo log Registros del sistema, los llamados ficheros de log o de bitácora. Por ejemplo, los que crea el servicio syslog opt Datos variables para los programas de /opt run Datos para los programas en ejecución spool Datos de spool1, esto es, ficheros que son creados por programas para su posterior proceso: ficheros en cola de impresión, mensajes de correo, etc. tmp Ficheros temporales preservados aunque el sistema sea reiniciado

5. Sistema de permisos en Linux Para que un usuario pueda acceder a un determinado fichero, es necesario que tenga habilitado el permiso de acceso. Se puede tener alguno de ellos, todos o ninguno. Los permisos de acceso o derechos de uso de ficheros son :   

r Permiso de lectura. Significa que se puede mirar el contenido. Si se trata de un directorio que se puede visualizar el contenido (ficheros) de ese directorio. w Permiso de escritura. Significa que se puede modificar el contenido. Si es un directorio que se pueden borrar y crear ficheros dentro de ese directorio. x Permiso de ejecución. Se puede ejecutar el fichero, este permiso es imprescindible si se quiere ejecutar un script. Si es un directorio el usuario que lo posea tendrá acceso para realizar el resto de las funciones permitidas mediante los otros permisos (lectura y/o escritura) y por tanto podrá entrar en él, buscar o copiar ficheros de ese directorio, etc. Academy Xperts Bolivia

45

EX – TIP. Experto en Telefonía IP – Módulo 1

Nota: Para determinar los permisos finales siempre se debe tener en cuenta que: a) Para poder realizar operaciones sobre cualquier directorio (leer o escribir) será necesario siempre tener otorgado además el permiso de ejecución. b) Para acceder a un recurso de cualquier forma (ejecución, lectura o escritura) se deben tener permisos de para todos los directorios que contienen al recurso directa e indirectamente. Para un fichero existen tres posibles entidades que disfrutan de los permisos de los ficheros:  u Usuario. También conocido como propietario, es el usuario dueño del fichero.  g Grupo. Grupo al que pertenece el fichero generalmente coincide con el grupo del propietario. El grupo determina el dominio.  o Otros. Son los demás usuarios que no pertenecen a este grupo. Los permisos son atributos de cada fichero, están almacenados en el i-nodo del fichero. Los atributos de un fichero se pueden conocer mediante la orden: ls -l. Esta orden muestra un listado en formato largo de los ficheros del directorio actual y muestra algo como:

La 2ª columna muestra el número de enlaces que tiene un fichero o directorio. La 3ª columna muestra el nombre del propietario del fichero. La 4ª columna indica el grupo al que pertenece el fichero. La 5ª columna muestra el tamaño en bytes del fichero o directorio. La 6ª columna es la fecha, y en algunos caso la hora, de la última modificación. La 7ª columna representa el nombre del fichero o directorio. La 1ª columna muestra los atributos de cada fichero. Están representados mediante una cadena de 10 caracteres que significan: 

Tipo de fichero. Está representado en el primer carácter.



Permisos. Se representan por los siguientes nueve caracteres.

   

El ‘-‘ (guión) indica que se trata de un fichero ordinario. La ‘d’ indica que es un fichero de entrada a un directorio. La ‘b’ indica que es un dispositivo de bloques. La ‘c’ indica que es un dispositivo de caracteres.

Academy Xperts Bolivia

46

EX – TIP. Experto en Telefonía IP – Módulo 1

 

   

La ‘l’ indica que es un enlace. Existen otros que varían según la versión de Unix: ‘p‘ (pipes o tuberias), ‘s‘ (sockets), etc. Los restantes nueve caracteres son una representación simbólica de los permisos de ese fichero, relativos a usuario, propietario, grupo y otros. Estos nueve caracteres se dividen en tres grupos, de tres caracteres cada uno, representando lectura, escritura o ejecución de cada grupo. El ‘- ‘ (guión) representa que no está habilitado el permiso. La ‘r’ indica que tiene habilitado el permiso de lectura. La ‘w’ indica que tiene habilitado el permiso de escritura. La ‘x’ indica que tiene habilitado el permiso de ejecución.

Un ejemplo de un fichero cuyo listado largo muestra: -rwx r-x — 4 ciro users 456 Oct 22 21:45prueba Este listado indica que el fichero prueba es un fichero ordinario con permisos totales para el propietario, de lectura y ejecución para el grupo (users) y ninguno para el resto. Además tiene 4 enlaces, fue modificado por última vez el 22 de Octubre del presente año a las 21:45 horas y tiene un tamaño de 456 bytes. Los tres tipos de permisos mencionados poseen una representación numérica basada en el sistema octal que parte de representar como “1” los bits de los permisos otorgados y “0” para los negados. Luego se transforma la representación binaria así obtenida en octal. La combinación de los tres tipos de permisos para un tipo de usuario oscila desde cero (ningún permiso) hasta siete (todos los permisos):

Los permisos “totales” de un recurso constan de nueve indicadores, donde los tres primeros indican los permisos asociados al dueño, los otros tres, al grupo y los últimos, al resto de los usuarios. Ejemplos: rwx r-x — =111 101 000 (750 en octal) rw- r– r– =110 100 100 (644 en octal) Sólo el dueño de un recurso siempre tendrá derecho a cambiar sus permisos, además de root. La orden para cambiar los permisos es chmod Academy Xperts Bolivia

47

EX – TIP. Experto en Telefonía IP – Módulo 1

Por ejemplo, chmod 755 index.php Ademas de esto, se pueden añadir permisos adicionales para cada usuario, similar al sistema de permisos NTFS. Esto se logra con ACLs, Acces Control List, o listas de control de acceso en castellano. Mas adelante se hablará y se explicarán las ACLs.

6. Seguridad en Linux 

del diccionario o una palabra que le identifique fácilmente, como su dirección, su nombre, hijos, número de teléfono, fecha de nacimiento, DNI,…



Se aconseja, como contraseña, la elección de dos palabras cortar unidas por un enlace, como: mi-casa, ptx&mix, hi!clan



Otro método puede ser memorizar una frase y seleccionar las iniciales de sus palabras, como, por ejemplo: al pan pan y al vino vino sería appyavv

La seguridad incluye, igualmente, detectar aquellas cuentas que pueden suponer un problema para la integridad del sistema, como:  Cuentas sin contraseñas. Pueden comprobarse si el segundo campo de las líneas del fichero /etc/passwd están en blanco. Una solución es inhabilitar el acceso a ese usuario colocando un asterisco (*) y así bloquear la cuenta. 

Cuentas no utilizadas. Puede pensar en eliminar el acceso o bloquearlo utilizando el asterisco.



Cuentas predeterminadas, creadas por algunos paquetes software con una contraseña por defecto. Repasarlas para poner contraseñas de acorde con las cuentas.



Cuentas de invitados, donde personas ajenas al sistema tienen permiso de entrada al sistema. Son problemáticas pues un intruso tiene más fácil violar la seguridad estando dentro del sistema. Se sugiere tenerlas bloqueadas mientras no se necesiten.



Cuentas de acceso de comandos. Existen unas cuentas que dan acceso a la ejecución de ciertos comandos como finger o date, que permiten la ejecución

Academy Xperts Bolivia

48

EX – TIP. Experto en Telefonía IP – Módulo 1

del comando y su posterior expulsión del sistema. Cuando utilice estas cuentas hay que asegurarse de que no aceptan datos desde la línea de comandos o no tienen ninguna posibilidad de escape. También ciertas llamadas como finger o who permite extraer información del sistema como los “logins” de algunos usuarios lo que equivale a conocer la mitad del código de acceso. 

Cuentas de grupo. Si utiliza contraseñas para grupo normalmente son muchos los que tendrán que conocer la contraseña, situación que puede ser peligrosa. Aunque se añadan contraseñas a grupos se aconseja mantener activas las contraseñas de usuarios.

El archivo /etc/shadow Todos los usuarios del sistema pueden visualizar el contenido del fichero /etc/passwd, por lo que cualquier usuario tiene acceso a todas las contraseñas, aunque estén encriptadas. Linux utiliza una llamada al sistema, crypt, para codificar las contraseñas y aunque resulta difícil descifrarla, no es imposible. Además, en el fichero /etc/passwd hay más información de los usuarios como el uid, gid, etc., por lo que está facilitando información al exterior. Una manera de proteger más aún el sistema es utilizar la codificación de sombra (shadow) para ubicar las contraseñas en otro archivo llamado /etc/shadow sólo accesible por root. En efecto, el traslado de las contraseñas cifradas al archivo /etc/shadow, accesible únicamente por el superusuario, añade una útil capa de protección. El fichero /etc/shadow contiene cierta información de los usuarios. Cada línea representa a un usuario y la información se encuentra en campos separados por el carácter “:”, según el formato: login:contraseña:último:plazo:máximo:aviso:expirado:deshabilitado:r El significado de cada uno de los campos es: Ejemplo: root:$1$9p5c6c7E$3TwupixFk5RUztaT8i6.f.:11634:0:99999:7::: bin:*:11634:0:99999:7::: jorge:$1$Bkqh8wvo$9skkc0R9bhFXX.NdsQxmG1:11634:0:99999:7::: pepe:!!:11640:0:99999:7::: luis:!!:11640:0:99999:7:::

Academy Xperts Bolivia

49

EX – TIP. Experto en Telefonía IP – Módulo 1

usu1_proy1:$1$7GA6Ev32$YZKQROB6tZFhzGur3u.sC/:11640:0:99999:7::: usu2_proy1:$1$I0XDkjBq$SMpiTM1MsNYKEU6YXa6zW/:11640:0:99999:7::: usu_proy1:$1DkjBqMpiTM1MsNYKEU6YXa6zW/:11640:0:99999:7::: El archivo /etc/gshadow. Es el análogo a /etc/shadow para el fichero de grupos /etc/group. Linux ofrece al administrador comandos para gestionar las cuestiones de seguridad que atañen al uso adecuado de las contraseñas. Ver más adelante los comandos relacionados con el uso de contraseñas. Los comandos su (switch user) y sudo Uno de los principios fundamentales de seguridad en Linux es “use los privilegios mínimos indispensables para conseguir hacer el trabajo”. Linux ofrece la posibilidad de convertirnos en otro usuario durante la misma sesión de trabajo siempre que conozcamos su contraseña y, en consecuencia, establecer conexiones remotas a un equipo pudiendo tener bloqueada la entrada de root, u obtener privilegios de superusuario sin correr excesivos riesgos de seguridad. Para ello ejecutamos: su [-] [opciones] [nombre_usuario]

Nota: Si esta acción se realiza como superusuario, no se pedirá ninguna contraseña para convertirse en el usuario, pero en caso contrario se solicita la clave correspondiente. La opción “–“ permite obtener la configuración del entorno del usuario al que se cambia. (Sin ella, nos encontraremos todavía en nuestro propio entorno de sistema, utilizando nuestras variables de entorno, intérprete de comandos, editor por defecto, rutas y máscara de archivos). Si se omite el “nombre_usuario” se asume por defecto a root. Es posible usar la opción –c para ejecutar únicamente un comando desde el nuevo usuario. Para salir y volver al usuario original teclearexit. Aunque el uso de “su” mejora la seguridad de nuestro equipo, es preferible no entrar jamás como usuario root, especialmente si estamos conectados a Internet en una red, ya que mediante el uso de sniffers se pueden capturar contraseñas sin excesiva dificultad. Para evitar la entrada como superusuario existe el comando sudo, que permite ejecutar programas como si fuésemos otro usuario. Su sintaxis simplificada es: sudo [-u nombre_usuario] programa Si no se indica el usuario se supone que es root. Para poder utilizar los usuarios correspondientes, éstos deben estar incluidos en el

Academy Xperts Bolivia

50

EX – TIP. Experto en Telefonía IP – Módulo 1

archivo de configuración /etc/sudoers. Este puede editarse con el comando visudo. En general, si se quiere asignar a un usuario todos los privilegios de root hay que añadir en el fichero /etc/sudoers la línea: usuarioALL=(ALL) ALL

Nota: Distribuciones como Ubuntu incluyen por defecto el no habilitar la cuenta de root, con lo que todas las tareas administrativas se deben realizar mediante sudo. Para ver más detalles consultar la páginas del manual de sudo y sudoers. Forma “facil” Utilizar sudo delante de un comando nos permite ejecutarlo como root. Por ejemplo sudo mkdir directorio1 ejecutaría el comando mkdir como root. Si utilizamos sudo su haremos log como root y permaneceremos así hasta usar el comando exit. 7. Expresiones regulares Introducción Vamos a explicar las expresiones regulares porque se utilizan a menudo desde una gran variedad de aplicaciones en los SO tipo Unix como Linux. Permiten reconocer una serie de cadenas de caracteres que obedecen a cierto patrón que llamamos expresión regular. Por ejemplo, si deseamos buscar líneas que contenga las palabras ‘hola’ o ‘adiós’ en los ficheros del directorio actual haremos:

$ egrep 'hola|adiós' * No todos los comandos usan de forma idéntica las expresiones regulares. Algunos de los comandos que usan expresiones regulares son grep, egrep, sed, vi, awk, etc. Actualmente algunos lenguajes modernos como perl1 incluyen capacidad de manejar expresiones regulares lo cual les da una gran potencia y para lenguajes más antiguos como “C” existen librerías para poder usar expresiones regulares. En resumen las expresiones regulares están siendo incorporadas en distintos sitios y ya no están limitadas a su uso en SO tipo Unix. Cada comando o aplicación implementa las expresiones regulares a su manera aunque en general son todas bastantes parecidas. Por ejemplo grep permite usar expresiones regulares sencillas mientras que egrep es capaz de usar expresiones regulares más complejas. Otros comandos adaptan el uso de expresiones a sus particulares necesidades y por ello si bien se puede hablar en general de ellas hay que tener en cuenta las Academy Xperts Bolivia

51

EX – TIP. Experto en Telefonía IP – Módulo 1

peculiaridades de cada caso que deberán ser consultadas en las páginas del manual de cada comando. Las expresiones regulares vienen a ser una especie de lenguaje y cada comando usa su propio dialecto. En realidad las diferencias entre los distintos dialectos suelen ser muy pocas. Por ejemplo si un comando usa los paréntesis y además admite el uso de expresiones regulares extendidas se establecerá una forma de distinguir si los paréntesis deben ser interpretados como patrón de la expresión regular o como otra cosa. Para ello se suele usar los paréntesis precedidos del carácter escape ‘\’. Hablando más formalmente, las expresiones regulares son una herramienta para definir patrones de búsqueda y reemplazo. En ellas se definen lo que llamaremos átomos que serán las partes que buscaremos. Se supone que lo que buscamos no lo conocemos (si no no lo buscaríamos), así que tenemos que definir un átomo para cada parte que busquemos. En los patrones podemos hacer referencias a “un caracter cualquiera”, “el comienzo de línea”, “el final de línea” y cosas así. Las expresiones regulares suelen construirse a partir de caracteres normales y/o de caracteres especiales, algunas veces llamados metacaracteres o wildcards. Las expresiones regulares básicas y las extendidas difieren solo en los metacaracteres que contienen. Los metacaracteres de las expresiones regulares son: Básicas: ^ $ . * \( \) [ \{ \} \ Extendidas: | ^ $ . * + ? ( ) [ { } \ Nota: Adicionalmente, algunos comandos como vi, ex y egrep (grep –E) también aceptan: \< \> La siguiente tabla muestra el significado de cada uno de ellos:

Academy Xperts Bolivia

52

EX – TIP. Experto en Telefonía IP – Módulo 1

Academy Xperts Bolivia

53

EX – TIP. Experto en Telefonía IP – Módulo 1

Los comandos que usan expresiones regulares básicas y extendidas son los siguientes:

Academy Xperts Bolivia

54

EX – TIP. Experto en Telefonía IP – Módulo 1

8. Configurar IP en Ubuntu Podemos tener la IP configurada de dos formas, por DHCP (Dynamic Host Configuration Protocol), lo que significa que nuestro router nos asignará una IP automáticamente junto al resto de configuración, y no tiene porque ser siempre la misma, y la otra opción es configurar una IP estática de forma que sea siempre la misma. Esto es útil si se tiene un servidor o algún ordenador de la red interna con

Academy Xperts Bolivia

55

EX – TIP. Experto en Telefonía IP – Módulo 1

puertos redireccionados, y no nos interesa que el router cambie la IP de la noche a la mañana, y los puertos ahora estén redireccionados a otro ordenador. Voy a explicar cómo configurar la IP desde el terminal de texto, de ese modo esto puede ser aplicado a cualquier distribución, incluidas las que no poseen interfaz gráfico. El archivo de configuración de la IP se encuentra en: /etc/network/interfaces

Para editar el fichero abrimos un terminal de texto y editamos el fichero con cualquier editor de textos, por ejemplo nano: sudo nano /etc/network/interfaces Dentro encontraremos dos líneas mínimo iguales a estas: auto loiface lo inet loopback Esas dos líneas no debemos modificaras, son las correspondientes al localhost. Los parámetros de configuración que podemos añadir son los siguientes: Para una configuración mediante DHCP: auto ethXiface ethX inet dhcp Donde ethX hay que sustituir la X por el número de la tarjeta de red que se quiera configurar, por ejemplo, eth0, o eth1… Configuración estática: auto lo iface lo inet loopback auto ethX iface ethX inet static address 192.168.0.2 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 Academy Xperts Bolivia

56

EX – TIP. Experto en Telefonía IP – Módulo 1

gateway 192.168.1.1 De la misma forma que antes, la X de ethX hay que sustituirla por el número de la tarjeta de red en cuestión que se quiera configurar. Las opciones son:  auto: auto seguido de la tarjeta de red hace que la tarjeta arranque automáticamente al iniciar el ordenador.  iface: sirve para especificar si la configuración IP la recibirá mediante DHCP o a través de la configuración local.  address: aquí se pone la IP que tendrá el ordenador.  netmask: aquí se especifica la máscara de red.  network: en este campo se pone la dirección IP de la red.  broadcast: en este otro campo la dirección IP del broadcast.  gateway: la dirección de la puerta de enlace. 

Reiniciar las tarjetas de red: Despues de cualquier cambio que se realice hay que reiniciar las tarjetas de red, para ello se pueden utilizar estos comandos: Reiniciar todas las tarjetas de red: sudo /etc/init.d/networking restart Nota: con este comando reiniciaríamos todas las tarjetas de red del ordenador. Puede sustituirse la palabra restart, por stop o start para pararlas e iniciarlas. Otra forma de reiniciar las tarjetas de red, es reiniciar concretamente una: Este comando para parar la tarjeta de red: sudo ifdown ethX Y este para iniciarla: sudo ifup ehtX Por ejemplo para reiniciar la tarjeta de red eth0 sería primero ifdown eth0, y luego ifup eth0. Ver la configuración: Por último, para ver la configuración de red que tenemos, escribimos el siguiente comando en el terminal: ifconfig Nota: si se configura una IP estática en una red con DHCP, es aconsejable configurar el DHCP para que de solo dinámicamente desde la IP .5 hasta la última Academy Xperts Bolivia

57

EX – TIP. Experto en Telefonía IP – Módulo 1

por ejemplo, de esa forma desde la .2 hasta la .5 no las asignará a nadie, y podremos utilizarlas como estáticas con la seguridad de que el DHCP no va a dar nuestra IP a nadie más evitando que se duplique y hayan conflictos. 9. Configurar IP wifi en Ubuntu La configuración de la IP del wifi es muy similar a la configuración de red cableada, que ya vimos en este tutorial: www.utilizalinux.com/configurar-ip-en-ubuntu/ Podemos tener la IP configurada de dos formas, por DHCP (Dynamic Host Configuration Protocol), lo que significa que nuestro router nos asignará una IP automáticamente junto al resto de configuración, y no tiene porque ser siempre la misma, y la otra opción es configurar una IP estática de forma que sea siempre la misma. Esto es útil si se tiene un servidor o algún ordenador de la red interna con puertos redireccionados, y no nos interesa que el router cambie la IP de la noche a la mañana, y los puertos ahora estén redireccionados a otro ordenador, o si directamente esta desactivado el servicio DHCP por seguridad. Voy a explicar como configurar la IP desde el terminal de texto, de ese modo esto puede ser aplicado a cualquier distribución, incluidas las que no poseen interfaz gráfico. El archivo de configuración de la IP se encuentra en: /etc/network/interfaces (el mismo que el de la red cableada) Para editar el fichero abrimos un terminal de texto y editamos el fichero con cualquier editor de textos, por ejemplo nano: sudo nano /etc/network/interfaces Dentro encontraremos dos lineas minimo iguales a estas: auto lo iface lo inet loopback Esas dos líneas no debemos modificaras, son las correspondientes al localhost. Los parámetros de configuración que podemos añadir son los siguientes: Para una configuración mediante DHCP: auto wlanX iface wlanX inet dhcp wireless-essid NOMBRE_DE_LA_RED wireless-key CLAVE_DE_LA_RED

Academy Xperts Bolivia

58

EX – TIP. Experto en Telefonía IP – Módulo 1

wireless-mode managed Donde wlanX hay que sustituir la X por el número de la tarjeta de red que se quiera configurar, por ejemplo, wlan0, o wlan1… Configuración estatica: auto wlanX iface wlanX inet static wireless-essid NOMBRE_DE_LA_RED wireless-key CLAVE_DE_LA_RED address 192.168.1.5 netmask 255.255.255.0 gateway 192.168.1.1 De la misma forma que antes, la X de wlanX hay que sustituirla por el numero de la tarjeta de red wifi en cuestión que se quiera configurar. Las opciones son:       

auto: auto seguido de la tarjeta de red hace que la tarjeta arranque automáticamente al iniciar el ordenador. iface: sirve para especificar si la configuración IP la recibirá mediante DHCP o a través de la configuración local. wireless-essid: aquí se pone el nombre de la red wifi. wireles-key: aquí se pone la clave de red de la red wifi. adress: aquí se pone la IP de la red. netmask: aquí se especifica la mascara de red. gateway: la dirección de la puerta de enlace.

Reiniciar las tarjetas de red: Despues de cualquier cambio que se realice hay que reiniciar las tarjetas de red, para ello se pueden utilizar estos comandos: Reiniciar todas las tarjetas de red: sudo /etc/init.d/networking restart

Academy Xperts Bolivia

59

EX – TIP. Experto en Telefonía IP – Módulo 1

Nota: con este comando reiniciaríamos todas las tarjetas de red del ordenador. Puede sustituirse la palabra restart, por stop o start para pararlas e iniciarlas. Otra forma de reiniciar las tarjetas de red, es reiniciar concretamente una: Este comando para parar la tarjeta de red: sudo ifdown wlanX Y este para iniciarla: sudo ifup wlanX Por ejemplo para reiniciar la tarjeta de red wlan0 sería primero ifdown wlan0, y luego ifup wlan0. Ver la configuración: Por último, para ver la configuración de red que tenemos, escribimos el siguiente comando en el terminal: iwconfig Nota: a diferencia de la tarjeta de red cableada que usa el comando ifconfig, para ver la configuración de la tarjeta de red wifi hay que usar el comando iwconfig. Nota: si se configura una IP estática en una red con DHCP, es aconsejable configurar el DHCP para que de solo dinámicamente desde la IP .5 hasta la última por ejemplo, de esa forma desde la .2 hasta la .5 no las asignará a nadie, y podremos utilizarlas como estáticas con la seguridad de que el DHCP no va a dar nuestra IP a nadie más evitando que se duplique y hayan conflictos. 10.

Configurar DNS estaticos en Ubuntu

Los DNS o Domain Name System (en español: sistema de nombres de dominio) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente. El servidor DNS utiliza una base de datos distribuida y jerárquica que almacena información asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar diferentes tipos de información a cada nombre, los usos más comunes son la asignación de nombres de dominio a direcciones IP y la localización de los servidores de correo electrónico de cada dominio.

Academy Xperts Bolivia

60

EX – TIP. Experto en Telefonía IP – Módulo 1

Básicamente, sirve para poder entrar en Google escribiendo http://www.google.com en lugar de tener que escribir la IP de google para acceder al servidor. Configuración Podemos configurar los DNS de dos formas, una de ellas es:

1) Editar el fichero de configuración de los DNS, que se encuentra en /etc/resolv.conf. Para modificar el fichero basta con abrirlo con cualquier editor de textos, por ejemplo nano: sudo nano /etc/resolv.conf Dentro del fichero de texto añadimos las siguientes lineas: sudo nano /etc/resolv.conf Dentro añadimos estas dos lineas: nameserver 8.8.8.8 nameserver 8.8.4.4 La otra forma es la siguiente: 2) Editando el fichero /etc/network/interfaces, donde se configuran las tarjetas de red (para ver como hacerlo acceder a: www.utilizalinux.com/2013/06/configurar-ip-enubuntu.html) Debajo de la configuración de la IP, añadimos esta linea de esta forma: dns-nameservers 8.8.8.8 8.8.4.4 Nota: yo en mi caso para el ejemplo he utilizado los DNS públicos de Google, 8.8.8.8 y 8.8.4.4 que son fáciles de recordar, pero si queréis asignar otros DNS, o añadir más aquí tenéis una página con todas las IPs de los DNS, y además te indica si el servidor esta caído, o operativo: bandaancha.eu/analizador-dns Reiniciar la tarjeta de red No hay que olvidar reiniciar la tarjeta de red después de cualquier cambio con uno de los siguientes comandos: Para reiniciar todas las tarjetas de red:

Academy Xperts Bolivia

61

EX – TIP. Experto en Telefonía IP – Módulo 1

sudo /etc/init.d/networking restart Para reiniciar una tarjeta de red en concreto: Primero este comando para parar la tarjeta de red: sudo ifdown ethX Y segundo este para iniciarla: sudo ifup ehtX Nota: solo hay que sustituir la X por el número de la tarjeta de red, por ejemplo eth0, o eth1, y si es una tarjeta wifi, wlan0 o wlan1.

Academy Xperts Bolivia

62

EX – TIP. Experto en Telefonía IP – Módulo 1

1. Fundamentos de Telefonía Los sistemas de telefonía tradicional están guiados por un sistema muy simple pero ineficiente denominado conmutación de circuitos. La conmutación de circuitos a sido usado por las operadoras tradicionales por más de 100 años. En este sistema cuando una llamada es realizada la conexión es mantenida durante todo el tiempo que dure la comunicación. Este tipo de comunicaciones es denominado “circuito” porque la conexión está realizada entre 2 puntos hacia ambas direcciones. Estos son los fundamentos del sistema de telefonía convencional. Con el auge en los últimos años de la Telefonía IP, la telefonía convencional análoga/digital va desapareciendo, las facilidades de integración con muchos servicios ya existentes en las comunicaciones informáticas, han permitido la aceptación y rápida adopción de la Telefonía IP, lográndose la incorporación de funcionalidades que con la telefonía convencional es imposible lograrlos, pasando de ser una simple PBX-IP a todo un sistema de Comunicaciones Unificadas, en el cual además del servicio telefónico que todos conocemos, ofrece otros como la integración de los mensajes de voz , libreta de contactos y fax con el correo electrónico, permite además colaboración por medio de salas de conferencia, desde donde pueden interactuar remotamente los participantes, asi como la facilidad de presencia con esto se logra que la comunicación nunca se pierda ya que si el destinatario no se encuentra en su primer punto de contacto este sea localizado por los diferentes medios disponibles, finalizando con el correo electrónico con un mensaje de voz, de esta manera el mensaje siempre llegara a su destinatario. La telefonía IP aunque su plataforma de comunicación sea la red de datos y su funcionamiento es sobre la Red IP, tiene como base y se rige por los mismo principios de la telefonía convencional, es por esto la importancia de conocer los fundamentos de la telefonía y así comprender porque muchas cosas se siguen haciendo igual desde que se inventó el teléfono. 2. VoIP – Telefonía IP Parece lógico que bajo de la expresión “telefonía IP” (o “voz usando IP”, en su expresión inglesa, VoIP) tenga cabida aquella tecnología que transporte tráfico de voz utilizando el protocolo IP en redes de conmutación de paquetes. Pero si se Academy Xperts Bolivia

63

EX – TIP. Experto en Telefonía IP – Módulo 1

aceptase así, sin más matización, se produciría cierta confusión puesto que los términos Telefonía IP y Voz IP (VoIP), aunque parezcan y se empleen como similares pueden referirse a situaciones bien diferentes. Voz sobre Protocolo de Internet, también llamado Voz sobre IP, Voz IP, VozIP, VoIP (por sus siglas en inglés, Voice over IP), es un grupo de recursos que hacen posible que la señal de voz viaje a través de Internet empleando un protocolo IP (Protocolo de Internet). Esto significa que se envía la señal de voz en forma digital, en paquetes de datos, en lugar de enviarla en forma analógica a través de circuitos utilizables sólo por telefonía convencional como las redes PSTN (sigla de Public Switched Telephone Network, Red Telefónica Pública Conmutada). Los Protocolos que se usan para enviar las señales de voz sobre la red IP se conocen como protocolos de Voz sobre IP o protocolos IP. El tráfico de Voz sobre IP puede circular por cualquier red IP, incluyendo aquellas conectadas a Internet, como por ejemplo las redes de área local (LAN). Es muy importante diferenciar entre Voz sobre IP (VoIP) y Telefonía sobre IP.  VoIP es el conjunto de normas, dispositivos, protocolos, en definitiva la tecnología que permite comunicar voz sobre el protocolo IP. 

Telefonía sobre IP es el servicio telefónico disponible al público, hace uso de la tecnología de VoIP.

Elementos de la Voz sobre IP El cliente El cliente establece y origina las llamadas realizadas de voz, esta información se recibe a través del micrófono del usuario (entrada de información) se codifica, se empaqueta y, de la misma forma, esta información se decodifica y reproduce a través de los altavoces o audífonos (salida de la información). Un Cliente puede ser un usuario de Skype o un usuario de alguna empresa que venda sus servicios de telefonía sobre IP a través de equipos como ATAs (Adaptadores de teléfonos analógicos) o teléfonos IP o Softphones que es un software que permite realizar llamadas a través de una computadora conectada a Internet. Los servidores Los servidores se encargan de manejar operaciones de base de datos, realizado en un tiempo real como en uno fuera de él. Entre estas operaciones se tienen la contabilidad, la recolección, el enrutamiento, la administración y control del servicio, el registro de los usuarios, etc. Usualmente en los servidores se instala software denominados Switches o IP-PBX (Conmutadores IP), ejemplos de switches pueden ser “Voipswitch”, “Mera”,

Academy Xperts Bolivia

64

EX – TIP. Experto en Telefonía IP – Módulo 1

“Nextone” entre otros, un IP-PBX es Asterisk uno de los más usados y de código abierto. Los gateways Los gateways brindan un puente de comunicación entre todos los usuarios, su función principal es la de proveer interfaces con la telefonía tradicional adecuada, la cual funcionara como una plataforma para los usuarios (clientes) virtuales. Los Gateways se utilizan para “Terminar” la llamada, es decir el cliente Origina la llamada y el Gateway Termina la llamada, eso es cuando un cliente llama a un teléfono fijo o celular, debe existir la parte que hace posible que esa llamada que viene por Internet logre conectarse con un cliente de una empresa telefónica fija o celular. Funcionalidades VoIP puede facilitar tareas que serían más difíciles de realizar usando las redes telefónicas comunes:  Las llamadas telefónicas locales pueden ser automáticamente enrutadas a un teléfono VoIP, sin importar dónde se esté conectado a la red. Uno podría llevar consigo un teléfono VoIP en un viaje, y en cualquier sitio conectado a Internet, se podría recibir llamadas. 

Números telefónicos gratuitos para usar con VoIP están disponibles en Estados Unidos de América, Reino Unido y otros países con organizaciones de usuarios VoIP.



Los agentes de call center usando teléfonos VoIP pueden trabajar en cualquier lugar con conexión a Internet lo suficientemente rápida.



Algunos paquetes de VoIP incluyen servicios extra por los que PSTN (Red Publica Telefónica Conmutada) normalmente cobra un cargo extra, o que no se encuentran disponibles en algunos países, como son las llamadas de 3 a la vez, retorno de llamada, remarcación automática, o identificación de llamada.



Los usuarios de VoIP pueden viajar a cualquier lugar en el mundo y seguir haciendo y recibiendo llamadas de la siguiente forma: o

Los subscriptores de los servicios de las líneas telefónicas pueden hacer y recibir llamadas locales fuera de su localidad. Por ejemplo, si un usuario tiene un número telefónico en la ciudad de Nueva York y está viajando por Europa y alguien llama a su número telefónico, esta se recibirá en Europa. Además, si una llamada es hecha de Europa a Nueva York, esta será cobrada como llamada local, por supuesto el usuario de viaje por Europa debe tener una conexión a Internet disponible.

o

Los usuarios de Mensajería Instantánea basada en servicios de VoIP pueden también viajar a cualquier lugar del mundo y hacer y recibir llamadas telefónicas.

Academy Xperts Bolivia

65

EX – TIP. Experto en Telefonía IP – Módulo 1

o

Los teléfonos VoIP pueden integrarse con otros servicios disponibles en Internet, incluyendo videoconferencias, intercambio de datos y mensajes con otros servicios en paralelo con la conversación, audio conferencias, administración de libros de direcciones e intercambio de información con otros (amigos, compañeros, etc)

La Voz sobre IP está abaratando las comunicaciones internacionales y mejorando por tanto la comunicación entre proveedores y clientes, o entre delegaciones del mismo grupo. Asimismo, la voz sobre IP se está integrando, a través de aplicaciones específicas, en portales web. De esta forma los usuarios pueden establecer que una empresa en concreto les llame a una hora determinada, que se efectuará a través de un operador de Voz IP normalmente. Ventajas de la Voz sobre IP La principal ventaja de este tipo de servicios es que evita los cargos altos de telefonía (principalmente de larga distancia) que son usuales de las compañías de la Red Pública Telefónica Conmutada (PSTN). Algunos ahorros en el costo son debidos a utilizar una misma red para llevar voz y datos, especialmente cuando los usuarios tienen sin utilizar toda la capacidad de una red ya existente la cual pueden usar para VoIP sin coste adicional. Las llamadas de VoIP a VoIP entre cualquier proveedor son generalmente gratis en contraste con las llamadas de VoIP a PSTN que generalmente cuestan al usuario de VoIP. El desarrollo de codecs para VoIP (aLaw, G.729, G.723, etc.) ha permitido que la voz se codifique en paquetes de datos cada vez más pequeños. Esto deriva en que las comunicaciones de voz sobre IP requieran anchos de banda muy reducidos. Junto con el avance permanente de las conexiones ADSL en el mercado residencial, éste tipo de comunicaciones están siendo muy populares para llamadas internacionales. Hay dos tipos de servicio de PSTN a VoIP: “Discado Entrante Directo” (Direct Inward Dialling: DID) y “Números de acceso”. DID conecta a quien hace la llamada directamente con el usuario VoIP, mientras que los Números de acceso requieren que este introduzca el número de extensión del usuario de VoIP. Los Números de acceso son usualmente cobrados como una llamada local para quien hizo la llamada desde la PSTN y gratis para el usuario de VoIP. Estos precios pueden llegar a ser hasta 100 veces más económicos que los precios de un operador locales. Desventajas de la Voz sobre IP 

Calidad de la llamada. Es un poco inferior a la telefónica, ya que los datos viajan en forma de paquetes, es por eso que se pueden tener algunas perdidas de información y demora en la transmisión. El problema en si de la VoIP no es el protocolo sino la red IP, ya que esta no fue pensada para dar algún tipo de Academy Xperts Bolivia

66

EX – TIP. Experto en Telefonía IP – Módulo 1

garantías. Otra desventaja es la latencia, ya que cuando el usuario está hablando y otro usuario está escuchando, no es adecuado tener 200ms (milisegundos) de pausa en la transmisión. Cuando se va a utilizar VoIP, se debe controlar el uso de la red para garantizar una transmisión de calidad. 

Robos de Datos. Un cracker puede tener acceso al servidor de VoIP y a los datos de voz almacenados y al propio servicio telefónico para escuchar conversaciones o hacer llamadas gratuitas a cargo de los usuarios.



Virus en el sistema. En el caso en que un virus infecta algún equipo de un servidor VoIP, el servicio telefónico puede quedar interrumpido. También pueden verse afectados otros equipos que estén conectados al sistema. Suplantaciones de ID y engaños especializados. Si uno no esta bien protegido pueden sufrir fraudes por medio de suplantación de identidad.

Arquitectura de red El propio Estándar define tres elementos fundamentales en su estructura:  Terminales: son los sustitutos de los actuales teléfonos. Se pueden implementar tanto en software como en hardware. 

Gatekeepers: son el centro de toda la organización VoIP, y son el sustituto para las actuales centrales.

Normalmente implementan por software, en caso de existir, todas las comunicaciones que pasen por él.  Gateways: se trata del enlace con la red telefónica tradicional, actuando de forma transparente para el usuario. Con estos tres elementos, la estructura de la red VoIP podría ser la conexión de dos delegaciones de una misma empresa. La ventaja es inmediata: todas las comunicaciones entre las delegaciones son completamente gratuitas. Este mismo esquema se podría aplicar para proveedores, con el consiguiente ahorro que esto conlleva.  Protocolos de VoIP: son los lenguajes que utilizarán los distintos dispositivos VoIP para su conexión. Esta parte es importante ya que de ella dependerá la eficacia y la complejidad de la comunicación. o

Por orden de antigüedad (de más antiguo a más nuevo): 

H.323 – Protocolo definido por la ITU-T;



SIP – Protocolo definido por la IETF;



Megaco (También conocido como H.248) y MGCP – Protocolos de control;



UNIStim – Protocolo propiedad de Nortel(Avaya);



Skinny Client Control Protocol – Protocolo propiedad de Cisco;



MiNet – Protocolo propiedad de Mitel;



CorNet-IP – Protocolo propiedad de Siemens; Academy Xperts Bolivia

67

EX – TIP. Experto en Telefonía IP – Módulo 1



IAX – Protocolo original para la comunicación entre PBXs Asterisk (Es un estándar para los demás sistemas de comunicaciones de datos,[cita requerida] actualmente está en su versión 2, IAX2);



Skype – Protocolo propietario peer-to-peer utilizado en la aplicación Skype;



IAX2 – Protocolo para la comunicación entre PBXs Asterisk en reemplazo de IAX;



Jingle – Protocolo abierto utilizado en tecnología XMPP;



MGCP- Protocolo propietario de Cisco;



weSIP- Protocolo licencia gratuita de VozTelecom.

Como hemos visto VoIP presenta una gran cantidad de ventajas, tanto para las empresas como para los usuarios comunes. La pregunta sería ¿por qué no se ha implantado aún esta tecnología?. A continuación analizaremos los aparentes motivos, por los que VoIP aún no se ha impuesto a las telefonías convencionales.

Parámetros de la VoIP Este es el principal problema que presenta hoy en día la penetración tanto de VoIP como de todas las aplicaciones de IP. Garantizar la calidad de servicio sobre Internet, que solo soporta “mejor esfuerzo” (best effort) y puede tener limitaciones de ancho de banda en la ruta, actualmente no es posible; por eso, se presentan diversos problemas en cuanto a garantizar la calidad del servicio. Códecs La voz ha de codificarse para poder ser transmitida por la red IP. Para ello se hace uso de códecs 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 Códec utilizado en la transmisión, se utilizará más o menos ancho de banda. La cantidad de ancho de banda utilizada suele ser directamente proporcional a la calidad de los datos transmitidos. Entre los codecs más utilizados en VoIP están G.711, G.723.1 y el G.729 (especificados por la ITU-T). Estos Codecs tienen los siguientes anchos de banda de codificación:  G.711: bit-rate de 56 o 64 Kbps. 

G.722: bit-rate de 48, 56 o 64 Kbps.



G.723: bit-rate de 5,3 o 6,4 Kbps.



G.728: bit-rate de 16 Kbps.



G.729: bit-rate de 8 o 13 Kbps.

Academy Xperts Bolivia

68

EX – TIP. Experto en Telefonía IP – Módulo 1

Esto no quiere decir que es el ancho de banda utilizado, ya que hay que sumar el tráfico de por ejemplo el Codec G729 utiliza 31.5 Kbps de ancho de banda en su transmisión. Retardo o latencia Una vez establecidos los retardos de tránsito y el retardo de procesado la conversación se considera aceptable por debajo de los 150 ms, que viene a ser 1,5 décimas de segundo y ya produciría retardos importantes. Pérdida de tramas (Frames Lost): Durante su recorrido por la red IP las tramas se pueden perder como resultado de una congestión de red o corrupción de datos. Además, para tráfico de tiempo real como la voz, la retransmisión de tramas perdidas en la capa de transporte no es práctico por ocasionar retardos adicionales. Por consiguiente, los terminales de voz tienen que retransmitir con muestras de voz perdidas, también llamadas Frame Erasures. El efecto de las tramas perdidas en la calidad de voz depende de como los terminales gestionen las Frame Erasures. En el caso más simple si se pierde una muestra de voz el terminal dejará un intervalo en el flujo de voz. Si muchas tramas se pierden, sonará grietoso con sílabas o palabras perdidas. Una posible estrategia de recuperación es reproducir las muestras de voz previas. Esto funciona bien si sólo unas cuantas muestras son perdidas. Para combatir mejor las ráfagas de errores usualmente se emplean sistemas de interpolación. Basándose en muestras de voz previas, el decodificador predecirá las tramas perdidas. Esta técnica es conocida como Packet Loss Concealment (PLC). La ITU-T G.113 apéndice I provee algunas líneas de guía de planificación provisional en el efecto de pérdida de tramas sobre la calidad de voz. El impacto es medido en términos de Ie, el factor de deterioro. Este es un número en el cual 0 significa no deterioro. El valor más grande de Ie significa deterioro más severo. La siguiente tabla está derivada de la G.113 apéndice I y muestra el impacto de las tramas perdidas en el factor Ie. Calidad del servicio Para mejorar el nivel de servicio, se ha apuntado a disminuir los anchos de banda utilizados, para ello se ha trabajado bajo las siguientes iniciativas:  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.

Para la medición de la calidad de servicio QoS, existen cuatro parámetros como el ancho de banda, retraso temporal (delay), variación de retraso (jitter) y pérdida de paquetes.

Academy Xperts Bolivia

69

EX – TIP. Experto en Telefonía IP – Módulo 1

Para solucionar este tipo de inconvenientes, en una red se puede implementar tres tipos básicos de QoS:  Best effort: (en inglés, mejor esfuerzo) Este método simplemente envía paquetes a medida que los va recibiendo, sin aplicar ninguna tarea específica real. Es decir, no tiene ninguna prioridad para ningún servicio, solo trata de enviar los paquetes de la mejor manera. 

Servicios Integrados: Este sistema tiene como principal función pre-acordar un camino para los datos que necesitan prioridad, además esta arquitectura no es escalable, debido a la cantidad de recursos que necesita para estar reservando los anchos de banda de cada aplicación. RSVP (Resource Reservation Protocol) fue desarrollado como el mecanismo para programar y reservar el ancho de banda requerido para cada una de las aplicaciones que son transportados por la red.



Servicios Diferenciados: Este sistema permite que cada dispositivo de red tenga la posibilidad de manejar los paquetes individualmente, además cada router y switch puede configurar sus propias políticas de QoS, para tomar sus propias decisiones acerca de la entrega de los paquetes. Los servicios diferenciados utilizan 6 bits en la cabecera IP (DSCP Differentiated Services Code Point). Los servicios para cada DSCP son los siguientes: Característica

Servicio Best Effort

No ofrece garantías

Asegura un trato preferente, si los valores de DSCP son más Assured altos, tendrá mayor prioridad el trafico y disminuye la Forwarding (AF) posibilidad de ser eliminado por congestión. Expedited Utilizada para dar el mayor servicio, por ende, es la que bridna Forwarding (EF) más garantías (utilizada para trafico de voz o video) 

La priorización de los paquetes que requieran menor latencia. Las tendencias actuales son:



PQ (Priority Queueing): Este mecanismo de priorización se caracteriza por definir 4 colas con prioridad Alta, media, norma y baja, Además, es necesario determinar cuales son los paquetes que van a estar en cada una de dichas colas, sin embargo, si estas no son configuradas, serán asignadas por defecto a la prioridad normal. Por otra parte, mientras que existan paquetes en la cola alta, no se atenderán ningún paquete con prioridad médium hasta que la cola alta se encuentre vacía, así para los demás tipos de cola.



WFQ (Weighted fair queuing): Este método divide el tráfico en flujos, proporciona una cantidad de ancho de banda justo a los flujos activos en la red, los flujos que son con poco volumen de tráfico serán enviados más rápido. Es decir, WFQ prioriza aquellas aplicaciones de menor volumen, estas son Academy Xperts Bolivia

70

EX – TIP. Experto en Telefonía IP – Módulo 1

asociadas como más sensibles al delay (retardo) como VoIP. Por otra parte, penaliza aquellas que no asocia como aplicaciones en tiempo real como FTP. 

CQ (Custom Queueing): Este mecanismo asigna un porcentaje de ancho de banda disponible para cada tipo de trafico (voz, video y/o datos), además especifica el numero de paquetes por cola. Las colas son atendidas según Round Robin (RR).

El método RR asigna el ancho de banda a cada uno de los diferentes tipos de tráfico existentes en la red. Con este método no es posible priorizar tráfico ya que todas las colas son tratadas de igual manera. 

La implantación de IPv6, que proporciona mayor espacio de direccionamiento y la posibilidad de tunneling.

El ancho de banda creciente a nivel mundial, y la optimización de los equipos de capa 2 y 3 para garantizar el QoS (Quality of Service) de los servicios de voz en tiempo real hace que el futuro de la Voz sobre IP sea muy prometedor.

Protocolos de VoIP El objetivo del protocolo de VoIP es dividir en paquetes los flujos de audio para transportarlos sobre redes basadas en IP.

Los protocolos de las redes IP originalmente no fueron diseñados para el fluido el tiempo real de audio o cualquier otro tipo de medio de comunicación. La PSTN esta diseñada para la transmisión de voz, sin embargo tiene sus limitaciones tecnológicas. Es por lo anterior que se crean los protocolos para voip, cuyo mecanismo de conexión abarca una serie de transacciones de señalización entre terminales que cargan dos flujos de audio para cada dirección de la conversación. Algunos de los protocolos voip más importantes y compatibles con Asterisk PBX. SIP SIP (Session Initiation Protocol) es un protocolo de señalización para conferencia, telefonía, presencia, notificación de eventos y mensajería instantánea a través de Internet. Fue desarrollado inicialmente en el grupo de trabajo IETF MMUSIC Academy Xperts Bolivia

71

EX – TIP. Experto en Telefonía IP – Módulo 1

(Multiparty Multimedia Session Control) y, a partir de Septiembre de 1999, pasó al grupo de trabajo IETF SIP.  Acrónimo de “Session Initiation Protocol”. 

Este protocolo considera a cada conexión como un par y se encarga de negociar las capacidades entre ellos.



Tiene una sintaxis simple, similar a HTTP o SMTP.



Posee un sistema de autenticación de pregunta/respuesta.



Tiene métodos para minimizar los efectos de DoS (Denial of Service o Denegación de Servicio), que consiste en saturar la red con solicitudes de invitación.



Utiliza un mecanismo seguro de transporte mediante TLS.



No tiene un adecuado direccionamiento de información para el funcionamiento con NAT.

IAX 

Acrónimo de “Inter Asterisk eXchange”.



IAX es un protocolo abierto, es decir que se puede descargar y desarrollar libremente.



Aún no es un estándar.



Es un protocolo de transporte, que utiliza el puerto UDP 4569 tanto para señalización de canal como para RTP (Protocolo de Transporte en tiempo Real).



Puede truncar o empaquetar múltiples sesiones dentro de un flujo de datos, así requiere de menos ancho de banda y permite mayor número de canales entre terminales.



En seguridad, permite la autenticación, pero no hay cifrado entre terminales.



Según la documentación (Asterisk 1.4) el IAX puede usar cifrado (aes128), siempre sobre canales con autentificación MD5.

H.323 

Originalmente fue diseñado para el transporte de vídeo conferencia.



Su especificación es compleja.



H.323 es un protocolo relativamente seguro, ya que utiliza RTP.



Tiene dificultades con NAT, por ejemplo para recibir llamadas se necesita direccionar el puerto TCP 1720 al cliente, además de direccionar los puertos UDP para la media de RTP y los flujos de control de RTCP.



Para más clientes detrás de un dispositivo NAT se necesita gatekeeper en modo proxy.

Academy Xperts Bolivia

72

EX – TIP. Experto en Telefonía IP – Módulo 1

MGCP 

Acrónimo de “Media Gateway Control Protocol”.



Inicialmente diseñado para simplificar en lo posible la comunicación con terminales como los teléfonos.



MGCP utiliza un modelo centralizado (arquitectura cliente * servidor), de tal forma que un teléfono necesita conectarse a un controlador antes de conectarse con otro teléfono, así la comunicación no es directa.



Tiene tres componentes un MGC (Media Gateway Controller), uno o varios MG (Media Gateway) y uno o varios SG (Signaling Gateway), el primero también denominado dispositivo maestro controla al segundo también denominado esclavo.



No es un protocolo estándar.

SCCP 

Acrónimo de “Skinny Client Control Protocol”.



Es un protocolo propietario de Cisco.



Es el protocolo por defecto para terminales con el servidor Cisco Call Manager PBX que es el similar a Asterisk PBX.



El cliente Skinny usa TCP/IP para transmitir y recibir llamadas.



Para el audio utiliza RTP, UDP e IP.



Los mensajes Skinny son transmitidos sobre TCP y usa el puerto 2000.

Cuadro de Comparación El siguiente cuadro trata de realizar una comparación entre las características más importantes de lo protocolos para voip antes descritos: Tecnología Disponibilidad Seguridad NAT Total SIP

2

2

2

1

7

IAX

2

3

1

3

9

H.323 3

1

2

1

7

MGCP 2

1

¿?

¿?

3

SCCP 3

1

¿?

¿?

4

En la primera columna tenemos a los protocolos y en la primera fila se tiene a las características que se explican a continuación:

Academy Xperts Bolivia

73

EX – TIP. Experto en Telefonía IP – Módulo 1



Tecnología: se refiere a los protocolos de red tradicionales utilizados por el protocolo voip como RTP, TCP, UDP; a la arquitectura y a mecanismos de transmisión.



Disponibilidad: El puntaje varía de acuerdo si es propietario, si tiene una especificación simple o compleja y si es “open”.



Seguridad: Se refiere a los mecanismos de seguridad que implementa como la autenticación, el cifrado del flujo, etc.



NAT: El puntaje varía de acuerdo a en que medida esto es soportado por el protocolo voip.

Se puede concluir que el protocolo que obtiene mayor puntaje es IAX, sin embargo sus características no son uniformes como en el caso de SIP que presenta paridad en todos los aspectos. Hay que notar también que los demás protocolos destacan en la tecnología que poseen, es decir son más complejos. En muchos países del mundo, IP ha generado múltiples discordias, entre lo territorial y lo legal sobre esta tecnología, está claro y debe quedar en claro que la tecnología de VoIP no es un servicio como tal, sino una tecnología que usa el Protocolo de Internet (IP) a través de la cual se comprimen y descomprimen de manera altamente eficiente paquetes de datos o datagramas, para permitir la comunicación de dos o más clientes a través de una red como la red de Internet. Con esta tecnología pueden prestarse servicios de Telefonía o Videoconferencia, entre otros. Para las corporaciones internacionales que pueden contar con sistemas punteros y anchos de banda óptimos, las centrales que manejan VoIP (IPPBX) se han convertido en un equipo muy conveniente. Pero las pequeñas y medianas empresas deben de evaluar ciertos temas: Esta tecnología opera con sistemas operativos (Windows/Linux) que presentan ciertos problemas de estabilidad. Además la red IP no fue diseñada para dar garantías. Además algunos proveedores para abaratar costos ofrecen centrales ensambladas en un ordenador o una PC, los cuales enfrentan otro tipo de problemas, como las fallas en sus componentes (Discos Duros, Ventiladores y Fuentes de Alimentación), se debe de prever también el cambio de los aparatos telefónicos tradicionales, ya que esta tecnología trabaja con teléfonos especiales (IP o SIP) a menos que se incorporen equipos especiales. La buena noticia es que todas las funciones extra que pueden brindarle las centrales IP pueden obtenerse con sus centrales tradicionales, solo se deben conectar ciertos módulos que incorporan la tecnología VoIP a sus necesidades. Todos sabemos que la calidad de transmisión de las centrales tradicionales todavía es superior. En realidad es que ya nos acostumbramos a la confiabilidad y a la fácil configuración de los equipos tradicionales, los cuales manejan lenguajes de programación muy sencillos.

Academy Xperts Bolivia

74

EX – TIP. Experto en Telefonía IP – Módulo 1

75

El CODEC, es el caballo de batalla de la compresión de VoIP Con tantas maneras diferentes que la voz digitalizada puede ser codificados para luego ser enviada a través de una línea digital, las aplicaciones de VoIP deben saber qué método de codificación usa la otra parte, con el fin de realizar una conexión exitosa. Esto se logra permitiendo que la codificación y decodificación se realice por medio de un hardware o software estándar, estos códec, codifican o decodifican. Los codecs son utilizados en muchas aplicaciones, incluyendo vídeo, pero ahora nos centraremos únicamente en los codecs que pueden ser utilizados con VoIP. Por supuesto, hay varias docenas de códec en la industria, los más avanzados son pagos lo que hace que no sean muy comunes, pero me limitaré a estos cuatro, ya que son los más conocidos y disponibles en la mayoría de las aplicaciones de VoIP. Es increíble la cantidad de abreviaturas nuevas por lo tanto primero voy a dar algunas explicaciones. CODECS MÁS COMUNES EN VoIP NOMBRE ; G.711, COMPRESION ; 64, APLICACIÓN ; Telefonía en general.

A-law

y

u-law, BITRATE(Kbps) ;

NOMBRE ; G.726, COMPRESION ; ADPCM, BITRATE(Kbps) ; 40, APLICACIÓN ; DECT telefonía Internacional. NOMBRE ; GSM 06,10 FR, COMPRESION ; 13.2, APLICACIÓN ; Codec original de GSM.

16,24,32

y

ADPCM, BITRATE(Kbps) ;

NOMBRE ; G.729, COMPRESION ; CS-ACELP, BITRATE(Kbps) ; 8, APLICACIÓN ; VoIP sobre conexiones a Internet lentas.

Estándares UIT-T G.711, G.726 y G.729 La estandarización es importante para que dos aplicaciones de VoIP se comunican entre sí. Afortunadamente, el sector de las telecomunicaciones siempre ha sentido la necesidad de estandarizar los protocolos y el intercambio de información y la primera organización oficial para esto se remonta al año 1865, la UIT o Unión Telegráfica Internacional. Esta organización se convirtió en una agencia oficial de las Naciones Unidas en 1947. El organismo de normalización de la UIT a evolucionado en el CCITT o Comité Consultivo Internacional de Telefonía y otros telegráfico en 1956 y pasó a llamarse finalmente a la UIT-T en 1993. La abreviatura del CCITT se sigue utilizando en muchos lugares, por ejemplo cuando se habla de algoritmos de cálculo CRC. El UIT-T ha definido una serie de algoritmos de compresión de voz que se utilizan en las comunicaciones de telefonía nacional e internacional. Todos estos estándares de compresión son nombrados por la letra G seguida de un número. Como regla general se puede decir que la numeración de la norma otorga la secuencia de las normas, y que los números más altos, en general, definen las

Academy Xperts Bolivia

EX – TIP. Experto en Telefonía IP – Módulo 1

normas técnicas de compresión como más complejas que requieren un mayor esfuerzo de cómputo que las normas de menor número, pero tiene una mejor calidad en la proporción entre la voz y el ancho de banda. La A-Law y el PCM de la μ-law El estándar de compresión G.711 permite dos formas de comprimir los datos de voz entrantes. Estos dos formatos de compresión se llaman a menudo A-law y μ-law. Los dos estándares de compresión usan PCM o modulación de código de pulso(pulse-code) como la base de datos del método de muestreo. Con el PCM los datos se muestrean a intervalos regulares. G.711 utiliza una frecuencia de PCM de 8 kHz que se traduce en 8.000 muestras por segundo. Cada muestra tiene una profundidad de 13 bits (A-law) o 14 bits (μ-law), que proporciona una alta calidad inicial con sólo pequeños errores presentes debido a la cuantización de la señal. El uso de compresiones A-law y μ-law es principalmente definida geográficamente. En América del Norte y Japón principalmente se usa el μ-law, y en el resto del mundo A-law. También hay ligeras diferencias algorítmicas que hacen a la A-law sea una ley más fácil de aplicar con menos recursos de cómputo que los que se utiliza en su contraparte la μ-law. Funciones Las características dependen del sistema ensamblado, algunas de ellas puede que requieran de licencias u otro software además de algunos módulos: 

Número ilimitado de extensiones o anexos



Acceso de correo de voz por la Web



Múltiples operadores automáticos con menús



Sistema de multiventas por teléfono

 

Múltiples casillas de correos de voz



Integración con teléfonos celulares

Integración con Outlook Express (Exchange) (Microsoft)



Perifoneo con altavoz (Sistema de Parlantes/Amplificador)





Captura de llamadas

Teléfonos remotos alrededor del mundo





Diagnóstico del Sistema

Interfaz con el usuario (incluyendo reenvios, mensajería unificada, grabaciones de los mensajes redirigidos a su correo de voz)



Opciones de usar cualquier teléfono IP



Grupos de Extensiones



Autoinstalación de extensiones

 

Soporta telefónos analógicos Llamadas en espera

Academy Xperts Bolivia



Troncales Analógicas y Digitales T1/E1



Enrutamiento avanzado (IVR)



Notificación de estatus de llamada



Aviso de Llamada



Autodesvío de llamadas



Mensajería unificada



Filtrado de llamadas



ANI automatización y enrutamientos



Identificación DNIS



Mayor movilidad



Personalización del Proveedor de VoIP

76

EX – TIP. Experto en Telefonía IP – Módulo 1



Rango de Numeración de Extensiones Flexible



Llamada monitorizadas



Identificador de llamadas





DID ingreso directo para marcación interna

Marcación por Nombre del Directorio



Enrutamiento de llamadas



Grabación de llamadas



Grabación en vivo



Devolución de llamadas



Correos de voz enviados a sus correos electrónicos



Notificacion por mensajes SMS de sus correos de voz

Consola de operadora



Salas de conferencias virtuales





Informes



Integración con el cliente (CRM)





Servidores vinculados remotos

Números de marcación rápida (Memorias)



Canal de apoyo



Múltiples Músicas en espera



Integración a los softwares administrativos de las empresas



Fax a correo electrónico



Fax de soporte PDF



ACD característica de distribución de llamadas



Teléfonos virtuales en su PC (Softphones)



Transferencia de llamadas



Llamada de conferencia



Monitorización en vivo

3. Introducción a Asterisk Asterisk es el mayor proyecto de software libre diseñado para la integración y unificación de los sistemas de comunicaciones conocidos Originalmente fue concebido como una plataforma para la generación de un sistema PBX, pero con el tiempo ha ido evolucionando a otro tipo de usos, como Pasarelas VoIP, sistemas integrales para call-centers, salas de conferencias, buzones de voz, y todo tipo de aplicaciones que tengan relación con las comunicaciones en tiempo real. Comparativamente Asterisk es para el mundo de las comunicaciones lo mismo que sería Apache para el mundo de las aplicaciones web. Apache es un servidor web, y Asterisk es un servidor de comunicaciones. Asterisk es una plataforma de comunicaciones basada en la filosofía Open Source, es capaz de convertir una computadora común en un completo servidor de comunicaciones.

Academy Xperts Bolivia

77

EX – TIP. Experto en Telefonía IP – Módulo 1

¿Que es Asterisk? Realmente esta pregunta puede ir mucho más allá de la definición común que se establece para el sistema. Existen ciertas consideraciones que hacen a Asterisk lo que realmente es en la actualidad, y una de las principales surge de la propia naturaleza del sistema: La filosofía Open Source. Considerando Asterisk como una plataforma integral de comunicaciones, podría considerarse la más importante, y ha resultado como única por muchos años en un entorno, donde todos los sistemas de comunicación eran totalmente privativos. Aunque con el tiempo, fueron sacando interfaces comúnmente conocidos como CTI para la integración de sistemas de terceros para cumplir funciones muy específicas, la potencia de estas interfaces era bastante limitada dado que el núcleo de los sistemas privados, permanencia cerrado al público. Con Asterisk se sienta un precedente desde el momento que el código es de libre acceso, modificación y ampliación, dado que múltiples colectivos pudieron ampliar sus necesidades y adaptarlas a lo que venían buscando en un momento concreto, que un sistema de comunicaciones pudiera ofrecerles, dentro de sus extensivas bondades.

Historia y Evolución de Asterisk El desarrollo de Asterisk fue iniciado en el año 1999 por Mark Spencer. En aquel momento ya existían otros proyectos de telefonía basados en la ideología Open Source. Pero esos proyectos estaban realmente enfocados a la telefonía a nivel software, basados en la búsqueda de establecer comunicaciones entre ordenadores a través de los sistemas de audio. La diferencia de Asterisk con estos proyectos, era la idea preconcebida, de entrelazar por primera vez la red de telefonía común (PSTN) con un ordenador. Y para ello se formó una alianza con un proyecto de telefonía llamado Zapata iniciado por Jim Dixon. La idea del proyecto Zapata, era la posibilidad de diseñar tarjetas específicas para convertir la señal analógica que provenía de la PSTN a una señal digital, y ahorrar costes en la construcción de dispositivos de telefonía y audio avanzados (y muy costosos) gracias a la tremenda reducción de costes que sufrían año tras año los procesadores. A través de estos, cada vez más potentes, y baratos, se podrían procesar una o varias señales de audio digital (DSP) sin gran dificultad y poder paralelamente construir teléfonos con ese coste reducido. Hoy en día el proyecto Zapata, fue integrado totalmente en Asterisk, y Asterisk patrocinado por una empresa que construye dispositivos de telefonía digital, llamada Digium, y se ha acomodado como una parte más de Asterisk con un nuevo nombre: DAHDI (son las siglas de Digium Asterisk Hardware Device Interface).

Academy Xperts Bolivia

78

EX – TIP. Experto en Telefonía IP – Módulo 1

La primera versión estable surgió casi 5 años después, Asterisk 1.0. A partir de aqui el sistema de versiones ha evolucionado de la siguiente forma: 

Asterisk 1.0 – 2004



Asterisk 1.2 – 2005



Asterisk 1.4 – 2006



Asterisk 1.6.0 – 2008



Asterisk 1.6.1 – 2009



Asterisk 1.6.2 – 2009



Asterisk 1.8 – 2010



Asterisk 1.10 – 2011 (Nuevo Nombre Asterisk 10)

Asterisk SCF Asterisk SCF es un entorno todavía en vías de desarrollo que aunque originalmente no ha sido lanzado para reemplazar al sistema original Asterisk, ofrecerá una evolución en múltiples términos que supondría en un futuro su posible adaptación por la mayoría de los usuarios del mismo. La idea intencional está basada, en la posibilidad de ofrecer un sistema capaz de ser desplegado en Clusters, o múltiples sistemas con total transparencia, algo que en la actualidad el sistema Asterisk no puede ofrecer de por si, y en caso de necesitar algún tipo de escalado, era necesario recurrir a soluciones alternativas como los Proxies SIP como los reconocidos Opensips o Kamailio. Según la definición ofrecida por los desarrolladores, “Asterisk SCF ha sido arquitectónicamente diseñado para ofrecer los máximos niveles de disponibilidad, escalabilidad, extensibilidad, tolerancia a fallos y rendimiento” . Arquitectura de Asterisk La arquitectura de Asterisk está basada en un sistema modular, que depende del núcleo principal del sistema.

Academy Xperts Bolivia

79

EX – TIP. Experto en Telefonía IP – Módulo 1

El núcleo del sistema principalmente se basa en cuatro componentes:  Gestión de Módulos 

Temporizador de Sistema



Gestión de Canales



Interfaces de Sistema

La estructura de Asterisk es totalmente independiente de los dispositivos, troncales, y demás útiles externos al mismo. En la gran parte de las PBX tradicionales, es muy común observar el hecho que existen estructuras lógicas para diferenciar entre los teléfonos y otros dispositivos de telefonía como faxes, y por otro lado líneas entrantes como troncales primarios, líneas RDSI, etc. En Asterisk este concepto no existe, todo entra al sistema como un canal genérico y luego es gestionado de forma integral. Aunque sean diferenciados, todos se gestionan de la misma forma por eso, incluso recursos externos pueden llegar a ser manejados dentro de las posibilidades, de la misma forma, que una extensión SIP interna. A priori esto puede parecer bastante obvio, pero el verdadero potencial se demuestra cuando empezamos a trabajar con estos canales dentro del plan de Marcación. Módulos Como comentábamos antes, Asterisk está basado en módulos independientes, los cuales pueden ser cargados y descargados a voluntad, en función de las necesidades que deseemos proveer al sistema.

Academy Xperts Bolivia

80

EX – TIP. Experto en Telefonía IP – Módulo 1

Cada módulo posee una funcionalidad específica, de tal forma que puedan tratarse todos los aspectos del sistema, pasando por los tipos de canales (SIP, IAX, DAHDI) o conexiones a otros sistemas para interactuar con Asterisk (mail, bases de datos, web, etc.). Existe un archivo específico para la configuración de los módulos llamado modules.conf (dentro de la ruta especifica de instalación de Asterisk típicamente /etc/asterisk). Durante la instalación del sistema Asterisk, es posible seleccionar que módulos pretendemos instalar. En caso que instalemos una gran cantidad de modulo que tengamos intención de utilizar en un futuro avanzado, pero no a corto plazo, por motivos de seguridad es altamente recomendable señalar específicamente que no se carguen dentro del fichero de configuración utilizando la propiedad noload => Todas las posibilidades que nos ofrece el fichero de configuración modules.conf las podremos ver en su apartado específico. Dentro del sistema de módulos, estos se clasifican en diferentes subapartados como vemos a continuación los más populares:  Aplicaciones 

Recursos



Funciones del Dialplan



Registro del detalle llamadas



Registro de eventos de canales



Drivers de canales



Traductores de Codecs y Formatos



Add-ons

Aplicaciones Las aplicaciones son aquellas acciones aplicables al manejo de las llamadas dentro del Plan de Marcación. Por ejemplo, la más popular en todos los planes sería la aplicación Dial, la cual simplemente tiene como propósito lanzar una llamada a un canal en función de las propiedades que señalemos durante su ejecución. Existen otras aplicaciones comunes, como VoiceMail (encargada de la gestión del Buzón de Voz), Record (para grabar el sonido de un determinado canal), etc. Algunas características en común de las aplicaciones son las siguientes:  Las acciones están exclusivamente enfocadas por y para los canales. 

Se carga de forma dinámica



Se ejecutan de manera síncrona.



El formato clásico de este tipo de módulos es app_.so

Academy Xperts Bolivia

81

EX – TIP. Experto en Telefonía IP – Módulo 1

Recursos La función específica de los recursos es la de integrar Asterisk con los sistemas externos. Hablamos de bases de datos, servidores web, calendarios, etc. Tienen la capacidad de utilizar por sí mismos, Aplicaciones del sistema como veíamos antes. Pero una de las diferencias con respecto a estas, es que se cargan de manera estática, y pueden operar simultáneamente en múltiples canales, en vez de crearse dinámicamente para cada canal en curso. Uno de los más comunes, es el recurso para ofrecer servicios de Música en Espera (Music ion Hold), o para realizar interconexiones con bases de datos a través de ODBC. El formato clásico de este tipo de módulos es res_.so Funciones del Dialplan La idea fundamental detrás de las Funciones es la capacidad de obtener o añadir, determinada información específica a cada canal. Suelen ser complementarias a las Aplicaciones y son capaces de ofrecer mejoras para determinados aspectos del sistema que de por si pudieran ser limitados. Por ello la forma más común de ser utilizadas es a través de la Aplicación Set Por ejemplo una función típica es la capaz de recoger el Identificador de llamada de un canal (CALLERID) para poder manejarlo dentro del plan de marcación a voluntad. El formato clásico de este tipo de módulos es func_.so Drivers de canales Son los drivers específicos para cada tipo de canal disponible actualmente o en un futuro para Asterisk. Estos son los que aportan específicamente la posibilidad de volver totalmente independiente el sistema de los mismos para así poder tratarlos de forma totalmente homogénea. Son exactamente una especie de interfaz entre el núcleo de Asterisk y la parte “lógica” dentro del sistema operativo. Es exactamente un API. Todos los canales más típicos, tienen su correspondiente modulo para el driver. Ejemplos típicos son el específico para DAHDI, SIP e IAX, que justamente son los más utilizados por la comunidad Asterisk. El resto no están lo suficientemente difundidos, aunque tienen soporte y van mejorando con el tiempo, como el específico para tratar con estaciones Cisco, llamado como su protocolo propietario, Skinny (SCCP). El formato clásico de este tipo de módulos es chan_.so

Academy Xperts Bolivia

82

EX – TIP. Experto en Telefonía IP – Módulo 1

Traductores de Codecs y Formatos Son la representación para los sistemas de audio y vídeo digitales de trasmisión (codecs) y almacenamiento (formatos). De alguna forma, son los encargados de convertir vía software, entre un tipo y otro tipo de formato o códec de forma simultánea al curso de la llamada. Por ejemplo, si una llamada, viene del canal DAHDI, con el códec G.711 (alaw o ulaw dependiendo del país) y quiere pasarse a una extensión SIP dentro de nuestro sistema Asterisk, el traductor correspondiente será el encargado de realizar esta conversión en tiempo real. Por otro lado, si lo que estamos tratando son archivos, los encargados de interpretar el contenido para pasarlo a través del audio del canal correspondiente serían los traductores de Formatos. En este ámbito los mas populares son los estándares, GSM y WAV en los que están basados la mayor parte de los sonidos por defecto del sistema Asterisk (los mensajes pregrabados). El formato clásico de para los módulos de codecs es codec_.so y para los de formatos format_.so Interfaces Asterisk se despliega y comunica con el entorno a través de múltiples interfaces que provee, tanto para trabajos de gestión y mantenimiento manuales, como para su autogestión de forma estática, y sistemas externos que puedan recabar datos de forma dinámica y automática, y finalmente pasando a ofrecer interfaces para poder trabajar con lenguajes de programación que provean a su vez al sistema de nuevas funcionalidades extra que no estén construidas en su interior. Todo esto se puede desglosar en cuatro estructuras básicas:  Ficheros de Configuración 

Interfaz de Comandos (CLI)



Interfaz Pasarela (AGI)



Interfaz de Gestión (AMI)

Archivos de Configuración Todos se encuentran en la ruta de instalación por defecto de Asterisk, que suele ser en la mayor parte de los casos /etc/asterisk. Suele existir un fichero de configuración que “soporte” la funcionalidad especifica que puede aportar al sistema un módulo específico, y suelen acabar con el formato .conf, como podría ser el caso de chan_dahdi.conf, que como veríamos antes, sería el fichero encargado de ofrecer toda la configuración específica para el modulo encargado de gestionar el canal dedicado a DAHDI.

Academy Xperts Bolivia

83

EX – TIP. Experto en Telefonía IP – Módulo 1

Una parte de los ficheros de configuración es posible que sean editados de forma dinámica a través de una Base de Datos. A esta funcionalidad se le ha llamado Asterisk Realtime, y por ejemplo es muy popular para la configuración del fichero especifico para el modulo dedicado al canal SIP (sip.conf). Pero la mayor parte del resto de los ficheros, son editados de forma manual, aunque en los últimos años se han popularizado unas interfaces gráficas de usuario para hacer esta tarea mas intuitiva como FreePBX. CLI En términos generales, podría considerarse la consola de administración del sistema. En un apartado específico dentro de esta Wiki, podremos encontrar más información relativa a este interfaz ya que es fundamental saber utilizarlo para la correcta gestión y mantenimiento del sistema de forma eficaz. Asterisk Manager Interface En la mayor parte de las PBX más populares del mundo, existe un componente para poder ofrecer nuevas funcionalidades al sistema original a través de sistemas de procesamiento autónomos u ordenadores. Este recurso suele llamarse CTI (Computer Telephony Integration), y por regla general suele ser bastante limitado, ya que su potencial suele radicar en la cantidad de información que seamos capaces de extraer del mismo. En Asterisk este CTI es llamado AMI, y su potencial es prácticamente ilimitado ya que podemos recoger prácticamente cualquier elemento interno en función de la configuración que apliquemos al mismo. Principalmente recibe todos aquellos comandos que sean capaces los módulos del sistema de aportar a la interfaz. Sistemas como marcadores predictivos, gestores de llamadas, sistemas de facturación, etc, se fundamentan en esta interfaz. La forma de interacción es bastante básica, ya que está basado en un flujo de texto simple. Asterisk Gateway Interface Muy parecido al uso de Aplicaciones, disponemos de esta pasarela para poder ejecutar servicios en los canales, pero basados en otros lenguajes de programación diferentes a la estructura de Asterisk en si. Existen librerías AGI prácticamente para todos los lenguajes más populares como pueden ser, PHP, Python, Java, Ruby on Rails, etc. Con esto tenemos un potencial ilimitado para crear o entrelazar aplicaciones ya existentes con nuestro sistema Asterisk, y obtener aún más funcionalidad de la que el sistema provee de por sí.

Academy Xperts Bolivia

84

EX – TIP. Experto en Telefonía IP – Módulo 1

Plan de Marcación (Dialplan) Como parte fundamental de la arquitectura de Asterisk vamos a hacer una breve reseña sobre la espina vertebral de Asterisk que podrá verse específicamente más ampliado dentro de un apartado de esta Wiki. Si pudiéramos considerar el flujo de cualquier interacción de Asterisk y a su vez este flujo como un lenguaje de programación en si (o un script), de como por ejemplo las llamadas son gestionadas, este concepto se llamaría en Asterisk Plan de Marcación (o mas popularmente conocido como Dialplan). Existen tres formas de diseñar el dialplan:  A través de un fichero de configuración simple 

Utilizando AEL (Asterisk Extension Logic)



Mediante el lenguaje de programación LUA

Pero la forma mas popular y extendida es el caso del fichero de configuración en su correspondiente sección se verán de forma mas extendida estas posibilidades. 4. Asterisk Asterisk es una centralita software (PBX) de código abierto. Como cualquier centralita PBX permite interconectar teléfonos y conectar dichos teléfonos a la red telefónica convencional (RTB – Red telefónica básica)- Su nombre viene del símbolo asterisco (*) en inglés. El creador original de esta centralita es Mark Spencer de la compañía Digium que sigue siendo el principal desarrollador de las versiones estables. Pero al ser de código libre, existen multitud de desarrolladores que han aportado funciones y nuevas aplicaciones. Originalmente fue creada para sistemas Linux pero hoy en día funciona también en sistemas OpenBSD, FreeBSD, Mac OS X, Solaris Sun y Windows. Pero Linux sigue siendo la que mas soporte presenta. El paquete básico de Asterisk incluye muchas características que antes sólo estaban disponibles en caros sistemas propietarios como creación de extensiones, envío de mensajes de voz a e-mail, llamadas en conferencia, menús de voz interactivos y distribución automática de llamadas. Además se pueden crear nuevas funcionalidades mediante el propio lenguaje de Asterisk o módulos escritos en C o mediante scripts AGI escritos en Perl o en otros lenguajes. Para poder utilizar teléfonos convencionales en un servidor Linux corriendo Asterisk o para conectar a una línea de teléfono analógica se suele necesitar hardware especial (no vale con un modem ordinario). Digium y otras compañías venden tarjetas para este fin. Pero quizás lo más interesante es que Asterisk soporta numerosos protocolos de VoIP como SIP y H.323. Asterisk puede operar con muchos teléfonos SIP, actuando como “registrar” o como “gateway” o entre teléfonos IP y la red telefónica

Academy Xperts Bolivia

85

EX – TIP. Experto en Telefonía IP – Módulo 1

convencional. Los desarrolladores de Asterisk han diseñado un nuevo protocolo llamado IAX para una correcta optimización de las conexiones entre centralitas Asterisk. Al soportar una mezcla de la telefonía tradicional y los servicios de VoIP, Asterisk permite a los desarrolladores construir nuevos sistemas telefónicos de forma eficiente o migrar de forma gradual los sistemas existentes a las nuevas tecnologías. Algunos sitios usan Asterisk para reemplazar a antiguas centralitas propietarias, otros para proveer funcionalidades adicionales y algunas otras para reducir costes en llamadas a larga distancia utilizando Internet. 5. Instalación de Asterisk Asterisk para linux La página de referencia es http://www.asterisk.org/ Nos descargamos la versión 1.6.2.20 y lo descomprimimos 1) Instalar Asterisk # tar -zxvf asterisk-1.6.2.20.tar.gz # rm -f asterisk-1.6.2.20.tar.gz # cd asterisk-1.6.2.20 2) ejecutar “make” Suponiendo que todo ha ido correctamente 3) ejecutar “make install” Si es la primera vez que instalas la centralita Asterisk es recomendable instalar los ejemplos con el comando 4) “make samples” Pero recuerda que este comando sobreescribirá todos los archivos de configuración que ya tengas. Finalmente puedes arrancar el Asterisk con el comando: # asterisk -vvvc Verás un montón de mensajes en la pantalla cuando Asterisk se inicializa. (las vvv pertenecen al modo ” very very verbose” y la c a que nos mostrará al final una línea de comandos en forma consola) *CLI> A partir de este momento ya está Asterisk instalado y funcionando. Se puede utilizar el comando “help” para ayuda También puedes utilizar el comando “man asterisk” en la línea de comandos de linux para obtener detalles de como arrancar y parar el servidor Asterisk. Academy Xperts Bolivia

86

EX – TIP. Experto en Telefonía IP – Módulo 1

Los ficheros de configuración de Asterisk se habrán instalado en el directorio /etc/asterisk donde podrás encontrar un montón de información. Vamos a comprobar que funciona: Configuramos un softphone como el SJPhone o X-Lite, para poder acceder a nuestro propio Asterisk. La configuración que hemos hecho trae dos usuarios por defecto que podemos utilizar: A: usuario: 3000 password=cualquiera vale B: usuario: 3001 password=cualquiera vale Una vez que lo tenemos configurado y el usuario se ha registrado correctamente en nuestro servidor podemos llamar a algunos numeros de prueba que vienen por defecto en el plan de numeración: 1000 – Menú principal 1234 – Pasar llamada a la consola (veréis en la consola la llamada) 1235 – Contestador automático de la consola 1236 – LLamar a la consola 3000 – LLamar al usuario SIP 3000 3001 – LLamar al usuario SIP 3001 500 – Llamar a Digium 600 – Prueba de eco 8500 – Menu del contestador 99990 Test AGI 99991 Test EAGI 99992 Dice la hora 99999 Suena música de manera infinita 700 Deja aparcada la llamada 701-720 Llamadas aparcadas Una buena prueba en este momento es configurar 2 softphones en dos computadoras diferentes; uno con el usuario 3000 y otro con el usuario 3001 e intentar hacer una llamada entre ambos. Si funciona podemos pasar a aprender a configurar Asterisk y crear nuevos usuarios y planes de numeración. Primeros pasos con Asterisk Una vez instalado Asterisk en Windows o Linux vamos con un ejemplo sencillo de las primeras cosas que podemos hacer. Este ejemplo consiste en crear dos nuevas extensiones con sus buzones de voz.

Academy Xperts Bolivia

87

EX – TIP. Experto en Telefonía IP – Módulo 1

1. Vamos a crear dos usuarios SIP nuevos. Por ejemplo los usuarios “20000” y “20100” con contraseñas “a20000b” y “b20100a” Para ello vamos al archivo sip.conf y añadimos las siguientes líneas al final del archivo: [20000] type=friend secret=a20000b qualify=yes nat=no host=dynamic canreinvite=no context=miprimerejemplo mailbox=20000@miprimerbuzon [20100] type=friend secret=b20100a qualify=yes nat=no host=dynamic canreinvite=no context=miprimerejemplo mailbox=20100@miprimerbuzon 2. Vamos a crear las extensiones para esos usuarios Vamos a crear las extensiones para esos usuarios en el archivo extensions.conf de manera que si marcamos el 20000 hablaremos con el usuario 20000 y si marcamos el 20100 hablaremos con el usuario 20100. También creamos el numero del buzón de voz para consultar los mensajes para que sea el 30000. Añadimos las siguientes líneas al final del archivo extensions.conf [miprimerejemplo] exten => 20000,1,Dial(SIP/20000,30,Ttm) exten => 20000,2,Hangup exten => 20000,102,Voicemail(20000) exten => 20000,103,Hangup exten => 20100,1,Dial(SIP/20100,30,Ttm) exten => 20100,2,Hangup exten => 20100,102,Voicemail(20100) exten => 20100,103,Hangup exten => 30000,1,VoicemailMain 3. Vamos a crear los buzones de voz para esos usuarios

Academy Xperts Bolivia

88

EX – TIP. Experto en Telefonía IP – Módulo 1

Vamos a crear lus buzones de voz de ambos usuarios y asignarles una contraseña en el archivo voicemail.conf .Al buzón 20000 le vamos a dar la contraseña 1234 y al buzón 20100 la contraseña 4321 [miprimerbuzon] 20000 => 1234,Pedro,[email protected] 20100 => 4321,Juan,[email protected] 4. Reinicializamos el asterisk 5. Configuramos un softphone Configuramos uno o dos softphones y probamos a llamar entre ambos usuarios o a dejar mensajes en el contestador cuando no están disponibles. También podemos llamar al número 30000 para escuchar nuestros mensajes. Configuración del archivo sip.conf El archivo sip.conf sirve para configurar todo lo relacionado con el protocolo SIP y añadir nuevos usuarios o conectar con proveedores SIP. Aquí hay un ejemplo básico del archivo sip.conf: [general] context=default port=5060 ; Puerto UDP en el que responderá el Asterisk bindaddr=0.0.0.0 ; Si queremos especificar que Asterisk esté en una IP (si un equipo tiene 3 IPs por ej.) 0.0.0.0 vale para cualquiera srvlookup=yes ; Habilita servidor DNS SRV [pedro] type=friend secret=welcome qualify=yes ;Tiempo de latencia no superior a 2000 ms. nat=no ; El telefono no usa NAT host=dynamic ; El dispositivo se registra con una IP variante canreinvite=no ; Asterisk por defecto trata de redirigir context=internal ; El contexto que controla todo esto El archivo sip.conf comienza con una sección [general] que contiene la configuración por defecto de todos los usuarios y “peers” (proveedores). Se puede sobreescribir los valores por defecto en las configuraciones de cada usuario o peer. – En general los servidores SIP escuchan en el puerto 5060 UDP. Por tanto configuramos port=5060 . En algunos casos, por ejemplo si utilizamos SER (Sip Express Router) con Asterisk debemos cambiar este puerto. – DNS es una forma de configurar una dirección lógica para que pueda ser resuelta. Esto permite que las llamadas sean enviadas a diferentes lugares sin necesidad de cambiar la dirección lógica. Usando el DNS SRV se ganan las ventajas del DNS

Academy Xperts Bolivia

89

EX – TIP. Experto en Telefonía IP – Módulo 1

mientras que deshabilitandolo no es posible enrutar llamadas en base a nombre de dominios. Conviene tenerlo activado, por tanto se pone la directiva srvlookup=yes Cada extensión está definida por un user o usuario, un peer o proveedor o un friend o amigo y viene definida con un nombre entre corchetes []. – El tipo (type) “user” se usa para autenticar llamadas entrantes, “peer” para llamadas salientes y “friend” para ambas. En nuestro caso hemos definido una extensión pedro como “friend”. Puede realizar y recibir llamadas. – Secret es la contraseña usada para la autenticación. En este caso será “welcome”. – Se puede monitorizar la latencia entre el servidor Asterisk y el teléfono con qualify=yes para determinar cuando el dispositivo puede ser alcanzado En este caso Asterisk considera por defecto que que un dispositivo está presente si su latencia es menor de 2000 ms (2 segundos). Se puede cambiar este valor poniendo el número de milisegundos en vez de yes. – Si una extensión está detrás de un dispositivo que realiza NAT (Network Address Translation) como un router o firewall se puede configurar nat=yes para forzar a Asterisk a ignorar el campo información de contacto y usar la dirección desde la que vienen los paquetes. – Si ponemos host=dynamic quiere decir que el telefono se podrá conectar desde cualquier dirección IP. Podemos limitar a que dicho usuario solo pueda acceder con una IP o con un nombre de dominio. Si ponemos host=static no haría falta que el usuario se registrará con la contraseña proporcionada en “secret”, – También se ha puesto canreinvite=no. En SIP los invites se utilizan para establecer llamadas y redirigir el audio o video. Cualquier invite después del invite inicial en la misma conversación se considera un reinvite. Cuando dos usuarios han establecido la comunicación con canreinvite= yes (por defecto) los paquetes RTP de audio podrían ser enviados extremo a extremo sin pasar por el servidor Asterisk. Esto, normalmente, no suele ser conveniente en casos en los que haya NAT en alguno de los clientes. (NAT=yes). Usando canreinvite=no se fuerza a Asterisk a estar en medio no permitiendo que los puntos finales intercambien mensajes RTP directamente. De todos modos, existen numerosas condiciones en que Asterisk no permite el reinvite a pesar de que no pongamos esta condición ya que necesita controlar el flujo RTP. Por ejemplo: Si los clientes usan codecs diferentes, si hay opciones de Music On hold o temporizadores en la llamada, etc … Por último context=internal indica el contexto donde está las instrucciones para dicha extensión. Esto está relacionado con el contexto del archivo extensions.conf que marca el plan de numeración para ese contexto. Por tanto el contexto internal debe existir en el fichero extensions.conf o de lo contrario deberíamos crearlo. Varios extensiones pueden tener el mismo contexto.

Academy Xperts Bolivia

90

EX – TIP. Experto en Telefonía IP – Módulo 1

Opciones avanzadas: En las siguientes columnas tenemos las posibilidades de configuración para los tipos “user” y “peer”. En el caso de “friend” valen las dos tablas ya que un “friend” es a la vez ambos User

Peer

Explicación y opciones

context

context

Indica el contexto asociado en el dialplan para un usuario o peer

permit

permit

Permitir una IP

deny

deny

No permitir una IP

secret

secret

Contraseña para el registro

md5secret

md5secret

Contraseña encriptada con md5

dtmfmode

dtmfmode

El modo en el que se transmiten los tonos. Pueden ser “RFC2833” o “INFO”

canreinvite

canreinvite

Con “no” se fuerza a Asterisk a no permitir que los puntos finales intercambien mensajes RTP directamente.

nat

nat

Indica si el dispositivo está detrás de un NAT con “yes”

callgroup

callgroup

Define un grupo de llamadas

pickupgroup

pickupgroup

Define el grupo de llamadas validas para una aplicacion pickup()

language

language

Define las señales para un pais. Debe estar presente en el archivo indications.conf

allow

allow

permite habilitar un codec. Pueden ponerse varios en un mismo usuario Posibles Valores: “allow=all” ,”allow=alaw”, “allow=ulaw”, “allow=g723.1″ ; allow=”g729” , “allow=ilbc” , “allow=gsm”.

disallow

disallow

permite deshabilitar un codec. Puede tomar los mismos valores que allow

insecure

insecure

Define como manejar las conexiones con peers Tiene los siguientes valores very|yes|no|invite|port Por defecto es “no” que quiere decir que hay que autenticarse siempre.

trustpid

trustpid

Si la cabecera Remote-Party-ID es de confianza. Por defecto “no”

progressinband progressinband Si se deben generar señales en banda siempre. Por defecto never promiscredir

promiscredir

Permite soportar redirecciones 302. Por defecto “no”

callerid

Define el identificador cuando no hay ninguna otra informacion disponible

accountcode

Los usuarios pueden estar asociados con un accountcode . Se usa para facturacion.

amaflags

Se usa para guardar en los CDR y temas de facturación . Puede ser “default”, “omit”, “billing”, o “documentation”

incominglimit

Limite de llamadas simultaneas para un cliente

restrictcid

Se usa para esconder el ID del llamante. Anticuada y en desuso mailbox

Extensión del contestador

username

Si Asterisk actua como cliente SIP este es el nombre de usuario que presenta en el servidor SIP al que llama

fromdomain

Pone el campo From: de los mensajes SIP

regexten fromuser

Pone el nombre de usuario en el from por encima de lo que diga el callerID

Academy Xperts Bolivia

91

EX – TIP. Experto en Telefonía IP – Módulo 1

host

dirección o host donde se encuentra el dispositivo remoto. Puede tomar valores: – Una IP o un host concreto – “dynamic” con lo que valdría cualquier IP pero necesita contraseña – “static” vale cualquier IP pero no es necesario contraseña

mask port

Puerto UDP en el que responderá el Asterisk

qualify

Para determinar cuando el dispositivo puede ser alcanzado

defaultip

IP por defecto del cliente host= cuando es especificado como “dynamic”

rtptimeout

Termina la llamada cuando llega a ese timeout si no ha habido tráfico rtp

rtpholdtimeout

Termina la llamada cuando llega a ese timeout si no ha habido tráfico rtp “on hold”

Ejemplos: [grandstream1] type=friend ; es peer y user a la vez context=micontexto ; nombre del contexto username=grandstream1 ; suele ser el mismo que el titulo de la seccion fromuser=grandstream1 ; sobreescribe el callerid callerid=Jose Dos host=192.168.0.23 ; se tiene una IP privada dentro de una LAN nat=no ; no hay NAT canreinvite=yes ; dtmfmode=info ; puede ser RFC2833 o INFO mailbox=1234@default ; mailbox 1234 en el contexto “default” del fichero voicemail.conf disallow=all ; deshabilitamos todo allow=ulaw ; Permitimos el codec ulaw ; listed with allow= does NOT matter! ;allow=alaw ;allow=g723.1 ; Asterisk solo soporta g723.1 a través ;allow=g729 ; Licencia g729 sól a través [xlite1] ;Se puede activar la supresión de silencio ;Xlite manda paquetes NAT keep-alive, por tanto qualify=yes no es necesario type=friend username=xlite1 callerid=”juan Perez ” host=dynamic ; el softphone xlite puede estar en cualquier IP nat=yes ; X-Lite está detrás de un dispositivo NAT canreinvite=no ; Se suele poner NO si está detrás de un dispositivo que hace NAT disallow=all

Academy Xperts Bolivia

92

EX – TIP. Experto en Telefonía IP – Módulo 1

allow=gsm ; GSM consume menos ancho de banda que alaw o ulaw allow=ulaw allow=alaw [user1_snomsip] type=friend secret=blah ; en este caso es la contraseña para registrarse host=dynamic dtmfmode=inband ; las posibilidades son inband (en banda), rfc2833, o info defaultip=192.168.0.59 ; la IP del dispositivo mailbox=1234; Contestador para mensajes disallow=all allow=ulaw ; dado que se ha elegido en banda (inband) para el dtmf se debe seleccionar alaw o ulaw (G.711) allow=alaw [user2_pingtel] type=friend username=user2_pingtel secret=blah host=dynamic qualify=1000 ; Se considera caido si pasa más de 1 segundo sin contestar callgroup=1,3-4 ; Es miembro de los grupos 1,3 y 4 pickupgroup=1,3-4 ; Se puede hacer un “pickup” para los grupos 1,2 y 4 defaultip=192.168.0.60 ;IP disallow=all allow=ulaw allow=alaw allow=g729 [user3_cisco] type=friend username=user3_cisco secret=blah nat=yes ; El telefono está nateado host=dynamic canreinvite=no ; qualify=200 ; Tiempo de 200 ms para recibir respuesta defaultip=192.168.0.4 disallow=all allow=ulaw allow=alaw allow=g729 [user4_cisco1] type=friendusername=user4_cisco fromuser=pedro ;

Academy Xperts Bolivia

93

EX – TIP. Experto en Telefonía IP – Módulo 1

secret=blah defaultip=192.168.0.4 ; amaflags=default ; Las posibilidades son default, omit, billing o documentation accountcode=pedro ; Para propósitos de tarificación disallow=all allow=ulaw allow=alaw allow=g729 allow=g723.1 Configuración del archivo extensions.conf (DialPlan) El archivo extensions.conf es el más importante del Asterisk y tiene como misión principal definir el dialplan o plan de numeración que seguirá la centralita para cada contexto y por tanto para cada usuario. El archivo extensions.conf se compone de secciones o contextos entre corchetes [] Hay dos contextos especiales que están siempre presentes que son [general] y [globals] Contexto [general] El contexto [general] configura unas pocas opciones generales como son: – static : Indica si se ha de hacer caso a un comando “save dialplan” desde la consola. Por defecto es “yes”. Funciona en conjunto con “writeprotect” – writeprotect : Si writeprotect=no y static=yes se permite ejecutar un comando “save dialplan” desde la consola. El valor por defecto es ” no” . – autofallthrough : Si está activado y una extensión se queda sin cosas que hacer termina la llamada con BUSY, CONGESTION o HANGUP Si no está activada se queda esperando otra extensión. Nunca debería suceder que una extensión se quede sin cosas que hacer como explicaremos posteriormente. – clearglobalvars : Si está activado se liberan las variables globales cuando se recargan las extensiones o se reinicia Asterisk. – priorityjumping : Si tiene valor ‘yes’, la aplicación soporta ‘jumping’ o salto a diferentes prioridades. En desuso En general estas opciones no son muy importantes y se pueden dejar tal y como aparecen por defecto. Contexto [globals] En este contexto se definen las variables globales que se van a poder utilizar en el resto de los contextos. Por ejemplo CONSOLE=Console/dsp ;indica que cuando hagamos referencia a la variable CONSOLE estamos llamando a /Console/dsp Academy Xperts Bolivia

94

EX – TIP. Experto en Telefonía IP – Módulo 1

Las variables suelen ponerse siempre en mayusculas para diferenciarlas posteriormente. Resto de Contextos [] Esto es lo más importente de este fichero. Vamos a indicar ahora como crear un contexto especifico y asignar un plan de numeración. Todas las lineas de un determinado contexto tienen el mismo formato: exten => extension , prioridad, Comando(parametros) La extensión hace referencia al numero marcado La prioridad al orden en que se ejecutan las instrucciones. Primero se ejecuta la de prioridad 1, luego la 2 y sucesivamente El Comando hace referencia a la acción a ejecutar Vamos a ir viendo unos ejemplos para ir aprendiendo los comandos Ejemplo 1: Colgar la linea exten => 333,1,Hangup ; indica que cuando alguien llame al 333 saltará la prioridad 1 y el sistema colgará la llamada Ejemplo 2 : Llamar a el usuario SIP 3000 y que salte el contestador si no contesta exten => 3000,1,Dial(SIP/3000,30,Ttm) ; intenta llamar al usuario 3000 de sip que tiene que estar definido en sip.conf con ese contexto exten => 3000,2,Hangup ; cuando acaba la llamada cuelga exten => 3000,102,Voicemail(3000) ; La prioridad 102 significa que el usuario no estaba conectado y salta el contestador al buzon 3000 exten => 3000,103,Hangup ; se cuelga después de dejar el mensaje En este caso al llamar a la extension 3000 usuamos el comando Dial (destino, tiempo de timeout, opciones) El destino es el usuario 3000 del archivo sip.conf, 30 segundos de timeout. El usuario 3000 deberia existir en sip.conf las opciones hacen referencia a opciones del comando dial: la “T” permite al usuario llamante transferir la llamada pulsando # la “t” permite al usuario llamado transferir la llamada pulsando # la “m” indica que vamos a oir una musica especial mientras esperamos a que el otro conteste: Podeís probar a quitarla. Si el usuario 3000 no está conectado salta a la prioridad +101 (en nuestro caso a la 102=1+101 ya que estabamos en la prioridad 1) y hacemos que salte el contestador para dejar un mensaje.

Academy Xperts Bolivia

95

EX – TIP. Experto en Telefonía IP – Módulo 1

Es importante que por cada rama siempre se cierre el camino y se cuelgue la llamada con un Hangup Ejemplo 3 : Comprobación de latencia y eco exten => 600,1,Playback(demo-echotest) ; Se pone el sonido de que es una demo de eco exten => 600,2,Echo ; Se ejecuta el test de eco exten => 600,3,Playback(demo-echodone) ; Se repite lo que dijimos exten => 600,4,Hangup ; Se cuelga En este caso llamando al 600 nos va a repetir lo mismo que nosotros dijimos. Podremos comprobar la latencia del sistema. Ejemplo 4 : Extensión start exten => s,1,Wait,1 ; Esperamos un segundo exten => s,2,Answer ; respondemos. EL Asterisk coge la llamada exten => s,3,DigitTimeout,5 ; Ponemos Digit Timeout a 5 segundos exten => s,4,ResponseTimeout,10 ; Ponemos Response Timeout a 10 segundos exten => s,5,BackGround(demo-congrats) ; Ejecutamos un archivo de voz exten => s,6,hangup ; Colgamos exten => 1000,1,Goto(micontexto,s,1) ; Al llamar al 1000 vamos a la extensión s con prioridad 1 del contexto “micontexto” En este caso presentamos la extensión start s que es la que coge las llamadas cuando se esta en ese contexto pero no se sabe la extensión. También se puede entrar desde otra extensión como en este caso marcando la extensión 1000. Con Goto podemos ir al contexto, extensión y prioridad que queramos. Ejemplo 5 : LLamar a un proveedor de Voz IP exten => _340.,1,Dial(SIP/${EXTEN:3}@Proveedorsip,90,Tt) exten => _340.,2,hangup ; Colgamos exten => _20.,1,Dial(SIP/${EXTEN:2}@Proveedorsip,90,Tt) exten => _20.,2,hangup ; Colgamos En este caso lo que hacemos es que siempre que marquemos el 340 seguido de cualquier numero (el 340 como perfijo) llamaremos a una extension SIP. Por ejemplo en el primer caso si marcamos al 340600600 llamaremos al 600600 a la dirección IP del “proveedorsip” definido en sip.conf. (EXTEN:3 significa que quitamos los tres primeros numeros) En el segundo caso si marcamos 2060600 también estaremos llamando al mismo numero 600600 del “proveedorsip” (EXTEN:2)

Academy Xperts Bolivia

96

EX – TIP. Experto en Telefonía IP – Módulo 1

En los casos anteriores el . sustituye a cualquier caracter pero podíamos haber utilizado también X – Acepta un numero de 0 al 9 Z – Acepta un numero de 1 al 9 N – Acepta un numero de 2 al 9 [1,5-7] – Acepta el 1, el 5, el 6 o el 7 exten => _20XX,1,Dial(SIP/${EXTEN:2}@Proveedorsip,90,Tt) ; Deberiamos marcar 20 y dos numeros (no valen caracteres) exten => _20ZZ.,1,Dial(SIP/${EXTEN:2}@Proveedorsip,90,Tt) ; Deberiamos marcar 20, dos numeros del 1 al 9 y cualquier cosa exten => _20[1-3]..,1,Dial(SIP/${EXTEN:2}@Proveedorsip,90,Tt) ; Deberiamos marcar 20, un numero del 1 al 3 y cualquier cosa Configuración del archivo voicemail.conf (Contestador automatico) El archivo voicemail.conf sirve para configurar el contestador automatico y gestionar los buzones de los usuarios El archivo extensions.conf se compone también de secciones o contextos entre corchetes [] Hay dos contextos especiales llamados [general] y [zonemessages] que siempre están presentes. Contexto [general] El contexto [general] configura las opciones generales del buzón de voz: Un ejemplo básico podría ser: [general] ; Enviar archivos en las notificaciones de e-mail attach=yes ; Usar el formato wav para los mensajes de voz format=wav ; Limitar el tiempo máximo del mensaje de voz a 180 segundos maxmessage=180 ; Limitar el tiempo minimo del mensaje a 3 segundos minmessage=3 ; Anunciar el numero que llamó antes de repetir el mensaje saycid=yes ; Limitar el numero de intentos de registro a 3 maxlogins=3 ; Define los contextos internos para especificar que vienen de una extensión interna cidinternalcontexts=house_local,house_toll,house_admin

Academy Xperts Bolivia

97

EX – TIP. Experto en Telefonía IP – Módulo 1

Vamos a poner en forma de tabla las posibilidades más destacadas a utilizar de este contexto: Comando

Explicación y opciones

attach

Indica si se envía un archivo en las notificaciones de email. Tiene dos valores “yes” o “no” Por defecto es “no”

delete

Indica que el mensaje de voz será borrado del servidor si es enviado por e-mail

mailcmd

Sirve para fijar la ruta del servidor de e-mail

maxsilence

Indica los segundos de silencio que debe detectar el servidor para cortar la llamada al buzón. Por defecto es 0 que indica que equivale a un tiempo infinito y no hace caso a los silencios.

envelope

Si lo activamos con “yes” indicará el día y la hora en que se recibio el mensaje

externnotify

Sirve para ejecutar un programa externo cuando alguien deja un mensaje

externpass

Sirve para ejecutar un programa externo cuando alguien cambia su contraseña del buzón.

silencetreshold

Funciona si maxsilence=”yes” y sirve para fijar el umbral de silencio

servermail

Indica el origen de los mensajes de notificación de e-mail. Por ejemplo [email protected]

maxmessage

Indica el tiempo máximo de un mensaje

maxmsg

Indica el numero máximo de mensajes en un buzón

minmessage

Sirve para eliminar los mensajes que tienen menos duración que lo indicado por este comando.

format

Indica el formato en que se guardará los mensajes e voz. Hay las siguientes posibilidades: “wav49”, “gsm”, “wav”

maxgreet

Fija el tiempo máximo del mensaje de bienvenida que pueden configurar los usuarios

maxlogins

Numero máximo de intentos de logeo

cdinternalcontexts Distingue si los contextos son contextos internos o externos promiscredir

Permite soportar redirecciones 302. Por defecto “no”

review

Por defecto es “no”. Si lo pusieramos a “yes” el usuario que deja el mensaje podrá revisarlo antes de salvarlo y dejarlo en el buzón.

operator

Permite marcar una extensión cuando ha saltado el buzón de voz

saycid

Si lo ponemos a “yes” anunciar el numero que llamó antes de repetir el mensaje

fromstring

Modifica el from del mensaje de aviso de correo

emailsubject

Modifica el asunto del mensaje de aviso de correo

emailbody

Modifica el cuerpo del mensaje de aviso de correo

nextaftercmd

Reproduce el siguiente mensaje automáticamente cuando se borra el anterior.

Contexto [zonemessages] Este contexto define zonas horarias. La hora para distintos usuarios no es la misma y para poder informarle sobre la hora en que recibió el mensaje es necesario fijar diferentes zonas horarias: Un ejemplo podría ser [zonemessages] madrid=Europe/Paris|’vm-received’ Q ‘digits/at’ R paris=Europe/Paris|’vm-received’ Q ‘digits/at’ R sthlm=Europe/Stockholm|’vm-recieved’ Q ‘digits/at’ R

Academy Xperts Bolivia

98

EX – TIP. Experto en Telefonía IP – Módulo 1

europa=Europe/Berlin|’vm-received’ Q ‘digits/at’ kM italia=Europe/Rome|’vm-received’ Q ‘digit/at’ HMP El formato de las líneas es el siguiente: zona=Pais/Ciudad|Opciones –> El Pais y la ciudad deben ser válidos y son los del archivo /usr/share/zoneinfo de la instalación de Linux Las diferentes Opciones son: Option

Description

‘fichero’ Nombre del fichero de audio a reproducir ${VAR}

Variable de sustitución

A, a

Día de la semana (sábado, domingo, etc…)

B,b,h

Mes (Enero, Febrero, …)

d,e

día del mes numérico (primero, segundo,…)

Y

Año

I or i

Hora, en formato 12 horas

H ,k

Hora, en formato 24 horas

M

Minutos

P,p

AM o PM

Q

“hoy”,”ayer”

R

tiempo 24 horas , incluidos minutos

Resto de Contextos [] En el resto de contextos se definen los buzones de los usuarios. Podemos tener todos los usuarios en un solo contexto por ejemplo [default] o tener más de un contexto. El formato básico es el siguiente: [default] extension => contraseña, nombre de usuario, email de usuario, email de notificación, opciones La extensión hace referencia al número de teléfono llamado.  La contraseña hacer referencia a la contraseña para ese usuario de su buzón de voz. 

El nombre de usuario es el nombre del cliente de la extensión



El email del usuario es el correo al que serán enviados los mensajes



El email de notificación es un email alternativo donde pueden ser enviadas las notificaciones para administración o control



Las opciones sirven para sobreescribir las del contexto [general] o especificar una zona horaria para el usuario. Hay 9 específicas: attach, serveremail, tz, saycid, review, operator, callback, dialout and exitcontext. Son las mismas Academy Xperts Bolivia

99

EX – TIP. Experto en Telefonía IP – Módulo 1

que las contexto [general] salvo tz.La opción tz se usa para sobreescribir la zona por defecto y debe estar presente en el contexto [zonemessages]

Ejemplos: [default] 1234 => 3456,Ejemplo1,[email protected] 4200 => 9855,Pedro Perez,[email protected],[email protected],attach=no|serveremail=info@do minio.com|tz=madrid 4069 =>6522,juan,[email protected],,attach=yes|saycid=yes|dialout=fromvm|callback=from vm|review=yes|operator=yes|envelope=yes 4073 => 1099,javier Perez,[email protected],,delete=1

Academy Xperts Bolivia

100