Preparing a network node for internet access. * Practice of hard-coding a client's IP. Bootp and DHCP # DHCP and bootp are used interchangably. Check out http://www.thegeekstuff.com/2013/03/dhcp-basics/ When a system 1st comes up, it must discover its own IP and the IP of the DHCP and DNS servers. While this information can be stored locally, it is more commonly requested from a server. Getting an IP. Static IP - this is an IP assigned to a system's network card. Any time the system on-line, the network card should always be assigned the same. It is critical that the system does not move between networks, so we're talking work stations. Primariily used for systems that need to be contacted by other systems. Dynamic IP - this is a random IP assigned to a system's network card when requested. * must be valid for the Domain and sub-net. Like a library book, it is essentially checked out. When the system is shut down, the IP can be used by a different system on the same local network. Often a system is given a lease on a particular IP for a period of time, e.g 72 hr., to reclaim IP. Systems usually will renew their current lease at mid-point of current lease period. Using DHCP services to retrieve an IP> Like the TCP/IP protocol, Ethernet has a "broadcast" frame that can be viewed by all nodes on the local network. The client node generates a broadcast UDP/IP packet. The packet contains: the source-IP of 0.0.0.0 or a previously known IP, the target-IP of 255.255.255.255 and port 67(DHCP), and a random number that can be used to help identify a response. Server : UDP port 67 (listens) Client : UDP port 68 (listens) (well known ports) This packet is put in an Ethernet frame with the client node's MAC@ and the broadcast MAC@ which gives all nodes permission to listen. If appropriate server exists on the local network, it will recognize (hear) the request on the port 67 and return a response targeting port 68. If a non-zero client IP given, it will attempt direct contact. Otherwise it will use the broadcast IP. The packet sent also contains the MAC@ of the client and the random number it generated as confirmation of correct target system. If a local DHCP service is not available, another node on the local sub-net (usually the gateway node) will be running a relay service listening on port 67 and will pass the request along to another relay or the DHCP server. The bootp relay makes minor adjustments to the request packet so the response can be properly routed back to the client. * under the old(est) ARP/RARP the IP configuration service had to exist on the same sub-net as the querying system. The bootp/DHCP server can also provide the sub-net's default gateway IP, the IP[s] of available DNS servers, the sub-net mask, and other info. The bootp server returns a reply with the assigned IP and additional information. If the client accepts the assigned IP, it must reply to the server. It may reject or ignore the reply if has gotten an answer from another boot/DHCP server. If it has accepted the assigned IP, the server will send a final acknowledgement and only then can the client use the IP. This is generally a single occurrence for a particular system when it is first powered up. Once it has a valid DHCP host id, it can target the correct node for any additional requests. On our systems, look at /etc/dhcp/dhclient.conf request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, dhcp6.name-servers, dhcp6.domain-search, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers; man page : dhclient.conf Request/Reply Packet structure