Hi there.
I have tried to find the ID using tcpdump on my dhcp server running
openbsd. But I only get some kind useless output.
Have tried these commands:
tcpdump -lenx -s 1500 -i vio1 port bootps or port bootpc:
18:15:39.199104 36:39:31:35:37:30 ff:ff:ff:ff:ff:ff 0800 450:
0.0.0.0.68 > 255.255.255.255.67: xid:0x9f31e34 secs:14 vend-rfc1048
DHCP:REQUEST MSZ:1472 T93:0 T94:1.2.1
VC:80.88.69.67.108.105.101.110.116.58.65.114.99.104.58.48.48.48.48.48.58.85.78.68.73.58.48.48.50.48.48.49
T77:1766873157
PR:SM+DG+NS+LOG+HN+DN+RP+VO+VC+TFTP+BF+119+128+129+130+131+132+133+134+135+175+203
T175:177.5.1.26.244.16.0.235.3.1.0.0.23.1.1.34.1.1.19.1.1.17.1.1.39.1.1.25.1.1.16.1.2.33.1.1.21.1.1.24.1.1.18.1.1
CID:1.54.57.49.53.55.48
T97:0.210.70.225.140.162.19.12.66.131.81.115.228.78.228.23.33
SID:10.0.0.1 RQ:10.0.0.180
*very long hex*
18:15:39.199613 36:34:36:65:61:31 36:39:31:35:37:30 0800 342:
10.0.0.181.67 > 10.0.0.180.68: xid:0x9f31e34 secs:14 Y:10.0.0.180
S:10.0.0.9 sname "fw" file "http://10.0.0.9/tftp/boot.php"
vend-rfc1048 DHCP:ACK SID:10.0.0.1 LT:7200 SM:255.255.255.0
DG:10.0.0.1 NS:10.0.0.23,10.0.0.1 HN:"in-cc01" DN:"chrjsn.se" [tos 0x10]
*very long hex*
tcpdump -vlenxx -i vio1 -s 1500 port bootps or port bootpc:
18:22:21.568888 36:39:31:35:37:30 ff:ff:ff:ff:ff:ff 0800 450:
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] xid:0x47cead35 secs:14
vend-rfc1048 DHCP:REQUEST MSZ:1472 T93:0 T94:1.2.1
VC:80.88.69.67.108.105.101.110.116.58.65.114.99.104.58.48.48.48.48.48.58.85.78.68.73.58.48.48.50.48.48.49
T77:1766873157
PR:SM+DG+NS+LOG+HN+DN+RP+VO+VC+TFTP+BF+119+128+129+130+131+132+133+134+135+175+203
T175:177.5.1.26.244.16.0.235.3.1.0.0.23.1.1.34.1.1.19.1.1.17.1.1.39.1.1.25.1.1.16.1.2.33.1.1.21.1.1.24.1.1.18.1.1
CID:1.54.57.49.53.55.48
T97:0.210.70.225.140.162.19.12.66.131.81.115.228.78.228.23.33
SID:10.0.0.1 RQ:10.0.0.180 (ttl 64, id 873, len 436)
*very long hex*
18:22:21.569432 36:34:36:65:61:31 36:39:31:35:37:30 0800 342:
10.0.0.181.67 > 10.0.0.180.68: [udp sum ok] xid:0x47cead35 secs:14
Y:10.0.0.180 S:10.0.0.9 sname "fw" file
"http://10.0.0.9/tftp/boot.php" vend-rfc1048 DHCP:ACK SID:10.0.0.1
LT:7200 SM:255.255.255.0 DG:10.0.0.1 NS:10.0.0.23,10.0.0.1
HN:"in-cc01" DN:"chrjsn.se" [tos 0x10] (ttl 128, id 0, len 328)
*very long hex*
tcpdump -i vio1 -s 1500 -vvv port bootps or port bootpc also gives
similar results.
But from what I've read from tcpdumps on google, the ID changes for
different hardware.
Isn't there a way to simply check if undionly.kpxe is loaded and then
load the PHP?
"if not exists gpxe.bus-id" worked for all devices and also with ipxe.
Thanks!
Hi Chris,
'd-i' is the DHCP signature of the preseed Debian Installer (hence,
'd-i'). I've only ever used iPXE, I've never used gPXE before it, so
yeah, a couple of minutes with tcpdump to inspect the ID it's sending
in the option string should help you along; once you have that ID
field, change the test condition in the second stanza and you should
be good to go.
BTW the problem you're encountering with the looping boot process is
one that affected ISC DHCP in a similar way, you just have to tune the
conditions the DHCP server uses to distinguish the state of the
booting client in order to direct it where you want to go. ... or
flash iPXE on the firmware of all your servers hahaha :-)
cheers,
Klaus
On Tue, Sep 13, 2016 at 9:29 AM, Christoffer Jönsson <[email protected]
<mailto:[email protected]>> wrote:
On 2016-09-12 22:58, Klaus Steden wrote:
I don't know about updating PowerDNS, but I suspect you'll have
to write a plugin. As for the designated boot menu, you can still
do that, although the syntax is different.
This snippet below -should- do more or less what you're doing
with vanilla ISC DHCP:
-- cut --
"client-classes": [
{
"name": "bootstrap",
"test" : "option[60].exists
"option-data": [
{
"name": "boot-file-name",
"data": "ipxe/undionly.kpxe"
}
]
},
{
"name": "preseed",
"test": "option[60].hex == 'd-i'",
"option-data": [
{
"data" : "http://10.0.0.9/tftp/boot.php
<http://10.0.0.9/tftp/boot.php>",
"name" : "boot-file-name"
}
]
}
],
-- cut --
You're probably going to have to tune that a bit, but this is the
approach I'm using to manage both server and switch booting, and
it works well.
hth,
Klaus
On Mon, Sep 12, 2016 at 11:57 AM, Christoffer Jönsson
<[email protected] <mailto:[email protected]>> wrote:
Hello again!
Since the 1.1 release i decided to try and migrate from
isc-dhcp. And there is a few things I have questions about.
For years I have been using a python script to feed my
PowerDNS it's records using this:
on commit {
set ClientIP = binary-to-ascii(10, 8, ".",
leased-address);
set ClientMac = binary-to-ascii(16, 8, ":",
substring(hardware, 1, 6));
log(concat("Commit: IP: ", ClientIP, " Mac:
", ClientMac, "Hostname: ", option host-name));
execute("/etc/pdns/dhcp-event", "commit",
ClientIP, ClientMac, option host-name);
}
Is it still possible to call and external script?
At the same time I've been using a php file that loads the
designated boot menu for the booted mac-address:
subnet 10.0.0.0 netmask 255.255.255.0 {
[...]
if not exists gpxe.bus-id {
filename "undionly.kpxe";
} else {
filename "http://10.0.0.9/tftp/boot.php";
}
[...]
}
I'm not sure I can still use this line of code?
Thanks in advance!
_______________________________________________
Kea-users mailing list
[email protected] <mailto:[email protected]>
https://lists.isc.org/mailman/listinfo/kea-users
<https://lists.isc.org/mailman/listinfo/kea-users>
_______________________________________________
Kea-users mailing list
[email protected] <mailto:[email protected]>
https://lists.isc.org/mailman/listinfo/kea-users
<https://lists.isc.org/mailman/listinfo/kea-users>
_______________________________________________
Kea-users mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-users
_______________________________________________
Kea-users mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-users