5 de enero de 2007

Introducción a CEF

CEF (Cisco Express Forwarding) es un feature avanzado de Cisco IOS que permita un modo de conmutación más rápido en los dispositivos Cisco. ¿Qué es CEF y cómo trabaja?

Introducción a CEF
Una tarea esencial en los dispositivos de capa 3 (routers y switches layer 3), es la toma de decisiones respecto de dónde deben reenviar los paquetes que reciben. Este proceso de decisión es el que toma el nombre de "conmutación" (switching en inglés), y es diferente del proceso de donmutación que se realiza en un switch Ethernet (capa 2).

Cuando un dispositivo capa 3 "conmuta" ejecuta las siguientes operaciones:

  • Decidir si debe o no reenviar un paquete después de verificar que la red de destino del paquete es "alcanzable".
  • Si el destino es alcanzable, ¿Cuál es el próximo salto y qué interfaz debe utilizarse para alcanzar este destino?
  • ¿Se debe o no modificar la dirección MAC con la que se encapsula el paquete?

Los routers y switches layer 3 Cisco IOS ofrecen la posibilidad de operar con diferentes opciones o modos de conmutación. CEF es uno de los modos de conmutación disponibles.

Tomando como base de referencia la tabla de enrutamiento IP, CEF crea su propia tabla de reenvío que se denomina Forwarding Information Base (FIB). La FIB es una tabla organizada de modo diferente que la tabla de enrutamiento, y es la que se utiliza para definir a qué interfaz se debe reenviar el paquete; de este modo, CEF ofrece varios beneficios:

  • Tiene mejor performance que el modo de conmutación por defecto de los dispositivos (fast-switching) y requiere menos ciclos de CPU para realizar la misma tarea.
  • Cuando está habilitado este modo de conmutación, es posible utilizar otros features avanzados, como NBAR.
  • Esencialmente, CEF es un modo de conmutación de tráfico más rápido que otros disponibles.

Habilitación y deshabilitación de CEF
CEF se encuentra deshabilitado por defecto en todos los dispositivos Cisco, excepto en los routers de la serie 7xxx, 6500 y 12000. Los routers de las series 2600, 3600, 3800 incorporan este feature a partir de Cisco IOS 12.2(11)T. Para habilitar este modo de conmutación se debe operar desde el modo de configuración global:

Router#configure terminal
Router(config)#ip cef
Router(config)#_

Para deshabilitar esta función el proceso es igualmente simple:

Router(config)#no ip cef
Router(config)#_

Monitoreo del status de CEF
Como es habitual, Cisco IOS ofrece un conjunto de comandos show que permiten verificar el estado y operación de CEF:

show ip cef es el comando que permite verificar las entradas de la tabla FIB. Un ejemplo del comando:

Router#show ip cef
Prefix. . . . . . . Next Hop. . . .Interface
0.0.0.0/0. . . . . .192.168.1.5. . FastEthernet0/0
192.168.0.0/24. . . 192.168.1.1. . Serial0/2/0
192.168.2.0/30. . . 192.168.1.1. . Serial0/2/0
192.168.3.0/30. . . 192.168.1.1. . Serial0/2/0
192.168.4.0/24. . . 192.168.1.1. . Serial0/2/0
192.168.5.0/30. . . 192.168.1.1. . Serial0/2/0

show ip cef detail muestra información detallada sobre cada entrada de la tabla FIB.

show ip cef summary permite ver un resumen de las entradas contenidas en la tabla FIB.

Información adicional

¿Tenés algún tip para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

