Vous êtes sur la page 1sur 100

EX – TIP.

Experto en Telefonía IP – Módulo 1 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


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

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


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

FUNCIONES DEL SOFTWARE DE COMUNICACIONES:

- Intercambio fiable de datos entre dos hosts:

1. Empaquetar los datos.


2. Determinar la ruta a seguir.
3. Transmisión de los datos por el medio físico.
4. Ensamblado de los datos entrantes para el mantenimiento de la
secuencia correcta y evitar la pérdida de fragmentos.
5. Comprobar si existen datos repetidos.
6. Notificar al emisor los datos que no se hayan recibido
correctamente.
7. Entregar los datos a la aplicación requerida.
8. 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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

(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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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 post-
mortem, 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


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

 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 CD-
ROM.
 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


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

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


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

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


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

 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


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

$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


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

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


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

\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: mor<tab>direc<tab>larg<tab>jos<tab>
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 <tab> 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


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

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


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

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


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

 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


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

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


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

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


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

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


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

 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


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

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


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

/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


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

/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


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

 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


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

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


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

 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


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

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


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

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


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

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


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

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


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

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


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

Academy Xperts Bolivia


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

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

Academy Xperts Bolivia


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

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


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

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


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

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


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

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


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

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


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

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


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

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-en-
ubuntu.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


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

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


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

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


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

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


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

“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


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

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


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

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


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

 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


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

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


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

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:

Servicio Característica

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


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

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


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

(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


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

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


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

 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


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 ; A-law y u-law, BITRATE(Kbps) ;
64, APLICACIÓN ; Telefonía en general.
NOMBRE ; G.726, COMPRESION ; ADPCM, BITRATE(Kbps) ; 16,24,32 y
40, APLICACIÓN ; DECT telefonía Internacional.
NOMBRE ; GSM 06,10 FR, COMPRESION ; ADPCM, BITRATE(Kbps) ;
13.2, APLICACIÓN ; Codec original de GSM.
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 76

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  Acceso de correo  Troncales
o anexos de voz por la Web Analógicas y
 Múltiples operadores  Sistema de Digitales T1/E1
automáticos con menús multiventas por  Enrutamiento
 Múltiples casillas de correos de teléfono avanzado (IVR)
voz  Integración con  Notificación de
 Integración con teléfonos Outlook Express estatus de llamada
celulares (Exchange)  Aviso de Llamada
(Microsoft)
 Perifoneo con altavoz (Sistema  Autodesvío de
 Captura de
de Parlantes/Amplificador) llamadas
llamadas
 Teléfonos remotos alrededor del  Mensajería
 Diagnóstico del
mundo unificada
Sistema
 Interfaz con el usuario  Filtrado de
 Opciones de usar
(incluyendo reenvios, mensajería llamadas
unificada, grabaciones de los cualquier teléfono
IP  ANI automatización
mensajes redirigidos a su correo y enrutamientos
de voz)  Soporta telefónos
analógicos  Identificación DNIS
 Grupos de Extensiones
 Llamadas en  Mayor movilidad
 Autoinstalación de extensiones
espera  Personalización del
Proveedor de VoIP

Academy Xperts Bolivia


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

 Rango de Numeración de  Llamada  Integración a los


Extensiones Flexible monitorizadas softwares
 Identificador de llamadas  Marcación por administrativos de
Nombre del las empresas
 DID ingreso directo para
Directorio  Fax a correo
marcación interna
 Informes electrónico
 Enrutamiento de llamadas
 Fax de soporte PDF
 Integración con el
 Grabación de llamadas
cliente (CRM)  ACD característica
 Grabación en vivo de distribución de
 Servidores
 Devolución de llamadas vinculados llamadas
 Correos de voz enviados a sus remotos  Teléfonos virtuales
correos electrónicos  Consola de en su PC
operadora (Softphones)
 Notificacion por mensajes SMS
de sus correos de voz  Transferencia de
 Salas de
conferencias llamadas
virtuales  Llamada de
 Números de conferencia
marcación rápida  Monitorización en
(Memorias) vivo
 Canal de apoyo
 Múltiples Músicas
en espera

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


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

¿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


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

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


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

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


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

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_<nombre>.so

Academy Xperts Bolivia


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

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_<nombre>.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_<nombre>.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_<nombre>.so

Academy Xperts Bolivia


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

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_<nombre>.so y para
los de formatos format_<nombre>.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


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

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


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

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


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

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


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

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


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

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


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

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,pedro@midominio.com
20100 => 4321,Juan,juan@midominio.com
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


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

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


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

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
El modo en el que se transmiten los tonos. Pueden ser “RFC2833” o
dtmfmode dtmfmode
“INFO”
Con “no” se fuerza a Asterisk a no permitir que los puntos finales
canreinvite canreinvite
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()
Define las señales para un pais. Debe estar presente en el archivo
language language
indications.conf
permite habilitar un codec. Pueden ponerse varios en un mismo
usuario Posibles Valores:
allow allow
“allow=all” ,”allow=alaw”, “allow=ulaw”, “allow=g723.1″ ; allow=”g729” ,
“allow=ilbc” , “allow=gsm”.
permite deshabilitar un codec. Puede tomar los mismos valores que
disallow disallow
allow
Define como manejar las conexiones con peers Tiene los siguientes
insecure insecure 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”
Define el identificador cuando no hay ninguna otra informacion
callerid
disponible
Los usuarios pueden estar asociados con un accountcode . Se usa
accountcode
para facturacion.
Se usa para guardar en los CDR y temas de facturación . Puede ser
amaflags
“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
Si Asterisk actua como cliente SIP este es el nombre de usuario que
username
presenta en el servidor SIP al que llama
fromdomain Pone el campo From: de los mensajes SIP
regexten
Pone el nombre de usuario en el from por encima de lo que diga el
fromuser
callerID

Academy Xperts Bolivia


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

dirección o host donde se encuentra el dispositivo remoto. Puede


tomar valores:
host – 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
IP por defecto del cliente host= cuando es especificado como
defaultip
“dynamic”
Termina la llamada cuando llega a ese timeout si no ha habido tráfico
rtptimeout
rtp
Termina la llamada cuando llega a ese timeout si no ha habido tráfico
rtpholdtimeout
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<1234>
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 ” <5678>
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


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

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


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

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


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

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


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

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


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

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


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

Vamos a poner en forma de tabla las posibilidades más destacadas a utilizar de


este contexto:
Comando Explicación y opciones
Indica si se envía un archivo en las notificaciones de email. Tiene dos valores “yes” o
attach
“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
Indica los segundos de silencio que debe detectar el servidor para cortar la llamada al
maxsilence 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
Sirve para ejecutar un programa externo cuando alguien cambia su contraseña del
externpass
buzón.
silencetreshold Funciona si maxsilence=”yes” y sirve para fijar el umbral de silencio
Indica el origen de los mensajes de notificación de e-mail. Por ejemplo
servermail
buzon@midominio.com
maxmessage Indica el tiempo máximo de un mensaje
maxmsg Indica el numero máximo de mensajes en un buzón
Sirve para eliminar los mensajes que tienen menos duración que lo indicado por este
minmessage
comando.
Indica el formato en que se guardará los mensajes e voz. Hay las siguientes
format
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”
Por defecto es “no”. Si lo pusieramos a “yes” el usuario que deja el mensaje podrá
review
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


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

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


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

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,mail@dominio.com
4200 => 9855,Pedro
Perez,pedro@dominio.com,admin@dominio.com,attach=no|serveremail=info@do
minio.com|tz=madrid
4069
=>6522,juan,j@dominio.net,,attach=yes|saycid=yes|dialout=fromvm|callback=from
vm|review=yes|operator=yes|envelope=yes
4073 => 1099,javier Perez,perez@dominio.com,,delete=1

Academy Xperts Bolivia