1 de mayo de 2016

ip helper-address

Muchos estamos habituados a implementar servicios DHCP proxy, y en dispositivos Cisco IOS eso significa utilizar el comando ip helper-address. Sin embargo, este comando ofrece mucho más que sencillamente un servicio de proxy o relay para servicios DHCP.

¿Qué es un DHCP relay?
En redes extensas o con múltiples subredes en la que se debe atender solicitudes de  clientes DHCP es habitual que el servidor DHCP se encuentre centralizado.
Sin embargo esto implica una dificultad ya que las solicitudes DHCP se realizan en formato de broadcast (en redes IPv4), y como todos sabemos, los paquetes de broadcast no son reenviados por los dispositivos de capa 3. Esto significa que una solicitud DHCP no va más allá del segmento de red en el cual se encuentra el cliente que la genera, ¿cómo podría entonces alcanzar un servidor que se encuentra en una red o segmento de red diferente?
Para esto se utiliza un DHCP proxy. El proxy recibirá la solicitud en formato de broadcast y la convertirá en un paquete unicast cuya dirección destino será la del servidor. De esta manera la solicitud se convierte en completamente ruteable y podrá alcanzar el servidor con la única condición de que exista ruta que permita llegar a esa dirección de destino.

ip helper-addreess
En redes Cisco IOS esto se puede implementar utilizando el comando ip helper-address en cliente que requiere una configuración IP utilizando DHCP. Sin embargo este comando no solamente reenvía solicitudes DHCP.
Varios servicios críticos para el funcionamiento de la red utilizan broadcast como DHCP: TACACS, DNS, TFTP, NetBios, etc.; y es común que en redes complejas y extensas estos la interfaz que opera como default-gateway del segmento de red en el que se encuentra el servidores se encuentren en un área de red específica, en otro segmento de red. Esto implica que es necesario enrutar solicitudes de todos estos servicios, que en su definición original se propagan por broadcast.
Esta es la situación a la que responde el comando helper-address; permite que los routers actúen como proxies al reenviar solicitudes de estos servicios que corren sobre UDP.
El router recibe las solicitudes UDP en formato de broadcast y las reenvía como paquetes unicast a una dirección IP específica. También puede reenviarlas a una red o subred en particular.
El comando ip helper-address reenvía por defecto 8 servicios UDP: Time, TACACS, DNS, DHCP server, DHCP client, TFTP, NetBios name service y NetBios datagram service.

Router#configure terminal
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ip helper-address 172.18.1.3
    Reenvía el tráfico de servicios UDP que se recibe a través de la interfaz GigabitEthernet a la dirección 172.18.1.3 . Este comando se puede repetir si es necesario direccionar hacia más de un servidor.
Router(config-if)#ip helper-address 172.18.1.255
    Reenvía el tráfico de servicios UDP que se recibe a través de la interfaz Fastethernet a la subred 172.18.1.0/24. Esta es la forma de aplicación cuando los diferentes servicios no están en una única dirección IP sino en varias de un mismo segmento de red, como ocurre en una granja de servidores.
Router(config-if)#interface GigabitEthernet 0/1
Router(config-if)#ip directed-broadcast
    Cuando se direccionan los servicios UDP a una granja de servidores, es preciso indicar a la interfaz del router que da acceso a la graja de servidores que los servicios que recibe redirigidos a una dirección de broadcast (p.e. 172.18.1.255), debe encapsularlos como broadcast de capa 2 para que entonces puedan ver la petición todos los nodos de la subred.
Router(config-if)#exit
Router(config)#ip forward-protocol udp 517 
    Agrega a la lista de 8 servicios que se reenvían por defecto, el tráfico de UDP que está dirigido al puerto 517.
Router(config)#no ip forward-protocol udp 49 
    Retira de la lista de servicios que se reenvían, el tráfico de TACACS (puerto 49).

Esta configuración puede verificarse utilizando el comando show ip interfaces

Post Relacionado:


Estás invitado a participar de nuestro grupo en Facebook:
https://www.facebook.com/groups/librosnetworking/

O seguir las principales novedades en el grupo de Telegram:

https://t.me/LibrosNetworking


Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


