Concepto

Protocolo desarrollado por Cisco, a diferencia del PPTP el protocolo L2F no depende de IP con lo cual es capaz de trabajar directamente bajo otros protocolos.

Utiliza PPP para la autenticación de usuarios remotos. Los túneles que crea pueden soportar más de una conexión.

Trabaja con un servicio de enlace llamado Virtual Dial-Up (VDU), que nos permite acceder a la utilización de toda la infraestructura de Internet, no solo para conectar a través de diferentes protocolos al IP sino también cuando las direcciones IP no son reconocidas.

El protocolo L2F es capaz de encapsular payloads PPP o payloads SLIP que serán enviados a sus destinos.

Protocolos utilizados por L2F

PAP

Protocolo de autenticación de password. Cuando se establece la conexión entre el servidor y el cliente este último envía el par formado por el nombre de usuario y la contraseña, luego se verificará la identidad del usuario y se autentificara o rechazará la petición con lo cual la conexión será finalizada.

CHAP

Protocolo de autentificación periódica del cliente. Luego de que la fase de conexión ese completada el autenticador envía un mensaje de recusación al par usuario/password, el par responde con un valor calculado usando una función hash; este valor es comparado con el que calcula el autenticador y si coinciden la comunicación continua, caso contrario se cancela.

En intervalos aleatorios se repetirá esta tarea.

Para esto se requiere que ambos extremos cuenten con la clave secreta.

Funcionamiento del L2F (Cisco's Layer Two Forwarding)

Definición del protocolo

El protocolo L2F requiere dos puntos a estandarizar:

  • Encapsulamiento de los paquetes dentro del L2F. El ISP y los extremos deben negociar sobre que paquetes se encapsulará el protocolo.
  • Administrador de conexión de L2F y MID.

Formato del paquete

Formato general

El paquete L2F encapsulado tiene esta forma básica:

Encabezado L2F
Payload PPP/SLIP
CRC L2F

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
K P K S 0 0 0 0 0 0 0 0 C Version Protocol Sequence (opt)
Multiplex ID Client id (opt)
Length Offset (opt)
Key (opt)
Payload
L2F checksum  

Version: Indica la versión de L2F con la que fue creado el paquete. Debe contener el valor 001.

Protocol: Indica el protocolo que transporta el paquete.

Valor
Mensaje
Descripción
0x00 L2F_ILLEGAL Ilegal
0x01 L2F_PROTO Paquete de administración
0x02 L2F_PPP PPP dentro de L2F
0x03 L2F_SLIP SLIP dentro de L2F

Sequence: Contendrá un valor si el bit 3 del encabezado es seteado en 1. El valor se incrementará automáticamente empezando desde 0.

Multiplex ID: Identifica una conexión particular en el túnel. Cada conexión tiene un MID único.

Client ID: Cliente a quien deben enviarse los paquetes.

Length: Longitud del paquete L2F.

Offset: Esta presente solo si el bit 1 esta seteado en 1. Especifica el bit a partir del cual comienza el payload.

Key: Si el bit K esta seteado en 1 esta presente este campo el cual contendrá el valor que envíe el extremo del túnel. Esto se utiliza para evitar el Spoofing.

L2F cheksum: Campo opcional calculado para la detección de posibles errores.

Mensajes de L2F

Valor Hexadecimal
Mensaje
Descripción
0x00 Invalid Mensaje invalido
0x01 L2F_CONF Mensaje utilizado para el establecimiento de la conexión entre el NAS y el destino.
0x02 L2F_CONF_NAME Mensaje que indica el nombre del transmisor del mensaje
0x03 L2F_CONF_CHAL Mensaje que indica el número aleatorio de recuse.
0x04 L2F_CONF_CLID Mensaje que indica CLID asignado para uso del par.
0x02 L2F_OPEN Mensaje de configuración aceptada.
0x01 L2F_OPEN_NAME Nombre recibido del cliente.
0x02 L2F_OPEN_CHAL Mensaje que indica la recepción del recuse del cliente.
0x03 L2F_OPEN_RESP Mensaje de respuesta del recuse del cliente
0x04 L2F_ACK_LCP1 LCP CONFACK Mensaje que indica la aceptación del cliente
0x05 L2F_ACK_LCP2 LCP CONFACK Mensaje de envío para el cliente
0x06 L2F_OPEN_TYPE Mensaje que indica el tipo de autenticación usado.
0x07 L2F_OPEN_ID Mensaje que indica la ID asociada con la autenticación
0x03 L2F_CLOSE Mensaje que indica que se realiza un pedido de desconexión
0x01 L2F_CLOSE_WHY Mensaje que indica la causa de la desconexión.
0x02 L2F_CLOSE_STR Mensaje con la descripción ASCII de la desconexión.
0x04 L2F_ECHO Mensaje utilizado para la verificación de presencia del par.
0x05 L2F_ECHO_RESP Mensaje de respuesta al L2F_ECHO.

Forma de creación y trabajo del túnel

El usuario remoto inicia la conexión PPP por medio de un ISP vía un acceso PSTN o ISDN. El servidor de Acceso a la Red (NAS) acepta la conexión y el enlace PPP es establecido. El ISP realiza los controles correspondientes de usuario por el protocolo CHAP o PAP.

Solo el campo nombre de usuario es utilizado para determinar si se requiere un servicio de VDU por medio de los protocolos CHAP o PAP. El ISP debe mantener una base de datos con los usuarios que utilicen el servicio.

En caso de requerir el servicio se designara un punto final del túnel. Si en cambio el servicio no debe ser dado se creará una conexión normal a Internet.

Si el túnel no existe en el extremo indicado, este debe ser inicializado, se le asigna un Multiplex ID (MID) y un indicador de conexión es enviado al destino de la nueva VDU. En el caso de que el túnel ya exista un MID no utilizado es asignado a la comunicación. El destino puede aceptar o rechazar este pedido, en este último caso se puede incluir en la respuesta la causa del rechazo.

Una vez creada la conexión se crea el túnel virtual para SLIP o PPP y se empieza a transmitir en ambas direcciones. Por medio del protocolo CHAP en forma periódica se verificará que el par en la conexión este activo.

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

 

Puente L2F

Figura 13

Jue, 09/11/2006 - 19:46