Tunnel Path-mtu-discovery Lab1.

Objetivo: Probar el funcionamiento del comando tunnel path-mtu-discovery. El comando debe detectar el mínimo mtu en el camino entre RA y RD y ajustar automáticamente el mtu de la interfaz donde está aplicado, en este caso del tunnel.

m

Topología:

 

Laboratorio:

_

Para cumplir con el objetivo se configuró el camino entre RB y RC con un ip mtu de 1300 bytes, como se puede ver en la figura. Inicialmente no se fijó ningún mtu en las interfaces túneles de RA y RD. Sin pasar ningún tráfico por el camino RA<->RD, cuando se consulta el mtu de la interfaz tunnel en RA, se puede observar que esta conserva el mtu por default:

_

RA#sh inter tunnel 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 172.14.0.1/30
MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive set (10 sec), retries 3
Tunnel linestate evaluation up
Tunnel source 10.1.1.1, destination 10.1.1.10
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Path MTU Discovery, ager 10 mins, min MTU 92
Tunnel transport MTU 1476 bytes

_

Ahora se van a generar dos tráficos en RA:
1 – ping 172.14.0.2 size 1000 df-bit
2 – ping 172.14.0.2 size 1400 df-bit

_

El primer tráfico, no debe activar el mecanismo de Path MTU Discovery. Como se puede ver con el siguiente comando, se mantuvo el valor del mtu por default:

_

RA#ping 172.14.0.2 size 1000 df-bit
Type escape sequence to abort.
Sending 5, 1000-byte ICMP Echos to 172.14.0.2, timeout is 2 seconds:
Packet sent with the DF bit set
!!!!!

_

RA#sh inter tunnel 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 172.14.0.1/30
MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive set (10 sec), retries 3
Tunnel linestate evaluation up
Tunnel source 10.1.1.1, destination 10.1.1.10
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Path MTU Discovery, ager 10 mins, min MTU 92
Tunnel transport MTU 1476 bytes

_

Al generar el segundo tráfico se activa el mecanismo de Path MTU Discovery y este cambia automáticamente el mtu de la interface tunnel en RA por un período de 10 min:

_

RA#ping 172.14.0.2 size 1400 df-bit
Type escape sequence to abort.
Sending 5, 1400-byte ICMP Echos to 172.14.0.2, timeout is 2 seconds:
Packet sent with the DF bit set
…..
Success rate is 0 percent (0/5)

_

RA#sh inter tunnel 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 172.14.0.1/30
MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive set (10 sec), retries 3
Tunnel linestate evaluation up
Tunnel source 10.1.1.1, destination 10.1.1.10
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Path MTU Discovery, ager 10 mins, min MTU 92, MTU 1276, expires 00:09:48
Tunnel transport MTU 1476 bytes

_

Con esto se puede saber el mínimo mtu que se debe utilizar en la interfaz tunnel para que no haya fragmentación (1276). El mss debe ser ajustado también en consecuencia. Comprobando en RD:

_

RD#sh inter tunnel 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 172.14.0.2/30
MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive set (10 sec), retries 3
Tunnel linestate evaluation up
Tunnel source 10.1.1.10, destination 10.1.1.1
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Path MTU Discovery, ager 10 mins, min MTU 92
Tunnel transport MTU 1476 bytes

_

A pesar de que RD también tiene el mecanismo de Path MTU Discovery activo, este no ha detectado todavía el mínimo mtu. Esto prueba de que RA no le comunica a RD lo del cambio de mtu. Por supuesto, RD se va a ajustar una vez que se genere un tráfico que vaya de RD a RA, que sobrepase al mínimo mtu del camino y que tenga seteado el df-bit (esto es importante, sino se pierde tráfico por este motivo, el router RD nunca se entera de que el pkt fue fragmentado y por lo tanto el mecanismo de Path MTU Discovery no ajusta el mtu en la interfaz)

_