22 comentarios:

  1. GRACIASSSSSSSSS SALUDOS DESDE TRUJILLO EN PERU

    ResponderBorrar
  2. Muchas gracias!! Es exactamente lo que estaba buscando y sobretodo muy bien explicado.

    Ya por rizar un poquito más el rizo, si esa granja de servidores estan en subredes distinas (Vlans en este caso), seria posible con un mismo paquete broadcasta llegara a esas subredes??

    Gracias nuevamene.

    ResponderBorrar
    Respuestas
    1. Como dice la descripción del comando, se puede repetir, y en consecuencia las solicitudes se reenviarán a cada uno de los servidores indicados.

      Borrar
  3. Hola oscar:

    Actualmente manejo el servicio dhcp en el core y tengo 20 vlans , quisiera cambiar a un servidor Windows 2012 server que estará en una dmz entiendo que con las pociones que describes debe de funcionar sin ningún problema, ya que este servidor estará en otro segmento de red.

    ResponderBorrar
  4. Y cual seria la variante en caso de utilizar un opn sense o un firewall en Unix?? Porque para un equipo asa de cisco me queda duper clarito 😔

    ResponderBorrar
    Respuestas
    1. Ariel
      No manejo habitualmente esos dispositivos.
      Debieras chequear en primer lugar la documentación, si soportan DHCP relay, y si lo hacen, cuál es la configuración necesaria.

      Borrar
  5. Hola excelente artículo, podrías complementar un poco mas el DHCP, hablando un poco de "DHCP Snooping" ?
    Busque en publicaciones antiguas y no encontré nada.

    Saludos

    ResponderBorrar
    Respuestas
    1. Tenés razón. No publiqué nada sobre DHCP Snooping.
      Lo anoto para futuras publicaciones.

      Borrar
  6. Hola, yo soy nuevo, estoy aprendiendo, estoy utilizando en packet tracer el comando helper-address y utilizo la interfaz(g0/0) de la nueva red que estoy agregando a la red y la direccion(ip) del servidor que está en la red, pero al intentar que los nuevos hosts agregados en la red nueva tengan una direccion dhcp, me marca error que dice DHCP failed APIPA is being used. Porque? muchas gracias.

    ResponderBorrar
    Respuestas
    1. Estimado.
      En primer lugar es un error frecuente en Packet Tracer. No hay que olvidar que se trata de un simulador y tiene algunas limitaciones.
      Por otro lado, si hay un error de configuración más allá de un posible problema de PT, no es posible decirlo con esta descripción que nos das. Sugiero que revises tu configuración con alguna persona de experiencia, de tu confianza, que pueda ayudarte.

      Borrar
    2. IP Heper address funciona bien en PT, ya lo he usado sin problemas.
      El comando se configura en la interfaz o sub-interfaz (ojo con eso si estas haciendo InterVlan) donde están físicamente conectados los host y apunta al server DHCP que esta en otra interfaz.

      Borrar
  7. Excelente, por fin entendí ip-helper

    ResponderBorrar
  8. MUCHAS GRACIAS DESDE PERU, EXCELENTE TODAS LAS EXPLICACIONES, CLARAS Y PRECISAS ETC

    ResponderBorrar
  9. muchas gracias. Consulta tengo un controlador wireless conectado a un L3 Cisco, y estoy generando un dhcp server con opcion 43 en el controlador para otorgar direccionamiento a APs, basta con ip helper-address en el cisco?
    saludos

    ResponderBorrar
    Respuestas
    1. Supongo que el planteo es porque los APs están conectados en el switch en una VLAN diferentes a aquella en que se encuentra en WLC.
      Si ese es el caso la respuesta es si, basta con IP helper-address en la interfaz VLAN de la VLAN en que la se encuentran los APs para derivar el tráfico a la IP de management del controlador.

      Borrar
  10. Hola tengo una consulta.. necesito realizar un Helper address pero tengo un firewall ASA. es posible realizarlo en este equipo o se debe realizar en el router mas cercano?

    ResponderBorrar
    Respuestas
    1. Buenos días.
      Para hacer un DHCP relay en ASA, el comando no es ip helper-address sino dhcprelay.
      Un guía simple para implementarlo tienes en esta publicación:
      https://www.networkstraining.com/how-to-configure-dhcp-relay-on-cisco-asa-firewall/

      Borrar
  11. Hola tengo una consulta si tengo configurados 2 ip helper-address a cual realiza la peticion primero.

    ResponderBorrar
    Respuestas
    1. Si hay más de un ip helper-address definido en la interfaz, el discovery de DHCP será reenviado a todos los que estén configurados en la interfaz.

      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.