Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
pxechaining [2009/03/19 04:09] chelmuth Fixed ISC dhcpd configuration snippet |
pxechaining [2009/08/29 02:10] tal.aloni |
||
---|---|---|---|
Line 4: | Line 4: | ||
{{ :screenshots:gpxe-chaining.png?361x201|PXE chainloading in VMware}} | {{ :screenshots:gpxe-chaining.png?361x201|PXE chainloading in VMware}} | ||
+ | |||
+ | === UNDI Driver === | ||
+ | Universal Network Device Interface (UNDI) is an application programming interface (API) for network interface cards (NIC) used by the Preboot Execution Environment (PXE) protocol. | ||
+ | |||
+ | when chainloading gPXE from PXE, gPXE can use this API (instead of loading an hardware driver). this way, you're getting support for network controllers that are not natively supported by gPXE. some network contollers have improved performance when using the UNDI driver over the vendor specific gPXE driver (forcedeth for example). | ||
+ | |||
+ | to use the UNDI driver, select the UNDI driver (undionly) when generating the gPXE ROM. | ||
===== Setting up PXE chainloading ===== | ===== Setting up PXE chainloading ===== | ||
Line 38: | Line 45: | ||
| | ||
This will ensure that the gPXE image (//undionly.kpxe//) is handed out only when the DHCP request comes from a legacy PXE client. Once gPXE has been loaded, the DHCP server will direct it to boot from //%%http://my.web.server/real_boot_script.php%%//. | This will ensure that the gPXE image (//undionly.kpxe//) is handed out only when the DHCP request comes from a legacy PXE client. Once gPXE has been loaded, the DHCP server will direct it to boot from //%%http://my.web.server/real_boot_script.php%%//. | ||
+ | ==== Using dnsmasq ==== | ||
+ | Dnsmasq is a DHCP, TFTP, DNS server. Here is the configuration for chain loading gPXE. | ||
+ | |||
+ | The conf is: | ||
+ | #DHCP part | ||
+ | domain=mydomain | ||
+ | dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,30m | ||
+ | dhcp-option=option:router,192.168.10.1 | ||
+ | dhcp-authoritative | ||
+ | | ||
+ | # TFTP part | ||
+ | enable-tftp | ||
+ | tftp-root=/tftproot | ||
+ | | ||
+ | # host part, a VM that will be booted from network | ||
+ | # 00:0C:29 - the MAC part of VMware vendor - we are booting a VM | ||
+ | dhcp-host=00:0c:29:aa:bb:cc,gPXE-client,net:gPXE-PCnet32,192.168.10.100,10m | ||
+ | dhcp-boot=net:gPXE-PCnet32,gpxe-git-pcnet32.pxe | ||
+ | dhcp-userclass=gPXE-booted,"gPXE" | ||
+ | dhcp-boot=net:gPXE-booted,http://my.web.server/real_boot_script.php | ||
+ | |||
+ | The file gpxe-git-pcnet32.pxe is located in the /tftproot/ folder. | ||
==== Using the Windows DHCP server ==== | ==== Using the Windows DHCP server ==== |