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