Concepto

Protocolo desarrollado por Microsoft, que trabaja dentro del protocolo PPP para conexiones punto a punto principalmente en redes remotas. Es un túnel del tipo voluntario que trabaja en arquitecturas cliente-servidor.

Antes de entrar en el protocolo PPTP en detalle explicaremos brevemente cada uno de los protocolos que intervienen en el PPTP cumpliendo diversas tareas.

Protocolos utilizados por PPTP

LCP

Protocolo de control de enlace. Tiene la función de darnos la posibilidad de actuar sobre variedad de ambientes, se utiliza el protocolo LCP para la configurar, mantener y finalizar la conexión.

LCP, negocia los formatos de encapsulación, tamaño de los paquetes a transmitir, calidad del medio de transmisión y negociación del los protocolos a utilizar.

NCP

Protocolo de configuración de red. Se utiliza para la configuración de protocolos de red que serán utilizados. Una vez realizada esta acción los datagramas podrán ser enviados por el medio físico.

El protocolo de configuración más utilizado es el Protocolo de Control (IPCP). Se encarga de la configuración, activación y desactivación de los módulos de IP en ambos extremos.

GRE

Encapsulación genérica de ruteo. Este protocolo encapsula un paquete determinado dentro de un protocolo de transporte. En el caso más normal el sistema tiene un paquete que debe ser encapsulado y ruteado. Este paquete que llamaremos Payload se encapsula dentro del paquete GRE que también puede incluir la ruta del mismo. El resultado de esta acción es un que el protocolo de transporte toma el paquete GRE y lo encapsula para su transmisión.

PPP

Protocolo punto a punto: como el protocolo PPTP se basa esencialmente en este protocolo se hará una breve mención del mismo explicando someramente la forma de trabajo.

Este protocolo tiene como función la de proporcionar un método que sea estándar para el transporte de paquetes Multiprotocolo. Este transporte se realiza entre dos pares que están a ambos extremos de la conexión. Los mismos nos proveen de operación bidireccional y full-duplex.

Tiene tres componentes:

1. Un mecanismo para encapsular paquetes multiprotocolo y manejar la detección de errores.

2. Un protocolo de control de enlace (LCP) para establecer, configurar y probar la conexión de datos.

3. Una familia de protocolos de control de red (NCP) para establecer y configurar los distintos protocolos de nivel de red.

Formato del paquete PPP

Indicador Inicio
Dirección
Control
Protocolo
Información
CRC
Indicador Fin
1 Byte 1 Bytes 1 Bytes 1 o 2 Bytes Variable 2 o 4 Bytes 1 Byte

Indicador Inicio: Indicador estándar de inicio de paquete de HDLC (0111110).

Dirección: Se llena con 11111111 para indicar que todas las estaciones de trabajo deben aceptar el paquete.

Control: Valor predeterminado 00000011, esto indica que es un paquete sin número.

Protocolo: Indica que paquete esta en la parte de la información.

Información: Carga útil del paquete.

CRC: Control de redundancia cíclica.

Indicador Fin: Indicador de fin de paquete, con un valor estándar 01111110.

Los tamaños de los campos del paquete se pueden negociar por medio del LCP, también de esta forma obviar los campos de Dirección y control.

PAC

Dispositivo conectado a una o mas líneas PSTN o ISDN con la capacidad de operar con PPP y manejo del protocolo PPTP. El PAC solo necesita implementar TCP/IP para el paso del trafico hacia una o mas PNS. También puede trabajar con túneles en protocolos no IP.

PNS

Un PNS esta preparado para operar en un servidor de propósito general. El PNS maneja del lado del servidor el protocolo PPTP. Como el PPTP cuenta con TCP/IP y es independiente de la interfaz de hardware utilizada, el PNS puede utilizar cualquier combinación de interfaces IP incluyendo periféricos de LAN y WAN.

ICMP

Protocolo de control de errores en Internet. Este protocolo se complementa con el IP. Se utilizan este tipo de mensajes para el aviso a los host de posibles anomalías en el ruteo de los paquetes.

IGMP

Protocolo de administración del grupo Internet. Este protocolo es parte del ICMP descrito anteriormente, IGMP se utiliza para intercambiar información acerca del estado de pertenencia entre routers IP que admiten multidifusión y miembros de grupos de multidifusión.

Funcionamiento de PPTP

Definición del protocolo

La función de este protocolo es crear un túnel dentro de una red IP, para lograr esta tarea utiliza el protocolo GRE para la encapsulación de los paquetes PPP.

PPTP nos permite separar las funciones de un NAS utilizando una arquitectura cliente-servidor, estas funciones se dividen entre el PAC y el PNS.

