Cisco tunnel keepalives and QoS.

Objetivo: Analizar mediante un laboratorio de que manera se le puede aplicar QoS a los pkts keepalive que permiten al router conocer el estado de la interfaz tunnel en el extremo del enlace lógico punto a punto.

Para ello utilizaremos la siguiente topología:

Configuraciones:

RA config:

!
hostname RA
!
interface FastEthernet0/0
 ip address 172.22.26.1 255.255.255.224
!
router ospf 1
 network 0.0.0.0 255.255.255.255 area 0
!

RB config:

!
hostname RB
!
interface Tunnel1
 description T1 Test (FR-)
 bandwidth 64
 ip address 172.18.4.1 255.255.255.252
 no ip redirects
 no ip unreachables
 ip mtu 1476
 ip nbar protocol-discovery
 ip flow ingress
 ip tcp adjust-mss 1420
 ip policy route-map cimex
 ip ospf message-digest-key 1 md5 7 106A2B150C191C
 ip ospf cost 100
 keepalive 10 3
 cdp enable
 tunnel source FastEthernet1/0
 tunnel destination 10.0.8.242
 tunnel path-mtu-discovery
!
interface FastEthernet1/0
 ip address 10.0.8.2 255.255.255.252
!
router ospf 1
 area 1 stub no-summary
 network 172.18.4.0 0.0.0.3 area 1
 network 172.22.26.0 0.0.0.31 area 0
!
ip route 10.0.8.240 255.255.255.252 10.0.8.1
!

RC config:

!
hostname RC
!
interface Tunnel1
 description T1 Test (FR-)
 bandwidth 64
 ip address 172.18.4.2 255.255.255.252
 no ip redirects
 no ip unreachables
 ip mtu 1476
 ip nbar protocol-discovery
 ip flow ingress
 ip tcp adjust-mss 1420
 ip policy route-map cimex
 ip ospf message-digest-key 1 md5 7 106A2B150C191C
 ip ospf cost 100
 keepalive 10 3
 cdp enable
 tunnel source FastEthernet1/0
 tunnel destination 10.0.8.2
 tunnel path-mtu-discovery
!
interface FastEthernet1/0
 ip address 10.0.8.242 255.255.255.252
!
interface FastEthernet1/1
 ip address 172.17.1.254 255.255.255.0
!
router ospf 1
 area 1 stub no-summary
 network 172.0.0.0 0.255.255.255 area 1
!
ip forward-protocol nd
ip route 10.0.8.0 255.255.255.252 10.0.8.241
!

1ro – Se comprobará la construcción del pkt keepalive y si el router le pone alguna marca, esto último con el objetivo de diseñar una QoS que permita asegurar este tipo de pkt en tiempos de congestión. Para ello utilizaremos Wireshark.

Se cumple lo del doble encabezado que sale en la documentación del keepalive. También se puede ver que el pkt generado por el router tiene está marcado con cs6 en el campo DS. Esto se puede utilizar cómo base para asegurar que el pkt, independientemente de la congestión que pueda tener el enlace, llegue al otro extremo de túnel.

Una vez que el keepalive llega al otro extremo, el router descarta el encabezado ip/gre exterior y se queda con el pkt que tiene cómo destino el router que originó el keepalive. Este pkt también tiene la marca cs6 (para QoS). Lo otro es que en protocolo type de GRE tiene un valor de 0, lo que le indica al router que es la respuesta del keepalive enviado y que por lo tanto el otro extremo está activo.

El siguiente pkt mostrado en el Wireshark es la respuesta al keepalive.

Para probar la política de QoS, se añadiría la siguiente configuración en RB:

!
policy-map IP-64
 class class-default
    shape average 60800 608 0
  service-policy keepalive
!
class-map match-all keepalive
 match ip dscp cs6
 match access-group name keepalive
!
policy-map keepalive
 class keepalive
    bandwidth percent 60
 class class-default
    bandwidth percent 40
!
ip access-list extended keepalive
 permit ip host 10.0.8.2 host 10.0.8.242
Lo lógico sería aplicar esta QoS en la interfaz física y no en la interfaz tunnel.
!
interface FastEthernet1/0
 service-policy output IP-64
!

Comprobando:

RB#sh policy-map interface fastEthernet 1/0
 FastEthernet1/0

  Service-policy output: IP-64

    Class-map: class-default (match-any)
      13 packets, 1089 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any
      Queueing
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 13/1187
      shape (average) cir 60800, bc 608, be 0
      target shape rate 60800

      Service-policy : keepalive

        Class-map: keepalive (match-all)
          9 packets, 570 bytes
          5 minute offered rate 0 bps, drop rate 0 bps
          Match: ip dscp cs6 (48)
          Match: access-group name keepalive
          Queueing
          queue limit 64 packets
          (queue depth/total drops/no-buffer drops) 0/0/0
          (pkts output/bytes output) 9/654
          bandwidth 60% (36 kbps)

        Class-map: class-default (match-any)
          4 packets, 519 bytes
          5 minute offered rate 0 bps, drop rate 0 bps
          Match: any
          Queueing
          queue limit 64 packets
          (queue depth/total drops/no-buffer drops) 0/0/0
          (pkts output/bytes output) 4/533
          bandwidth 40% (24 kbps)

Se puede ver por el macheo de los pkts que cada 10 segundos se mandan por default 3 pkts keepalive.

Posted in QoS

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.