29 comentarios:

  1. Hola que tal, muy bueno tu articulo. bastante ilustrativo salu2
    Alvaro

    ResponderBorrar
  2. Saludos,

    No se si tengas tiempo de contestar preguntas pero...

    ¿Los drops en la interface Serial tienen que ver con el CEF?

    ResponderBorrar
  3. Estimado.
    Una interfaz serial puede descartar paquetes por infinidad de situaciones. En realidad, determinar qué es lo que provoca ese descarte supone un análisis detallado de al menos un show interface, y seguramente algunos show o debugs complementarios según lo que se observe.

    ResponderBorrar
  4. porque en los router cisco 881 se debe deshabilitar esta opcion para que funcione la conexión

    ResponderBorrar
  5. Amigo.
    Normalmente CEF no debe impedir la operación de ningún enlace. Habría que ver con detalle a qué conexión te refieres y cómo está configurada.
    Saludos.

    ResponderBorrar
  6. Mis felicitaciones buen articulo.

    ResponderBorrar
  7. cuando coloco el comando show ip cef vlan 10 y no me sale la información a que se debe?

    ResponderBorrar
  8. Las causas de que no recibas nada en respuesta al comando pueden ser varias. La habilitación de cef, la habilitación del enrutamiento, etc. Habría que revisar la configuración para poder dar una respuesta precisa.

    ResponderBorrar
  9. ¿CEF afecta el funcionamiento de las rutas estaticas o de los protocolos de enrutamiento?. De hecho solo habilite CEF para el correcto funcionamiento del General Prefix.

    ResponderBorrar
  10. CEF es una implementación que optimiza el reenvío de tráfico enrutado. No impacta o modifica el modo en que operan protocolos de enrutamiento y rutas estáticas.

    ResponderBorrar
  11. En donde CEF hace el procesamiento de los paquetes?

    ResponderBorrar
    Respuestas
    1. CEF opera en el plano de datos, mientras que el enrutamiento tradicional opera en el plano de control.

      Borrar
  12. Muy buen Articulo!..

    ResponderBorrar
  13. Excelente,
    Consulta; tengo un cisco 2800 como borde en una red pequeña (< 20 equipos)con nat overload habilitado, haciendo pruebas notamos que la velocidad de descarga es menor, hicimos pruebas con un equipo conectado directamente al router del proveedor y es mucho mas rápido, que podría revizar en este cisco 2800 que afecte la velocidad? me serviría habilitar CEF?

    gracias Oscar.
    Jose Luis

    ResponderBorrar
    Respuestas
    1. José Luis.
      Para saber qué está ocurriendo habría que revisar la configuración y observar la operación.
      Es incierto de esta forma decir qué es lo que puede mejorar la performance del equipo.

      Borrar
  14. Muy buena información gracias

    ResponderBorrar
  15. excelente articulo breve y preciso

    ResponderBorrar
  16. Al implementar una vpn punto a punto en un equipo cisco 2901 y enviar streming presento perdida de paquetes e imagen pixelada, lo curioso es que si deshabilito el cef dejo de presentar perdida de paquetes y así mismo la imagen se muestra sin detalles. A que se deberá este detalle?

    ResponderBorrar
    Respuestas
    1. Felipe.
      En realidad habría que revisar la implementación completa para ver qué es lo que está provocando el problema, pero en principio hay que tener en cuenta que CEF es una solución para interfaces físicas con el hardware adecuado, no para interfaces virtuales.

      Borrar
  17. Buen artículo, siempre con la información precisa. Tengo una consulta, como puedo consultar la rib? hay muchas diferencias con respecto a la fib?

    ResponderBorrar
    Respuestas
    1. Estimado
      La RIB es la Routing Information Base, es decir, la tabla de enrutamiento.
      Puedes revisarla con show ip routing.

      Borrar
  18. Gracias por tus post, son excelente.

    En un router que tenga CEF y un IGP habilitado, ¿Como será la toma de decisión para enrutar un tráfico? ¿Lo hará CEF, lo hara el IGP? Este es un tema un poco abstracto. Quizás un ejemplo nos ayude a comprenderlo.

    Saludos

    ResponderBorrar
    Respuestas
    1. En ningún caso es el IGP el que "decide" cómo ese enruta un determinado tráfico. La decisión de forwardeo del tráfico se hace en principio sobre la base de la información contenida en la tabla de enrutamiento (que es un paso de elaboración posterior al IGP).
      Cuando hay CEF implementado, la FIB toma como base para su confección la tabla de enrutamiento. Si la red destino está en la FIB, el reenvío se realiza por CEF, si no hay entrada en la FIB entonces se intenta reenviar utilizando la información de la tabla de enrutamiento.

      Borrar
  19. Buen artículo. La duda que tengo es: qué pasa con los campos que se deben modificar en la trama al pasar por cada router; el TTL por ejemplo? el cambio lo hace directamente el S.O. sin necesidad de procesar el paquete?

    ResponderBorrar
    Respuestas
    1. En el paquete, los campos como checksum y TTL; y en la trama Ethernet el checksum final son recomputados y sobreescritos como partes del proceso de reenvío del paquete.

      Borrar
  20. hola estimado muy buenas tardes tengo una consulta, hace un tiempo en nuestra red se incorporaron switch´s industriales multicapa (IE4000) como equipo de distribución en remplazo de switch cisco 3750 y empezaron a aparecer log relacionados con CEF: %ADJ-5-RESOLVE_REQ_FAIL: Adj resolve request failed for x.x.x.x on vlan x,a que se debe este log?, lo eliminamos aplicando el siguiente comando: no ip cef optimize neighbor resolution, en foros consultados solo indica que es un bug pero afecta realmente el rendimiento de la red? se producen problemas en la tabla ARP?, agradecido.

    ResponderBorrar
    Respuestas
    1. Este es un mensaje generado al fallar el intento de resolver una solicitud ARP para completar la tabla de adyacencias de CEF.
      Aparentemente es generado por un cambio en las opciones por defecto para la configuración de CEF que hace que, este mensaje que ya existía en Cat 3750 pero que por defecto no se mostraba, ahora se muestre. Por lo que se corrige agregando la línea de configuración que indicás que antes estaba por defecto y no entonces no era necesario incluir.
      Por lo que pude investigar no afecta el rendimiento de la red, pero genera una cantidad de mensajes de eventos innecesarios que complica el monitoreo.

      Borrar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.