La conexión con el servidor de VPN se puede realizar por medio de un ISP o bien una red con soporte TCP/IP las funciones básicas son las siguientes:

Un Protocolo de control de conexión (LCP) que se encarga de establecer, configurar y testear la conexión.

Participación en la autenticación en protocolo PPP.

Agregación de canales y encapsulado de paquetes de múltiples protocolos.

Una familia de protocolos de control de red (NCP) para el establecimiento y la configuración de distintos protocolos de red.

Ruteo y puentes multiprotocolos a través de interfaces NAS.

El protocolo PPTP divide estas tareas entre el PAC y el PNS. El PAC es el responsables de las tareas 1, 2 y posiblemente la 3. El PNS en cambio es responsable de las tareas 4, 5 y 6 y quizás de la 3.

Luego de que se crea el túnel, un control de conexión debe ser establecido entre ellos. El control de conexión se envía en forma de paquetes TCP en una sesión TCP es quien se encarga del establecimiento, control y finalización de los túneles, este control se crea en el puerto 1723. También entre el par PAC-PNS encontramos para el encapsulado de los paquetes el protocolo GRE.

Mensajes de control

Administración de Control de Conexión

Start-Control-Connection-Request Mensaje utilizado para establecer el control de conexión entre el par PNS-PAC
Start-Control-Connection-Reply Mensaje de respuesta al mensaje anterior.
Stop-Control-Connection-Request Mensaje que indica de un par del PNS-PAC al otro que la conexión debe ser cerrada.
Stop-Control-Connection-Reply Mensaje de respuesta al mensaje anterior.
Echo-Request Mensaje utilizado para verificar que la conexión siga activa.
Echo-Reply Mensaje de respuesta al mensaje anterior.

 

Administración de Llamada

Outgoing-Call-Request Mensaje enviado desde el PNS hacia el PAC para indicar que hay una comunicación para el PAC a ser establecida.
Outgoing-Call-Reply Mensaje de respuesta del PNS hacia el PAC. Provee información al PNS acerca de los parámetros utilizado en la comunicación.
Incoming-Call-Request Mensaje enviado por el PAC al PNS para indicar que una llamada entrante debe ser establecida por el PAC. Provee al PNS los parámetros de la llamada.
Incoming-Call-Reply Mensaje de respuesta al mensaje anterior, Indica el resultado de la petición, también proporciona información al PAC sobre el tamaño de los datagramas.
Incoming-Call-Connected Mensaje de respuesta a mensaje anterior, provee información al PNS acerca de la información que envía en esa sesión.
Call-Clear-Request Mensaje que se envía del PNS al PAC para indicar el corte de una llamada en particular.
Call-Disconnect-Notify Mensaje que se envía del PAC al PNS para informar de la desconexión de una llamada sea cual fuere la causa.

 

Reporte de error

WAN-Error-Notify Mensaje enviado del PAC al PNS para indicar un error en las WAN.

 

Control de sesión PPP

Set-Link-Info Mensaje enviado del PNS al PAC para negociar el conjunto de configuraciones de PPP. Esta configuración puede tener variaciones en el tiempo que dure la sesión.

Forma de Creación y Trabajo del túnel

La conexión puede ser creada por el PNS o por el PAC, si bien no puede el protocolo PPTP distinguir entre el PAC y el PNS si puede hacerlo entre el emisor y el receptor. El emisor es quien abre la primera conexión TCP. Los paquetes no son transportados directamente por el túnel, se encapsulan en paquetes GRE que a su vez son encapsulados en IP. Este último será el que contenga la IP del servidor PPTP.

Escenario de PPTP

El escenario que estudiaremos es el siguiente:

El cliente por medio de un ISP se conecta a la VPN corporativa. Se utiliza el protocolo PPP para la conexión.

Luego se establece la conexión sobre la línea PPP ya configurada que tendrá el objetivo de la creación del túnel entre el cliente y el servidor PPTP de la red privada. Todos los datagramas se envían en forma de paquetes PPP encapsulados dentro del protocolo IP.

Los paquetes no llegan directamente del cliente a la estación de trabajo destino de la corporación sino que son recogidos por el servidor PPTP. Este servidor desencapsula los paquetes y los transfiere al destino que corresponde.

Si los paquetes se envían desde la estación de trabajo hacia el cliente son tomados por el servidor PPTP, encapsulados y de ahí enviados al destino final.

En el Anexo A encontraremos una captura hecha en laboratorio con al explicación respectiva de configuración y el análisis de la misma.

En la figura 14 podemos observar como se crea el enlace y como se trata a los paquetes que circulan por el enlace.

Túnel PPTP

Figura 14

Jue, 09/11/2006 - 19:49