El protocolo punto a punto sobre Ethernet (PPPoE) integra las funciones de escalabilidad y control de gestión de la tecnología LAN más económica: Ethernet y protocolo punto a punto (P2P). En general, en la red Ethernet tradicional, la red de acceso o el sistema PON , los proveedores de servicios de red y los operadores de telecomunicaciones pueden usar tecnologías familiares y confiables para acelerar el despliegue de servicios de Internet de alta velocidad (HSI). PPPoE facilita que el proveedor de servicios brinde servicios de acceso de banda ancha que admitan múltiples usuarios que utilizan conexiones inalámbricas de líneas de suscriptores digitales.
Principio básico de PPPoE
El protocolo PPPoE proporciona un estándar para conectar múltiples hosts en una red de transmisión (como Ethernet) a un concentrador de acceso remoto (también llamado servidor de acceso de banda ancha). En este modelo de red, cada host suscriptor necesita inicializar de forma independiente su propia pila de protocolos PPP. Además, al usar las características del protocolo PPP, los suscriptores pueden cobrarse y administrarse en una red de transmisión. Para establecer y mantener una relación P2P entre hosts y concentradores de acceso en una red de transmisión, se debe establecer una sesión P2P única entre cada host y el concentrador de acceso.

Paquete PPPoE
El proceso de inicialización de PPPoE es muy importante. No solo necesita determinar la relación lógica uno a uno en la red de transmisión, sino que también prepara las condiciones necesarias para la sesión PPPoE, como la ID de sesión única asignada por el concentrador de acceso. Antes de presentar el PPPoE, revisaremos el formato de encapsulación de las tramas de Ethernet. Todos los paquetes de datos PPPoE se encapsulan en los campos de datos (área de carga útil) de las tramas de Ethernet para la transmisión.
La dirección de destino de Ethernet (DMAC) y la dirección de origen de Ethernet (SMAC) son las direcciones de capa de enlace de datos más utilizadas. Se clasifican en direcciones de unidifusión, direcciones de multidifusión y direcciones de difusión.
Las direcciones de difusión y difusión se utilizan en el protocolo PPPoE. Para un protocolo de capa de enlace de datos como PPP, la comunicación de dirección de capa 2 es diferente de las comunicaciones comunes de capa 2.
El campo de tipo de Ethernet es también uno de los campos más preocupados. Las dos fases de PPPoE se distinguen por el tipo de campo de los paquetes Ethernet. En la fase de descubrimiento de PPPoE, el campo de tipo de Ethernet se establece en 0x8863. En la fase de sesión de PPPoE, este campo se establece en Ox8864.
Un campo de datos (carga útil) transporta el paquete de datos indicado por el campo de tipo. Todos los paquetes de datos PPPoE en el protocolo PPPoE se encapsulan en este campo para su transmisión.
Se utiliza un campo de verificación para garantizar la corrección de la transmisión de tramas de datos en la capa de enlace.
Proceso de establecimiento de sesión PPPoE
El PPPoE se puede dividir en tres fases: descubrimiento, sesión y finalización de la sesión .

Cuando un host desea iniciar una sesión PPPoE, debe realizar un proceso de descubrimiento para identificar la dirección MAC del par y luego determinar una ID de sesión PPPoE única. Para cumplir este propósito, el PPPoE utiliza un protocolo de descubrimiento basado en el modelo cliente/servidor. Debido a la función de transmisión de Ethernet, el host (cliente) descubre todos los concentradores de acceso (servidores) en este proceso, selecciona uno de ellos y establece una conexión P2P con el par de acuerdo con la información obtenida. Después de configurar una sesión de PPP, se completa la fase de descubrimiento de PPPoE.
Una vez que comienza la fase de la sesión PPPoE, el host y el concentrador de acceso transmiten datos PPP basados en el protocolo PPP para realizar la negociación PPP y la transmisión de datos. Los paquetes de datos transmitidos en esta fase deben contener siempre el identificador de sesión determinado en la fase de descubrimiento. En casos normales, la fase de sesión se termina mediante el protocolo PPP. Sin embargo, un paquete PADT también se define en PPPoE para finalizar sesiones. El host o concentrador de acceso puede terminar una sesión enviando el paquete en cualquier momento después de que comience la sesión PPP.
Clasificación de paquetes de datos en la fase de descubrimiento de PPPoE

PPPoE PADI
El cliente transmite un paquete PADI para descubrir el servidor de acceso.

La dirección de destino es la dirección de transmisión FF:FF:FF:FF:FF:FF y la dirección de origen es la dirección Ethernet del host. El valor de ETHER_TYPE es 0x8863, el valor del código es Ox09 y el valor de SESSION-ID es 0x0000.TAG_TYPE: solo un nombre de servicio indica el servicio solicitado por el host. Puede haber cualquier número de otras etiquetas.
PPPoE PADO
Después de recibir un paquete PADI, todos los servidores PPPoE comparan el servicio solicitado por el cliente con los servicios que pueden proporcionar los servidores PPPoE. Si se puede proporcionar el servicio, los servidores PPPoE responden con un paquete PADO en modo de unidifusión.

