NetBoot and PXE Boot co-existence

thedanielmatt
New Contributor III

Hey everyone,

I'm trying to sort out setting up NetBoot (NetBoot/SUS Appliance) in a Windows and Cisco environment that is already using PXE booting.
My understanding is the two can co-exist, but will need some help from DHCP. I see a lot of reference to IP Helpers, but mostly in conversations regarding NetBooting across subnets. I also know some people use DHCP Options.

What I haven't been able to sort out is, if I need both and if I need to use DHCP Options, which ones. I know it may not be that simple regarding which options, but it sounds like the IP Helper address is pretty straightforward.

Anyway, hoping someone can share how they've approached/accomplished this.

Thanks!

44 REPLIES 44

sbroadd1
New Contributor

I have both running in my environment.... PXE for SCCM and NetBoot for Mac's. Both machines are in the same subnet with an IP helper to our "imaging" subnet ( /24). The helper does not know Mac or PC, it simply forwards requests. We had to use the IP helper and found that DHCP options would not work for us.

yadin
Contributor

I keep hunting for info on this and finding threads like this that say it works fine, but no info on HOW to set it up. Can anyone provide that info? In other words, what is the DHCP option for netboot? PXE boot uses option 66 and 67 (server and file) or the equivalent (Bluecat Proteus uses Next Server and File Name service options instead of those DHCP client options. Anyone know what client options or service options netboot needs to have set? It obviously can't be the same options as PXE as you can only set one value for those, and the seemingly great mystery is what are the magic options for netboot?

dwenger
New Contributor III

Similar setup as @sbroadd1 here. Running both PXE and BootP using IP helpers which were configured on our network infrastructure and it works very well. The configuration being used for the IP helpers on our Cisco hardware only specifies the IP address of the PXE or NetBoot servers and not the service for the IP.

yadin
Contributor

But what is the option you use in DHCP for the netboot server IP? PXE server IP is under option 66, but I've still never found anyone who can say what the option is for Netboot...
To put another way, I'm not sure I understand your reply because the helper IPs in the network hardware point to the DHCP server. The DHCP server then has the client or service options that point to PXE, and presumably Netboot. We have PXE working fine, and can't find how to add Netboot to this environment.
Thanks for any assistance with the specifics you can provide!

dwenger
New Contributor III

In my environment, this is being specified completely independent of our DHCP servers. I'm not sure there is a DHCP option for BootP which is the protocol used by NetBoot. It sounds like a bootpd relay might be more along the lines of what you're looking for in your setting. This article might shed a bit more light on the matter. My recommendation would be to reach out to your JAMF Account Manager or your network hardware vendor to get the most relevant guidance for your environment.

joeselway
New Contributor II

@ebonweaver - You're almost there. You just need to add your NetBoot server itself to the IP helpers on your network hardware, along with the existing entry for the DHCP servers. You should find it "just works". NetBoot discovery is very similar to DHCP discovery.

joeselway
New Contributor II

Sorry for the double up, I missed OPs question..

@thedanielmatt - I'm not aware of any way to leverage DHCP options to point a client to a NetBoot server. You just need those discovery broadcasts forwarded (just like with the DHCP DORA process) to your NetBoot server, hence the IP helpers.

Bootpd relay does seems like the "ideal" solution, in the same way that RADIUS seems "ideal" for securing my home Wi-Fi... But IP helpers have always worked for me ;-)

dlondon
Valued Contributor

Hi Daniel,

1) Yes NetBoot and PXE can coexist without any issues or special attention to make them coexist. So you can have your windows deployment system e.g. SCCM working in the same network as your mac deployment system using e.g. the OS X Server NetBoot Service or JAMF NetBoot/SUS on a VM.

2) If you have more than 1 subnet (as most people on here do) your switches will need to be configured with helper addresses. Ours are configured for the NetBoot and PXE servers.

3) If you are unlucky enough not to be able to use helper addresses you need to do other things to tell your client macs where the netboot server is. This can be done a couple of ways:
a) Using bless - see https://jamfnation.jamfsoftware.com/discussion.html?id=5716
b) Using a DHCP server to provide the info required to NetBoot in the options given to a machine when it asks for a DHCP assigned address. This doesn't mean that the mac's all netboot every time they boot - you still need to press the N key at power on to start the machine looking for a NetBoot server.

