disable dhcp\_client\_id in gpxe

disable dhcp_client_id in gpxe

gpxe 預設會送出 client_id ,這個小小的動作與PXE不相容(因為大部份PXE都不會送出)。這樣的結果會造成DHCP Serevr 送不同的IP給同一台主機(再瑣MAC address以前),第一次gpxe要一個,之後應該是initram裏面又要一次,兩次不一樣,所以拿到不一樣的IP(大概是這樣啦),解決方式應該是要從 DHCP Server 下手,如果真的是同一台就嘗試給一個固定的 IP,另外,gpxe也不應該送dhcp_client_id。

小小 hack 一下,把 gpxe 預設送出 client_id 的動作,改由可以透過其他方式決定(#ifdef XXX),所以使用者只要連上config的網頁,從網頁的configuration,"Customize image configuration options"

接著Uncheck

SEND_DHCP_CLIENT_ID

Add DHCP client identifier. Required for Infiniband, and doesn't hurt

other link layers.

產生出來的image預設就不會送出client_id

另外,gpxe 預設送出的 client_id 字串通常是

01(protocol):網路卡ID(xx:xx:xx:xx:xx:xx)

過程中學到一些經驗:

抓 dhcp client 封包

tcpdump -i eth1 -vvv -s 0 -n port 67 and port 68 (ref)

DHCP 行為 http://layer3.wordpress.com/2010/01/01/dhcppart1/

以及 程式設計師的堅持 http://etherboot.org/pipermail/gpxe/2010-March/000641.html

結果:http://lab.libthomas.org/gpxe-rom/

convert from Thomas blog post id 662 old convert log: ./155749/tag%3E2010%2003%20linux%20drbl%20cc%20gpxe)

@2010 @03 @linux @drbl @cc @gpxe

Comments