La dirección de destino es la dirección Ethernet del host. La dirección de origen es la dirección Ethernet del concentrador de acceso. El valor de ETHER_TYPE es 0x8863, el valor del código es Ox07 y el valor de SESSION-ID es 0x0000. El valor de TAG_TYPE debe tener una ETIQUETA AC-Name que contenga el nombre del concentrador de acceso. Debe contener una ETIQUETA de nombre de servicio que sea igual al PADI recibido y cualquier número de otras ETIQUETAS de nombre de servicio que indiquen los servicios que el concentrador puede proporcionar.
PPPoE ESTÁNDAR
El cliente PPPoE selecciona el servidor PPPoE cuyo paquete PADD llega primero y devuelve un paquete PADR en modo unidifusión.

La dirección de destino es la dirección Ethernet del concentrador de acceso y la dirección de origen es la dirección Ethernet del host. El valor de ETHER_TYPE es 0x8863, el valor del código es Ox19 y el valor de SESSION-ID es Ox0000. El valor de TAG_TYPE debe contener un TAG del tipo Service Name para especificar el servicio solicitado al concentrador. Puede haber cualquier número de otras etiquetas.
ALMOHADILLAS PPPoE
El servidor PPPoE genera una ID de sesión PPPoE única y envía un paquete PADS al cliente. La sesión se ha configurado correctamente.

La dirección de destino es la dirección Ethernet del host y la dirección de origen es la dirección Ethernet del concentrador de acceso. El valor de ETHER_TYPE es Ox8863, el valor del código es Ox65 y el valor de SESSION-ID es un valor único especificado por el concentrador para identificar una sesión PPPoE.TAG_TYPE: Contiene una etiqueta del tipo Service-Name, que indica el servicio prestado por el concentrador a la sesión. Puede haber cualquier número de otras etiquetas Después de configurar una sesión, el cliente y el servidor PPPoE entran en la fase de sesión PPPoE.
Fases de la sesión PPPoE
Después de que la negociación PPP de una sesión PPPoE tenga éxito, se pueden transmitir los datos PPP.

Después de configurar una sesión PPPoE, los datos PPP se transmiten entre el host y el dispositivo de acceso según el protocolo PPP. Cada trama Ethernet tiene una sola dirección. El valor de ETHER_TYPE es Ox8864, el valor del código es Ox00 y el valor de SESSION-ID permanece sin cambios durante toda la sesión. El campo de carga útil PPPOE contiene un paquete PPP.
PADT PPPoE
El paquete APADT se utiliza para notificar al extremo del par la finalización de la sesión PPPoE.

Este paquete puede ser enviado por el host o el concentrador en cualquier momento después de que se establezca una sesión. La dirección de destino es una sola dirección Ethernet. El valor de ETHER_TYPE es 0x8863, el valor del código es Oxa7 y el valor de SESSION-ID es el SESSION-ID de la sesión que se va a terminar. No se requiere etiqueta.
En un paquete PADT, la dirección MAC de destino es una dirección de unidifusión y la ID de sesión es la ID de sesión de la conexión que se cerrará. Una vez que se recibe un paquete PADT, la conexión se cierra.
Ejemplo PPPoE-CHAP
Generalmente, un solo usuario o un usuario doméstico utiliza PPPoE para acceder a Internet. Después de pasar la autenticación RADIUS, el usuario obtiene una dirección IP de BRAS.

1. El cliente envía un paquete PADI al servidor para iniciar el acceso PPPoE.
2. El servidor envía un paquete PADO al cliente.
3. El cliente envía un paquete PADR al servidor.
4. El servidor genera una ID de sesión y la envía al cliente a través de PADS.
5. El cliente y el servidor realizan una negociación PPP LCP para establecer una conexión de capa de enlace. Además, se utiliza la autenticación CHAP.
6. El servidor envía un paquete de desafío de 128 bits al cliente de autenticación.
7. Después de recibir el paquete de desafío, el cliente ejecuta el algoritmo MD5 en la contraseña y el desafío y envía la contraseña y el desafío al servidor para el paquete de respuesta.
8. El servidor envía el desafío y el nombre de usuario al servidor RADIUS para la autenticación.
9. El servidor RADIUS determina si el usuario está autorizado según la información del usuario y envía un paquete de éxito/fallo de autenticación al servidor. Si la autenticación tiene éxito, el servidor AAA envía un mensaje con parámetros de negociación y atributos de servicio para autorizar al suscriptor. Si la autenticación falla, el proceso finaliza.
10. El servidor devuelve el resultado de la autenticación al cliente.
11. El usuario realiza una negociación NCP (como IPCP) y obtiene los parámetros planificados, como la dirección IP a través del servidor.