We used (b) above for a long time because our main firewall between the NetBoot server and the clients had a limit of 3 helper addresses and they were already taken by the PXE and DHCP servers.

We used this initially via a linux based DHCP server and then an Infoblox DHCP server. With the Infoblox server we were lucky to have a system admin who was right into NetBoot

Here is some good base info: http://techstaff-wiki.cs.uchicago.edu/index.php/OS_X_infrastructure

Here are the instructions for our Inflox setup

Infoblox UI.
Select Data Management -> DHCP -> IPv4 Filters
Add an IPv4 Option filter
Configure with the below settings and select Apply this filter as a global DHCP class

class "AppleNBI-i386" {
match if (substring(option vendor-class-identifier,0,14)="AAPLBSDPC/i386");
option root-path "nfs:YourNetBootServerIP:/Volumes/Data/Library/NetBoot/NetBootSP0:/DHCPdefault.nbi/NetBoot.dmg";
option vendor-encapsulated-options 08:04:81:00:00:67;
option dhcp-parameter-request-list 1,3,17,43,60;
option vendor-class-identifier "AAPLBSDPC/i386";
next-server YourNetBootServerIP;
filename "/private/tftpboot/NetBoot/NetBootSP0/DHCPdefault.nbi/i386/booter";
}

Note:

  • we had a DHCPdefault.nbi symbolic link on the NetBoot server pointing at the current image so we didn't have to keep changing the filter in the DHCP server whenever a new NetBoot image was added. Having a few different NetBoot images available is always good in case something doesn't work.

  • the root-path may be different for you. We had the Library/NetBoot/NetBootSP0 location on a separate volume (Data)

Regards,

David

calumhunter
Contributor III

to the OP regarding DHCP options:

First some clarification on what makes up a NetBoot Server.

  1. It is a DHCP server ( of sorts ) - listening on udp port 67
  2. It is a TFTP server ( For delivering the booter file to the client device ) - listening on udp port 69
  3. It is a HTTP server OR - tcp port 80
  4. It is a NFS server- tcp/udp port 2049 Depending on how you deploy your NetBoot images ie over HTTP or NFS

When a client boots up with the N key for example it sends a broadcast looking for a server responding with the BSDP information (This is the DHCP options) this info contains the location of the booter file to be booted via tftp and the netboot image file to be booted via NFS or HTTP depending on your choice of how your delivering your netboot images.

If the client device is on a different subnet to the netboot server, then the netboot server will not receive this request from the client, just like how a dhcp server on a different subnet would not receive the request from a client, this is why we need the netboot server ip address put into the IP helper record on the router. This tells the router to allow the BSDP/DHCP information to traverse the subnets.

The DHCP server component of the NetBoot server, does not give out IP address, it simply responds to BSDP requests from client devices with netboot information (DHCP options)

Hope that helps :)

If you want a NetBoot server that isn't a Mac computer running Mac OS X server.

There are a couple alternatives;
1. BSDPy
2. NetSUS

I would recommend BSDPy, but it depends on your setup and how many netboot servers you need I guess

franton
Valued Contributor III

Yes they'll co-exist happily. Netboot service looks for a specific apple vendor ID in the initial traffic and won't respond unless it gets it. PXE can either operate via IP helpers set on the network switches or via DHCP options ... but you'll have to set an IP Helper to get to the DHCP server ;)

BTW as far as i'm aware using DHCP options to get PXE to work is not recommended by Microsoft. They prefer IP helpers.

scharman
New Contributor

I have been trying to get this to work for ages, used a NetSUS solution for a while with no luck. no just rolled out a BSDPy solution (yes i have ip helpers pointing to each server) and I have tested the .nbi files locally to prove they work, still no go.

calumhunter
Contributor III

@scharman Can you provide more details on your setup and exactly what you are trying to do?

It sounds like you have a netboot server and a mac os x client device on different subnets.

