On Mon, Aug 8, 2016 at 3:15 PM, Jim Dennis <j...@blockstream.io> wrote:
> > David, > > Thanks for the fast response. I have, since writing that, confirmed that > I > can boot at least one of these systems (Lenovo ThinkPad T410) using > pixiecore (running on my Mac laptop) when both systems are connected > to my home router (which, of course, provides DHCP). > > So that works. I'd like to suggest that you make this point more clear in > the README.md file (I can provide a pull request if you like). > A pull request would be most welcome, but failing that I'll get that done later this week. Thanks for the suggestion! > Another > possibility might be for you to add an option to pixiecore, perhaps built > on an compile time option to link to https://github.com/krolaw/dhcp4 ... > Richard Warburton's DHCP library (client and server support) written > in Go(lang). > Yeah, I'm thinking about various options. I'm still worried about using a Go dhcp4 package, because those don't have all the compatibility tweaks that battle-tested implementations like ISC dhcpd and dnsmasq have. My slight preference at this point would be to have a way to delegate to a local dnsmasq that Pixiecore runs as needed. Either way, it's clear this needs to happen. > > The other option I'm considering is Astralboot: > https://github.com/zignig/astralboot which seems to include the DHCP > server ... but which requires IPFS for the file distribution services. > Yeah, Astralboot is implementing a full DHCP server. This has several advantages, the biggest being that the network boot process is simplified when a single server provides network and boot configuration (fewer buggy clients). That's great if it's what you need, of course. My design goal with Pixiecore was to have something that I can drop into an existing network to add netbooting capabilities, without having to change any other network services (basically, I wanted a quick way to do one-off netboot installs on some machines on my LAN :) ). So in a sense Astralboot and Pixiecore are at odds on the fundamental problem they want to solve. I'll test those and write up my recommendations for my boss. > I'd be interested in your analysis once you're done, if you can/feel like sharing it. I think I already have all the "lessons learned" for Pixiecore from your messages so far, but I'm generally interested in the space, so it's useful to have additional inputs :). - Dave > > > On Mon, Aug 8, 2016 at 11:43 AM, David Anderson <d...@natulte.net> wrote: > >> On Sun, Aug 7, 2016 at 5:11 PM, <j...@blockstream.io> wrote: >> >>> >>> David, >>> >>> I'm confused by one part of this ... >>> >>> On Monday, September 14, 2015 at 8:18:23 PM UTC-7, David Anderson wrote: >>> >>> ... >>> >>> Of note is that Pixiecore does *not* require replacing or changing your >>>> existing DHCP server. Instead, Pixiecore uses a feature of the PXE spec >>>> (very poorly named "ProxyDHCP" - it's not a proxy, and it's barely DHCP) to >>>> complement the normal DHCP network configuration with PXE configurations >>>> for eligible clients, without directly interacting with the network's main >>>> DHCP server. Your non-PXE clients and your regular DHCPd are completely >>>> unaware of Pixiecore and don't need any reconfiguration. >>>> >>>> >>> ... if I'm reading correctly then it sounds like you're saying that >>> 'pixiecore' is NOT a DHCP server. That it's able to piggyback on DHCP >>> traffic (on a segment, within a given ethernet broadcast/collision >>> domain) to provide additional configuration data (using this "ProxyDHCP" >>> feature/spec.) which a PXE client can use for just the TFTP fetch >>> (bootloader -> kernel + initrd/initramfs chains)? >>> >>> If that's the case then, I guess it's necessary to have a separate DHCP >>> server on the network already? >>> >> >> That's correct. ProxyDHCP allows a third-party server to provide _just_ >> network booting information, while the network's primary DHCP server >> provides network configuration. The idea being that you can run Pixiecore >> on an existing DHCP-managed network without changing any other >> configurations. >> >> While at this point I probably know enough of DHCP to implement full DHCP >> support as well... I'm a bit resistant to doing so, because really good >> DHCP support is a huge can of worms in terms of supporting buggy >> implementations, and I'd much rather point people to dnsmasq if they need a >> quick and dirty DHCP server :). >> >> >>> (I've tried setting up multiple PXE clients on cross-over cables to my >>> MacOS X (10.11.5) running 'pixiecore' >>> (fc0d895c19e7c6a31f9d3b8ad5c8967d7285ef87 >>> from Feb 28, 2016) and the "tinycorelinux" configuration as described in >>> the github >>> pages. When running it I get messages like: >>> >>> [ProxyDHCP] Couldn't find an IP address to use to reply to >>> f0:de:f1:3b:b9:65: interface en5 has no usable unicast addresses >>> >>> [ProxyDHCP] Offering to boot f0:de:f1:3b:b9:65 (via 172.17.17.1) >>> >>> [ProxyDHCP] Responding to f0:de:f1:3b:b9:65: write udp4 0.0.0.0:67-> >>> 255.255.255.255:68: sendmsg: network is unreachable >>> >>> >>> ... after having statically configure the en5 (thunderbolt connect >>> ethernet cable to the other systems (I've tried four different systems, at >>> least two of which I've PXE booted into Linux using the traditional >>> ISC/Linux tools and configuration in the past). I've done this with and >>> without ethernet cross-over cabling (many ethernet adapters know support >>> auto-MDI crossing) and I've done with direct and through an old, simple, >>> Netgear switch ... but always with no DHCP server on that segment! >>> >> >> The initial error you're getting is that Pixiecore can't find a usable >> source IP address on en5. It needs that address to transmit the ProxyDHCP >> response. Do you have any IPs configured on en5? >> >> >>> I'll try again with a DHCP server to see if that works. But you might >>> make it clear in the docs if 'pixiecore' REQUIRES a separate DHCP server, >>> or perhaps add an option to detect and optionally provide DHCP services. >>> >> >> Are you connecting your machine directly to a system that you need to >> boot? If that's the case, you'll run into a separate issue if you try to >> run both Pixiecore and a DHCP server on the same machine, which is that >> they both want to bind to the DHCP server port, and so one of them will >> fail. I have a working solution for that on linux using some raw socket >> trickery, but since I have no macs, I don't have an answer for your setup >> yet :(. >> >> The closest thing to an answer I have is to make sure you connect both >> the machine running Pixiecore and the system you're trying to boot to an >> ethernet broadcast domain that already has DHCP services provided by some >> other machine. I'm very much aware that this isn't great, and I'll now go >> off and think about how to improve that. >> >> - Dave >> >> >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to golang-nuts+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.