\chapter[DHCP]{Dynamic Host Control Protocol}

\section[DHCP Process]{Dynamic Host Control Protocol Process}

You can always remember the \gls{dhcp} handshake process by DORA\footnote{Discover, Offer, Request, Acknowledgement}:
\begin{enumerate}
    \item DHCP\textbf{D}ISCOVER: Client request to get a lease.
    \item DHCP\textbf{O}FFER: Server sends an offer to the client containing a \gls{ip}, domain name, and lease period.
    \item DHCP\textbf{R}EQUEST: Client formally request to get the assignment from the server.
    \item DHCP\textbf{A}CK: Server acknowledges the assignment to the client.
\end{enumerate}

\fig{dhcp/dhcpdiscoverprocess}{dhcpdiscoverprocess}{DHCP Discover Process}

\subsection[DHCP Messages]{Dynamic Host Control Protocol Messages}

\begin{itemize}
    \item \textbf{DHCPDECLINE:} Message sent from the client to the server that the address is already in use.
    \item \textbf{DHCPNAK:} The server sends a refusal to the client for request for configuration.
    \item \textbf{DHCPRELEASE:} Client tells a server that it is giving up a lease.
    \item \textbf{DHCPINFORM:} A client already has an \gls{ip} address but is requesting other configuration parameters that the \gls{dhcp} server is configured to deliver such as \gls{dns} address.
\end{itemize}

\section[DHCP Options]{Dynamic Host Control Protocol Options}

\begin{itemize}
    \item \textbf{43} Vendor-encapsulated option that enables vendors to have their own list of options on the server.
    \item \textbf{69} \gls{smtp} server, if you want to specify available \gls{smtp} servers to the client.
    \item \textbf{70} \gls{pop3} server, if you want to specify available \gls{pop3} servers to the client.
    \item \textbf{150} \gls{tftp} server that enables your phones to access a list of \gls{tftp} servers.
\end{itemize}

\section[DHCP Example Configuration]{Dynamic Host Control Protocol Example Configuration}

\subsection{Cisco}

\begin{cisco}
ip dhcp excluded-address 192.168.0.254
!
ip dhcp pool LAN-1-POOL-DHCP
 network 192.168.0.0 255.255.255.0
 default-router 192.168.0.254
 lease 2 ! set in days
\end{cisco}

When configuring a Layer 3 interface as a relay port for DHCP request for a subnet. Set the ip helper command on the interface with one \textit{or} more ip addresses.

\begin{cisco}
interface GigabitEthernet 0/3
 ip helper-address 192.168.220.220
 ip helper-address 192.168.222.222
\end{cisco}