I'll assume that your netboot server is on the same subnet as your other network servers like DHCP server, Mac Server, Windows Server etc etc etc

There will be a switch or router connecting the two subnets, this will have a place usually called ip_helper that allows you to place an IP address of a server that will accept broadcast traffic from the other subnet.

So in this example, your IP helper should contain the IP address of both your DHCP server and your netboot server.

thats pretty much it. theres not a lot of magic to it.

Curious how did you test the .nbi files "locally"?
How did you create the nbi ?

scharman
New Contributor

There is a switch directly connected to a core router connecting the two subnets here is the IP helper added in:

core1#show run int vl65
Building configuration...

Current configuration : 294 bytes
!
interface Vlan65
 description Casper Test Workstations
 ip address 10.xx.65.254 255.255.255.0
 ip helper-address 10.xx.195.28
 ip helper-address 10.xx.207.28
 ip helper-address 10.xx.195.145
 ip helper-address 10.xx.195.240
 no ip redirects
 no ip unreachables
 no ip proxy-arp
end

I have crossed out some of the IP addresses for security, 10.xx.65.0 is the vlan i'm connecting from and 10.xx.195.240 is my netboot server. When I say I tested it locally I meant I spun up a local VM environment with VMware fusion on one of my workstations and was able to netboot between hosts(they were on the same subnet tho) I used AutoCasperNBI to build my nbi.

scharman
New Contributor

there seems to be communication between the two subnets:
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
06:23:39.089815 IP 10.xx.65.254.bootps > 10.59.195.240.bootps: BOOTP/DHCP, Request from ac:87:a3:37:f4:ca (oui Unknown), length 301
06:23:39.092325 IP 10.xx.195.240.bootps > 10.59.65.2.bootpc: BOOTP/DHCP, Reply, length 272
06:23:40.007987 IP 10.xx.65.254.bootps > 10.59.195.240.bootps: BOOTP/DHCP, Request from ac:87:a3:37:f4:ca (oui Unknown), length 301
06:23:40.010297 IP 10.xx.195.240.bootps > 10.59.65.2.bootpc: BOOTP/DHCP, Reply, length 272
06:23:42.008252 IP 10.xx.65.254.bootps > 10.59.195.240.bootps: BOOTP/DHCP, Request from ac:87:a3:37:f4:ca (oui Unknown), length 316
06:23:42.011137 IP 10.xx.195.240.bootps > 10.59.65.2.bootpc: BOOTP/DHCP, Reply, length 270
this is a tcpdump from the BSDPy server.

scharman
New Contributor

@calumhunter any ideas

calumhunter
Contributor III

whats in the bsdpy log?

netboot server isn't running under hyper -v is it?

scharman
New Contributor

na its running under docker

