Name update
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
//! DHCP proxy (RFC 4578 "PXE Boot Server Discovery").
|
||||
//!
|
||||
//! Listens on UDP/67 (broadcast) and UDP/4011 (PXE boot server). Never
|
||||
//! assigns IPs — only returns boot parameters (siaddr, option 66 TFTP server,
|
||||
//! option 67 boot filename, and the mandatory option 60 "PXEClient" echo).
|
||||
//!
|
||||
//! Key decisions (see architecture memory for rationale):
|
||||
//! - Single code path handles both 67 and 4011; distinguished by port.
|
||||
//! - We set `SO_REUSEADDR` + `SO_BROADCAST` and enable `IP_PKTINFO` so we can
|
||||
//! (a) learn the destination interface for multi-homed pods and (b) reply
|
||||
//! back through the correct interface. This lets us run behind host-network
|
||||
//! in OpenShift without needing `SO_BINDTODEVICE` (which requires NET_RAW).
|
||||
//! - Classification is: option 77 user-class `iPXE` → serve HTTP script URL;
|
||||
//! option 60 starts `HTTPClient` → serve HTTP URL directly (UEFI HTTP boot);
|
||||
//! otherwise → TFTP + arch-specific iPXE binary.
|
||||
//! - We MUST echo `option 60 = "PXEClient"` (or `"HTTPClient"`) in replies or
|
||||
//! clients silently drop them.
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
pub mod reply;
|
||||
pub mod server;
|
||||
|
||||
pub use server::DhcpProxyServer;
|
||||
Reference in New Issue
Block a user