IP en IP es un protocolo de tunelización IP que encapsula un paquete IP en otro paquete IP. Para encapsular un paquete IP en otro paquete IP, se agrega un encabezado externo con Source IP
el punto de entrada del túnel y Destination IP
el punto de salida del túnel. Al hacer esto, el paquete interno no se modifica (excepto el TTL
campo, que se reduce). El Don't Fragment
y los Type Of Service
campos se deben copiar en el paquete exterior. Si el tamaño del paquete, incluido el encabezado externo, es mayor que el , el encapsulador fragmenta el paquete. El desencapsulador volverá a ensamblar el paquete.Path MTU
Paquete IP encapsulado en paquete IP
Encabezado IP externo | Encabezado IP interno | Carga útil de IP |
---|
El encabezado de IP externa tiene los siguientes campos:
Versión: 4 bits
Este campo es el número de versión del protocolo. Siempre es 4 ya que IP en IP es compatible con IPv4
Longitud del encabezado: 4 bits
Este campo es la longitud del encabezado IP externo
Tipo de servicio (TOS): 8 bits
Este campo se copia del encabezado IP interno
Longitud total: 16 bits
Este campo es la longitud del paquete IP encapsulado (incluido el encabezado IP externo, el encabezado IP interno y la carga útil de IP)
Identificación: 16 bits
Este campo se utiliza para identificar los fragmentos de un datagrama que serán útiles al volver a ensamblar el datagrama, ya que el encapsulador podría fragmentar el datagrama. Para el encabezado de IP externa, se genera un nuevo número.
Banderas: 3 bits
R | DF | MF |
---|
R: 1 bit
Este bit está reservado y debe ser 0.
DF: 1 bit
Este campo especifica si el datagrama se puede fragmentar o no. Si este bit se establece en 1 en el encabezado interno, entonces el encabezado externo también tiene este bit establecido en 1, lo que indica que este datagrama no se puede fragmentar. Si este bit se establece en 0 en el encabezado interno, entonces el encabezado externo puede establecerse en 0/1.
MF: 1 bit
Este campo es obligatorio cuando el datagrama está fragmentado indicando si el datagrama contiene algunos fragmentos más. Este campo no se copia del encabezado interno.
Desplazamiento de fragmentos: 13 bits
Este campo se utiliza al reensamblar los fragmentos.
Tiempo de vida (TTL): 8 bits
Este campo se utiliza para rastrear la vida útil del datagrama. El TTL del encabezado interno se reduce antes de la encapsulación y no se cambia en el desencapsulador. El TTL del encabezado externo se establece en un valor tal que el datagrama se envía al punto final del túnel.
Protocolo : 8 bits
Este campo indica el protocolo del datagrama que sigue a este encabezado. El valor se establece en 4 para IP en IP.
Suma de comprobación de encabezado: 16 bits
Este campo es la suma de comprobación de IP del encabezado externo.
Dirección IP de origen: 32 bits
Este campo es la dirección IP del encapsulador
Dirección IP de destino: 32 bits
Este campo es la dirección IP del desencapsulador
Opciones: Longitud variable
Este campo en general NO se copia del encabezado IP interno. Se pueden agregar nuevas opciones.
Relleno. Longitud variable.
Este campo se utiliza para completar el datagrama de modo que la carga útil de IP comience en un límite de 32 bits.