not seeing much in the logs /var/log/syslog
Dec 7 05:13:07 isp-osb-netboot1 kernel: [273153.493217] docker0: port 1(veth756 3c78) entered forwarding state
Dec 7 05:13:07 isp-osb-netboot1 kernel: [273153.493222] docker0: port 1(veth756 3c78) entered forwarding state
Dec 7 05:13:10 isp-osb-netboot1 ntpd[1870]: Listen normally on 8 veth7563c78 fe 80::98a2:5aff:fe77:a259 UDP 123
Dec 7 05:13:10 isp-osb-netboot1 ntpd[1870]: peers refreshed
Dec 7 05:13:10 isp-osb-netboot1 ntpd[1870]: new interface(s) found: waking up r esolver
Dec 7 05:13:22 isp-osb-netboot1 kernel: [273168.541472] docker0: port 1(veth756

scharman
New Contributor

heres a tcpdump with -v enabled

Client-IP 10.xx.65.1 Gateway-IP 10.xx.65.254 isp-osb-netboot1.bootps > 10.xx.65.1.bootpc: BOOTP/DHCP, Reply, length 270, Flags [none] Client-IP 10.xx.65.1 10.xx.65.1.bootpc > isp-osb-netboot1.bootps: BOOTP/DHCP, Request from 40:6c:8f:10:74:e9 (oui Unknown), length 300, Flags [none] Client-IP 10.xx.65.1 isp-osb-netboot1.bootps > 10.xx.65.1.bootpc: BOOTP/DHCP, Reply, length 272, Flags [none] Client-IP 10.xx.65.1 10.xx.65.254.bootps > isp-osb-netboot1.bootps: BOOTP/DHCP, Request from 40:6c:8f:10:74:e9 (oui Unknown), length 315, hops 1, Flags [none] Client-IP 10.xx.65.1 Gateway-IP 10.xx.65.254 isp-osb-netboot1.bootps > 10.59.65.1.bootpc: BOOTP/DHCP, Reply, length 270, Flags [none] Client-IP 10.xx.65.1 10.xx.65.254.bootps > isp-osb-netboot1.bootps: BOOTP/DHCP, Request from 40:6c:8f:10:74:e9 (oui Unknown), length 300, hops 1, xid 0x74191c5b, Flags [none] Gateway-IP 10.xx.65.254 Requested-IP Option 50, length 4: 10.xx.65.1

calumhunter
Contributor III

yeah but the VM that docker is running on what OS is it? is that running under hyper-v or vmware? or what?

you can get the logs from bsdpy under docker by running

docker logs <name_of_container>

you can also do

docker logs -f <name_of_container> its like doing a tail -f on a file

calumhunter
Contributor III

also can you post your entire docker run command

scharman
New Contributor

wow I can see so much more now

here is my docker logs output:
12/07/2015 07:58:54 AM - DEBUG: System ID "MacBookPro10,2" is disabled - skippin g "No description"
12/07/2015 07:58:54 AM - DEBUG: -=========================================-
12/07/2015 07:58:54 AM - DEBUG: Return ACK[LIST] to ac:87:a3:37:f4:ca - 10.59.65 .2 on port 68
12/07/2015 07:58:55 AM - DEBUG: -=========================================-
12/07/2015 07:58:55 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 07:58:55 AM - DEBUG: Using provided clientip 10.59.65.2
12/07/2015 07:58:55 AM - DEBUG: Determining image list for system ID MacBookPro1 0,2
12/07/2015 07:58:55 AM - DEBUG: System ID "MacBookPro10,2" is disabled - skippin g "No description"
12/07/2015 07:58:55 AM - DEBUG: -=========================================-
12/07/2015 07:58:55 AM - DEBUG: Return ACK[SELECT] to ac:87:a3:37:f4:ca - 10.59. 65.2 on port 68
12/07/2015 07:58:55 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 07:58:55 AM - DEBUG: --> Boot Image URI:
12/07/2015 07:59:47 AM - DEBUG: -=========================================-
12/07/2015 07:59:47 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 07:59:47 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 07:59:47 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 07:59:47 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 07:59:47 AM - DEBUG: -=========================================-
12/07/2015 07:59:47 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 07:59:47 AM - DEBUG: -=========================================-
12/07/2015 07:59:47 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 07:59:47 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 07:59:47 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 07:59:47 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 07:59:47 AM - DEBUG: -=========================================-
12/07/2015 07:59:47 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 07:59:47 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 07:59:47 AM - DEBUG: --> Boot Image URI:
12/07/2015 07:59:49 AM - DEBUG: -=========================================-
12/07/2015 07:59:49 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 07:59:49 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 07:59:49 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 07:59:49 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 07:59:49 AM - DEBUG: -=========================================-
12/07/2015 07:59:49 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 07:59:50 AM - DEBUG: -=========================================-
12/07/2015 07:59:50 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 07:59:50 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 07:59:50 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 07:59:50 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 07:59:50 AM - DEBUG: -=========================================-
12/07/2015 07:59:50 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 07:59:50 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 07:59:50 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:06:02 AM - DEBUG: -=========================================-
12/07/2015 08:06:02 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:06:02 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:02 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:02 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:02 AM - DEBUG: -=========================================-
12/07/2015 08:06:02 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:06:03 AM - DEBUG: -=========================================-
12/07/2015 08:06:03 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:06:03 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:03 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:03 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:03 AM - DEBUG: -=========================================-
12/07/2015 08:06:03 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:06:03 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:06:03 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:06:05 AM - DEBUG: -=========================================-
12/07/2015 08:06:05 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:06:05 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:05 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:05 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:05 AM - DEBUG: -=========================================-
12/07/2015 08:06:05 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:06:06 AM - DEBUG: -=========================================-
12/07/2015 08:06:06 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:06:06 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:06 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:06 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:06 AM - DEBUG: -=========================================-
12/07/2015 08:06:06 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:06:06 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:06:06 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:06:08 AM - DEBUG: -=========================================-
12/07/2015 08:06:08 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:06:08 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:08 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:08 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:08 AM - DEBUG: -=========================================-
12/07/2015 08:06:08 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:06:09 AM - DEBUG: -=========================================-
12/07/2015 08:06:09 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:06:09 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:09 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:09 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:09 AM - DEBUG: -=========================================-
12/07/2015 08:06:09 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:06:09 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:06:09 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:06:11 AM - DEBUG: -=========================================-
12/07/2015 08:06:11 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:06:11 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:11 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:11 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:11 AM - DEBUG: -=========================================-
12/07/2015 08:06:11 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:06:12 AM - DEBUG: -=========================================-
12/07/2015 08:06:12 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:06:12 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:06:12 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:06:12 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:06:12 AM - DEBUG: -=========================================-
12/07/2015 08:06:12 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:06:12 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:06:12 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:13:34 AM - DEBUG: -=========================================-
12/07/2015 08:13:34 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:13:34 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:13:34 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:13:34 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:13:34 AM - DEBUG: -=========================================-
12/07/2015 08:13:34 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:13:35 AM - DEBUG: -=========================================-
12/07/2015 08:13:35 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:13:35 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:13:35 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:13:35 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:13:35 AM - DEBUG: -=========================================-
12/07/2015 08:13:35 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:13:35 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:13:35 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:13:37 AM - DEBUG: -=========================================-
12/07/2015 08:13:37 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:13:37 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:13:37 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:13:37 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:13:37 AM - DEBUG: -=========================================-
12/07/2015 08:13:37 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:13:38 AM - DEBUG: -=========================================-
12/07/2015 08:13:38 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:13:38 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:13:38 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:13:38 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:13:38 AM - DEBUG: -=========================================-
12/07/2015 08:13:38 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:13:38 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:13:38 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:16:03 AM - DEBUG: -=========================================-
12/07/2015 08:16:03 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:16:03 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:16:03 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:16:03 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:16:03 AM - DEBUG: -=========================================-
12/07/2015 08:16:03 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:16:04 AM - DEBUG: -=========================================-
12/07/2015 08:16:04 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:16:04 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:16:04 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:16:04 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:16:04 AM - DEBUG: -=========================================-
12/07/2015 08:16:04 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:16:04 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:16:04 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:16:36 AM - DEBUG: -=========================================-
12/07/2015 08:16:36 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:16:36 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:16:36 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:16:36 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:16:36 AM - DEBUG: -=========================================-
12/07/2015 08:16:36 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:16:37 AM - DEBUG: -=========================================-
12/07/2015 08:16:37 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:16:37 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:16:37 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:16:37 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:16:37 AM - DEBUG: -=========================================-
12/07/2015 08:16:37 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:16:37 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:16:37 AM - DEBUG: --> Boot Image URI:
12/07/2015 08:16:39 AM - DEBUG: -=========================================-
12/07/2015 08:16:39 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/07/2015 08:16:39 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:16:39 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:16:39 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:16:39 AM - DEBUG: -=========================================-
12/07/2015 08:16:39 AM - DEBUG: Return ACK[LIST] to 40:6c:8f:10:74:e9 - 10.59.65 .1 on port 68
12/07/2015 08:16:40 AM - DEBUG: -=========================================-
12/07/2015 08:16:40 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/07/2015 08:16:40 AM - DEBUG: Using provided clientip 10.59.65.1
12/07/2015 08:16:40 AM - DEBUG: Determining image list for system ID MacBookPro8 ,2
12/07/2015 08:16:40 AM - DEBUG: System ID "MacBookPro8,2" is disabled - skipping "No description"
12/07/2015 08:16:40 AM - DEBUG: -=========================================-
12/07/2015 08:16:40 AM - DEBUG: Return ACK[SELECT] to 40:6c:8f:10:74:e9 - 10.59. 65.1 on port 68
12/07/2015 08:16:40 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/07/2015 08:16:40 AM - DEBUG: --> Boot Image URI:
root@isp-osb-netboot1:~#
There doesnt seem to be a boot Image url being provided and not sure why it is skipping those System IDs,
here is my docker run command:
docker run --restart=always -d -v /nbi:/nbi -p 67:67/udp -p 69:69/udp -p 80:80 -e BSDPY_IP=10.59.195.240 --name netboot_server hunty1/bsdpydocker

calumhunter
Contributor III

heh thats my docker container ;)

