IP Control Protocol
En redes de computadoras, el Internet Protocol Control Protocol (IPCP) es un protocolo de control de red (Network Control Protocol, NCP) para configurar el IP en un enlace Point-to-Point Protocol (PPP).
IPCP recién se puede usar una vez establecido el nivel de enlace, es decir, hasta la fase de configuración de red. Cualquier paquete IPCP recibido antes de esta fase deberá ser descartado. IPCP usa el mismo mecanismo de negociación de opciones que Link Control Protocol (LCP).
Trama IPCP
El formato de la trama de red de IPCP es el siguiente:
Código | ID | Longitud | Opciones de configuración |
---|---|---|---|
1 byte | 1 byte | 2 bytes | Longitud variable |
El campo código puede contener uno de los siguientes valores:
Configure Request
Configure Ack
Configure Nak
Configure Reject
Code Reject
El campo ID
lleva un número para asociar cada petición (request) con su respuesta (ack, nak o reject). El campo longitud
indica la longitud completa de la trama IPCP. Las opciones de configuración se codifican usando el formato Tipo-Longitud-Valor. Indican qué parámetros de la capa o nivel de red se están configurando y cuál es su valor.
Cómo funciona
IPCP negocia los valores que van a tener ciertos parámetros de IP. Para ello la estación manda un Configure Request
con un ID único indicando en las opciones de configuración los campos que quiere configurar y el valor que van a tener. El otro extremo responde con una trama que contiene el mismo ID. El código varía en función de la respuesta:
- ACK de configuración: se aceptan todos los parámetros del
Configure Request
con sus respectivos valores. La negociación ha acabado y la capa de red está configurada. - NAK de configuración: se considera que el valor de las opciones que adjunta en la información IPCP es incorrecta y sugiere los valores correctos.
- Rechazo de configuración: informa de que los valores en el campo de opciones de configuración no se negociarán.
- Petición de terminación: hace una petición para cerrar la sesión.
- ACK de terminación: se refiere a que la petición de terminación fue concedida y se procede a cerrar la sesión.
- Rechazo de código: informa de qué los valores en la información de IPCP son opciones desconocidas por el otro extremo. Por tanto, no se negociarán, dado que no sabe interpretarlos.
La negociación es una sucesión de Configure Request
con su respuesta hasta que la estación manda un Configure Request
que es respondido con un Configure Ack
.
Ejemplo
Imaginemos una conexión PPP en la que ya está establecido el nivel de enlace, es decir, ha finalizado la negociación LCP y se ha autenticado la estación. La estación empieza la negociación de la capa de red, mandando un Configure Request
con los parámetros que quiere configurar:
IPCP: Code = 0x01 (Configure Request) Identifier = 001 Length = 00034 --- Configuration Options --- Address = 0.0.0.0 Primary DNS Server = 195.235.113.3 Primary NBNS Server = 0.0.0.0 Second DNS Server = 195.235.96.90 Second NBNS Server = 0.0.0.0
Como la estación no sabe su dirección IP (campo Address
), y por ello lo deja en blanco, para que el servidor en el otro extremo lo configure. Pide también direcciones de dos servidores DNS y NBNS. Sugiere las direcciones de los servidores DNS, probablemente porque las conserva de conexiones anteriores. El servidor le contesta:
IPCP: Code = 0x04 (Configure Reject) Identifier = 001 Length = 00016 --- Configuration Options --- Primary NBNS Server = 0.0.0.0 Second NBNS Server = 0.0.0.0
Por lo tanto, informa de que los servidores de nombres de netbios (NBNS) no se configurarán. La estación reformula el Configure Request
, esta vez sin los servidores NBNS:
IPCP: Code = 0x01 (Configure Request) Identifier = 002 Length = 00022 --- Configuration Options --- Address = 0.0.0.0 Primary DNS Server = 195.235.113.3 Second DNS Server = 195.235.96.90
El Identifier
ha cambiado. La respuesta del otro extremo tendrá también el nuevo valor de ID.
IPCP: Code = 0x03 (Configure Nak) Identifier = 002 Length = 00010 --- Configuration Options --- Address = 213.0.184.82
En este caso, el servidor indica que la dirección IP que la estación ha mandado es incorrecta (Configure NAK
) y sugiere una nueva. Al poner un valor inválido en el Address
del Configure Request
la estación estaba pidiendo que le asignaran una dirección IP. Esta es la que se ha asignado. La estación manda un Configure Request
con un nuevo identificador y el valor corregido.
IPCP: Code = 0x01 (Configure Request) Identifier = 003 Length = 00022 --- Configuration Options --- Address = 213.0.184.82 Primary DNS Server = 195.235.113.3 Second DNS Server = 195.235.96.90
El servidor acepta esta configuración:
IPCP: Code = 0x02 (Configure ACK) Identifier = 003 Length = 00022 --- Configuration Options --- Address = 213.0.184.82 Primary DNS Server = 195.235.113.3 Second DNS Server = 195.235.96.90
La negociación ha finalizado correctamente. La estación ya tiene configurado su nivel de red, por lo que ya puede empezar a mandar paquetes IP.
Véase también
- Point-to-Point Protocol (PPP)
- Network Control Protocol (NCP)
- DHCP
- Request For Comments (RFC)
Enlaces externos
- RFC 1332. The PPP Internet Protocol Control Protocol (IPCP)
Datos: Q1667988