Mikrotik TFTP boot trouble: DHCPDiscover only

Hello,

I'm having issues getting Mikrotik 951Ui-2HnD to accept TFTP boot. I get a flood of DHCPDISCOVER (answered by DHCPOFFER), but the router never actually requests the file over TFTP.

Log below, this repeats over and over for several seconds.

I followed the instructions preciesely and to eliminate any possible issue on the PC side have even set up a fresh Arch Linux install... same result though.

I just want to know what this even means, so that I know where to look for solutions.

I've reviewed other threads on the subject but haven't found anything helpful.

Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 available DHCP range: 192.168.1.100 -- 192.168.1.200
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 vendor class: Mips_boot
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 DHCPDISCOVER(enp3s5) 48:8f:5a:d7:5d:e8
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 tags: enp3s5
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 DHCPOFFER(enp3s5) 192.168.1.133 48:8f:5a:d7:5d:e8
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 requested options: 1:netmask, 3:router
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 bootfile name: openwrt-initramfs.elf
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 next server: 192.168.1.10
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  1 option: 53 message-type  2
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option: 54 server-identifier  192.168.1.10
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option: 51 lease-time  12h
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option: 58 T1  6h
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option: 59 T2  10h30m
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option:  1 netmask  255.255.255.0
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option: 28 broadcast  192.168.1.255
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1190856144 sent size:  4 option:  3 router  192.168.1.10
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 available DHCP range: 192.168.1.100 -- 192.168.1.200
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 vendor class: Mips_boot
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 DHCPDISCOVER(enp3s5) 48:8f:5a:d7:5d:e8
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 tags: enp3s5
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 DHCPOFFER(enp3s5) 192.168.1.133 48:8f:5a:d7:5d:e8
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 requested options: 1:netmask, 3:router
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 bootfile name: openwrt-initramfs.elf
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 next server: 192.168.1.10
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  1 option: 53 message-type  2
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option: 54 server-identifier  192.168.1.10
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option: 51 lease-time  12h
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option: 58 T1  6h
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option: 59 T2  10h30m
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option:  1 netmask  255.255.255.0
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option: 28 broadcast  192.168.1.255
Jun 26 21:00:31 delavnica64 dnsmasq-dhcp[934]: 1230190372 sent size:  4 option:  3 router  192.168.1.10

Any help appreciated.

LP,
Jure

I actually seem to have the same problem on a Mikrotik mANTBox 15s / RB921GS-5HPacD-15S serial number ending on /r3.

We had OpenWRT installed, but it does not work. Now I want to restore the original RouterOS on it, got the same behaviour, it does the DHCP Discover, gets a reply, but does not start downloading.

I know, this does not help you, but at least you now know you are not alone with this problem. Let me know in this topic, if you find a solution.

I also asked about the same question on the Mikrotik forum.
https://forum.mikrotik.com/viewtopic.php?f=2&t=176459

You may want to try using the other RouterBoot (generally backup RouterBoot is loaded if the reset button is held before power is supplied. Usually have 1 second after power is applied to start reset or netboot with the primary RouterBoot).

Did you change any RouterBoot settings: Selecting BOOTP or DHCP?

I have not seen this before, but I have not used the ar71xx images, or a Mikrotik device that old.
For reference. My MIPS BE rb962: Reset button held ~30seconds gives:

dnsmasq-dhcp: 3025626223 vendor class: Mips_boot                                
dnsmasq-dhcp: 3025626223 tags: bootp, rb_hapac, known, macvlan1                 
dnsmasq-dhcp: 3025626223 BOOTP(macvlan1) 192.168.25.20 48:8f:aa:aa:aa:aa        
dnsmasq-dhcp: 3025626223 bootfile name: ath79/mikrotik/openwrt-ath79-mikrotik-mi
krotik_routerboard-962uigs-5hact2hnt-initramfs-kernel.bin                       
dnsmasq-dhcp: 3025626223 next server: 192.168.25.1                            
dnsmasq-dhcp: 3025626223 sent size:  4 option:  1 netmask  255.255.255.0        
dnsmasq-dhcp: 3025626223 sent size:  4 option: 28 broadcast  192.168.25.255   
dnsmasq-dhcp: 3025626223 sent size:  4 option:  3 router  192.168.25.1  
dnsmasq-dhcp: 3025626223 sent size:  5 option: 12 hostname  hapac               
dnsmasq-dhcp: 3025626223 sent size:  4 option:  6 dns-server  10.53.11.1      
dnsmasq-dhcp: 3025626223 sent size:  4 option: 42 ntp-server  10.53.11.1        
dnsmasq-tftp: sent /home/john/mikrotik/boot/ath79/mikrotik/openwrt-ath79-mikroti
k-mikrotik_routerboard-962uigs-5hact2hnt-initramfs-kernel.bin to 192.168.25.20

Wireshark sees these as BOOTP request, reply, then TFTP. tcpdump as BOOTP/DHCP Request, BOOTP/DHCP reply, TFTP.


Note: I do not know if Mikrotik's netinstall linux program is functional. I have always used dnsmasq to provide the netboot file. The netinstall device ELF can be extracted from a netinstall binary.
I know that the Mikrotik linux netinstall program only uses the first network interface. I have to use ip netns to force using a specific interface for my testing setup.

Below are my current settings, I will try some other settings as you suggested.

# rbcfg show
boot_delay=2
boot_device=nandeth
boot_key=any
boot_protocol=dhcp
booter=backup
cpu_mode=powersave
uart_speed=115200

I think defaults would be booter=regular (primary), and protocol bootp.

Careful.

  • If RouterBoot is reading these settings (given DHCPDISCOVER it looks like it—either that, or netboot is not being triggered)
  • If DHCP boot is broken for the backup booter
  • Then if you force ethernet boot on backup with DHCP you may not be able to get out of it without programming the NOR chip.

I always used the procedure with the reset button to trigger the ethernet boot.
https://wiki.mikrotik.com/wiki/Manual:RouterBOOT#RouterBOARD_reset_button

If I do nothing at power-up, it boots OpenWRT from nand.

I tried both the button method and explicitly requesting it to TFTP boot from the settings in Miktotik's stock firmware. It behaves the same way, it floods DHCPREQUEST and never actually requests the file over TFTP.

After it boots the stock firmware it does a single DHCPREQUEST which works that time, but that is clearly separate.

I am thinking the problem may be in the filename of the binary provided... What would work best?

Or maybe it doesn't like the fact that I am booting it over a switch. I used both a physical switch and a Linux software switch and it had the same effect. Perhaps I should try without a switch.

LP,
Jure

I think the issue is DHCP boot on the backup booter.

I would suggest that the RouterBoot soft_config settings be restored to default:
BOOTP protocol, and regular booter.

I have never had issues doing BOOTP netboot with the primary (or backup) RouterBoot (these are the RouterBoot default settings). I have not renamed the OpenWrt initramfs ELF file. I use a switch between the Mikrotik device doing netboot, and dnsmasq host.