Concepto
Este protocolo posee un mecanismo para encapsulado que permite el transporte de diferentes protocolos a través de un enlace punto a punto provisto por un NAS con ISDN, ADSL, PTSN en el extremo final. Combina las mejores características de los protocolos PPTP y L2F.
Permite trabajar con distintos protocolos como X25, ATM y también capaz de trabajar con IPX o NETBEUI, limitación que si tiene L2F. Puede ser utilizado sobre una WAN con Frame Relay sin necesidad de IP.
Requiere que haya conectividad entre los extremos del túnel orientada a paquetes. Puede ser utilizado en una red IP utilizando UDP.
L2TF permite la creación de múltiples túneles entre dos puntos. Además de la posibilidad de crear distintos túneles para distintas QoS.
Funcionamiento del L2TF
Formato del paquete
Formato general
L2TF utiliza dos formatos de paquetes dependiendo de que mensajes tenga que enviar. Estos son los mensajes de control y los mensajes de datos. Los primeros se utilizan para la manutención, creación y eliminación de túneles y llamadas.
Los mensajes de datos se encapsulan en paquetes PPP que serán enviados por el túnel. Los mensajes de control en cambio utiliza un canal L2TF para garantizar la entrega de los mensajes. En el caso de los datos la entrega no esta garantizada y en caso de que los mensajes se pierdan no serán reenviados.
Frame PPP | |
Mensaje de datos L2TF | Mensaje de control L2TF |
Canal de Datos L2TF (no fiable) | Canal de Control L2TF (fiable) |
Formato detallado
0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 |
T | L | X | X | S | X | O | P | X | X | X | X | Version | Length (opt) | ||||||||||||||||||
Tunnel id | Session id | ||||||||||||||||||||||||||||||
Ns (opt) | Nr (opt) | ||||||||||||||||||||||||||||||
Offset Size (opt) | Offset Pad... (opt) |
El bit T indica el tipo de mensaje que es. Si esta seteado en 0 es un mensaje de datos y si tiene un 1 es un mensaje de control.
Si el bit L esta seteado en 1 el campo Length estará presente. Este bit estará seteado en 1 si es un mensaje de control.
Los bits marcados con X están reservados para futuras extensiones.
El bit S que es el de secuencia estará seteado en 1 si los campos Ns y Nr están presentes.
Si el bit O que es de Offset esta seteado en 1 el campo Offset Size está presente, estará en 0 para mensajes de control.
Si el bit P esta seteado en 1 indica que este mensaje debe recibir trato preferencial para la cola de espera y la transmisión. Estará seteado a 0 en los mensajes de control.
Ver: Indica la versión del mensaje del encabezado del mensaje L2TF. Descarta los paquetes con un campo Ver desconocido.
Length: Indica el tamaño del paquete en octetos.
Tunnel ID: Indica el identificador del control de conexión. Es el valor ID correspondiente al receptor y no al emisor del mensaje.
Session ID: Identificador de la sesión dentro del túnel.
Ns: Indica el número de secuencia para los datos o mensajes de control. Se inicia en 0 y se incrementa por unidades para cada mensaje enviado.
Nr: Indica el número de secuencia esperado en el próximo mensaje de control que recibirá. En mensajes de datos estará reservado y en caso de que el bit S este seteado en 1 el receptor ignorará este campo.
Offset Size: Si esta presente especifica el número de octetos luego del encabezado L2TF en el que comenzará el payload de datos.
Mensajes de L2TF
Administración de control de conexión
0 (reserved) | Valor reservado. |
1 (SCCRQ) Start-Control-Connection-Request | Mensaje de pedido de inicio de conexión. |
2 (SCCRP) Start-Control-Connection-Reply | Mensaje de respuesta de inicio de conexión. |
3 (SCCCN) Start-Control-Connection-Connected | Mensaje de respuesta al mensaje anterior. Completa el establecimiento del túnel. |
4 (StopCCN) Stop-Control-Connection-Notification | Mensaje que se envía para el cierre de una conexión. |
5 (reserved) | Valor reservado. |
6 (HELLO) Hello | Mensaje utilizado para la verificación de la existencia del otro extremo. |
Administración de llamadas
7 (OCRQ) Outgoing-Call-Request | Mensaje enviado del LNS al LAC para indicar que hay una llamada saliente. |
8 (OCRP) Outgoing-Call-Reply | Mensaje del LAC al LNS en respuesta al OCRQ. |
9 (OCCN) Outgoing-Call-Connected | Mensaje de control como respuesta al OCRP. |
10 (ICRQ) Incoming-Call-Request | Mensaje enviado del LAC al LNS cuando una llamada entrante es detectada. Es el primero de los mensajes para el establecimiento de la sesión. |
11 (ICRP) Incoming-Call-Reply | Mensaje enviado del LNS al LAC en respuesta al mensaje anterior. |
12 (ICCN) Incoming-Call-Connected | Mensaje de control como respuesta al ICRP, indica que el mensaje fue aceptado y el establecimiento de la sesión. |
13 (reserved) | Valor reservado. |
14 (CDN) Call-Disconnect-Notify | Mensaje de control enviado del LAC o el LNS para la cancelación de una sesión en el túnel. |
Reportes de error
15 (WEN) WAN-Error-Notify | Mensaje enviado del LAC o LNS para indicar un error en la WAN. |
Control de sesión PPP
16 (SLI) Set-Link-Info | Mensaje utilizado por el LAC o LNS para la negociación del PPP. |
Forma de creación y trabajo del túnel
El cliente realiza la llamada al ISP el cual se conectará con el servidor L2TP con el dato que el servidor requiera para la iniciación del túnel. Cuando este está establecido, el LAC asigna un ID de llamada para la identificación del túnel e iniciar la sesión para la devolución de la información respectiva autenticada.
El servidor de red de la corporación se encarga de decir su acepta o no la llamada, esto es en primer termino indicando al ISP que protocolo de autenticación utilizar (CHAP, PAP, EAP); el servidor de res utilizará esta información para saber si se acepta o no la llamada.
Luego de que fue aceptada, el servidor inicia la tercera fase en la autenticación, ahora con la capa PPP. Este paso es similar a quienes se quieren conectar a la red corporativa utilizando un modem.
De esta forma ambos extremos estarán preparados para el envío y recepción de los paquetes.