Ahora para que el mecanismo funcione en RD, después de generar el tráfico RD#ping 172.14.0.1 size 1400 df-bit,   RC debe recibir el pkt. Como RC debe enrutar el pkt de 1400 bytes por la interface Fa0/0 cuyo ip mtu es 1300, el router tiene que fragmentar el pkt para enviarlo a RB. Como el pkt viene con la bandera de no fragmentar seteada, RC descarta el pkt y envia de vuelta un icmp destination unreachable con código de fragmentación requerida.

_

_

Cuando RD recibe este pkt, el mecanismo de Path MTU Discovery ajusta el mtu del tunnel.
Si en RC añado la siguiente configuración:
!
interface FastEthernet1/0
ip address 10.1.1.9 255.255.255.252
no ip unreachables
!

_

Entonces cuando genero el tráfico ping 172.14.0.1 size 1400 df-bit en RD, el router RC no manda de vuelta el  icmp destination unreachable con código de fragmentación requerida y por lo tanto RD no se entera de que debe alterar el mecanismo.

_

RD#ping 172.14.0.1 size 1400 df-bit
Type escape sequence to abort.
Sending 5, 1400-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:
Packet sent with the DF bit set
…..
Success rate is 0 percent (0/5)

_

RD#sh inter tunnel 1
Tunnel1 is up, line protocol is up
Hardware is Tunnel
Internet address is 172.14.0.2/30
MTU 17916 bytes, BW 100 Kbit/sec, DLY 50000 usec,
reliability 255/255, txload 5/255, rxload 1/255
Encapsulation TUNNEL, loopback not set
Keepalive set (10 sec), retries 3
Tunnel linestate evaluation up
Tunnel source 10.1.1.10, destination 10.1.1.1
Tunnel protocol/transport GRE/IP
Key disabled, sequencing disabled
Checksumming of packets disabled
Tunnel TTL 255, Fast tunneling enabled
Path MTU Discovery, ager 10 mins, min MTU 92
Tunnel transport MTU 1476 bytes

_

Si la red intermedia le pertenece al proveedor de servicios y este tiene bloqueado el envio de icmp unreachable, no es posible utilizar el mecanismo de Tunnel Path-mtu-discovery.
La otra variante es ir probando el tráfico empezando por 1500 e ir decreciendo. Ejemplo:

_

RD#ping 172.14.0.1 size 1400 df-bit
Type escape sequence to abort.
Sending 5, 1400-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:
Packet sent with the DF bit set
…..
Success rate is 0 percent (0/5)

_

RD#ping 172.14.0.1 size 1300 df-bit
Type escape sequence to abort.
Sending 5, 1300-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:
Packet sent with the DF bit set
…..
Success rate is 0 percent (0/5)

_

RD#ping 172.14.0.1 size 1277 df-bit
Type escape sequence to abort.
Sending 5, 1277-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:
Packet sent with the DF bit set
…..
Success rate is 0 percent (0/5)

_

RD#ping 172.14.0.1 size 1276 df-bit
Type escape sequence to abort.
Sending 5, 1276-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:
Packet sent with the DF bit set
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 40/80/116 ms

_

Sabiendo que el mín mtu en el camino era de 1300, y que GRE añade 24 byte, se probo el tráfico con un mtu de 1277 y 1276 bytes. Por supuesto, el tráfico pasó con 1276.
En otra prueba, esta vez monitoreando el tráfico con Wireshark:

_

RD#ping 172.14.0.1 size 1300
Type escape sequence to abort.
Sending 5, 1300-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:
!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 92/107/144 ms

_

_

En este caso, como no estaba seteada la bandera de no fragmentar, el tráfico llegó al destino, pero fue fragmentado.

_

RD#ping 172.14.0.1 size 1276 df-bit

Type escape sequence to abort.

Sending 5, 1276-byte ICMP Echos to 172.14.0.1, timeout is 2 seconds:

Packet sent with the DF bit set

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 68/89/152 ms

En este caso, estaba seteada la bandera de no fragmentar y el tráfico llegó al destino sin fragmentar, ya el mtu se ajusto para eso.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s