I have the same problem. I can boot RPI5 from dnsmasq, but I cannot from the DHCP server on RouterOS.
This is the dnsmasq.conf:
#Disable DNS server (we only need DHCP/TFTP)
port=0
#DHCP settings
dhcp-authoritative
dhcp-range=10.25.0.100,10.25.0.150,255.255.255.0,24h
dhcp-option=3,10.25.0.1 # Gateway (router IP)
dhcp-option=6,10.25.0.1 # DNS servers
dhcp-option=66,10.25.0.2
#TFTP settings
enable-tftp
tftp-root=/btrfs/kart-infra/tftp-data
log-dhcp
log-facility=/var/log/dnsmasq.log
This is the log from correct booting of RPI5 from dnsmasq-acquired offer:
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 available DHCP range: 10.25.0.100 -- 10.25.0.150
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 vendor class: PXEClient:Arch:00000:UNDI:002001
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 DHCPDISCOVER(enp3s0) 88:a2:9e:49:ab:36
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 tags: enp3s0
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 DHCPOFFER(enp3s0) 10.25.0.117 88:a2:9e:49:ab:36
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 requested options: 1:netmask, 3:router, 43:vendor-encap, 60:vendor-class,
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 requested options: 66:tftp-server, 67:bootfile-name, 128, 129,
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 requested options: 130, 131, 132, 133, 134, 135
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 next server: 10.25.0.2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 1 option: 53 message-type 2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 54 server-identifier 10.25.0.2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 51 lease-time 1d
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 58 T1 12h
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 59 T2 21h
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 1 netmask 255.255.255.0
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 28 broadcast 10.25.0.255
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 10 option: 66 tftp-server 10.25.0.2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 3 router 10.25.0.1
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 available DHCP range: 10.25.0.100 -- 10.25.0.150
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 vendor class: PXEClient:Arch:00000:UNDI:002001
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 DHCPREQUEST(enp3s0) 10.25.0.117 88:a2:9e:49:ab:36
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 tags: enp3s0
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 DHCPACK(enp3s0) 10.25.0.117 88:a2:9e:49:ab:36
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 server name: 10.25.0.2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 next server: 10.25.0.2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 1 option: 53 message-type 5
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 54 server-identifier 10.25.0.2
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 51 lease-time 1d
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 58 T1 12h
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 59 T2 21h
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 1 netmask 255.255.255.0
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 28 broadcast 10.25.0.255
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 6 dns-server 10.25.0.1
Apr 1 11:30:20 dnsmasq-dhcp[2847]: 355390610 sent size: 4 option: 3 router 10.25.0.1
Apr 1 11:30:21 dnsmasq-tftp[2847]: file /btrfs/kart-infra/tftp-data/25bd8c7d/config.txt not found for 10.25.0.117
Apr 1 11:30:21 dnsmasq-tftp[2847]: sent /btrfs/kart-infra/tftp-data/config.txt to 10.25.0.117
This is DHCP config at RouterOS (I have tried to push the ‘next-server‘ option in every way possible):
/ip dhcp-server option
add code=43 name=43 value="'Raspberry Pi Boot'"
add code=60 name=60 value="'PXEClient'"
add code=66 force=yes name=66 value="'10.25.0.2'"
add code=67 name=67 value="'bootcode.bin'"
/ip dhcp-server option sets
add name=rpi options=66
/ip dhcp-server
add add-arp=yes address-pool=dhcp_pool0 always-broadcast=yes bootp-support=dynamic dhcp-option-set=rpi
interface=bridge lease-time=10m name=dhcp1 use-reconfigure=yes
/ip dhcp-server network
add address=10.25.0.0/24 dhcp-option=66 dhcp-option-set=rpi gateway=10.25.0.1 next-server=10.25.0.2
And this is the DHCP log from RouterOS:
2026-04-01 11:45:01 interface,info ether2 link up (speed 1G, full duplex)
2026-04-01 11:45:08 dhcp,debug dhcp1 received discover id 2938253077 from 0.0.0.0 ''
2026-04-01 11:45:08 dhcp,debug,packet ciaddr = 0.0.0.0
2026-04-01 11:45:08 dhcp,debug,packet chaddr = 88:A2:9E:49:AB:36
2026-04-01 11:45:08 dhcp,debug,packet Msg-Type = discover
2026-04-01 11:45:08 dhcp,debug,packet Parameter-List = Subnet-Mask,Router,Vendor-Specific,Class-Id,Unk
nown(66),Unknown(67),Unknown(128),Unknown(129),Unknown(130),Unknown(131),Unknown(132),Unknown(133),Unknown
(134),Unknown(135)
2026-04-01 11:45:08 dhcp,debug,packet Class-Id = "PXEClient:Arch:00000:UNDI:002001"
2026-04-01 11:45:08 dhcp,debug,packet Unknown(93) = 00-00
2026-04-01 11:45:08 dhcp,debug,packet Unknown(94) = 01-02-01
2026-04-01 11:45:08 dhcp,debug,packet Unknown(97) = 00-35-69-50-52-71-41-B0-00-9E-49-AB-36-7D-8C-BD-25
2026-04-01 11:45:08 dhcp,debug lease not found, new lease, acquire
2026-04-01 11:45:08 dhcp,debug ping 10.25.0.250
2026-04-01 11:45:08 dhcp,debug ping done 10.25.0.250
2026-04-01 11:45:08 dhcp,debug dhcp1 on bridge sending offer with id 2938253077 from 10.25.0.1:67 (04:F4:1
C:D5:03:DF) to 255.255.255.255:68 (FF:FF:FF:FF:FF:FF)
2026-04-01 11:45:08 dhcp,debug,packet ciaddr = 0.0.0.0
2026-04-01 11:45:08 dhcp,debug,packet yiaddr = 10.25.0.250
2026-04-01 11:45:08 dhcp,debug,packet siaddr = 10.25.0.2
2026-04-01 11:45:08 dhcp,debug,packet chaddr = 88:A2:9E:49:AB:36
2026-04-01 11:45:08 dhcp,debug,packet Subnet-Mask = 255.255.255.0
2026-04-01 11:45:08 dhcp,debug,packet Router = 10.25.0.1
2026-04-01 11:45:08 dhcp,debug,packet Address-Time = 600
2026-04-01 11:45:08 dhcp,debug,packet Msg-Type = offer
2026-04-01 11:45:08 dhcp,debug,packet Server-Id = 10.25.0.1
2026-04-01 11:45:08 dhcp,debug,packet Unknown(66) = 0A-19-00-02
The Raspberry Pi displays the SI_ADDR, but with the RouterOS, it doesn’t proceed with TFTP download.