Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dnsmasq [2008/11/24 11:39] pkt |
dnsmasq [2010/04/28 15:45] (current) davehansen |
||
---|---|---|---|
Line 7: | Line 7: | ||
* It is small and lightweight | * It is small and lightweight | ||
* Easy to setup (includes its own tftp server) | * Easy to setup (includes its own tftp server) | ||
- | * It may already be running on your linux-based router :) | + | * It may already be running on your linux-based router :-) |
===== Defining the gPXE-specific options ===== | ===== Defining the gPXE-specific options ===== | ||
Line 27: | Line 27: | ||
See: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example | See: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example | ||
for more information | for more information | ||
+ | |||
+ | ===== Chain-booting gPXE into SAN-boot / installation ===== | ||
+ | |||
+ | These settings will cause your existing PXE to load gPXE, and then gPXE to boot off an iSCSI target. If the target can not be booted, it is left registered so that you can [[sanboot:iscsi_install|install an operating system]] to it. | ||
+ | |||
+ | enable-tftp | ||
+ | tftp-root=/var/lib/tftpboot # place your gpxe.pxe (either built yourself or from http://rom-o-matic.net here) | ||
+ | dhcp-match=gpxe,175 # tags the request with net:gpxe if the gPXE option was supplied in DHCP request | ||
+ | dhcp-option=175,8:1:1 # turn on the keep-san option to allow installation | ||
+ | dhcp-boot=net:#gpxe,gpxe.pxe # Here #gpxe means 'not gpxe': that is the tag is not set | ||
+ | dhcp-option=net:gpxe,17,"iscsi:ta.rg.et.ip::::iqn.yyyy-mm.reversed-domain-name:identifier" | ||
+ | |||
+ | |||
+ | ===== A potential problem and a fix ===== | ||
+ | |||
+ | According to this page: http://blog.nella.org/?p=335 | ||
+ | |||
+ | <code> | ||
+ | gPXE wants to find the boot filename in the dedicated slot in the reply packet. | ||
+ | dnsmasq does something clever/stupid (I’m not sure which) and puts it | ||
+ | someplace else. You have to use the –dhcp-no-override option to | ||
+ | dnsmasq to make gPXE see the filename. | ||
+ | </code> | ||
+ | |||
+ | Here is an online version of the [[http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html|man page]] for | ||
+ | dnsmasq. it contains this switch explanation: | ||
+ | |||
+ | <code> | ||
+ | --dhcp-no-override | ||
+ | Disable re-use of the DHCP servername and filename fields as extra | ||
+ | option space. If it can, dnsmasq moves the boot server and filename | ||
+ | information (from dhcp-boot) out of their dedicated fields into DHCP | ||
+ | options. This make extra space available in the DHCP packet for | ||
+ | options but can, rarely, confuse old or broken clients. This flag | ||
+ | forces "simple and safe" behaviour to avoid problems in such a case. | ||
+ | </code> | ||
+ | |||
+ | ===== Under OpenWRT ===== | ||
+ | |||
+ | [[http://www.openwrt.org|OpenWRT]] is a replacement for factory firmware commonly found in wireless routers. dnsmasq is configured a bit differently when you use OpenWRT. Use these commands to set the dhcp-supplied filename. This eventually gets passed as the --dhcp-boot command-line option to dnsmasq. But, this way, it is saved in the router's flash and will get saved/restored with the rest of the system's configuration. | ||
+ | |||
+ | <code> | ||
+ | uci set dhcp.@dnsmasq[0].dhcp_boot=http://4.3.2.1/gpxe-dir/script-name, | ||
+ | uci commit dhcp | ||
+ | </code> | ||
+ | |||
+ |