[Dnsmasq-discuss] Relay agent on different subnet

Patrick Dumais mlist at dumais.io
Wed Dec 7 14:18:23 UTC 2022


Hi, I'm a bit confused about whether or not this is possible to do:

I have the following topology: DHCPServer --- LAN2 --- DHCPRelay --- 
LAN1 --- device

DCPServer is dnsmasq

DHCPRelay is a python app that I wrote

The device sends a Discover and the relay receives it and then relays 
this to the DHCPServer on a different subnet.  But my relay has 2 
network interfaces. The DHCPServer has no route to LAN1. If the relay 
sets giaddr to the IP of the LAN1 interface, then a range is found, an 
IP is selected from that range, and the response is returned to the 
address of 'giaddr'. But that address is not routable on LAN2.

If I configure the DHCPRelay to set giaddr to the IP of the LAN2 
interface of the relay, then DNSMasq complains that "no address range 
available for DHCP request via ...". I understand that DNSMasq will look 
for the a range that matches the giaddr address, but I was under the 
impression that setting option 82 with a circuitID and matching the 
circuit ID would override that behaviour.

This is how I try to match option 82's circuit ID, in hopes that giaddr 
will not be used to search for a pool

dhcp-circuitid=set:meow,MEOW
dhcp-circuitid=set:woof,WOOF

dhcp-range=tag:meow,10.222.221.10,10.222.221.19,255.255.255.0,12h
dhcp-range=tag:woof,10.222.222.10,10.222.222.19,255.255.255.0,12h

Am I  wrong? If yes, then how can this be done? Or maybe giaddr should 
stay the address of LAN1 but I could somehow tell the server to send 
back the response to the source IP that was set in the IP header? I 
would find it very restrictive if the dhcp server would need to have a 
route to all networks that it defines ranges for.





More information about the Dnsmasq-discuss mailing list