Boletín No. 72
1o. de mayo de 2019
SERVIDOR PROXY WEB DE IPV6 A IPV4 PARA INSTITUCIONES ACADÉMICAS
M. en C. José David Ortega Campos
Ing. Miguel Angel Yepez Vivas
M. en C. Marlon David González Ramírez
Dr. Rolando Flores Carapia
Dr. Víctor Manuel Silva García
Instituto Politécnico Nacional
Centro de Innovación y Desarrollo Tecnológico en Cómputo
(IPN-CIDETEC)
Resumen
En el presente trabajo se muestra el desarrolló un servicio de red que utiliza un servidor proxy web con protocolos IPv6 e IPv4, programado en lenguaje php y la herramienta de desarrollo de programación Netbeans. El servicio contempla el uso de los protocolos IPv4, IPv6 y HTTP los cuales son indispensables para establecer una comunicación entre cliente y servidor, permitiendo realizar la transferencia de información a través de internet. Se programaron los sockets de conexión, el control de usuarios, filtrado de contenido, modificación del contenido, y reducción del tráfico.
I. Introducción
El crecimiento exponencial del internet trae como consecuencia el agotamiento de direcciones IPv4, esto ha sido una preocupación desde los años 80, este factor impulsa a la creación de nuevas tecnologías, como la de IPv6. A medida que surge este cambio en las direcciones IP, se ven afectados todos los dispositivos que interactúan con IPv4, sin embargo la incompatibilidad entre IPv4 e IPv6 es un problema para el cambio de transición entre estas tecnologías.
Una parte importante son los servicios de internet que se ven afectados por este cambio de protocolo como lo es el servidor proxy web, además de que es un elemento primordial para las redes de computadoras, funciones como acelerador de tráfico, filtrado de páginas web o caché de contenido web. Por tal motivo se necesita un servidor proxy web que acepte los protocolos IPv6 e IPv4 y en este caso para las instituciones académicas que no cuentan con la infraestructura necesaria para migrar a un direccionamiento IPv6 o el equipo con el que contaban no implementa este nuevo servicio y/o el software no es escalable, entonces se ven en la necesidad de mantener su infraestructura con IPv4.
2 Servidor proxy web
Un servidor proxy es un programa (software) o dispositivo (hardware) que sirve para permitir y controlar el acceso a Internet a todos los equipos de una organización cuando sólo se puede disponer de un único equipo conectado, esto es, una única dirección IP.
El servidor proxy web es un programa que está diseñado para transferir hipertextos, páginas web o páginas HTML (HyperText Markup Language), textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música. El programa implementa el protocolo HTTP (HyperText Transfer Protocol) que pertenece a la capa de aplicación del modelo OSI. El término también se emplea para referirse al equipo que ejecuta el programa.
El Servidor web se ejecuta continuamente en una computadora, manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente, mediante una página web que se exhibirá en el navegador o mostrando un mensaje si se detectó algún error.
3 Diseño del prototipo
Todo servidor sigue el esquema cliente-servidor, el cliente es el navegador web quien solicita la página web al servidor proxy, se establece la comunicación mediante los sockets de conexión entre el servidor proxy con el servidor web que aloja la página web, por ejemplo si la solicitud se hace desde un cliente con dirección IPv4 el servidor proxy solicita la página web en IPv4, si es el caso de una dirección IPv6 el proxy solicita el servicio de IPV6 al servidor web siempre y cuando este cuente con infraestructura para ambos protocolos, por último el servidor web regresa la respuesta al servidor proxy web mediante cabeceras del protocolo HTTP que llegan hasta el cliente para visualizar el sitio solicitado.
4 Desarrollo
4.1 Configuración IPv4 e IPv6 de apache web en xampp
XAMPP es un servidor independiente de software libre que integra el servidor apache web, base de datos MySQL y los intérpretes para lenguajes script como php y perl. Se utiliza para el proyecto del servidor proxy web, la herramienta del servidor web apache del proyecto XAMPP.
El servidor web apache es una herramienta importante para este proyecto, siendo el compilador del código php y a la vez funcionando como mediador en la conexión entre IPv4 e IPv6 en la configuración dual stack. La versión 2.0 del servicio se configura en un sistema operativo ubuntu 12.04 en modo dual stack (doble pila), como método de traducción entre las versiones de las direcciones IP, las direcciones IP o identificadores de red estáticos, asignados a esta configuración son las siguientes:
- IPv4 se asignó la 148.204.67.166.
- IPv6 se asignó la 2001:db8:290c:1291::3
La asignación de ambos identificadores se implementa en el archivo de configuración httpd.conf del servidor apache, la ruta completa para configurar este archivo en ubuntu 12.04 es la siguiente “/opt/lampp/etc/httpd.conf” sin comillas, usando la función “nano” propia del sistema operativo.
Dentro del archivo httpd.conf se ubica la línea Listen *:80, ubicada la línea Listen *:80 se agrega debajo la dirección 148.204.67.166 para IPv4 y 2001:db8:290c:1291::3 para IPv6 acompañadas de la palabra Listen, con esto queda configurado el servidor apache en modo dual stack aceptando direcciones IPv4 e IPv6, se reinicia el servidor con el fin de cargar la nueva configuración.
4.2 Interfaz gráfica
La interfaz del servidor web se estructura con las funciones barra de dirección URL, quitar script, aceptar cookies, mostrar imágenes, Encriptar URL, etiquetas meta, título del sitio web, cookies de sesión, mostrar cookies, inicio y por último ventana nueva. En la figura 1 muestra la interfaz gráfica con sus funciones.
Figura 1. Interfaz gráfica del servidor |
5 Pruebas
Las pruebas realizadas al servidor proxy web se generaron en un ambiente de red local del CIDETEC y directamente en internet accediendo algunas páginas web, las características de los equipos utilizados para las pruebas se describen a continuación: Equipo 1: Computadora portátil HP Pavilion g4-1371la. Sistema operativo Ubuntu 12.04, procesador acelerado AMD A4-3305M a 1,9 GHz hasta 2,5 GHz (1 MB de caché de nivel 2), memoria SDRAM DDR3 de 4GB, gráficos AMD Radeon HD 6480G Discrete-Class, disco duro de 500GB (5400 RPM) Equipo 2: Computadoras armadas laboratorio 1 CIDETEC Sistema operativo Windows 7 Professional x64 Service Pack 1, procesador Intel Core i5 a 3.30GHz, memoria RAM DDR3 de 16GB, disco duro de 500GB (5400 RPM)
5.1 Conexión y pruebas con IPv4
Las direcciones IPv4 asignada al servidor es la 148.204.67.166, para los clientes se asignaron la 148.204.67.163 y la 148.204.67.164. Se establece la conexión entre el servidor y los clientes mediante el navegador web, el cliente teclea la dirección IPv4 del servidor en el navegador web (no es necesaria la sintaxis “http://”)
La dirección completa será “148.204.67.166/Proxy64”, se escribe en el navegador web chrome de cada cliente, la palabra “Proxy64” hace referencia a la ubicación del script del servidor proxy web que se encuentra ejecutando dentro del servidor web apache 2.0.
Ingresando al servidor se mostrará la interfaz gráfica descrita anteriormente (figura 1) dentro de la interfaz se realiza la primera prueba ingresando al sitio ww.tvazteca.com, agregándolo en la barra de dirección URL del servidor, seleccionando las funciones quitar scripts, aceptar cookies, mostrar referencias, mostrar imágenes, encriptar URL y etiquetas meta.
Los resultados obtenidos se ven en la figura 3, en esta consulta al ingresar mediante el servidor proxy, la dirección IP del cliente no es visible para el sitio que se visita, las imágenes seleccionadas no se muestran, los scripts que se ejecutan con funciones JavaScript no se ejecutan, se encripta la URL del sitio visitado.
Figura 2.Pagina Web “tzazteca” Original | Figura 3.Pagina web “tzazteca” utilizando el servidor proxy |
5.1 Conexión y pruebas con IPv6
La IPv6 asignada al servidor es la 2001:db8:290c:1291::3 para los clientes se asignaron la 2001:db8:290c:1291::4 y la 2001:db8:290c:1291::5. Se establece la conexión entre el servidor y los clientes mediante el navegador web, en el cual el cliente teclea la dirección IPv6 del servidor en el navegador web (no es necesaria la sintaxis “http://”)
Se escribe la dirección: “[2001:db8:290c:1291::3]/Proxy64” en el navegador web y se configura de la misma forma que con la prueba para IPv4. Para este caso se ingresa a la página web de cisco “www.cisco.com” que cuenta con sitio en IPv6, en la figura 5 se observan los resultados, la dirección IP del cliente no es visible para el sitio que se visita, las imágenes seleccionadas no se muestran, los scripts que se ejecutan con funciones JavaScript no se ejecutan, se encripta la URL del sitio visitado.
Figura 4.Pagina Web “cisco” Original | Figura 5.Pagina web “cisco” utilizando el servidor proxy |
5.1 Obtención de resultados IPv6-IPv4 con sniffer
Se realizó una captura de pantalla a la información arrojada por el sniffer (utilizando wireshark) de la prueba con IPv6, la conexión establecida con el sitio web arrojaba una IPv4, como al detectar que era una dirección IPv6 cambio el acceso desde el servidor web para atender la solicitud enviada por el proxy, en la figura 6 se muestra en color morado la aceptación de la petición realizada al sitio y entregada al proxy con éxito en IPv6.
Figura 6. IPv4-IPv6 |
6. Conclusiones
Se usó el método de conexión mediante sockets para establecer la comunicación entre cliente y servidor, y también el protocolo HTTP para obtener sus cabeceras y enviar los datos correspondientes. La función principal del proxy, como se ve en la figura 6, es la correcta interacción entre el protocolo IPv4 e IPv6 para que el servidor atienda las solicitudes sin importar de que versión del protocolo se trate.
Se concluye con el desarrollo del servicio de un proxy web para instituciones académicas que trabaja con protocolos IPv6 e IPv4, creado con un lenguaje orientado a objetos php en ambiente web, con hojas de estilo embebido en código HTML y JavaScript como apoyo en la creación de los métodos de encriptación de la URL, utilizando sockets para la conexión y cabeceras del protocolo HTTP para envió de datos
Referencias
- Autor (2014) Apache software fundation. Recuperado de: https://httpd.apache.org
- C. E. Gómez and L. E. Sepúlveda (2010) Análisis de configuraciones de servidores proxy caché, Informe Final. Universidad del Quindío
- C. E. Gómez and L. E. Sepúlveda(2012) “Mejorando la calidad de servicio a través de configuraciones adecuadas de servidores proxy caché”. / Primer Seminario Taller Latinoamericano de Instrumentación, Control y Telecomunicaciones SICOTEL. Universidad de Quindío
- Comer, D. E(1991) Internetworking with TCP/IP, Vol. I: Principles/Protocols and Architecture, 2nd ed. Prentice Hall Inc
- Guo, Y., Hiranaka, Y.(1996) Communication Buffer Control on Proxy Server. No. 96-4-9. 4th Workshop of IPSJ(N-E Br.)
- J. Kurose(2010) Computer Networking: A top down approach/5th Edition. Massachussets: Addison Wesley
- R. Ayani(2002) “Cost-based Proxy Caching”. Proceedings of the International Symposium on Distributed Computing and Applications to Business/Engineering and Science, pp. 218-222. Wuxi
- T. Berners-Lee(1996) RFC 1945./Hypertext Transfer Protocol -- HTTP/1.0