dhcprelay requires additional IP rule with cl-mgmtvrf

Follow

Issue

DHCP relay does not work with cl-mgmtvrf when the host and server facing ports are in the data plane.

Environment

  • Cumulus Linux 2.5.4 or 2.5.5
  • cl-mgmtvrf package versions earlier than 0.5
  • isc-dhcp-relay package versions earlier than 4.2.2.dfsg.1-5+deb70u6+cl2+3
  • DHCP relaying from one dataplane interface to another dataplane interface.

Resolution

Software Upgrade

Upgrade to Cumulus Linux 2.5.6 with cl-mgmtvrf=0.5 and isc-dhcp-relay=4.2.2.dfsg.1-5+deb70u6+cl2+3 or later. For more information, see RN-370.

Configuration Work Around

For switches running CL 2.5.4 or CL 2.5.5.

On the switch running dhcprelay, add an IP rule for the DHCP server address. Replace SERVER_IP with the SERVERS= value specified in /etc/default/isc-dhcp-relay/:

cumulus@switch$ sudo ip rule add from all to SERVER_IP lookup main

This rule can be applied at boot time, by specifying it in an up rule on the corresponding interface. The example below applies the SERVER_IP 172.16.0.1 to interface swp52:

auto swp52
iface swp52
    address 172.16.0.2/24
    up ip rule add from all to 172.16.0.1 lookup main

Diagnostic Steps

  1. Run tcpdump from the switch on the host and server facing ports to trace traffic.

  2. Stop the dhcprelay service.

    cumulus@switch:~$ sudo service isc-dhcp-relay stop
  3. Run the dhcprelay service in the foreground on the console to watch the output while issuing requests. The output below is an example of a successful session:

    cumulus@switch:~$ sudo /usr/sbin/dhcrelay -d -i swp51 -i swp52 172.16.0.1
        Internet Systems Consortium DHCP Relay Agent 4.2.2
        Copyright 2004-2011 Internet Systems Consortium.
    All rights reserved.
    For info, please visit https://www.isc.org/software/dhcp/
    Listening on LPF/swp2/44:38:39:00:25:d9
    Sending on LPF/swp2/44:38:39:00:25:d9
    Listening on LPF/swp1/44:38:39:00:25:d8
    Sending on LPF/swp1/44:38:39:00:25:d8
    Sending on Socket/fallback
    Forwarded BOOTREQUEST for 68:05:ca:2f:7c:b3 to 172.16.0.1
    Forwarded BOOTREPLY for 68:05:ca:2f:7c:b3 to 172.16.1.128
    Forwarded BOOTREPLY for 68:05:ca:2f:7c:b3 to 172.16.1.128
    Forwarded BOOTREQUEST for 68:05:ca:2f:7c:b3 to 172.16.0.1
    Forwarded BOOTREPLY for 68:05:ca:2f:7c:b3 to 172.16.1.128
    Forwarded BOOTREPLY for 68:05:ca:2f:7c:b3 to 172.16.1.128
    
Have more questions? Submit a request

Comments

Powered by Zendesk