Looks like your NBI is not setup correctly. How did you make it? It looks like the nbimageinfo.plist is not setup corerctly, See where is saying skipping "no description" it should probably have a description. Make sure you don't have any spaces in the name of your NBI also

You'll need to pay attention to the nbimageinfo.plist
specifically around the enabled/disabled arrays

This is what i do on my nbimageinfo.plist i basically remove all the machines from the disabled array, and add only the really old machines i dont support

https://gist.github.com/hunty1/4b687e8a5103e4024f56#file-acnbi-script-L258-L295

scharman
New Contributor

heres my NBimageinfo.plist

<dict> <key>Architectures</key> <array> <string>i386</string> </array> <key>BackwardCompatible</key> <false/> <key>BootFile</key> <string>booter</string> <key>Description</key> <string>No description</string> <key>DisabledSystemIdentifiers</key> <array> <string>MacBookAir6,1</string> <string>MacBookAir5,2</string> <string>MacBookAir7,2</string> <string>MacBookAir2,1</string> <string>MacBookAir5,1</string> <string>MacBookAir4,2</string> <string>MacBookAir4,1</string> <string>MacBookAir6,2</string> <string>MacBookAir7,1</string> <string>MacBookAir3,2</string> <string>MacBookAir3,1</string> <string>MacBookPro5,2</string> <string>MacBookPro9,1</string> <string>MacBookPro6,2</string> <string>MacBookPro6,1</string> <string>MacBookPro8,3</string> <string>MacBookPro11,3</string> <string>MacBookPro7,1</string> <string>MacBookPro11,2</string> <string>MacBookPro10,1</string> <string>MacBookPro12,1</string> <string>MacBookPro11,4</string> <string>MacBookPro11,5</string> <string>MacBookPro3,1</string> <string>MacBookPro4,1</string> <string>MacBookPro8,1</string> <string>MacBookPro10,2</string> <string>MacBookPro5,3</string> <string>MacBookPro5,5</string> <string>MacBookPro5,4</string> <string>MacBookPro5,1</string> <string>MacBookPro9,2</string> <string>MacBookPro11,1</string>
..

