There are a million ways to so this: you can jump down the whole policy-routing rabbit-hole if you wish: That pretty much needs control of the router, so the OpenWRT path.

If you just have control of the DHCP server, your suggestion is the best way to go. I assume you can turn off the DHCP server in your ISP-supplied router. If not the two will fight each other.

It's not clear if you want to have different subnets or address ranges or if you landed on those as a mechanism to just differentiate hosts.

The simplest config would be to have everything on the same subnet
(say 10.10.1.1/24), not bother with address ranges or static assignments and just control the default route.

That comes out as

dhcp-range=10.10.1.33.10.1.254

# send this router unless tag vpnroute set
dhcp-option=option:router,10.10.1.1
# send this router when tag vpnroute set
dhcp-option=tag:vpnroute,option:router,10.10.1.6

# Mark host with tag vpnroute
> dhcp-host=11:22:33:44:55:66,set:vpnroute
> dhcp-host=77:88:99:AA;BB:CC,set:vpnroute
> # etc...

Simon.



On 7/3/25 08:50, Clifford Heath wrote:
I want to run static IP address assignments for most of my hardware in the 
house here, but I have specific devices which I want to receive a different 
router (default gateway) setting. The use case is that I have some embedded 
devices which must route to my VPN host by default, so they don't appear on my 
home IP address. I don't want to run everything through the VPN, because 
latency from Australia creates a poor experience.

Obviously I can't do it on my unmodified WiFi router, so I will either be 
flashing OpenWRT (which runs dnsmasq) or just running dnsmasq on a Raspberry or 
something. The OpenWRT method might be incompatible with my internet modem 
however, apparently that requires some technical support which my ISP 
configured in the router… but anyway, back to dnsmasq...

I have been studying the dnsmasq manual page, and you can assign different DHCP 
options to apply to requests coming from different interfaces, but I'm not 
expecting to have more than one interface.

So my questions are two:

1) Can dnsmasq accept different router options for individual static DHCP 
assignments?
Even better if I can say “all static IP assignments in this IP range should use 
these options”

2) Alternatively, is there some use of virtual subnets which would make this 
possible?

In short, can I combine the "--dhcp-option=option:router,192.168.4.4" option 
with static IP assignment?

Reading more, I expect I’ll need to do something like this. Please point out 
any glaring errors. And how to integrate DNS hostnames into this plan... :)

# DHCP ranges:
#dhcp-range=10.10.1.1,10.10.1.32  # Static wired Ethernet addresses that should 
NOT be served by DHCP
dhcp-range=10.10.1.33.10.1.254 # Wired Ethernet addresses that should be served 
by DHCP, including some static IPs
dhcp-range=10.10.2.1,10.10.2.254 # Wireless addresses that should be served by 
DHCP, including some static IPs
dhcp-range=set:vpnroute,10.10.3.1,10.10.3.254 # Wireless addresses that should 
use the VPN (all are static IPs)

# Mark host with tag vpnroute
dhcp-host=11:22:33:44:55:66,set:vpnroute,10.10.1.45
dhcp-host=77:88:99:AA;BB:CC,set:vpnroute,10.10.1.46
# etc...

# Set default route
dhcp-option=option:router,10.10.1.1

# Set route for vpnroute to point at the VPN router
dhcp-option=tag:vpnroute,option:router,10.10.1.6

Clifford Heath, Sydney
_______________________________________________
Dnsmasq-discuss mailing list
[email protected]
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss


_______________________________________________
Dnsmasq-discuss mailing list
[email protected]
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to