Default ipxe & dnsmasq



  • Hi,

    Have been working on this a few hours now after I accidentally broke the network by running two DHCP services.
    I can’t modify the dhcp of my asus router and I don’t want to flash it with dd-wrt either.

    Booting up
    Ends in

    My fog server is running at 192.168.1.101 and my routers dhcp at 192.168.1.1.
    I checked out the traffic with wireshark and it seems that it doesn’t like my dnsmasq configuration.

    Wireshark

    /etc/dnsmasq.d/ltsp.conf

    port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-boot=undionly.kpxe,,192.168.1.101
    dhcp-no-override
    pxe-prompt="Press F8 for boot menu", 3
    pxe-service=X86PC, "Boot fasdrom network", undionly
    dhcp-range=192.168.1.101,proxy
    

    Fog settings

    Here are the settings FOG will use:
             Base Linux: Redhat
             Detected Linux Distribution: \S
             Installation Type: Normal Server
             Server IP Address: 192.168.1.101
             DHCP router Address:
             DHCP DNS Address:
             Interface: eth0
    

    I am using fog 1.2.0.
    How can I make it look for default.ipxe on 192.168.1.101 instead of 192.168.1.1?


  • Developer

    @AeonLucid Awesome debugging information!!! Lots of thumbs up for you. I am a bit late now but I did see the post just now. Funny that but I had the exact same thing happening with my home router when trying to debug some other iPXE stuff at home. It seams like there are DSL routers out there which send ‘next-server’ in their DHCP OFFER/ACK without handing a filename to the client. I am not sure why they do (and I guess most don’t). So your client asks for PXE boot. Gets next-server from the router DHCP and your proxy. It seams to be fine in the first run where Intel PXE ROM boots up but as iPXE comes up it uses the next-server send by your router instead of the proxy one. Run wireshark on your FOG server and you should see it in the DHCP packets broadcasted by your router (original firmware).

    Instead of flashing the router you could have also build your own iPXE binary with a customized script - I talked to Tom and we might add that at some point anyway, now that we know more people see this.

    Let me know if you want to know more about custom iPXE…



  • @Wayne-Workman I ssh’d into my router and put the following in /jffs/configs/dnsmasq.conf.add.

    dhcp-boot=pxelinux.0,,192.168.1.101
    

    Works fine now. Now I am creating a menu with pxelinux.0.


  • Moderator

    @AeonLucid said:

    What is it telling to look at tftp://192.168.1.1 for default.ipxe?

    You’re old router… manufacturers rush these things through the development phase and only care about getting the FCC’s stamp of approval that their “box” doesn’t operate outside of the specified frequency ranges provisioned for 802.11 technologies, and will imediately cease operation if certain Db levels from certain radio frequencies are detected from nearby operating devices. The firmware they come with is most often insecure, buggy, without many features, and they stop supporting them after a year or so.

    Open Source firmware provides solutions to all of these things, while allowing the consumer to also comply with the FCC’s requirements. Using open source firmware at the internet’s edges (like your house router) gives everyone a safer internet and prevents things like “Hacks of mass destruction” http://www.routercheck.com/hack-of-mass-destruction/ and solves a slue of other privacy and identity problems, along with solving the notorious “buffer bloat” issues that many manufacturer firmwares suffer from, by implimenting algorithms such as fq_codel.

    I just flashed my router with asuswrt-merlin so now I have access to the dhcp files. What do I have to put in there to make it use 192.168.1.101?

    That said, not all of them are made the same. I’m not familiar with asuswrt-merlin.

    I just watched a YouTube video on it’s DHCP features but the video is 2 years old and they probably have made a lot of changes since then:
    https://youtu.be/qcDHzNefxw0?t=8m

    Can you give some screen shots of what you’re seeing for the DHCP options?



  • @Wayne-Workman I just flashed my router with asuswrt-merlin so now I have access to the dhcp files. What do I have to put in there to make it use 192.168.1.101?



  • @Wayne-Workman The fog installation is running on an actual dedicated server, not in virtualbox. The thing on the left on my previous screenshot is putty.

    I am just trying to boot into the menu with virtualbox. It was working before but I screwed up the network with two DHCP services while it worked. So now I am trying to take this approach by following the wiki, but sadly that didn’t really work out well.

    What is it telling to look at tftp://192.168.1.1 for default.ipxe?


  • Moderator

    @AeonLucid said:

    Another way to fix this in the router without resetting it would be okay too.

    Turn DHCP off for the RT-AC66u and run DHCP on the FOG server. It doesn’t have to be a permanent setup if your intention is just learning.

    I wonder why we have such a large number of people trying to do this in virtualbox lately??? What gave you the idea?



  • @Wayne-Workman Just tried it, didn’t change anything. It finds the undionly.0/kpxe successfully, it’s just trying to connect to the wrong address for the TFTP transfer of default.ipxe.

    Copied


  • Moderator

    @AeonLucid I’ve never gotten a symbolic link to work in Fedora… try a copy.



  • @Wayne-Workman I tried out that configuration but I end up having the same issue.
    There was a .0 extension file already, otherwise I would’ve got TFTP: File not found.

    ls

    My server is running on Centos 7 x64.
    The main router handling dhcp is an asus RT-AC66u, in between my server and the router are two netgear wnr3500v2 running on dd-wrt as a dummy switch. If you need other information, please let me know. Another way to fix this in the router without resetting it would be okay too.

    Thanks for the help so far. :smile:

    Edit: I am running virtualbox 5 with bridged adapter, having the same result on my laptop.


  • Moderator

    I think it’s a misconfiguration of the ltsp.conf file and a probably you don’t have a copy of the file you want to use with a .0 extension. The .0 is appended to the boot file, but if it’s already there dnsmasq leaves it alone.

    cp /tftpboot/undionly.kpxe /tftpboot/undionly.0

    sudo vi /etc/dnsmasq.d/ltsp.conf

    port=0
    log-dhcp
    tftp-root=/tftpboot
    dhcp-boot=undionly.0,192.168.1.101,192.168.1.101
    dhcp-option=17,/images
    dhcp-option=vendor:PXEClient,6,2b
    dhcp-no-override
    pxe-prompt="Press F8 for boot menu", 3
    pxe-service=X86PC, “Boot from network”, undionly
    pxe-service=X86PC, "Boot from local hard disk", 0
    dhcp-range=192.168.1.101,proxy
    

    systemctl restart dnsmasq
    systemctl status dnsmasq

    However, even with everything setup correctly, sometimes it still doesn’t work because of some types of consumer routers, and sometimes because of virtual machine setups. Mind telling us the model of the consumer router? and how your test host is running, what make and model it is?


Log in to reply
 

399
Online

38937
Users

10696
Topics

101490
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.