<string>iMac11,3</string> <string>iMac13,2</string> <string>iMac15,1</string> <string>iMac12,2</string> <string>iMac8,1</string> <string>iMac10,1</string> <string>iMac13,3</string> <string>iMac16,1</string> <string>iMac16,2</string> <string>iMac14,1</string> <string>iMac14,3</string> <string>iMac13,1</string> <string>iMac11,2</string> <string>Macmini5,3</string> <string>Macmini5,1</string> <string>Macmini4,1</string> <string>Macmini5,2</string> <string>Macmini3,1</string> <string>Macmini6,1</string> <string>Macmini6,2</string> <string>Macmini7,1</string> <string>MacBook8,1</string> <string>MacBook7,1</string> <string>MacBook5,1</string> <string>MacBook6,1</string> <string>MacBook5,2</string> <string>MacPro3,1</string> <string>MacPro5,1</string> <string>MacPro6,1</string> <string>MacPro4,1</string> <string>Xserve3,1</string> </array> <key>EnabledSystemIdentifiers</key> <array/> <key>ImageType</key> <string>netboot</string> <key>Index</key> <integer>443</integer> <key>IsDefault</key> <false/> <key>IsEnabled</key> <true/> <key>IsInstall</key> <false/> <key>Kind</key> <integer>1</integer> <key>Language</key> <string>Default</string> <key>Name</key> <string>10.11.1AutoCasperNBI</string> <key>RootPath</key> <string>NetBoot.dmg</string> <key>SupportsDiskless</key> <true/> <key>Type</key> <string>NFS</string> <key>osVersion</key>

