Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTORES
PABLO CARMONA AMIGO – RENATO ULLOA SEPÚLVEDA
2003
Agradecimientos
Pablo
Renato
Resumen
Este trabajo presenta una revisión completa a los cambios producidos en los servicios
habituales de Internet, entre ellos DNS, HTTP, SMTP, FTP, IMAP y POP3 por la im-
plementación del nuevo Protocolo Internet versión 6 (IPv6), y la implementación de estos
servicios en el servidor ubicado en el Departamento de Ingenierı́a Eléctrica, de la Universidad
de La Frontera.
Para cumplir con esto, se ha probado hardware y software de red, encontrando que el
hardware no necesita actualizarse y sólo las aplicaciones de red deben soportar el nuevo
protocolo. Esto incluye, sistemas operativos de ruteadores, software de servidor y de clientes.
El proceso comienza con la activación del protocolo en Linux, creación de túneles para
encapsular IPv6 y tener conectividad al 6bone. Posteriormente, se establecen todos y cada uno
de los servicios antes mencionados, estableciendo una configuración básica y documentando
todas las tareas que se llevaron a cabo. Una vez concluido el proceso, se está en condiciones de
seguir implementando servicios avanzados como LDAP, NFS, DHCPv6, Multicast con soporte
IPv6, de tal forma de contar con todas las aplicaciones tradicionales cuando la Universidad
de La Frontera posea soporte nativo para IPv6 en su red.
ii
Índice general
Introducción 1
I Aspectos Generales 4
iii
Índice general iv
5. IMAP y POP3 51
5.1. IMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2. POP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3. Servidor dovecot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3.1. Instalación de dovecot . . . . . . . . . . . . . . . . . . . . . . . . . . 54
5.3.2. Alcances en la configuración de dovecot . . . . . . . . . . . . . . . . 55
5.3.3. Configuración de dovecot . . . . . . . . . . . . . . . . . . . . . . . . 57
5.4. Prueba de servidor IMAP y POP3 . . . . . . . . . . . . . . . . . . . . . . . 58
Índice general v
Conclusiones 83
Referencias 87
Anexos 90
vii
Índice de figuras
viii
Convenciones Tipográficas del Documento
A lo largo de este trabajo aparecen distintas tipografı́as, según sea el contexto de la(s)
palabra(s). El sentido que se ha de dar a las palabras se rige por las siguientes reglas:
comando Los comandos en Linux u otro S.O. se presentan de esta forma. Esto
significa que se debe escribir esta palabra o frase en una consola de
texto y presionar Enter para invocar dicho comando.
Ejemplo: Para leer el contenido de archivo1 use less archivo1.
$ ls -F
backups* Desktop/ Docs/ DVIs/
Latex/ PDFs/ Tesis/ UFROice.sty
ix
Convenciones Tipográficas del Documento x
$
#
[root@ipv6 root]#
yovi@nativo:/usr/share/doc$
login as:
Como el lector se habrá dado cuenta, # es el prompt para root y $
es el prompt de usuario.
entrada de usuario Se trata del texto que el usuario debe escribir en la lı́nea de coman-
dos o en una caja de texto de una GUI.
Ejemplo: Para iniciar una instalación en modo texto necesita escribir
el comando text cuando aparezca el prompt boot:
Todas las redes de computadores se rigen bajo ciertos protocolos, entre los más utilizados
está el Protocolo Internet (IP: Internet Protocol ). Sus orı́genes, se remontan a las primeras
redes de computadoras, por lo tanto, sus caracterı́sticas son perfectas para una red pequeña
o mediana. Con el surgir de lo que hoy se conoce como Internet, el actual protocolo IPv4 ha
mostrado sus debilidades, entre ellas el agotamiento de las direcciones posibles. Por tanto, es
necesario una renovación total, aprovechando de solventar todas las falencias que presenta.
Una alternativa propuesta ante el IETF1 , el llamado IPng2 , que pasó a llamarse IPv63 ,
es la que hoy en dı́a se está probando en todos los rincones del mundo, para en un futuro
cercano reemplazar al actual IPv4.
La nueva versión del Protocolo Internet incluye muchas caracterı́sticas nuevas y soluciones
de problemas anteriores, e implica muchos cambios importantes en las configuraciones de
ruteadores, servidores, clientes y en general, aplicaciones de red. Dentro de estos cambios
destaca la nueva numeración IP, que de los 32 bits usados en IPv4, se pasan a usar 128 bits
en IPv6, que permite aumentar millones de veces el número de clientes. Además del cambio en
el número IP se agregan otras caracterı́sticas como encriptación de datos, autoconfiguración,
calidad de servicio y enrutamiento jerárquico.
1
Grupo de Trabajo de Ingenierı́a de Internet, del inglés Internet Engineering Task Force. Actual desarro-
llador del protocolo IP.
2
Protocolo Internet de nueva generación, del inglés Internet Protocol next generation.
3
Protocolo Internet versión 6.
1
Introducción 2
Ahora bien, estos cambios implican que todo el software que interactúa directamente con
el protocolo debe ser modificado para funcionar en IPv6. Entre los afectados se encuentran
los software que proporcionan servicios de red, es decir, programas que se ejecutan en un
equipo y que permiten que terceros puedan hacer uso de sus capacidades a través de una red.
Entre los servicios más ampliamente usados se encuentran DNS4 , SMTP5 , POP6 , IMAP7 ,
HTTP8 y FTP9 , entre otros. Estos son proporcionados por programas especı́ficos con insta-
laciones y configuraciones especiales.
Por esto, en este trabajo se presenta una revisión al software que presta los servicios ha-
bituales. Para ello se utiliza el Sistema Operativo GNU/Linux, sobre el cual se instalan las
últimas versiones de los programas de servidor, se prueban en la red IPv6 que posee la Univer-
sidad de La Frontera. Se documenta todo el proceso de configuración y pruebas, obteniendo
documentación clara que permita implementar este tipo de servicios básicos de manera rápi-
da, dando paso a estudios e implementaciones posteriores de servicios más complejos como
Multicast, NFS, LDAP entre otros.
Este Trabajo de Tı́tulo se organiza como sigue. En el capı́tulo 1 se presenta una visión
general del nuevo protocolo IP, caracterı́sticas y cómo conseguir implementarlo en GNU/Li-
nux. Luego, en el capı́tulo 2 se presenta el estado actual de la Universidad de La Frontera
en el marco de la investigación y desarrollo, con IPv6, que incluye la red existente. Poste-
riormente, en el capı́tulo 3 se explica el funcionamiento general del Servicio de Nombres,
ası́ como también se muestra una detallada configuración de este servicio con soporte IPv6
en GNU/Linux. Esto es la base para seguir con los demás servicios; es ası́ como en capı́tulo 4
se aborda el sistema de transferencia de correo electrónico en IPv6, mientras que el capı́tulo
5 tiene que ver con los sistemas utilizados para acceder al correo electrónico en forma remo-
ta, analizándose los dos protocolos más utilizados (IMAP y POP3), y todo esto soportando
4
Domain Name Service.
5
Simple Mail Transfer Protocol
6
Post Office Protocol.
7
Internet Message Access Protocol.
8
HyperText Transfer Protocol.
9
File Transfer Protocol.
Introducción 3
Finalmente cabe señalar que se adjunta un CD con todos los archivos de configuración,
tal cual se están usando en el servidor IPv6, junto con documentación, software y una copia
de este Trabajo de Tı́tulo en formato PDF.
Parte I
Aspectos Generales
Capı́tulo 1
En el presente capı́tulo se hará una revisión al Protocolo Internet versión 6 (IPv6), este
nuevo protocolo que viene a maravillarnos y a solucionar todos nuestros problemas en lo que
a redes IP se refiere, al menos es lo que los más optimistas dicen. Sin embargo, se pretende
plantear al lector los conceptos más importantes y/o más notorios respecto del ya anciano
IPv4 al que estamos tan acostumbrados.
El mundo occidental ya está totalmente conectado a Intenet, y una explosión del uso de
Intenet en Asia y los paı́ses en vı́as de desarrollo está aumentando las cifras de las direcciones
de red ocupadas.
Miles de redes usan NAT1 como solución inmediata para extender el número de conexiones
existentes. NAT permite a un ruteador, muro de fuego o compuerta casera conectada a
1
Traducción de Direcciones de Red, del inglés Network Address Translation.
5
Capı́tulo 1. Protocolo Internet versión 6 6
Internet compartir una dirección IP global con varios dispositivos internos, cada uno de los
cuales tiene una dirección privada2 .
Por desgracia, NAT y otra tecnologı́a llamada DHCP3 , que distribuye en forma dinámica
un pequeño número de direcciones internas, no ofrecen la que se supone es una caracterı́stica
clave de Internet: Una red de nodos siempre activos que son fáciles de alcanzar por otros
nodos. NAT complica las aplicaciones par a par (peer-to-peer ) como VoIP4 , video conferencia,
juegos y redes privadas virtuales, convirtiéndolas en soluciones cliente/servidor que necesitan
arreglos que bajan el desempeño, como los proxies de aplicaciones. Y aunque el NAT funciona
muy bien para algunos, muchos paı́ses se ven obligados a usar varias capas de NAT, debido
a la gran cantidad de direcciones distribuidas.
Factores adicionales provocan que sea evidente la edad de IPv4, la versión actual de
IP. Imagine que puede mantener su conexión entre edificios, ciudades e incluso paı́ses. Una
tecnologı́a llamada Mobile IP promete esta habilidad, pero no funciona con IPv4, porque cada
paquete de datos debe realizar varios saltos que toman tiempo a través de la red base antes
de enviarse. Peor aún, la seguridad de Internet con IPv4 es una confusa red de agregados y
estándares competidores. Un método mucho más eficiente y seguro es integrar una seguridad
efectiva en el estándar IP.
La solución a todos estos problemas quizá sea una actualización mayor del protocolo IP,
llamado IPv6. También conocido como IPng (next generation), IPv6 fue propuesto ante la
IETF (Internet Engineering Task Force) en 1994 y una versión de prueba se aprobó en 1998.
Otras partes de las especificaciones centrales alcanzaron el status de prueba a fines de 2001.
Durante los últimos cinco años, IPv6 se ha probado en gran variedad de redes en más de
40 paı́ses. Las direcciones IPv6 ya se han comenzado a ofrecer a los consumidores, pero se
espera que la transición completa tarde diez años o más.
2
Las direcciones destinadas a esto son: 192.168.0.0/16, 10.0.0.0/8 y 172.16.0.0/12.
3
Protocolo de Configuración Dinámica de Host, del inglés, Dynamic Host Configuration Protocol.
4
Voz sobre IP, del Inglés, Voice over IP.
Capı́tulo 1. Protocolo Internet versión 6 7
32 bits a 128 bits, que aumenta la cantidad de direcciones posibles de 4, 3 × 109 a más de
3, 4 × 1038 . Y esto no hace que el procesamiento de paquetes IP sea más complejo; IPv6
simplifica el formato del encabezado de dirección, permitiendo compresión de encabezados y
extensiones opcionales. IPv6 también incluye caracterı́sticas para establecer prioridades entre
el contenido, que pueden mejorar el desempeño en comparación con IPv4. Es comprensible
que haya escepticismo en cuanto a IPv6, ya que la actualización requiere de cambios en el
hardware y software de red. Pero, IPv6 está diseñado para hacer que la transición sea un
proceso gradual.
Aprovechando que se hacı́a vital un cambio, se debı́a aprovechar la oportunidad para dar
solución a muchas otras limitaciones de IPv4, tratando con esto de establecer una solución
definitiva a las necesidades presentes y sin dejar de lado futuras aplicaciones y requerimientos,
a pesar de lo incierto del tema.
Entre las nuevas caracterı́sticas de IPv6, las más notorias e importantes son, entre otras:
aumento del espacio de direcciones, autoconfiguración, seguridad, calidad de servicio (QoS5 )
y tipos de direcciones.
5
Del inglés, Quality of Service.
Capı́tulo 1. Protocolo Internet versión 6 8
Ahora bien, en IPv6 se tienen direcciones de 128 bits. Para agrupar estos 128 bits, se hacen
8 grupos de 16 bits y se separan por dos puntos (:) y cada grupo de 16 bits se representa como
4 digitos hexadecimales7 para lograr que las direcciones sean más comprensibles y recordables.
Entonces, de esta estructura se pueden obtener 3,4 × 1038 direcciones, aunque no todas son
utilizables, puesto que al igual que IPv4, existen direcciones reservadas. A continuación un
ejemplo de lo dicho anteriormente. Se dijeron 128 bits para una dirección, es decir, algo como:
0011111111111110:1000000001110000:0001000000100110:0000000000000001
:0000000000000000:0000000000000000:0000000000000000:0000000000000001
3ffe:8070:1026:0001:0000:0000:0000:0001
Sin embargo, esto se puede acortar aún más. Para ello existe la llamada compresión de
ceros[7], que plantea:
Se pueden eliminar secuencias contiguas de ceros, dejando sólo los doble dos puntos
(::). Esto se puede hacer solamente una vez en toda la dirección y teniendo siempre
cuidado de tomar bloques completos de 16 bits.
6
Aunque existen muchas reservadas.
7
Un número hexadecimal equivale a 4 dı́gitos binarios, dado que va desde 0 (0000) hasta F (1111), osea:
0, 1, . . . 9, A, B, C, D, E, F .
Capı́tulo 1. Protocolo Internet versión 6 9
Como se acaba de ver, existe una complejidad en este tipo de direcciones, por lo que
resulta vital el uso del servicio DNS8 en IPv6.
Dirección : 146.83.206.114
Máscara : 255.255.255.0
La máscara en ambos casos indica que los primeros 24 bits pertenecen a la red, en tanto
que los últimos 8 están disponibles para los equipos de esa red.
8
Servicio de Nombres de Dominio, del inglés Domain Name Service.
Capı́tulo 1. Protocolo Internet versión 6 10
la red. Como ejemplo de esto: 3ffe:8070:1026:1::1/64, indica que los primeros 64 bits
(3ffe:8070:1026:1) pertenecen a la red y el resto está disponible para los equipos de la
misma.
1.2.2. Autoconfiguración
Existen dos tipos de autoconfiguración y una de ellas a la vez se subdivide en dos más.
Detalles en [20].
1. Usando la dirección MAC9 . Con esto se logra una dirección IPv6 que permita descubrir
vecinos, y establecer la comunicación entre estaciones miembros de la misma red. Con
esto se establece una dirección de tipo Local10 . Es del tipo fe80::/64.
Sin control de estado Esto se refiere al uso de un router que hace un anuncio11 de
sufijo de red, de hasta 64 bits, de tal forma que cuando una nueva estación aparece,
recibe el anuncio el router y usa este sufijo, en conjunto con su dirección MAC,
para establecer una dirección IPv6.
Con control de estado En este caso se hace uso de DHCPv6, que realiza la misma
labor que en IPv4. Este sistema, da la posbilidad de un control absolutamente
estricto en cuanto a que cada equipo debe obtener cada vez que se integre a la
9
La MAC es aquel número único que identifica a una interfaz de red ethernet, por ejemplo:
00:04:75:81:26:41.
10
Los tipos de direcciones son explicados en la sección 1.3, pág. 13.
11
Llamado Anuncio de Router o Router Advertisement.
Capı́tulo 1. Protocolo Internet versión 6 11
Debe aclararse que no pueden existir dos interfaces de red con la misma dirección
MAC dentro de una misma red, dado que es finalmente por la dirección MAC que
se produce la identificación de hosts. De todos modos es altamente improbable que
esto suceda.
1.2.3. Seguridad
Este fue uno de los principales requerimientos a la hora de plantear la nueva versión del
protocolo, beneficiando a las aplicaciones en cuanto a autenticación y encriptación de datos
en forma transparente. En IPv4 no se tenı́a autenticación, menos aún encriptación, por lo
que se debı́a recurrir a software de terceros para cumplir con esto. El estándar más usado fue
IPsec, que es de hecho el que se ha implementado a nivel de protocolo en IPv6.
12
Esto puede controlarse mediante la MAC de la interfaz de red.
Capı́tulo 1. Protocolo Internet versión 6 12
Si bien, en IPv4 existı́an algunos bit en la cabecera del paquete para el control del flujo,
llamado Tipo de Servicio (ToS13 ), en IPv6 se dispone de campos más amplios para definir
prioridad y flujo de cada paquete que se transporta. Estos campos son leı́dos por los routers,
y de acuerdo a ello se le da un trato especial al paquete. Por ejemplo, si se tiene una trans-
misión de video o audio, correo electrónico y alguien navegando en Internet, resulta obvio
que la prioridad la tiene el video o audio, y en último lugar un correo electrónico que no
hará diferencia si llega segundos o algunos minutos más tarde.
En IPv6 se establece un ruteo jerárquico y sin las clases existentes anteriormente. Ası́ se
logra que las tablas de ruta permanezcan manejables, evitando lo que sucedı́a en IPv4, donde
se tenı́an inmensas tablas de ruta, manejadas por mainframes. Al disminuir las tablas de ruta
se logra una mayor eficiencia en las comunicaciones.
Los protcolos de ruteo más utilizados son: BGP4+14 y OSPFv615 , además de la existencia
de RIPng16 o RIPv6 y EIGRPv617 . De éstos el más utilizado es BGP4+, dado que optimiza
los recursos al preocuparse sólo de sus vecinos, evitando que crezcan las tablas de ruta.
13
Del inglés Type of Service.
14
Border Gateway Protocol.
15
Open Short Path First.
16
Routing Information Protocol.
17
Enhanced Interior Gateway Routing Protocol.
Capı́tulo 1. Protocolo Internet versión 6 13
Otro aspecto que ha cambiado también desde IPv4 a IPv6, es el llamado ámbito (scope) de
direcciones, es decir, existen direcciones de enlace, privadas, globales. Además han cambiado
levemente lo utilizado anteriormente como unicast, multicast y broadcast, dando lugar a
unicast, anycast y multicast. Ver detalles en [23].
Link Local Las direcciones de Enlace Local sólo tienen ámbito de acción a
escala local, se usan para direccionar un solo enlace, para utilizarlo
por ejemplo en autoconfiguración de direcciones, descubrimiento de
vecinos o ante la ausencia de un router.
Site Local Direcciones de Sitio Local se usan en redes que no tienen una co-
nexión a Internet.
Global Este tipo de direcciones tiene un prefijo identificador de grupo, osea
son direcciones válidas que se usan para estar presente en Internet.
Unicast Direcciones que identifican a una única interfaz. Una y sólo una
interfaz de red puede poseer una dirección determinada.
Anycast Identifica a un conjunto de interfaces de red. Se envı́a un paquete a
una interfaz cualquiera (y sólo a una) que forma parte del conjunto
de direcciones. No existe en IPv4.
Multicast Identifica a un conjunto de interfaces de red, de tal modo que un
paquete se envı́a a todas y cada una de las interfaces.
Capı́tulo 1. Protocolo Internet versión 6 14
Hasta ahora se han visto a grandes rasgos las caracterı́stcas del Protocolo Internet versión
6. Pero, ¿cómo comenzar a utilizar IPv6?.
Antes que todo, se debe contar con un rango de direcciones IPv6. En este minuto, es
sencillo conseguir desde la Universidad Nacional Autónoma de México, la Universidad Austral
de Chile o directamente desde el 6bone18 .
18
Más detalles en la sección 2.1.
Capı́tulo 1. Protocolo Internet versión 6 15
Soporte Nativo Esto se refiere a que los dispositivos de red, como routers, switches, ga-
teways, posean soporte de IPv6. Con esto sólo basta configurar la red con direcciones
IPv6, tal como se harı́a con las direcciones IPv4. Posteriormente se sigue usando la red
sin notar ninguna diferencia, salvo las propias de las aplicaciones.
Necesidad de Túnel Esto se aplica cuando no existe un soporte del protocolo en la red,
haciéndose necesario usar un equipo como extremo de un túnel que comunica nuestra
“isla” con nuestro proveedor de direcciones y eventualmente con otras islas con las que
se quisiera contactar directamente. Este método encapsula el tráfico IPv6 en paquetes
IPv4 que deben ser traducidos en ambos extremos. De esta forma se logra una red
completa con soporte IPv6, pero que debe usar ese equipo como router para poder salir
al mundo IPv6.
Lamentablemente es el método usado en la universidad19 , haciendo que el desempeño
sea bastante malo, impidiendo probar por ejemplo QoS.
Por tanto, sólo falta establecer la configuración de IPv6 en un equipo GNU/Linux, para
ello dirijirse al Anexo A.
Particularmente si se necesita crear un túnel con algún proveedor, ver Anexo B. Además,
se recomienda revisar [15], [1], [8], [2]. Aquı́ se explican los conceptos y pasos necesarios para
establecer túneles y proceder con el enrutamiento necesario para manejar el tráfico entre las
redes IPv6, ası́ como también conceptos generales del manejo de redes en GNU/Linux.
Hasta ahora sólo se han visto aspectos generales en cuanto a diferencias con IPv4, carac-
terı́sticas propias, pero en lo que respecta a aplicaciones hay que hacer algunas acotaciones.
19
Al momento de escribir este trabajo, 1 de enero de 2004.
Capı́tulo 1. Protocolo Internet versión 6 16
En IPv4 En IPv6
http://ipv6.ufro.cl http://[ipv6.ufro.cl]
ftp://146.83.206.114/pub ftp://[3ffe:8070:1026:1::1]/pub
La programación de redes se hace con Sockets, que es un medio que permite a los pro-
gramas conectarse a la red y poder enviar y recibir mensajes. La API (interfaz de programa
de aplicación) de Sockets ofrece estructuras de datos y funciones que permiten abstraerse
de la red, puesto que en el envı́o y recepción de la información no hay que preocuparse de
cabeceras del paquete ni de otras cosas relacionadas con la comunicación. Esto permite al
programador preocuparse más del tratamiento de los datos que de la comunicación en sı́.
El importante cambio introducido por IPv6 en el tamaño de las direcciones, hace que los
programas hechos para operar con la versión actual del protocolo IP no puedan funcionar
con la versión 6. Sin embargo, la conversión de los programas a IPv6 no es muy complicada,
por lo ya descrito anteriormente. Los cambios radican principalmente en las entructuras de
datos utilizadas, las que se tuvieron que adaptar a las nuevas exigencias del protocolo.
Por esto, poco a poco las aplicaciones han dado soporte al nuevo protocolo, pero en
realidad, se da soporte a ambos, lo que permite continuar con IPv4 y hacer pruebas con estas
aplicaciones. En general, ya existe soporte para una amplia mayorı́a de software de red, pero
sin embargo, existen algunas diferencias a la hora de su uso. Por ejemplo en los navegadores
que soportan el protocolo se deben usar cochetes ( [ y ] ) encerrando la dirección IPv6, como
se muestar en el cuadro 1.4.
La lista de aplicaciones y estado en que se encuentran respecto del soporte IPv6, se puede
ver en: http://www.deepspace6.net/docs/ipv6_status_page_apps.html.
Capı́tulo 2
El 6bone es una red IPv6 concebida principalmente para pruebas y es la expansión lógica
del proyecto IPng1 del IETF2 , que creó el protocolo IPv6 con la finalidad de reemplazar los
actuales protocolos de la capa de red de Internet, conocidos también como IPv4.
1
Del inglés, Internet Protocol Next Generation.
2
Del inglés, Internet Engineer Task Force.
17
Capı́tulo 2. Visión General de la Red IPv6 18
El 6bone partió como una red virtual (usando túneles y encapsulación IPv6 sobre IPv4)
operando sobre la Internet basada en IPv4 para soportar el transporte IPv6, y lentamente
migrar a enlaces nativos IPv6.
El foco inicial del 6bone fueron las pruebas de los estándares y las implementaciones,
mientras que el objetivo actual está más relacionado con las pruebas de transición y proce-
dimientos operacionales.
La subdivisión actual de la red asignada delega una red diferente para cada edificio o
departamento. Según este esquema, la red usada en el Departamento de Ingenierı́a Eléctrica
es la 3ffe:8070:1026:1::/64 y el Centro de Modelación y Computación Cientı́fica tiene la red
3ffe:8070:1026:2::/64.
Capı́tulo 2. Visión General de la Red IPv6 19
ipv6.ufro.cl: 3ffe:8070:1026:1::1
pitcher.ipv6.ufro.cl: 3ffe:8070:1026:1::2
torobayo.ipv6.ufro.cl: 3ffe:8070:1026:1::5
nativo.ipv6.ufro.cl: 3ffe:8070:1026:1::7
otro cliente Windows 2000 y se usa para probar el funcionamiento de IPv6 en la plataforma
Windows. El equipo nativo.ipv6.ufro.cl es un computador que pretende tener sólo IPv6, con
el fin de diagnosticar falencias y planificar la implantación de IPv6 en forma nativa.
La habilitación del protocolo IPv6 en equipos con Windows 2000 se presenta en el anexo
C.
Dentro de este centro existe solamente un equipo configurado con soporte IPv6 y es el
que se usa como router. Su nombre es cmcc.ipv6.ufro.cl (3ffe:8070:1026:2::1) y posee una
única conexion IPv6 vı́a túnel con el router del Departamento de Ingenierı́a Eléctrica y es a
través de éste que puede comunicarse con otros equipos IPv6 conectados al 6bone.
El cambio hacia el nuevo protocolo implica un cambio profundo en las API’s usadas para
programar software de red. Esto no implica que todos los programas tengan que ser reescritos
completamente, sino que ciertas partes del programa, referentes a las conexiones de red vı́a
sockets, tienen que cambiar. Es por esto que probablemente la forma de configurarlos va a
cambiar también. Asimismo, es necesario conocer los nuevos servicios que serán necesarios
para que IPv6 funcione, esto incluye software de ruteo, asignación de IP’s, etc.
La isla descrita en las secciones anteriores funciona perfectamente y como cuenta con una
conexión al 6Bone, los clientes pueden acceder vı́a IPv6 a diversos servicios y documentación
disponible. Por esto es que ahora se requiere instalar servicios para que sean accesibles desde
todo el mundo y se pueda probar su desempeño en IPv6. Por lo tanto, en los siguientes capı́tu-
los se cubrirán aspectos del funcionamiento de los protocolos, detalles en las configuraciones
y pruebas de su desempeño en IPv6.
Parte II
En este capı́tulo se explica la configuración del Servicio de Nombres de Dominio DNS (de
sus siglas en inglés Domain Name Service). Su uso es obligado cuando se usa IPv6 debido
a que las nuevas direcciones son más difı́ciles de recordar, por lo que haremos una revisión
completa del sistema y su soporte de IPv6.
El sistema de nombres de dominio es una gran base de datos distribuida, debido a que los
23
Capı́tulo 3. Servicio de Nombres de Dominio 24
Un dominio completo puede ser administrado por un solo servidor DNS, pero si la cantidad
1
Siglas en inglés de Fully Qualified Domain Name.
Capı́tulo 3. Servicio de Nombres de Dominio 25
Dominio Descripción
.edu Instituciones educacionales como universidades
(principalmente en EE.UU.).
.com Organiaciones comerciales y compañı́as.
.org Organizaciones no comerciales.
.net Puertas de enlace y otros hosts administrativos
en una red.
.mil Instituciones militares de EE.UU.
.gov Instituciones del gobierno de EE.UU.
.cl Dominio de primer nivel de Chile.
En el cuadro 3.1 se ven dominios principalmente de EE.UU., aunque nada impide que
alguna organización de otro paı́s obtenga un dominio .org, .net o .com. El resto de los paı́ses
usa generalmente un dominio de primer nivel compuesto por dos letras del nombre del paı́s, lo
que se conoce como código de paı́s y que se encuentran definidos según el estándar ISO-3166.
Por ejemplo, Chile posee el .cl, Argentina el .ar, México el.mx, etc.
Al parecer este sistema de resolución genera alto tráfico de red, pero en realidad no es
tanta información la que se transmite e incluso se puede reducir, debido a que los servidores
DNS generan un registro caché en memoria con todas las consultas hechas. Este registro
permite responder consultas rápidamente y sin necesidad de preguntar en otros servidores
DNS. Pero este registro no almacena indefinidamente los datos ya que la información puede
caducar. Es por esto que se realizan limpiezas cada cierto tiempo, dado por el TTL2 o Tiempo
de Vida, que lo fijan los administradores del servidor DNS.
2
Del inglés Time to Live.
Capı́tulo 3. Servicio de Nombres de Dominio 27
Tipo Descripción
A asocia direcciones IP con nombres. Para cada máquina puede
existir un solo registro A, que es el que se considera como
el nombre oficial o canónico.
NS indica el nombre de servidores DNS maestros de zonas
subordinadas.
CNAME asocia un alias con su nombre canónico (que se indica
con un registro A).
PTR asocia nombres del dominio in-addr.arpa con sus
nombres normales. Se usa para obtener el nombre canónico
a partir de una dirección IP.
MX indica los servidores de correo para el dominio.
Debido a que el registro A sólo soporta direcciones IPv4, fue necesario agregar nuevos
registros para soportar las direcciones de 128 bits de IPv6. Preliminarmente se creó el registro
AAAA de caracterı́sticas similares al registro A, pero posteriormente fue creado el registro
A6 que ofrece mejores caracterı́sticas, como registros IPv6 encadenados [4]. También se creó el
registro DNAME para permitir la delegación de direcciones IPv6 reversas.
Capı́tulo 3. Servicio de Nombres de Dominio 28
Luego de haber revisado las principales caracterı́sticas del Servicio de Nombres de Dominio
vamos a implementar un servidor para administrar la zona ipv6.ufro.cl, tanto en IPv4 como
en IPv6.
Como software usaremos BIND 9, que es la versión que viene con soporte IPv6 ya incor-
porado.
El software BIND (Berkeley Internet Name Domain) es una implementación de los proto-
colos del sistema DNS y provee una implementación redistribuible abiertamente de la mayorı́a
de los componentes de Sistema de Nombres de Dominio, incluyendo:
El servidor DNS BIND es usado en la gran mayorı́a de las máquinas usadas como servido-
res de nombres de dominio en Internet, porque provee una arquitectura estable y robusta en
la cual cualquier organización puede confiar su estructura de dominios DNS. La biblioteca de
resolución incluida en la distribución BIND provee las APIs estándar para la traducción entre
nombres de dominio y direcciones Internet que son requeridas por aplicaciones que necesitan
servicio de nombres.
Etiquetas bitstring.
acl secundarios {
146.83.205.1/32;
};
options {
directory "/var/named";
allow−recursion { permitidos; };
allow−query { any; };
listen−on−v6 { any; };
};
zone "ipv6.ufro.cl" {
type master;
file "ipv6.ufro.cl.zone";
allow−transfer { secundarios; };
};
zone "206.83.146.in−addr.arpa" {
type master;
file "146.83.206.zone";
allow−transfer { secundarios; };
};
Capı́tulo 3. Servicio de Nombres de Dominio 30
zone "\[x3ffe80701026/48].ip6.arpa" {
type master;
file "3ffe.8070.1026.zone";
allow−transfer { secundarios; };
};
zone "6.2.0.1.0.7.0.8.e.f.f.3.ip6.int" {
type master;
file "3.f.f.e.8.0.7.0.1.0.2.6.zone";
allow−transfer { secundarios; };
};
El formato del archivo anterior tiene algunas semejanzas con el lenguaje C (al usar {
y }). Los primeros dos bloques acl definen listas de control de acceso, que se pueden usar
para permitir o denegar el acceso al servidor. Esto se usa principalmente para configurar
los equipos que tendrán acceso a la información DNS almacenada, como pueden ser los
servidores secundarios. En nuestro caso, se definen dos listas de control de acceso: permitidos
y secundarios. En la primera se definen los equipos que estarán autorizados para hacer
consultas recursivas y en la segunda lista se definen quienes serán los servidores secundarios
para la zona administrada.
Ahora comienza la declaración de las zonas administradas en los grupos zone. El primero
corresponde a la zona ipv6.ufro.cl donde se indica que seremos el administrador maestro
3
Es ası́ porque los desarrolladores de BIND se dieron cuenta que los sockets IPv4 e IPv6 interactúan
de maneras inesperadas en las distintas implementaciones existentes, por lo que para evitar mayores pro-
blemas, named no espera consultas en IPv6 por defecto. Más información se puede encontrar dentro de la
documentación que viene con el paquete bind9.
Capı́tulo 3. Servicio de Nombres de Dominio 31
El siguiente grupo zone declara la zona reversa 206.83.146.in-addr.arpa y tiene las mis-
mas opciones que la zona ipv6.ufro.cl y se encuentra definida en el archivo 146.83.206.zone.
Esta zona se usa para las resoluciones inversas en IPv4.
ipv6.ufro.cl.zone
En este archivo se define la zona ipv6.ufro.cl tanto en IPv4 como IPv6. El archivo co-
mienza con una declaración de Inicio de Autoridad 4 , donde se declaran el dominio donde
se tiene autoridad y el email del administrador. Luego se definen algunos números como el
serial, tiempos de refresco, reintento, expiración y de vida (TTL)5 .
A continuación se definen el o los servidores DNS autoritativos para esta zona, y que en
nuestro caso es uno solo (registro NS). Inmediatamente definimos las direcciones IPv4 e IPv6
(registros A, AAAA y A6) y el servidor de correo (MX).
IN NS ns.ipv6.ufro.cl.
IN A 146.83.206.114
IN AAAA 3ffe:8070:1026:1::1
IN A6 0 3ffe:8070:1026:1::1
IN MX 10 mail.ipv6.ufro.cl.
Luego se definen algunos alias usando el registro CNAME. Éstos son utilizados principal-
mente para los VirtualHost o Host Virtuales del Servidor Web Apache.
ns IN CNAME ipv6.ufro.cl.
www IN CNAME ipv6.ufro.cl.
mail IN CNAME ipv6.ufro.cl.
ftp IN CNAME ipv6.ufro.cl.
ieee IN CNAME ipv6.ufro.cl.
ice IN CNAME ipv6.ufro.cl.
pablo IN CNAME ipv6.ufro.cl.
4
Start Of Authority (SOA) en inglés.
5
También se define con una declaración inicial $TTL 86400.
Capı́tulo 3. Servicio de Nombres de Dominio 33
Finalmente agregamos las direcciones IPv4 e IPv6 de los equipos pertenecientes al dominio
con declaraciones como la siguiente.
pitcher IN A 146.83.206.112
IN AAAA 3ffe:8070:1026:1::2
IN A6 0 3ffe:8070:1026:1::2
En este caso se indica que el equipo pitcher.ipv6.ufro.cl tiene 146.83.206.112 como direc-
ción IPv4 y 3ffe:8070:1026:1::2 como IPv6. El resto de los equipos se pueden ver en el archivo
completo que se encuentra en el anexo D.
146.83.206.zone
En este archivo se declara la zona reversa en IPv4 para las direcciones pertenecientes a
la red 146.83.206.0. Se usa con el registro PTR y éste deberı́a indicar el nombre canónico del
equipo, tal como se muestra a continuación.
...
3ffe.8070.1026.zone
Aquı́ está declarada la zona reversa en IPv6 usando bitstrings. Esto permite una escritura
mucho más facil de los registros PTR si se usa en conjunción con la variable $ORIGIN. En este
caso $ORIGIN se declara como \[x3ffe80701026/48].ip6.arpa. y corresponde al segmento
de direcciones asignado originalmente por la UNAM. Con esta declaración, un registro IPv6
reverso de ejemplo se puede escribir como:
Éste usa un bistring de sólo 80 bits que representa la parte final de la dirección IPv6 y es
el segmento que se puede administrar en la Universidad de La Frontera.
$ORIGIN \[x3ffe80701026/48].ip6.arpa.
...
3.f.f.e.8.0.7.0.1.0.2.6.zone
Este archivo representa la misma zona reversa descrita anteriormente pero está escrita
usando el formato nibble. Se implementó en el servicio DNS con fines de compatibilidad, ya
que se espera que sea reemplazado por el formato de bistrings.
Capı́tulo 3. Servicio de Nombres de Dominio 35
Una forma resumida es la que se presenta más abajo. La versión completa se encuentra
en el anexo D.
$ORIGIN 6.2.0.1.0.7.0.8.e.f.f.3.ip6.int.
...
El componente que hace que todo el sistema de resolución explicado anteriormente funcio-
ne, es la biblioteca de resolución, que es un conjunto de funciones provistas por la biblioteca
estándar de C. Cualquier programa que requiera de Internet para comunicarse puede utilizar
esta biblioteca para realizar consultas DNS.
Los desarroladores de programas con conectividad IPv4 usaban principalmente las llama-
das gethostbyname y gethostbyaddr. Con la implementación de IPv6 en la biblioteca de
C se agregaron las funciones getnameinfo y getaddrinfo, que son más poderosas ya que
pueden manejar IPv4 también. Estas funciones se encuentran ampliamente descritas en [19].
IPv6 Resolver es un pequeño programa hecho en C y con interfaz GTK+ 2.0 que demuestra
la utilización de las nuevas funciones para resolver nombres de dominio (getaddrinfo y
Capı́tulo 3. Servicio de Nombres de Dominio 36
getnameinfo) con soporte IPv6. El código fuente se encuentra disponible bajo la licencia
GNU General Public License (GNU GPL) y se puede descargar desde http://pablo.ipv6.
ufro.cl/.
Ahora se van a realizar varias pruebas para revisar el correcto funcionamiento del servidor
DNS y su soporte IPv6, tanto en la forma de aceptar conexiones como en los registros de
recursos creados para el nuevo protocolo.
Como una forma de saber si el servidor DNS está corriendo ejecutaremos (como usuario
root) el comando netstat para imprimir información sobre las conexiones de red del sistema.
# netstat −atunp
Active Internet connections (servers and established)
Proto Recv−Q Send−Q Local Address Foreign Address State PID/Prg.Name
...
tcp 0 0 127.0.0.1:953 0.0.0.0:∗ LISTEN 25374/named
tcp 0 0 :::53 :::∗ LISTEN 25374/named
tcp 0 0 ::1:953 :::∗ LISTEN 25374/named
udp 0 0 10.0.0.1:53 0.0.0.0:∗ 25374/named
udp 0 0 146.83.206.114:53 0.0.0.0:∗ 25374/named
udp 0 0 127.0.0.1:53 0.0.0.0:∗ 25374/named
udp 0 0 0.0.0.0:34933 0.0.0.0:∗ 25374/named
udp 0 0 :::53 :::∗ 25374/named
udp 0 0 :::34934 :::∗ 25374/named
...
#
Los parámetros -atunp indican que mostrará información de todas las conexiones (a)
que sean de protocolos TCP (t) y UDP (u), que la salida será numérica (n), es decir sin
resolver nombres de dominio y con puertos numéricos. La opción p hará que netstat muestre
información de cada programa (PID y nombre) que mantiene la conexión. En el listado
anterior sólo mostramos las lı́neas correspondientes al proceso del servidor DNS named,
porque queremos destacar las que muestran que el servidor esta usando IPv6 para recibir las
consultas.
En el listado anterior se entiende que :::53 indica que named está utilizando la dirección
Capı́tulo 3. Servicio de Nombres de Dominio 38
IPv6 :: (que representa a cualquier interfaz de red) en el puerto 53 para recibir conexiones.
La primera consulta se hace por www.ipv6.ufro.cl y nos podremos dar cuenta que la
respuesta indicará que correponde a un alias.
pablo@pitcher:˜$ nslookup
> www.ipv6.ufro.cl
Server: 146.83.206.114
Address: 146.83.206.114#53
Cuando nslookup se inicia siempre define la variable q como a, para hacer consultas por
registros tipo A, que es lo que generamente hace el usuario.
A continuación hacemos una consulta AAAA para nativo.ipv6.ufro.cl la que nos entrega
una dirección IPv6. Para eso primero fijamos la variable q como aaaa y luego ingresamos el
nombre a consultar.
Tambien podemos consultar por los servidores de correo electrónico del dominio poniendo
mx en q.
Las pruebas anteriormente hechas hacı́an todas sus consultas usando sockets IPv4, pero
de igual forma nos indica que el funcionamiento del servidor es correcto y que también su
soporte de los nuevos registros para IPv6 trabaja bien.
Pero igual es necesario hacer pruebas utilizando sockets IPv6, para demostrar que el
servidor atiende consultas tanto IPv4 como IPv6. Esto lo haremos desde otro computador
que tiene configurado como servidor DNS primario a ipv6.ufro.cl pero con su dirección IPv6
(3ffe:8070:1026:1::1).
pablo@nativo:˜$ nslookup
> set q=aaaa
> torobayo.ipv6.ufro.cl
Server: 3ffe:8070:1026:1::1
Address: 3ffe:8070:1026:1::1#53
Capı́tulo 3. Servicio de Nombres de Dominio 40
pablo@nativo:˜$
Como se ve en el listado anterior, nslookup informa qué servidor DNS está usando para hacer
las consultas, con una lı́nea Server:... y Address:... seguidas cada una por la dirección
IPv6 del servidor DNS.
Para finalizar con las pruebas, en la figura 3.6 se muestra la resolución inversa para la
Capı́tulo 3. Servicio de Nombres de Dominio 41
Las pruebas hechas con IPv6 Resolver no necesariamente requieren de un servidor que
acepte conexiones IPv6, sólo basta que el servidor DNS local entienda los registros AAAA y
A6 para que haga las consultas recursivas hasta llegar a la respuesta.
Capı́tulo 4
1
Del inglés Simple Mail Transfer Protocol o SMTP.
2
Del inglés Electronic Mail.
43
Capı́tulo 4. Protocolo de Transferencia de Correo Simple 44
La comunicación es hecha mediante mensajes de texto que pueden ser comandos o códigos
de información o error. Generalmente el host que actúa de cliente es el que utiliza comandos
para informar al servidor de acciones requeridas o información de quién envı́a o los destina-
tarios del mensaje de correo. El servidor responde con códigos numéricos de información o
error e incluye algun mensaje descriptivo.
Connected to mail.ipv6.ufro.cl.
Escape character is ’ˆ]’.
220 ipv6.ufro.cl ESMTP Sendmail 8.12.8/8.12.8; Mon, 20 Oct 2003 23:47:51 −0300
EHLO nativo
250−ipv6.ufro.cl Hello nativo.ipv6.ufro.cl [IPv6:3ffe:8070:1026:1::7], pleased to meet you
250−ENHANCEDSTATUSCODES
250−PIPELINING
250−8BITMIME
250−SIZE
250−DSN
250−ETRN
250−AUTH DIGEST−MD5 CRAM−MD5 LOGIN PLAIN
250−STARTTLS
250−DELIVERBY
250 HELP
MAIL FROM: <pablo@surnet.cl>
250 2.1.0 <pablo@surnet.cl>... Sender ok
RCPT TO: <pablo@ipv6.ufro.cl>
250 2.1.5 <pablo@ipv6.ufro.cl>... Recipient ok
RCPT TO: <mythos@ipv6.ufro.cl>
250 2.1.5 <mythos@ipv6.ufro.cl>... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
To: Tesistas <tesistas@dominio.com>
From: Administrador <root@ipv6.ufro.cl>
Subject: Esto es una prueba
Atte. El Admin.
.
250 2.0.0 h9L2lpbi006076 Message accepted for delivery
QUIT
221 2.0.0 ipv6.ufro.cl closing connection
Connection closed by foreign host.
pablo@nativo:˜$
En este ejemplo se usó ESMTP en la conversación hecha por un cliente telnet. El cliente
enviaba comandos en mayúsculas para su mejor visualización. Como se puede ver, el servidor
siempre respondió con un código de tres números, un código de estado de también tres
números pero separados por puntos (disponible cuando se usa ESMTP) y luego la explicación.
Capı́tulo 4. Protocolo de Transferencia de Correo Simple 46
El protocolo SMTP requiere una conexión full-duplex entre dos servidores para que se
establezca una comunicación en ambos sentidos. Se usa principalmente TCP para las cone-
xiones, ya que permite crear un canal de comunicación totalmente confiable3 entre los dos
servidores. Como realmente TCP no depende del protocolo de Internet que se use, es factible
utilizarlo sobre IPv6.
Se utilizará Sendmail4 versión 8.12 como servidor SMTP, puesto que reune caracterı́sticas
avanzadas de configuración y es muy usado a lo largo del mundo por lo que existe bastante
documentación en Internet. Sin embargo, también existen otras alternativas como Exim,
Postfix o Qmail.
4.3. Configuración
Dentro de las muchas opciones disponibles hay una que configura al demonio de sendmail,
que es programa del servidor SMTP, para que utilice sockets IPv6 en las comunicaciones.
3
Respecto de la fiabilidad de los datos, no que sean transmitidos de forma segura usando algún tipo de
cifrado.
4
Website oficial http://www.sendmail.org.
Capı́tulo 4. Protocolo de Transferencia de Correo Simple 47
Aquı́ se configura Sendmail para que escuche por todas las interfaces IPv6 por el puerto
25 que es el que se usa por defecto para SMTP. El resto de las opciones de configuración se
pueden revisar en el anexo D.2.
Una vez hecho los cambios se debe regenerar el archivo de configuración y reiniciar el
servidor mediante los comandos5 :
Luego tendremos a sendmail aceptando conexiones sobre un socket IPv6 dando servicio
tanto a clientes IPv4 como a clientes IPv6.
4.4. Pruebas
Para probar el servicio primero necesitamos saber si esta funcionando y aceptando cone-
xiones. Esto lo podemos ver con el comando netstat:
# netstat −atunp
Active Internet connections (servers and established)
Proto Recv−Q Send−Q Local Address Foreign Address State PID/Prg.Name
...
tcp 0 0 :::25 :::∗ LISTEN 1086/sendmail
...
5
En Red Hat 9 existe un Makefile dentro del directorio /etc/mail/ que permite recrear la configuración
ejecutando make sendmail.cf dentro del directorio y luego se puede reiniciar el servidor haciendo make
restart.
Capı́tulo 4. Protocolo de Transferencia de Correo Simple 48
Esto permite acceder a mucha información referente al manejo que hacen los servidores de
correo con el mensaje enviado. Revela los servidores por los que pasó el mensaje, protocolos
usados, IP’s de origen, destino e intermediarios. Aquı́ se visualiza perfectamente cuando un
mensaje es enviado vı́a IPv6.
−−
Pablo Carmona Amigo
Estudiante de Ingenieria Civil Electronica
Universidad de La Frontera
La lı́nea clave es la que comienza con Received: donde se indica que se recibió desde la
dirección IPv6 3ffe:8070:1026:1::7.
Capı́tulo 4. Protocolo de Transferencia de Correo Simple 49
También se puede ver que la versión de Sendmail que usa el servidor ipv6.ufro.cl es la
8.12.8, que se usó el protocolo TLS6 para la transferencia del correo, que va dirigido para
pablo@ipv6.ufro.cl y finalmente aparecen la hora y la fecha cuando el servidor recibió el
mensaje.
El siguiente mensaje revela un correo enviado desde nativo.ipv6.ufro.cl que pasa a través
de ipv6.ufro.cl hacia el servidor de un ISP que posee sólo direcciones IPv4. El correo elec-
trónico es recibido localmente con el programa fetchmail.
6
TLS es la sigla en inglés de Transport Layer Security que define un protocolo de Seguridad en la Capa
de Trasporte para ser usado en la transmisión de mensajes usando algún tipo cifrado.
Capı́tulo 4. Protocolo de Transferencia de Correo Simple 50
Subject: hola
Message−ID: <20031002232825.GA462@nativo.ipv6.ufro.cl>
Mime−Version: 1.0
Content−Type: text/plain; charset=us−ascii
Content−Disposition: inline
User−Agent: Mutt/1.5.4i
Status: RO
X−Status:
X−Keywords:
X−UID: 387
hola
−−
Pablo Carmona Amigo
Estudiante de Ingenieria Civil Electronica
Universidad de La Frontera
IMAP y POP3
En este capı́tulo se abordarán los principales protocolos que permiten al usuario acceder
a su correo de forma remota.
5.1. IMAP
Por otro lado, IMAP es completamente compatible con los estándares de mensajerı́a de
1
Del inglés, Internet Message Access Protocol.
2
Ver detalles en RFC-1730. También RFC-2060, donde se discute otra implementación llamada IMAPrev1.
51
Capı́tulo 5. IMAP y POP3 52
Internet, tales como las Extensiones Multipropósito de Correo de Internet 3 (MIME), permi-
tiendo la recepción de archivos adjuntos. Muchos clientes de correo que usan IMAP se pueden
configurar también para almacenar una copia de los mensajes en forma local, de tal forma
que se pueden revisar los mensajes mientras se está desconectado del servidor IMAP.
IMAP es usado en forma primaria por quienes acceden a su correo desde múltiples máqui-
nas o usuarios que se conectan a Internet a través de una conexión lenta, ya que IMAP permite
ver los encabezados4 antes de obtener el correo. Esto permite que se pueda elegir entre los
correos que se van a bajar, por ejemplo dejando en el servidor los con grandes archivos adjun-
tos. De la misma forma los correos indeseados pueden ser borrados sin siquiera ver el cuerpo
del mensaje, evitándose el tener que bajarlos para después borrarlos.
5.2. POP
Para conectar al servidor POP, el cliente abre una conexión TCP al puerto 110 en el
servidor. Cuando la conexión es hecha, el servidor POP envı́a al cliente un saludo, después
del cual se envı́an otros comandos y respuestas especı́ficas del protocolo. Como parte de la co-
municación, al cliente POP se le pide autenticarse, lo que se llama Estado de Autenticación 7 .
Es aquı́ donde el nombre de usuario y contraseña se le envı́an al servidor POP. Si la aunten-
ticación es exitosa, el cliente POP cambia al Estado de Transacción 8 , donde comandos como
3
Del inglés, Multipurpose Internet Mail Extensions.
4
Headers.
5
Del inglés, Post Office Protocol.
6
Ver RFC 1939, el cual define el Protocolo POP3.
7
Del inglés, AuthenticationState.
8
Del inglés, Transaction State.
Capı́tulo 5. IMAP y POP3 53
LIST, RETR y DELE son usados para listar, bajar y borrar mensajes del servidor. Los mensajes
marcados para borrarse no son borrados mientras no se envı́e el comando QUIT al servidor,
con lo que se termina la sesión. Luego, el servidor entra en un Estado de Actualización 9 ,
donde borra los mensajes marcados y libera los recursos restantes de la sesión.
POP es un protocolo mucho más simple que IMAP, ya que son pocos los comandos que
se envı́an entre servidor y cliente.
En general, POP trabaja mejor para usuarios que sólo tienen un sistema desde el cual
leen el correo o bien existe una conexión constante a Internet y por ende a su servidor de
correo.
APOP : POP3 con autenticación MD5, donde se envia la password codificada, no asi el
POP tradicional donde se envı́a en texto plano.
RPOP : POP3 con autenticación RPOP, en el cual se usa un identificador (ID) de usuario,
similar a una contraseña para autentificar las peticiones POP. Sin embargo, esta ID no
es encriptada, por lo RPOP no es más seguro que el POP estándar.
Dado que actualmente el paquete imapd que se ofrece con Red Hat 7.x, 8 y 9 sólo posee
sopote para IPv4, se hace necesario buscar un software que posea a lo menos las caracterı́sticas
que ofrecı́a el anterior más el soporte IPv6.
9
Del inglés, Update State.
Capı́tulo 5. IMAP y POP3 54
El software dovecot10 se ha elegido dado que es la lı́nea a seguir por Red Hat, por ende es
lo que se va a encontrar en esta distribución en un futuro cercano. Además se diseñó pensando
en la seguridad, aspecto que nunca debemos dejar de lado.
Para instalar la última versión de este software desde paquetes rpm se puede buscar por
ejemplo en http://rpm.pbone.net/ para la distribución en particular. En este caso se busca
para Red Hat 9, encontrándose el archivo:
dovecot-0.99.10-4.dag.rh90.i386.rpm
10
Más información en http://dovecot.procontrol.fi/.
Capı́tulo 5. IMAP y POP3 55
¿mbox o maildir?
mbox Es el estilo tradicional de UNIX, cada directorio de una casilla de correo se almacena
en un archivo.
maildir Cada directorio de casilla es un directorio y cada mensaje un archivo en ese direc-
torio.
En este caso en particular se usa el sistema de mbox. Esto se debe establecer en el archivo,
aunque dovecot tiene la capacidad de reconocer en forma automática el tipo de casillas usado,
sin embargo, esto puede dar lugar a errores e imprecisiones.
Dentro de los parámetos a configurar, existe un punto en que se define el método usado
para el bloqueo de la casilla de correo. Lo métodos utilizados son:
dotlock crea un archivo ¡usuario¿.lock. Es el método más antiguo y la solución más segura
para NFS11 .
11
Sistema de Archivos de Red, del inglés, Network File System.
Capı́tulo 5. IMAP y POP3 56
fcntl Trabaja con NFS también si se utiliza lockd. Este es el método recomendado en lo
posible, de hecho el que aquı́ se utiliza.
Puede incluso usarse fcntl y flock, pero algunos sistemas operativos no lo permiten,
como algunos BSD.
Por ende se obtiene una solución ideal, la cual a su vez permite el uso del sistema con el
protocolo NFS.
Utilización de SSL
12
Envı́a la contraseña en texto plano.
Capı́tulo 5. IMAP y POP3 57
#Método de bloqueo.
mbox locks = fcntl
En este pequeño trozo del archivo /etc/dovecot.conf se observan algunos puntos a tener
en consideración a la hora de configurar el servidor.
La sección más importante en lo que a soporte IPv6 se refiere, se encuentra en las lı́neas:
imap listen = [::]
pop3 listen = [::]
Aquı́ se definen todas las direcciones IPv6, en las que el servidor espera conexiones.
Cabe señalar, que esto implica todas las direcciones IPv4 también, según lo establece la
documentación de dovecot.
Capı́tulo 5. IMAP y POP3 58
Para comenzar se muestra el resultado de ejecutar nestat -atn, rescatando las lı́neas de
interés:
...
tcp 0 0 :::110 :::∗ LISTEN
tcp 0 0 :::143 :::∗ LISTEN
tcp 0 0 :::993 :::∗ LISTEN
tcp 0 0 :::995 :::∗ LISTEN
tcp 0 0 :::53 :::∗ LISTEN
...
En las dos primeras lı́neas se observa claramente el funcionamiento del servidor IMAP
y POP3, esto es los puertos 110 para POP y 143 para IMAP. Además en estos momentos
está activo IMAP y POP sobre SSL en los puertos 993 y 995 respectivamente.
Probando POP3
Posteriormente para saber si hay un nuevo mensaje, como se ve en la lı́nea 10, se utiliza:
LIST
Es decir, hay un mensaje nuevo. Si se quiere leer este mensaje se utiliza el comando RETR,
seguido del número del mensaje, osea:
RETR 1
Con esto el servidor envı́a el mensaje completo, incluyendo los encabezados. Esto se aprecia
en las lı́neas 16 a 44.
Y finalmente se cierra la sesión, borrándose recién el mensaje que ha sido marcado para ello.
Probando IMAP
Acceder al correo a través de telnet es un poco más complejo de como resulta para POP3.
A continuación una sesión completa de revisión de correo mediante telnet usando el protocolo
13
Esta aparece en texto plano, asi que cualquiera que vea al usuario haciendo login le verá la contraseña.
Capı́tulo 5. IMAP y POP3 61
IMAP:
1 mythos@nativo:˜$ telnet −6 mail.ipv6.ufro.cl 143
2 Trying 3ffe:8070:1026:1::1...
3 Connected to ipv6.ufro.cl.
4 Escape character is ’ˆ]’.
5 ∗ OK dovecot ready.
6 01 LOGIN mythos contraseña
7 01 OK Logged in.
8 02 SELECT INBOX
9 ∗ FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
10 ∗ OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \∗)] Flags permitted.
11 ∗ 1 EXISTS
12 ∗ 1 RECENT
13 ∗ OK [UNSEEN 1] First unseen.
14 ∗ OK [UIDVALIDITY 1068743037] UIDs valid
15 ∗ OK [UIDNEXT 13] Predicted next UID
16 02 OK [READ−WRITE] Select completed.
17 03 FETCH 1 rfc822
18 ∗ 1 FETCH (FLAGS (\Seen \Recent) RFC822 {1011}
19 Return−Path: <mythos@ipv6.ufro.cl>
20 Received: from ipv6.ufro.cl (localhost [IPv6:::1] (may be forged))
21 by ipv6.ufro.cl (8.12.8/8.12.8) with ESMTP id hAULtP1u027194
22 (version=TLSv1/SSLv3 cipher=DHE−RSA−AES256−SHA bits=256 verify=NO)
23 for <mythos@ipv6.ufro.cl>; Sun, 30 Nov 2003 18:55:25 −0300
24 Received: (from mythos@localhost)
25 by ipv6.ufro.cl (8.12.8/8.12.8/Submit) id hAULtP6D027193
26 for mythos@ipv6.ufro.cl; Sun, 30 Nov 2003 18:55:25 −0300
27 Date: Sun, 30 Nov 2003 18:55:25 −0300
28 From: "Renato Ulloa S." <mythos@ipv6.ufro.cl>
29 To: Renato Ulloa <mythos@ipv6.ufro.cl>
30 Subject: test de impa bajo IPv6.
31 Message−ID: <20031130215525.GA27182@ipv6.ufro.cl>
32 Mime−Version: 1.0
33 Content−Type: text/plain; charset=us−ascii
34 Content−Disposition: inline
35 User−Agent: Mutt/1.4.1i
36 X−IMAPbase: 1068743037 12
37 Status: O
38 X−UID: 12
39 Content−Length: 46
40 X−Keywords:
41
42 Esto es una prueba de IMAP bajo IPv6.
43
44 Renato
45 )
46 03 OK Fetch completed.
47 04 STORE 1 +FLAGS (\Deleted)
48 ∗ 1 FETCH (FLAGS (\Deleted \Seen))
Capı́tulo 5. IMAP y POP3 62
49 04 OK Store completed.
50 05 EXPUNGE
51 ∗ 1 EXPUNGE
52 05 OK Expunge completed.
53 06 logout
54 ∗ BYE Logging out
55 06 OK Logout completed.
56 Connection closed by foreign host.
57 mythos@nativo:˜$
La primera diferencia que hay que hacer notar es que los comandos deben ser precedidos
por un número que va incrementándose conforme se ingresan más comandos. Las lı́neas a
ingresar por el cliente son aquellas que comienzan con un número, a las que el servidor
responde con un mensaje y un lı́nea final que lleva el mismo número que ha ingresado el
cliente.
En la lı́nea 2 se hace un login. Esta lı́nea debe escribirse textual, incluyendo el 01. El
servidor responde con un:
01 OK Logged in.
A continuación se va a leer este nuevo correo, para ello se utiliza el comando FETCH seguido
del número de correo y de un parámetro que indica lo que se quiere14 leer del mensaje. En
esta ocasión se pedirá que se muestre el mensaje en forma completa, con rfc822. El comando
ingresado es la primera lı́nea del siguiente listado:
03 FETCH 1 rfc822
∗ 1 FETCH (FLAGS (\Seen \Recent) RFC822 {1011}
Return−Path: <mythos@ipv6.ufro.cl>
Received: from ipv6.ufro.cl (localhost [IPv6:::1] (may be forged))
by ipv6.ufro.cl (8.12.8/8.12.8) with ESMTP id hAULtP1u027194
(version=TLSv1/SSLv3 cipher=DHE−RSA−AES256−SHA bits=256 verify=NO)
for <mythos@ipv6.ufro.cl>; Sun, 30 Nov 2003 18:55:25 −0300
Received: (from mythos@localhost)
by ipv6.ufro.cl (8.12.8/8.12.8/Submit) id hAULtP6D027193
for mythos@ipv6.ufro.cl; Sun, 30 Nov 2003 18:55:25 −0300
Date: Sun, 30 Nov 2003 18:55:25 −0300
From: "Renato Ulloa S." <mythos@ipv6.ufro.cl>
To: Renato Ulloa <mythos@ipv6.ufro.cl>
Subject: test de impa bajo IPv6.
Message−ID: <20031130215525.GA27182@ipv6.ufro.cl>
Mime−Version: 1.0
Content−Type: text/plain; charset=us−ascii
Content−Disposition: inline
User−Agent: Mutt/1.4.1i
X−IMAPbase: 1068743037 12
Status: O
X−UID: 12
Content−Length: 46
X−Keywords:
Renato
)
03 OK Fetch completed.
Como ya se ha ledı́do el mensaje, ahora se marca para ser borrado. Para ello se utiliza
el comando STORE más el número de mensaje y +FLAGS (\Deleted), según se muestra a
continuación.
04 STORE 1 +FLAGS (\Deleted)
∗ 1 FETCH (FLAGS (\Deleted \Seen))
04 OK Store completed.
14
Existen varias opciones par este comando, todas ellas definidas en el RFC-2060.
Capı́tulo 5. IMAP y POP3 64
Ahora que ya está marcado, se borra definitivamente. Para esto se usa EXPUNGE:
05 EXPUNGE
∗ 1 EXPUNGE
05 OK Expunge completed.
Ahora bien, con esto se muestra claramente que el servidor funciona y lo hace a través de
IPv6, ya que la conexión telnet se ha hacho sobre IPv6.
Con esto sólo basta configurar los clientes (MUAs) que posean soporte de IPv6, entre
ellos Evolution, Sylpheed, Mozilla Mail y Mutt.
Capı́tulo 6
Protocolo de Transferencia de
Hipertexto
Además con el paso de los años se ha generado una tendencia hacia Internet, es decir,
muchos de los viajes a oficinas públicas, bancos, tiendas, han ido poco a poco disminuyendo
por la presencia de numerosas posibilidades de realizar cualquiera de estos trámites desde la
tranquilidad del hogar sentado frente a su computador.
65
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 66
La World Wide Web (WWW o Web) es una base de datos de hipertexto que contiene
diferentes tipos de información distribuida en un gran número de sitios en Internet. Una base
de datos de hipertexto está formada por elementos vinculados a otros elementos que a su vez
se podrı́an vincular a otros y ası́ sucesivamente. Se podrı́a decir que es una tela de araña de
información interconectada, por la que se puede mover de un elemento a otro.
Para poder aprovechar lo que ofrece este protocolo necesitamos como mı́ninmo dos cosas:
un servidor http y un cliente1 http, browser o navegador.
Apache
MS IIS
Zeus
SunONE
AOLServer
IBM HTTP Server
entre otros.
En tanto el cliente puede ser cualquier sistema operativo (UNIX2 , Windows, Macintosh)
1
Puede ser fı́sicamente el mismo equipo.
2
Se hablará de UNIX en general, pero puede hacer mención a: Solaris, IBM AIX, SGI IRIX, HP-UX,
Compaq Tru64, *BSD, SCO Unixware, BeOS o cualquier variente existente de alguno de estos.
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 67
Netscape
Mozilla
Internet Explorer
Opera
Galeon
Konqueror
Safari
Camino
Links
y otros.
De esta forma, se necesita que el cliente se conecte al servidor, logrando que el servidor
entregue los datos (según demanda del cliente) que el browser interpretará y desplegará fi-
nalmente como una página web en la que el usuario interactúa.
En el caso particular de este trabajo de tı́tulo el software elegido para servidor será Apa-
che.
El servidor web Apache es un servidor HTTP gratuito, basado en el servidor web NCSA
(National Center for Supercomputing Applications) de la Universidad de Illinois, desarrollado
y mantenido por el Apache Server Project, siendo uno de los proyectos más importantes de la
Apache Software Foundation. El objetivo de este proyecto es ofrecer un servidor web, fiable,
eficiente y fácilmente extensible, con código fuente abierto y gratuito. El software del servidor
incluye el demonio de servidor, archivos de configuración, herramientas de administración y
3
El término Navegador o Browser se usa indistintamente a través del texto.
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 68
documentación. Esta organización también tiene los proyectos Java Apache, Jakarta y XML-
Apache.
Aunque inicialmente surgió como un servidor para sistemas UNIX y Linux, Apache se
ha convertido en una aplicación multiplataforma, con versiones Windows, Netware, OS/2 y
Mac, siendo según Netcraft Web Server Survey4 el servidor más utilizado en los sitios web.
En la actualidad casi todas las distribuciones ofrecen la opción de instalar el servidor Web
Apache durante la instalación inicial del sistema, creándose automáticamente la estructura de
directorios necesarios. Sin embargo, si se requiere una posterior instalación, basta conseguir
los archivos en el formato de la distribución que se utilice, .rpm, .deb o las fuentes para
compilarlo .tar.gz.
httpd−2.0.40−21.i386.rpm
httpd−manual−2.0.40−21.3.i386.rpm
Para instalar estos paquetes basta como root usar el comando rpm5 , escribir en una
consola:
Con esto queda entonces instalado el servidor httpd y su documentación. También hay
paquetes adicionales, como módulos Perl, Python, SSL y GUI para configuración del servidor.
4
http://news.netcraft.com
5
Para mayor información respecto de rpm, ver página del manual correpondiente.
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 69
Estos módulos agregan nuevas funcionalidades al servidor permitiéndole, entre otras cosas,
acceder a bases de datos, generar páginas dinámicamente, utilizar cifrados para seguridad,
etc.
Por lo tanto, en esta sección incluiremos las lı́neas que son necesarias modificar para tener
el Servidor Web soportando IPv6.
Directiva Listen
Listen 80
Ejemplo de esto:
Listen 80 con esto se establece que el servidor “escucha” en todas las interfaces de red por
el puerto 80.
Se ha dejado como Listen 80 porque se quiere que funcione tanto en IPv4 como en IPv6
y por todas las interfaces de red.
Directiva VirtualHost
6
Del inglés Virtual Host.
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 71
Apache fue uno de los primeros servidores capaces de soportar hosts virtuales basados en
IP. Las versiones 1.1 y posteriores soportan ambos hosts virtuales (vhost): basados en IP y
basados en nombre.
La cadena _default_, la cual es usada sólo en hosts virtuales basados en IP, para
atender a las IP que no caen en ninguna otra directiva.
<VirtualHost 1.2.3.4>
ServerAdmin webmaster@host.dominio.com
DocumentRoot /var/www/docs/host.dominio.com
7
Esta sección entrega explicaciones simples y en ningún caso es una guı́a oficial de las caracterı́sticas
que posee http y sus capacidades. Para tener la información completa, favor dirijirse a la página oficial de
documentación de httpd, http://httpd.apache.org/docs-project/ o revisar la documentación que se
instala con el paquete httpd-manual.
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 72
ServerName host.dominio.com
ErrorLog logs/host.dominio.com−error log
TransferLog logs/host.dominio.com−access log
</VirtualHost>
Como se ve, los nombres utilizados son autoexplicativos, está claro que ServerAdmin es
el administrador del servidor, DocumentRoot es la raı́z de los documentos del host virtual,
etc.
Si se quisiera establecer un host virtual para direcciones IPv6, sólo bastarı́a encerrar la
dirección entre corchetes, ası́: [<dirección ipv6>]:puerto
<VirtualHost [3ffe:8070:1026:10::1]>
ServerAdmin admin@solo6.ipv6.ufro.cl
DocumentRoot /var/www/html/solo6/
DiretoryIndex index.php index.html index.htm index.shtml
ServerName solo6.ipv6.ufro.cl
</VirtualHost>
Por lo tanto, con estas configuraciones bastan para hacer la diferencia entre ambos proto-
colos. Ahora bien, hay más posibilidades y usos avanzados de este servidor, pero no es motivo
de este trabajo.
Utilizando este método, se asegura que httpd está efectivamente esperando conexiones
con soporte IPv6.
Aquı́ el proceso httpd esta esperando conexiones en todas las interfaces de red y en el
puerto 80 (:::80).
Usando Mozilla
Para mostrar una conexión utilizando IPv6 con Mozilla, se va a utlizar la dirección del
servidor entre corchetes, como se puede ver en la figura 6.1.
Con esto, finalmente se tiene una prueba que este servicio tan popular funciona perfecta-
mente, dando soporte al nuevo protocolo. Sólo basta escribir la dirección o el nombre entre
corchetes, ([ y ]).
Capı́tulo 6. Protocolo de Transferencia de Hipertexto 74
Protocolo de Transferencia de
Archivos
Éste es uno de los protocolos más antiguos y usados en el mundo de Internet1 . Quizás,
puede que su nombre no resulte tan familiar a personas acostumbradas a navegar, revisar
correo, pero lo más probable es que lo hayan usado muchas veces sin darse cuenta.
1
Además visite http://www.wu-ftpd.org/rfc/ allı́ encontrará una lista de RFCs relacionados.
2
Cabe aclarar inicialmente, porque con el paso de los años los propósitos de cada protocolo se han ido
extendiendo.
75
Capı́tulo 7. Protocolo de Transferencia de Archivos 76
entonces se está ante la presencia de un servidor FTP del cual estamos transfiriendo el ya
mencionado archivo.
Al igual que la gran mayorı́a de las operaciones realizadas en Internet, FTP se trata de
un modelo cliente/servidor, es decir, sólo aquel equipo que posea el software adecuado para
servidor puede prestar dicho servicio, en tanto para aprovechar tal servicio, a un cliente3 le
basta un pequeño programa que sea capaz de comunicarse adecuadamente con el servidor.
Estos programas cliente permiten a un usuario transferir archivos desde y hacia un sistema
remoto, que posee el servidor, según como se establezcan las configuraciones del servidor.
Para realizar cualquier transferencia, el usuario debe iniciar una sesión en el servidor, es
decir, se establece una comunicación y se produce una identificación del usuario, lo que le
otorga ciertos permisos y habilidades de realizar tareas en el servidor. Se tiene el usuario
más básico y restringido, como el FTP anónimo y aquel usuario que se identifica con un
nombre (login) y contraseña (password ). A decir verdad el denominado FTP anónimo también
presenta un nombre y una contraseña bastante particular.
login: anonymous
password: nombre@host.dominio
3
Puede ser fı́sicamente el mismo equipo servidor.
4
Se deberı́a entregar una dirección de correo válida, ya que un servidor puede comprobar los dominios y
restringir el acceso.
Capı́tulo 7. Protocolo de Transferencia de Archivos 77
En general, cualquier sistema GNU/Linux puede funcionar como servidor FTP. Sólo basta
ejecutar un software servidor5 .
También existe el FTP con nombres de usuario y contraseña privado, si bien este es un
método que permite restringir el acceso, también es cierto que representa un gran problema
en el tema de seguridad. ¿Por qué? Porque, en general las cuentas y contraseñas de los
usuarios del FTP son los mismos del sistema6 y como al igual que con el protocolo telnet,
FTP también envı́a las contraseñas en texto plano. De esta forma, basta que alguien ponga
un sniffer en la red y averigue fácilmente un nombre de usuario y su contraseña, logrando
con esto acceso de usuario y que eventualmente se pueda poner en riesgo todo el sistema.
Para establecer, como se dijo antes, un enlace con un servidor FTP, se necesita un cliente.
Este programa puede ser uno especialmente diseñado para ello o bien un navegador (browser),
como los mencionados en el capı́tulo 6 en la página 65.
En el caso particular de este trabajo de tı́tulo el software elegido para servidor será vsftpd7 .
5
Un demonio FTP configurado correctamente.
6
A no ser, que se trata de servidores avanzados, en que se establecen cuentas sólo para acceso FTP
7
Para mayor información ver http://vsftpd.beasts.org.
Capı́tulo 7. Protocolo de Transferencia de Archivos 78
Sus orı́genes vienen desde OpenBSD8 , se trata del Very Secure FTP Daemon. Su elec-
ción se debe principalmente al soporte nativo de IPv6 que ofrece desde su versión 1.1.3, no
ası́ ProFTPD, que se consideró inicialmente, que hasta la fecha sólo presenta parches para
soporte IPv6. Además, otro punto a favor de vsftpd es su inclusión en la mayorı́a de las
distribuciones, por lo que se uso se irá ampliando con el correr del tiempo.
Facilidad de configuración.
Para instalar este servidor basta conseguir una versión reciente en rpm desde su sitio web
o bien de la página de la distribución.
La versión usada es la 1.2, principalemente porque la anterior 1.1.3 soportaba IPv6 sólo
de forma conjunta con xinetd, no ası́ la 1.2 que soporta también el modo standalone. Ésta
era precisamente la forma en que se querı́a probar, para dar independencia y posibilidad de
experimentar con este servicio por separado.
8
Se dice que es el BSD más seguro que existe.
Capı́tulo 7. Protocolo de Transferencia de Archivos 79
Luego, para la instalación simplemente se tiene que instalar o actualizar el paquete RPM:
[root@ipv6 root]# rpm −Uvh vsftpd−1.2.0−3.1.i386.rpm
warning: vsftpd−1.2.0−3.1.i386.rpm: V3 DSA signature: NOKEY, key
ID e418e3aa
Preparing... ########################################### [100 %]
1: vsftpd ########################################### [100 %]
[root@ipv6 root]#
/etc/vsftpd.user list Aquı́ se establecen los usuarios permitidos o no, según una
directiva de vsftpd.conf.
/etc/vsftpd.ftpusers Aquı́ se indican los usuarios a los que no se les permitirá login
via FTP. Algunos de ellos son:
root
bin
daemon
shutdown
halt
9
Par opciones avazadas, se pueden requerir más archivos que deben ser creados por el administrador,
por ejemplo si se quieren usuarios virtuales hay que crear un archivo para PAM (Pluggable Authentication
Modules).
Capı́tulo 7. Protocolo de Transferencia de Archivos 80
El archivo que viene por defecto sirve para comenzar inmediatamente a dar servicio FTP
bajo IPv4, sin embargo, si queremos dar servicio en IPv6 hace falta un ajuste trivial. Para
detalles de FTP en IPv6 ver [10].
listen ipv6=YES
Con esto, ya se cuenta con un servidor FTP con soporte IPv6, pero que ofrece el servicio tanto
en IPv4 como en IPv6, dada la compatibilidad con IPv4. Es decir, al iniciar una sesión desde
una dirección IPv4, se tendrá que la dirección será tratada como ::ffff:<dirección-ipv4>.
Para probar que se presta el servicio en IPv6, se muestra una parte de lo que arroja
netstat -atn:
10
Se han quitado los comentarios.
Capı́tulo 7. Protocolo de Transferencia de Archivos 81
que indica, que se está escuchando en el puerto 21, con soporte IPv6, es decir, escuchando
en todas las direcciones IPv611 .
Para probar como funciona el servicio se utilizará el comando ftp desde la consola y
posteriormente se usará el navegador Mozilla.
11
Recordar que :: es la dirección no especificada y representa a cualquier dirección.
Capı́tulo 7. Protocolo de Transferencia de Archivos 82
Aquı́ se aprecia que mythos acaba de iniciar una sesión FTP como anónimo (anonymous),
posteriormente se pide un listado de archivos (ls). Es decir, funciona perfectamente desde
consola. Con esto se prueba que el servidor escucha IPv6 y además permite el inicio de sesio-
nes; lo que suceda posterior a eso ya es configuración de cada administrador e independiente
del protocolo, como por ejemplo: permisos, ubicación de directorios, hosts virtuales, etc.
Con esto se muestra que es posible utilizar sin problemas este servicio, ya sea desde lı́nea
de comandos o bien usando un navegador como Mozilla.
Conclusiones
En este Trabajo de Tı́tulo, se mostró que IPv6 es la solución a los actuales problemas
del conocido Protocolo Internet. Sin embargo, el trabajo que significa el implementar IPv6
en todas las redes es bastante. Esto implicó hacer una revisión completa al hardware y
software que se necesitó utilizar, además del trabajo que involucra el documentarse acerca
de los cambios necesarios en configuraciones, ası́ como pruebas posteriores, hasta lograr que
todos los elementos involucrados se comuniquen y funcionaran sin problemas. Logrando un
funcionamiento similar el obtenido en IPv4.
Antes de probar aplicaciones de red, se debió tener una red IPv6 completamente opera-
tiva. Para esto, la Universidad de La Frontera cuenta con una red IPv6 en el Departamento
de Ingenierı́a Eléctrica, la cual posee una conexión, a través de un túnel, con la Universidad
Nacional Autónoma de México, la que a su vez está conectada al 6bone. Es decir, mediante
esta conexión, la universidad está presente en la red mundial IPv6. Para esta tarea se reco-
mienda el Sistema Operativo Linux, el cual se usó para establecer el túnel, cumplir la función
de ruteador y además proporcionar los servicios en estudio.
Para establecer el túnel bastan las herramientas que posea la distribución de Linux, en
83
Conclusiones 84
este caso se utilizó Red Hat Linux, por ser una de las más usadas a nivel mundial. Una vez
logrado el túnel, se debe establecer un ruteador, que permita enviar y recibir información
desde y hacia el resto del mundo IPv6. EL software utlizado fue Zebra12 , el cual permite
establecer polı́ticas para el tráfico entre distintas redes. Junto con Zebra se usó el protocolo
de encaminamiento BGP+, el cual hace muy sencillo el manejo de varias redes.
Hay que advertir que MS Windows recién en sus últimas versiones está implementando
IPv6 de manera que pueda tener un uso transparente para el usuario, por lo que Windows
2000 sólo es recomendable como cliente para realizar pruebas sencillas, hacer ping, trazar
rutas, consultar a un DNS y acceder a páginas web o ftp. Además el software con soporte
IPv6 para esta plataforma es muy limitado.
12
Más detalles en www.zebra.org.
Conclusiones 85
Teniendo en cuenta estos aspectos, se advierte a quien desee establecer este tipo de servi-
cios con soporte IPv6, que las reglas a seguir son las mismas que para la configuración en IPv4,
salvo las propias introducidas por el nuevo protocolo. Con esto, es deber del administrador
de servidores la correcta configuración de los servicios.
En cuanto a los servicios HTTP y FTP, fueron los más sencillos de configurar y los que
menos diferencias presentan para el administrador de red. El soporte IPv6 se ofrece en el
software por defecto de muchas distribuciones, Apache para HTTP y vsftpd para FTP. La
documentación existente es suficiente, sin embargo, se recomienda nuevamente revisar con
mucho cuidado los archivos de configuración de estos servidores.
A través del trabajo, se presentaron todos los pasos necesarios para tener funcionando de
manera básica los servicios antes mencionados, existen también los archivos de configuración
completos en un CD adjunto, para quien desee experimentar con el soporte IPv6 de estos
servicios.
Sin duda, la importancia de realizar estas tareas en GNU/Linux es que permite usar
el software tradicional en un sistema que admite casi la totalidad de las caracterı́sticas del
Conclusiones 86
software y/o hardware dedicado. Esto es, usar software de ruteo, como lo harı́an ruteadores
Cisco, con su sistema IOS. También se pueden probar los servicios que pueden ser migrados
fácilmente a otro GNU/Linux, BSD o plataforma que se desee con un mı́nimo trabajo.
El único inconveniente que se tuvo es el hecho de no contar con una red con soporte nativo
para IPv6, lo cual fue una limitante para probar por ejemplo Multicast en IPv6. Afortunada-
mente esto está cambiando. Al momento de entregar este trabajo se están realizando pruebas
con REUNA13 para contar con soporte nativo de IPv6 en la Universidad de La Frontera,
hasta ahora se están haciendo pruebas en un equipo Linux para posteriormente actualizar el
sistema operativo de los router Cisco e integrarse ası́ definitivamente al mundo IPv6.
Por último, cabe recordar la importancia que tienen este tipo de iniciativas en un centro
de educación, ya que IPv6 en unos pocos años será simplemente Internet, y la Universidad de
La Frontera estará preparada para relizar la migración completa de su Intranet corporativa.
13
Red Universitaria Nacional.
Referencias
[4] M. Crawford y C. Huitema. Request for Comments 2874: DNS Extensions to support
IPv6 Address Aggregation and Renumbering. The Internet Society, Julio 2000.
[5] M. Crispin. Request for Comments 2060: Internet Message Access Protocol - version
4rev1. The Internet Society, Diciembre 1996.
[6] S. Deering y R. Hinden. Request for Comments 2460: Internet Protocol, Version 6 (IPv6)
Specification. The Internet Society, Diciembre 1998.
[7] R. Elz. Request for Comments 1924: A Compact Representation of IPv6 Addresses. The
Internet Society, Abril 1996.
[8] Bert Hubert et al. Linux Advanced Routing and Traffic Control HOWTO.
Http://www.tldp.org/ HOWTO/Adv-Routing-HOWTO.html.
[9] J. Klensin et al. Request for Comments 1869: SMTP Service Extensions. The Internet
Society, Noviembre 1995.
[10] M. Allman et al. Request for Comments 2428: FTP Extensions for IPv6 and NAT. The
Internet Society, Septiembre 1998.
87
Referencias 88
[11] R. Fielding et al. Request for Comments 2616: Hypertext Transfer Protocol – HTTP/1.1.
The Internet Society, Junio 1999.
[12] R. Hinden et al. Request for Comments 3587: IPv6 Global Unicast Address Format. The
Internet Society, Agosto 2003.
[13] Johnray Fuller. Red Hat Linux 8.0: The Official Red Hat Linux Reference Guide. Red
Hat, 2002. Http://www.redhat.com/.
[14] J. Klensin. Request for Comments 2821: Simple Mail Transfer Protocol. The Internet
Society, Abril 2001.
[17] Richard Petersen. LINUX Manual de Referencia. McGraw-Hill, segunda edición, 2001.
[18] Jonathan B. Postel. Request for Comments 821: Simple Mail Transfer Protocol. The
Internet Society, Agosto 1982.
[19] J. Bound R. Gilligan, S. Thomson y W. Stevens. Request for Comments 3493: Basic
Socket Interface Extensions for IPv6. The Internet Society, Febrero 2003.
[20] S. Thomson y T. Narten. Request for Comments 2462: IPv6 Stateless Address Autocon-
figuration. The Internet Society, Diciembre 1998.
[21] J. Postel y J. Reynolds. Request for Comments 959: File Transfer Protocol (FTP). The
Internet Society, Octubre 1985.
[22] J Myers y M. Rose. Request for Comments 1939: Post Office Protocol - Version 3. The
Internet Society, Mayo 1996.
[23] R. Hinden y S. Deering. Request for Comments 3513: Internet Protocol Version 6 (IPv6)
Addressing Architecture. The Internet Society, Abril 2003.
[24] R. Khare y S. Lawrence. Request for Comments 2817: Upgrading to TLS Within
HTTP/1.1. The Internet Society, Mayo 2000.
Anexos
Anexo A
A continuación se presenta una pauta para habilitar el soporte del protocolo IPv6 en un
equipo GNU/Linux1 .
NETWORKING=yes
HOSTNAME=ipv6
GATEWAY=146.83.206.254
NETWORKING IPV6=yes
1
Particularmente válido en Red Hat 7.3, 8 y 9.
2
Los nombres y números IP son netamente explicativos, bajo ningún caso debe utilizar estos valores, ya
que son de exclusivo uso de la Universidad de La Frontera.
90
Anexo A. Configuración de IPv6 en un equipo GNU/Linux 91
IPV6INIT=yes
Hecho esto se guardan los cambios y se procede a reiniciar el demonio network. Para
ello ejecutar:
/etc/init.d/network restart
Con esto se habilita cada vez que el equipo se inicia, por lo que este proceso no se
vuelve a realizar, a menos que se modifique algo en lso archivos mencionados.
/sbin/ifconfig
fe80::204:75ff:fe81:2645/10
Que es del tipo de autoconfiguración, esto quiere decir que de forma automática se ha asignado
esta dirección. También se ven las direcciones de loopback :
127.0.0.1 en IPv4.
::1/128 en IPv6.
DEVICE=eth0
BOOTPROTO=static
BROADCAST=146.83.206.255
IPADDR=146.83.206.114
NETMASK=255.255.255.0
NETWORK=146.83.206.0
ONBOOT=yes
IPV6INIT=yes
IPV6ADDR="3ffe:8070:100c:b06::1:1/112"
Opcionalmente, si se quieren agregar más direcciones a esta interfaz de red, se usa una
lı́nea especial, como la siguiente:
3
Si hay más tarjetas de red, cambiar el nombre según corresponda.
Anexo A. Configuración de IPv6 en un equipo GNU/Linux 93
Una vez guardados los cambios, es necesario reiniciar el demonio network para que los
cambios sean considerados, para ello se ejecuta /etc/init.d/network restart, luego de
esto ya se cuenta con las direcciones en la interfaz eth0.
Y con esto ya se peude continuar con cualquier configuración que implique el uso de IPv6.
Anexo B
En este anexo se presentan los pasos a seguir para establecer un túnel entre un equipo
local y una nube IPv6 remota.
Para manejar tráfico IPv6 en redes separadas por routers IPv4 se debe recurrir a los
llamados Túneles. A través de ellos se envı́an los paquetes IPv6 encapsulados en paquetes
IPv4 hacia otra red que maneje también el protocolo. Con esto se logra unir nubes IPv6, pero
inmersos en redes del tipo IPv4. Mediante este proceso, el equipo Linux se va a convertir en
un router.
Antes de la creación de los túneles se necesitan varios datos, aquı́ se muestran los datos
a usar en el ejemplo:
1
Con quien se quiere establecer el túnel.
94
Anexo B. Configuración de un túnel IPv6 en un equipo Linux 95
DEVICE=unam
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=132.248.108.254
IPV6ADDR=3ffe:8070:1026::2/64
IPV6 DEFAULTGW=3ffe:8070:1026::1
IPV6 DEFAULTDEV=unam
En él se especifican la dirección IPv4 remota, el extremo local del túnel, el gateway por defecto
y el dispositivo por defecto. Una vez guardado esto, se ingresan los siguientes comandos en
la consola:
Con esto se crea un enlace simbólico hacia los archivos donde están las funciones necesa-
rias para subir y bajar el túnel. Hecho esto, se reinicia el network con el correspondiente
/etc/init.d/network restart. Ya se tiene un túnel cuyo nombre será unam. Podemos hacer
un ifconfig y se verá el dispositivo del túnel:
Para que una red de redes funcione hace falta que los routers tengan mapas (totales o
parciales) de la red. Estos mapas pueden generarse manualmente mediante rutas estáticas o
automáticamente mediante protocolos de ruteo.
Un sistema autónomo es una red o conjunto de redes controladas por una única entidad
administrativa. Cada sistema autónomo decide cómo manejar sus redes internas independien-
temente de cualquier otro, y se conecta a otros sistemas autónomos por medio de protocolos
de ruteo externos. El protocolo de ruteo externo más común es el BGP2 .
2
Se recomienda ver RFC 2545.
Anexo B. Configuración de un túnel IPv6 en un equipo Linux 97
Para el ruteo del tráfico de la red se puede usar el administrador de protocolos de ruteo
Zebra3 . versión 0.93b4 o superior y el protocolo BGP-45 .
Interesan el hostname, las claves y las lı́neas que comienzan con ipv6. Mediante la lı́nea
ipv6 nd send-ra se le está diciendo a Zebra que haga anuncio de router 6 y con ipv6 nd
3
Más información en www.zebra.org
4
Actualmente Red Hat ha decidido incluir Quagga en reemplazo de zebra, pero es básicamente zebra, pero
desarrollado por terceros.
5
Border Gateway Protocol.
6
Es decir que anuncia la red correspondiente.
Anexo B. Configuración de un túnel IPv6 en un equipo Linux 98
!
! Zebra configuration saved from vty
! 2003/06/26 08:20:21
!
hostname bgpd
password <clave−1>
enable password <clave−2>
!
log file /var/log/zebra/bgpd.log
!
!
router bgp 45348
neighbor 3ffe:8070:1026::1 remote−as 278
neighbor 3ffe:8070:1026::1 interface unam
neighbor 3ffe:8070:1026::1 description TunelUNAM
!
address−family ipv6
network 3ffe:8070:1026::/48
neighbor 3ffe:8070:1026::1 activate
exit−address−family
!
line vty
!
En él se aprecian las configuraciones de las redes involucradas en el ruteo, primero se define
el protocolo a usar con su ASN, extremo remoto del túnel, nombre de la interfaz y una
descripción.
7
Aparecioron recién en la última versión de zebra. En versiones anteriores difieren totalmente las directivas
de configuración.
Anexo B. Configuración de un túnel IPv6 en un equipo Linux 99
Con esto ya basta para que se realice el trabajo de ruteo, ahora sólo se necesita agregar
clientes a esta red que ya cuenta con un router BGP-4, y por lo tanto, conectado al mundo
IPv6. Siempre y cuando claro el host remoto tenga las configuraciones adecuadas.
Anexo C
Una vez habilitado el protocolo, se agregan las direcciones, prefijo y router por defecto.
Paara esto se deben ejecutar los siguientes comandos en una ventana de DOS.
1
Se puede encontrar en http://msdn.microsoft.com/downloads/sdks/platform/tpipv6.asp.
100
Anexo C. Habilitación de IPv6 en Windows 2000 101
través de la interfaz correspondiente, en este caso 4. Pero, al hacerlo de esta forma se pierde
la configuración cuando se reinicie el equipo.
La manera de hacer permanente esta configuración es crear un archivo con extensión .cmd
que contenga estas instrucciones y posteriormente añadirlo en el Programador de Tareas
para que sea ejecutado cada vez que se inicia el equipo. Una vez hecho esto ya está configurado
el equipo correctamente para comenzar a usar el protocolo.
Están disponibles por ejemplo las herramientas comunes como ping6, tracert6, etc.
Por el momento estas son las posibilidades que presenta MS Windows, cosa que esta cam-
biando en las últimas versiones, como Windows Server 2003. Cada vez se están incorporando
más opciones de configuración, y se está tratando a IPv6 como cualquier otro protocolo.
Anexo D
Archivos de Configuración
En este anexo se presentan los diferentes códigos fuente scripts y archivos de configuración
desarrollados por los autores y que se nombraron a lo largo del desarrollo de esta tesis.
D.1.1. ipv6.ufro.cl.zone
$TTL 86400
@ IN SOA ipv6.ufro.cl. root.ipv6.ufro.cl. (
2003081503 ; serial
21600 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; default TTL
IN NS ns.ipv6.ufro.cl.
IN A 146.83.206.114
IN AAAA 3ffe:8070:1026:1::1
IN A6 0 3ffe:8070:1026:1::1
IN MX 10 mail.ipv6.ufro.cl.
102
Anexo D. Archivos de Configuración 103
ns IN CNAME ipv6.ufro.cl.
www IN CNAME ipv6.ufro.cl.
mail IN CNAME ipv6.ufro.cl.
ftp IN CNAME ipv6.ufro.cl.
ieee IN CNAME ipv6.ufro.cl.
ice IN CNAME ipv6.ufro.cl.
pablo IN CNAME ipv6.ufro.cl.
renato IN CNAME ipv6.ufro.cl.
pedro IN CNAME ipv6.ufro.cl.
tesis IN CNAME ipv6.ufro.cl.
cesar IN CNAME ipv6.ufro.cl.
pitcher IN A 146.83.206.112
IN AAAA 3ffe:8070:1026:1::2
IN A6 0 3ffe:8070:1026:1::2
IN MX 10 mail.ipv6.ufro.cl.
chano IN A 146.83.206.113
IN AAAA 3ffe:8070:1026:1::3
IN A6 0 3ffe:8070:1026:1::3
IN MX 10 mail.ipv6.ufro.cl.
torobayo IN A 146.83.206.115
IN AAAA 3ffe:8070:1026:1::5
IN A6 0 3ffe:8070:1026:1::5
IN MX 10 mail.ipv6.ufro.cl.
nativo IN A 146.83.206.27
IN AAAA 3ffe:8070:1026:1::7
IN A6 0 3ffe:8070:1026:1::7
IN MX 10 mail.ipv6.ufro.cl.
cmcc IN A 200.10.22.110
IN AAAA 3ffe:8070:1026:2::1
IN A6 0 3ffe:8070:1026:2::1
D.1.2. 146.83.206.zone
$TTL 86400
@ IN SOA ipv6.ufro.cl. root.ipv6.ufro.cl. (
2003081201 ; serial
21600 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; default TTL
Anexo D. Archivos de Configuración 104
IN NS ns.ipv6.ufro.cl.
D.1.3. 3ffe.8070.1026.zone
$ORIGIN \[x3ffe80701026/48].ip6.arpa.
$TTL 86400
@ IN SOA ipv6.ufro.cl. root.ipv6.ufro.cl. (
2003081201 ; serial
21600 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; default TTL
IN NS ns.ipv6.ufro.cl.
D.1.4. 3.f.f.e.8.0.7.0.1.0.2.6.zone
$ORIGIN 6.2.0.1.0.7.0.8.e.f.f.3.ip6.int.
$TTL 86400
@ IN SOA ipv6.ufro.cl. root.ipv6.ufro.cl. (
2003081201 ; serial
21600 ; refresh
3600 ; retry
604800 ; expire
86400 ) ; default TTL
IN NS ns.ipv6.ufro.cl.
MASQUERADE DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Anexo E
E.1. /etc/httpd/conf/httpd.conf
# httpd.conf − configuration for the Apache web server
# Section 1: Global Environment
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile "/var/run/httpd.pid"
TimeOut 300
KeepAlive false
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 100
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
109
Anexo E. Archivo de configuración de httpd 110
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<IfModule perchild.c>
NumServers 5
StartThreads 5
MinSpareThreads 5
MaxSpareThreads 10
MaxThreadsPerChild 20
MaxRequestsPerChild 0
</IfModule>
Listen 80
Include conf.d/∗.conf
LoadModule access module modules/mod access.so
LoadModule auth module modules/mod auth.so
LoadModule auth anon module modules/mod auth anon.so
LoadModule auth dbm module modules/mod auth dbm.so
LoadModule auth digest module modules/mod auth digest.so
LoadModule include module modules/mod include.so
LoadModule log config module modules/mod log config.so
LoadModule env module modules/mod env.so
LoadModule mime magic module modules/mod mime magic.so
LoadModule cern meta module modules/mod cern meta.so
LoadModule expires module modules/mod expires.so
LoadModule headers module modules/mod headers.so
LoadModule usertrack module modules/mod usertrack.so
LoadModule unique id module modules/mod unique id.so
LoadModule setenvif module modules/mod setenvif.so
LoadModule mime module modules/mod mime.so
LoadModule dav module modules/mod dav.so
LoadModule status module modules/mod status.so
LoadModule autoindex module modules/mod autoindex.so
LoadModule asis module modules/mod asis.so
LoadModule info module modules/mod info.so
LoadModule cgi module modules/mod cgi.so
LoadModule dav fs module modules/mod dav fs.so
LoadModule vhost alias module modules/mod vhost alias.so
LoadModule negotiation module modules/mod negotiation.so
LoadModule dir module modules/mod dir.so
LoadModule imap module modules/mod imap.so
LoadModule actions module modules/mod actions.so
LoadModule speling module modules/mod speling.so
LoadModule userdir module modules/mod userdir.so
LoadModule alias module modules/mod alias.so
LoadModule rewrite module modules/mod rewrite.so
#Section 2: ’Main’ server configuration
User nobody
Anexo E. Archivo de configuración de httpd 111
Group nobody
ServerAdmin root@ipv6.ufro.cl
ServerName ipv6.ufro.cl
UseCanonicalName on
DocumentRoot "/var/www/html"
<IfModule mod userdir.c>
UserDir "enable pablo mythos cesar khyle pedro"
UserDir public html
</IfModule>
DirectoryIndex
AccessFileName .htaccess
<Files ˜ "ˆ\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig "/etc/mime.types"
DefaultType text/plain
<IfModule mod mime magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostNameLookups Off
ErrorLog "/var/log/httpd/error log"
LogLevel warn
LogFormat " %h %l %u %t \" %r\" %>s %b \" %{Referer}i\" \" %{User−Agent}i\"" combined
LogFormat " %h %l %u %t \" %r\" %>s %b" common
LogFormat " %{Referer}i −> %U" referer
LogFormat " %{User−agent}i" agent
CustomLog logs/access log combined
ServerSignature on
Alias /icons/ "/var/www/icons/"
Alias /manual "/var/www/manual"
<IfModule mod dav fs.c>
DAVLockDB /var/lib/dav/lockdb
</IfModule>
ScriptAlias /cgi−bin/ "/var/www/cgi−bin/"
<IfModule mod cgid.c>
</IfModule>
IndexOptions FancyIndexing VersionSort NameWidth=∗
AddIconByEncoding (CMP,/icons/compressed.gif) x−compress x−gzip
AddIconByType (TXT,/icons/text.gif) text/∗
AddIconByType (IMG,/icons/image2.gif) image/∗
AddIconByType (SND,/icons/sound2.gif) audio/∗
AddIconByType (VID,/icons/movie.gif) video/∗
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
Anexo E. Archivo de configuración de httpd 112
NameVirtualHost ∗:80
# Default Virtual Host
<VirtualHost ∗:80>
Anexo E. Archivo de configuración de httpd 114
ServerName ipv6.ufro.cl
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
# Virtual host for IEEE website
<VirtualHost ∗:80>
ServerName ieee.ipv6.ufro.cl
DocumentRoot /home/pablo/public html/ieee
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
# Virtual host for ICE Website
<VirtualHost ∗:80>
ServerName ice.ipv6.ufro.cl
DocumentRoot /home/ice/public html/
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
# Virtual host for Tesis Website
<VirtualHost ∗:80>
ServerName tesis.ipv6.ufro.cl
DocumentRoot /var/www/html/tesis
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
# Virtual host for pablo’s homepage
<VirtualHost ∗:80>
ServerName pablo.ipv6.ufro.cl
DocumentRoot /home/pablo/public html/
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
# Virtual host for renato’s homepage
<VirtualHost ∗:80>
ServerName renato.ipv6.ufro.cl
DocumentRoot /home/mythos/public html/
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
Anexo E. Archivo de configuración de httpd 115
HostNameLookups off
</VirtualHost>
# Virtual host for pedro’s homepage
<VirtualHost ∗:80>
ServerName pedro.ipv6.ufro.cl
DocumentRoot /home/pedro/public html/
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
# Virtual host for cesar’s homepage
<VirtualHost ∗:80>
ServerName cesar.ipv6.ufro.cl
DocumentRoot /home/cesar/public html/
ServerSignature on
DirectoryIndex index.php index.html index.htm index.shtml
LogLevel warn
HostNameLookups off
</VirtualHost>
<Directory "/">
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options Indexes Includes FollowSymLinks
AllowOverride None
Allow from from all
Order allow,deny
</Directory>
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Allow from from all
Order allow,deny
</Directory>
<Directory "/var/www/cgi−bin">
Options ExecCGI
AllowOverride None
Allow from from all
Order allow,deny
</Directory>
<Directory "/home/∗/public html">
Options Indexes
AllowOverride all
</Directory>