IP Address Assignment and Fetch Protocols ========================================= .. toctree:: :maxdepth: 1 :hidden: :includehidden: APIPA BOOTP DHCPv4 DHCPv6 RARP These protocols handle the assignment and retrieval of IP addresses in networks, enabling devices to configure their network interfaces dynamically or statically. .. list-table:: :widths: 20 60 20 :header-rows: 1 * - Protocol - Description - Use Case * - APIPA (Automatic Private IP Addressing) - Automatically assigns an IP address from the 169.254.0.0/16 range when DHCP servers are unavailable. Allows basic local network communication without manual configuration. - Small or isolated networks with no DHCP server. * - BOOTP (Bootstrap Protocol) - Predecessor to DHCP that assigns IP addresses and bootstraps diskless clients by providing boot image info. Uses UDP and broadcasts requests on network. - Diskless workstations and early IP address assignment. * - DHCPv4 (Dynamic Host Configuration Protocol for IPv4) - Automatically assigns IPv4 addresses and network configuration parameters to devices. Supports leasing, renewal, and various options for flexible network setup. - Most common protocol for IPv4 address assignment in LANs. * - DHCPv6 (Dynamic Host Configuration Protocol for IPv6) - Extends DHCP functionality to IPv6 networks for dynamic IPv6 address assignment and configuration. Supports stateful and stateless address configurations. - IPv6 network address management. * - RARP (Reverse Address Resolution Protocol) - Maps MAC hardware addresses to IP addresses. Used by diskless clients to obtain their IP addresses from a server. - Legacy systems and early IP assignment before DHCP. .. tab-set:: .. tab-item:: APIPA (Automatic Private IP Addressing) **RFC:** Defined in Microsoft documentation (not standardized by IETF) **Main Features:** - Assigns IP addresses from the 169.254.0.0/16 range when no DHCP server is available - Requires no manual configuration or external server - Enables local communication between devices on the same subnet - Used by Windows and some other systems as a fallback mechanism - No default gateway or DNS support **Use Cases:** - Small or isolated local networks with no DHCP infrastructure - Quick device-to-device communication without administrator intervention - Troubleshooting DHCP failures **Alternative Protocols:** - DHCPv4 – Standard dynamic IP address assignment - Static IP configuration – Manual assignment - Zeroconf/Bonjour – Includes APIPA-like addressing with service discovery .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: What You Will Learn in This Section **Let us learn more about APIPA:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`APIPA Version&RFC Details ` * :ref:`APIPA Basic Setup on Ubuntu using IPv4 ` * :ref:`APIPA Basic Setup on Ubuntu using IPv6 ` * :ref:`APIPA Protocol Packet Details ` * :ref:`APIPA Usecases ` * :ref:`APIPA Basic Features ` * :ref:`APIPA Feature : Automatic IP Assignment ` * :ref:`APIPA Feature : No Manual Configuration Needed ` * :ref:`APIPA Feature : Uses ARP for Conflict Detection ` * :ref:`APIPA Feature : Limited to Local Subnet ` * :ref:`APIPA Feature : Fallback Mechanism ` * :ref:`APIPA Feature : Zero-Configuration Networking ` * :ref:`APIPA Feature : IPv4 Only` * :ref:`Reference links ` .. button-link:: ./APIPA.html :color: primary :shadow: :expand: Jump to "APIPA" .. tab-set:: .. tab-item:: BOOTP (Bootstrap Protocol) **RFC:** RFC 951, RFC 1048 (Vendor extensions) **Main Features:** - Assigns IP addresses to clients via UDP - Originally designed for diskless clients to obtain boot image paths - Provides static mappings via configuration files on BOOTP servers - Stateless, no lease mechanism (unlike DHCP) - Broadcast-based request mechanism **Use Cases:** - Bootstrapping diskless workstations and network appliances - Early network installations before DHCP became standard - Environments requiring deterministic IP assignment **Alternative Protocols:** - DHCP – More flexible successor with leasing and dynamic config - PXE – For network booting with DHCP/BOOTP support - Static IP configuration – Manual alternative for bootstrapping .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: What You Will Learn in This Section **Let us learn more about BOOTP:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`BOOTP Version&RFC Details ` * :ref:`BOOTP Basic Setup on Ubuntu using IPv4 ` * :ref:`BOOTP Basic Setup on Ubuntu using IPv6 ` * :ref:`BOOTP Protocol Packet Details ` * :ref:`BOOTP Usecases ` * :ref:`BOOTP Basic Features ` * :ref:`BOOTP Feature : Static IP Assignment ` * :ref:`BOOTP Feature : Boot File Delivery ` * :ref:`BOOTP Feature : Gateway and Subnet Info ` * :ref:`BOOTP Feature : Relay Agent Support ` * :ref:`BOOTP Feature : No Leasetime ` * :ref:`BOOTP Feature : Simple Configuration ` * :ref:`BOOTP Feature : Compatability with DHCP ` * :ref:`BOOTP Feature : Low Overhead ` * :ref:`Reference links ` .. button-link:: ./BOOTP.html :color: primary :shadow: :expand: Jump to "BOOTP" .. tab-set:: .. tab-item:: DHCPv4 (Dynamic Host Configuration Protocol for IPv4) **RFC:** RFC 2131 **Main Features:** - Automatically assigns IPv4 addresses and config parameters - Uses leasing system with renewals and expirations - Supports DNS, gateway, subnet mask, and other options - Reduces administrative burden in large networks - Works over UDP ports 67 (server) and 68 (client) **Use Cases:** - IPv4 address assignment in home and enterprise LANs - Wireless network configuration - Guest Wi-Fi networks with short-term leases - Large-scale deployments needing automated IP provisioning **Alternative Protocols:** - Static IP assignment – Manual configuration - BOOTP – Legacy method, lacks dynamic features - APIPA – Fallback mechanism when DHCP fails .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: What You Will Learn in This Section **Let us learn more about DHCPv4:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`DHCPv4 Version&RFC Details ` * :ref:`DHCPv4 Basic Setup on Ubuntu using IPv4 ` * :ref:`DHCPv4 Protocol Packet Details ` * :ref:`DHCPv4 Usecases ` * :ref:`DHCPv4 Basic Features ` * :ref:`DHCPv4 Feature : Dynamic IP Assignment ` * :ref:`DHCPv4 Feature : Lease Management ` * :ref:`DHCPv4 Feature : Centralized Configuration ` * :ref:`DHCPv4 Feature : DHCP Options ` * :ref:`DHCPv4 Feature : Manual (Static) Assignment ` * :ref:`DHCPv4 Feature : Relay Agent Support ` * :ref:`DHCPv4 Feature : Authentication (Optional) ` * :ref:`DHCPv4 Feature : Failover Support ` * :ref:`DHCPv4 Feature : PXE Boot Support ` * :ref:`DHCPv4 Feature : Logging & Auditing ` * :ref:`Reference links ` .. button-link:: ./DHCPv4.html :color: primary :shadow: :expand: Jump to "DHCPv4" .. tab-set:: .. tab-item:: DHCPv6 (Dynamic Host Configuration Protocol for IPv6) **RFC:** RFC 8415 (latest core spec) **Main Features:** - Provides dynamic address assignment for IPv6 networks - Supports stateful and stateless configuration modes - Works with Router Advertisements (RA) for hybrid deployments - Can deliver DNS, NTP, domain search options, etc. - Operates over UDP port 546 (client) and 547 (server) **Use Cases:** - IPv6-enabled enterprise and ISP networks - Hybrid IPv6 deployments with RA + DHCPv6 - Devices requiring detailed config beyond SLAAC - Centralized address tracking and logging **Alternative Protocols:** - SLAAC (Stateless Address Autoconfiguration) – Lightweight alternative - Static IPv6 addressing – Manual configuration - ND (Neighbor Discovery) – Provides link-layer info, complements DHCPv6 .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: What You Will Learn in This Section **Let us learn more about DHCPv6:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`DHCPv6 Version&RFC Details ` * :ref:`DHCPv6 Basic Setup on Ubuntu using IPv6 ` * :ref:`DHCPv6 Protocol Packet Details ` * :ref:`DHCPv6 Usecases ` * :ref:`DHCPv6 Basic Features ` * :ref:`DHCPv6 Feature : IPv6 Address Assignment ` * :ref:`DHCPv6 Feature : Prefix Delegation ` * :ref:`DHCPv6 Feature : Stateless Configuration ` * :ref:`DHCPv6 Feature : Lease Management ` * :ref:`DHCPv6 Feature : DHCPv6 Options ` * :ref:`DHCPv6 Feature : Reconfigure Support ` * :ref:`DHCPv6 Feature : Relay Agent Support ` * :ref:`DHCPv6 Feature : Authentication Support ` * :ref:`DHCPv6 Feature : Dual Stack Coexistence ` * :ref:`DHCPv6 Feature : Support for Mobile & IoT ` * :ref:`Reference links ` .. button-link:: ./DHCPv6.html :color: primary :shadow: :expand: Jump to "DHCPv6" .. tab-set:: .. tab-item:: RARP (Reverse Address Resolution Protocol) **RFC:** RFC 903 **Main Features:** - Legacy protocol to map MAC addresses to IP addresses - Used by diskless clients to determine their IP at boot time - Operates at Layer 2 using Ethernet frames (not IP) - Requires a RARP server on the local network - Limited scalability and features compared to DHCP **Use Cases:** - Bootstrapping early Unix-based systems or embedded devices - Static IP assignment to known MAC addresses - Legacy network boot environments **Alternative Protocols:** - BOOTP – Adds boot file support and UDP/IP transport - DHCP – Offers dynamic leases, multiple config options - Static configuration – For fixed IP needs in modern systems .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: What You Will Learn in This Section **Let us learn more about RARP:** * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RARP Version&RFC Details ` * :ref:`RARP Basic Setup on Ubuntu using IPv4 ` * :ref:`RARP Basic Setup on Ubuntu using IPv6 ` * :ref:`RARP Protocol Packet Details ` * :ref:`RARP Usecases ` * :ref:`RARP Basic Features ` * :ref:`RARP Feature : MAC to IP resolution ` * :ref:`RARP Feature : Data Link Layer ` * :ref:`RARP Feature : Statless Protocol ` * :ref:`RARP Feature : Broadcast based Req ` * :ref:`RARP Feature : Server Dependent ` * :ref:`RARP Feature : Limited to IPv4 ` * :ref:`RARP Feature : No Support for Dynamic Allocation ` * :ref:`Reference links ` .. button-link:: ./RARP.html :color: primary :shadow: :expand: Jump to "RARP"