I made the nbi using AutoCasperNBI tested it locally and it worked ok first time round, but that was in a vm environment.perhaps thats why?

calumhunter
Contributor III

Yep, the vm machine will show up as something like VMware7,1 which doesn't exist in the disabled array and so is allowed to boot

to allow everything simply make both enabled and disabled arrays empty then it should boot

ok so the no description thing is actually the string thats ok

scharman
New Contributor

ok did that, cant test until I'm on site tomorrow, weird how pretty much every type of make of Mac is in the disabled System identifiers array? why would it do that? is that something you can set on creation on the nbi?

calumhunter
Contributor III

https://macmule.com/2015/05/04/enableddisabled-identifiers-nbimageinfo-plist/

I think its actually a bug that has been fixed in a later version of bsdpy, i just haven't updated my container. I'll have to get around to doing that.

I think in the version of bsdpy that is in that container it looks at disabled and blocks them from booting. In later versions i'm pretty sure this was fixed and now it ignores items in disabled, unless there is an enabled system id in enabled and that system id is missing from disabled. then it becomes a whitelist where only enabled system ids are allowed to boot. I

Yeah looks like its fixed in this version:
https://bitbucket.org/bruienne/bsdpy/src/83270fb82b1163c46a9ac2380e9868268b4c8a95/bsdpserver.py?at=a...

scharman
New Contributor

OK, thanks for all your help.

will report back with findings

scharman
New Contributor

ok after a docker restart i dont get the restricted message for my mac but the tftp url seems alot missing from it plus theres nothing there for the boot Image url, anywhere I can define these?

12/08/2015 01:26:25 AM - DEBUG: Determining image list for system ID MacBookPro8,2
12/08/2015 01:26:25 AM - DEBUG: Image "No description" has no restrictions, adding to list
12/08/2015 01:26:25 AM - DEBUG: -=========================================-
12/08/2015 01:26:25 AM - DEBUG: Return ACK[SELECT] to 3c:7:54:29:2c:e4 - 10.59.65.3 on port 68
12/08/2015 01:26:25 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/08/2015 01:26:25 AM - DEBUG: --> Boot Image URI:
root@isp-osb-netboot1:~#

calumhunter
Contributor III

Your netboot image is definitely in /nbi?
Permissions all o.k?

this is what it should look like:

--> TFTP URI: tftp://10.1.1.1/nbi/My_NetBootImage.nbi/i386/booter
--> Boot Image URI: http://10.1.1.1/My_NetBootImage.nbi/NetBoot.dmg

calumhunter
Contributor III

You should also see this in the top of the logs

12/03/2015 05:20:38 AM - DEBUG: [========= Updating boot images list =========]
12/03/2015 05:20:38 AM - DEBUG: Considering NBI source at /nbi/MY_NetBootImage.nbi
12/03/2015 05:20:39 AM - DEBUG: /nbi/My_NetBootImage.nbi
12/03/2015 05:20:39 AM - DEBUG: [=========      End updated list     =========]
12/03/2015 05:20:39 AM - DEBUG: [========= Using the following boot images =========]
12/03/2015 05:20:39 AM - DEBUG: /nbi/My_NetBootImage.nbi
12/03/2015 05:20:39 AM - DEBUG: [=========     End boot image listing      =========]
12/08/2015 11:47:56 AM - DEBUG: -=========================================-

scharman
New Contributor

yep get

12/08/2015 01:25:58 AM - DEBUG: [========= Updating boot images list =========] 12/08/2015 01:25:58 AM - DEBUG: Considering NBI source at /nbi/10.11.1AutoCasperNBI.nbi 12/08/2015 01:25:58 AM - DEBUG: /nbi/10.11.1AutoCasperNBI.nbi 12/08/2015 01:25:58 AM - DEBUG: [========= End updated list =========] 12/08/2015 01:25:58 AM - DEBUG: [========= Using the following boot images =========] 12/08/2015 01:25:58 AM - DEBUG: /nbi/10.11.1AutoCasperNBI.nbi 12/08/2015 01:25:58 AM - DEBUG: [========= End boot image listing =========]

