Our customer is currently running into an issue when configuring DHCP relay inside a VRF. It does not seem to be able to relay the traffic as required.
They have the following bridge domain and VXLAN setup configured
set routing-instances fabric-dc2 protocols evpn extended-vni-list 352
set routing-instances fabric-dc2 bridge-domains bd_352 domain-type bridge
set routing-instances fabric-dc2 bridge-domains bd_352 vlan-id 352
set routing-instances fabric-dc2 bridge-domains bd_352 routing-interface irb.352
set routing-instances fabric-dc2 bridge-domains bd_352 bridge-options mac-table-size 250
set routing-instances fabric-dc2 bridge-domains bd_352 bridge-options interface-mac-limit 250
set routing-instances fabric-dc2 bridge-domains bd_352 vxlan vni 352
This bridge domain has an IRB attached which is located in a seperate VRF (VRF ic-imm-dc2)
set routing-instances test instance-type vrf
set routing-instances test routing-options static route 0.0.0.0/0 next-hop 10.101.0.5
set routing-instances test orwarding-options dhcp-relay forward-only
set routing-instances test forwarding-options dhcp-relay server-group server-test <Server IP address>
set routing-instances test forwarding-options dhcp-relay route-suppression access-internal
set routing-instances test forwarding-options dhcp-relay group test-dc2 active-server-group server-test
set routing-instances test forwarding-options dhcp-relay group test-dc2 interface irb.xxx
set routing-instances test interface irb.xxx
set routing-instances test route-distinguisher xxxxx:x
set routing-instances test vrf-target target:xxxx:x
set routing-instances test vrf-table-label
set interfaces irb unit XXX family inet mtu 1500
set interfaces irb unit XXX family inet policer input 1g
set interfaces irb unit XXX family inet policer output 1g
set interfaces irb unit XXX family inet address <IP address/XX>
set interfaces irb unit XXX mac xx:xx:xx:xx:xx:xx
The irb unit XXX is used for connectivity with systems located behind a firewall, this includes the target DHCP server.
Customer was not able able to get DHCP relay working. They see DHCP requests arriving on the IRB interface itself but all the request are being dropped as Invalid Server address.
user@Router> show dhcp relay statistics routing-instance test
Packets dropped:
Total 62Invalid Server address 61No binding found 1
Messages received:
BOOTREQUEST 851
DHCPDECLINE 0
DHCPDISCOVER 797
DHCPINFORM 0
DHCPRELEASE 0
DHCPREQUEST 48
DHCPLEASEACTIVE 0
DHCPLEASEUNASSIGNED 0
DHCPLEASEUNKNOWN 0
DHCPLEASEQUERYDONE 0
DHCPACTIVELEASEQUERY 0
Messages sent:
BOOTREPLY 4
DHCPOFFER 0
DHCPACK 4
DHCPNAK 0
DHCPFORCERENEW 0
DHCPLEASEQUERY 0
DHCPBULKLEASEQUERY 0
For Anycast IRB, use a unique loopback in each routing instance and source the DHCP relay packets using this loopback IP address. This will help the DHCP server to send the response back to the PE that initiated the DHCP relay. Add the option-82 "server-id-override" configuration. This will include the IP address of the IRB in the DHCP relay packet which enables the DHCP server to identify the pool for the DHCP request.
set routing-instances test forwarding-options dhcp-relay server-group test_Group1 <Server IP address>
set routing-instances test forwarding-options dhcp-relay group server_test active-servergroup test_Group1
set routing-instances test forwarding-options dhcp-relay group test_Group1 overrides relaysource lo0.XXX
set routing-instances test forwarding-options dhcp-relay group test_Group1 relay-option-82 server-id-override
set routing-instances test forwarding-options dhcp-relay group test_Group1 interface irb.X
set routing-instances test forwarding-options dhcp-relay group test_Group1 interface irb.XX
set routing-instances test forwarding-options dhcp-relay group test_Group1 interface irb.XXX