but each time spits out 12/08/2015 02:06:33 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/08/2015 02:06:33 AM - DEBUG: --> Boot Image URI:
root@isp-osb-netboot1:/etc#
then fails, so close

scharman
New Contributor

shall i delete the container then rerun it?

calumhunter
Contributor III

can you do a ls -la on the /nbi folder and post the results

scharman
New Contributor
drwxr-xr-x  3 nobody nogroup 4096 Nov 26 02:48 .
drwxr-xr-x 23 root   root    4096 Dec  8 02:14 ..
drwxr-xr-x  3 nobody nogroup 4096 Nov 26 01:10 10.11.1AutoCasperNBI.nbi
-rwxr-xr-x  1 nobody nogroup 4096 Nov 26 01:48 ._.DS_Store
-rwxr-xr-x  1 nobody nogroup 6148 Nov 26 02:31 .DS_Store
root@isp-osb-netboot1:/nbi#
root@isp-osb-netboot1:/nbi/10.11.1AutoCasperNBI.nbi# ls -la
total 10448928
drwxr-xr-x 3 nobody nogroup        4096 Nov 26 01:10 .
drwxr-xr-x 3 nobody nogroup        4096 Nov 26 02:48 ..
drwxr-xr-x 3 nobody nogroup        4096 Nov 26 01:09 i386
-rwxr-xr-x 1 nobody nogroup         998 Dec  8 02:33 NBImageInfo.plist
-rwxr-xr-x 1 nobody nogroup 10689228800 Nov 26 01:10 NetBoot.dmg
root@isp-osb-netboot1:/nbi/10.11.1AutoCasperNBI.nbi#

calumhunter
Contributor III

yeah that looks like the problem

do a chown -R root:root /nbi

that nobody no group looks weird

What OS is it?

scharman
New Contributor

pretty much identical to my working server except that nbi was owned by root:root.

scharman
New Contributor

changed /nbi to root: root (like working server)

still nope

12/08/2015 02:43:18 AM - DEBUG: -=========================================-
12/08/2015 02:43:18 AM - DEBUG: Got BSDP INFORM[LIST] packet:
12/08/2015 02:43:18 AM - DEBUG: Using provided clientip 10.59.65.3
12/08/2015 02:43:18 AM - DEBUG: Determining image list for system ID MacBookPro8,2
12/08/2015 02:43:18 AM - DEBUG: Image "No description" has no restrictions, adding to list
12/08/2015 02:43:18 AM - DEBUG: -=========================================-
12/08/2015 02:43:18 AM - DEBUG: Return ACK[LIST] to 3c:7:54:29:2c:e4 - 10.59.65.3 on port 68
12/08/2015 02:43:19 AM - DEBUG: -=========================================-
12/08/2015 02:43:19 AM - DEBUG: Got BSDP INFORM[SELECT] packet:
12/08/2015 02:43:19 AM - DEBUG: Using provided clientip 10.59.65.3
12/08/2015 02:43:19 AM - DEBUG: Determining image list for system ID MacBookPro8,2
12/08/2015 02:43:19 AM - DEBUG: Image "No description" has no restrictions, adding to list
12/08/2015 02:43:19 AM - DEBUG: -=========================================-
12/08/2015 02:43:19 AM - DEBUG: Return ACK[SELECT] to 3c:7:54:29:2c:e4 - 10.59.65.3 on port 68
12/08/2015 02:43:19 AM - DEBUG: --> TFTP URI: tftp://10.59.195.240
12/08/2015 02:43:19 AM - DEBUG: --> Boot Image URI:

calumhunter
Contributor III

what OS is it? how are you running it?

for example:

MacBook pro running VMWare running CentOS 7 running Docker

scharman
New Contributor

ESX host running Vmware Ubuntu 14.04 trusty