\chapter{Layer 3}

\section{Routed Network}

\section{OSPF}
\section{IS-IS}
\section{EIGRP}
\section{RIP}
\section{Static}
\section{BGP}

\wikicommons{BGP_FSM}

The protocol of the internet used since 1994.\cite{wiki:Border_Gateway_Protocol}
Currently based upon \rfc{4271} with updates following in \rcf{6286} \rfc{6608}, \rfc{6793}, \rfc{7606}, \rfc{7607}, \rfc{7705}.



\begin{itemize}
    \item \itemhead{Properties}
    \begin{itemize}
        \item Uses tcp/179 as \gls{dst} port
        \item Sends keep-alive message every 1 minute
        \item Keep-alive message is 19 byte
    \end{itemize}
    \item \itemhead{Route exchange}
    \begin{itemize}
        \item \itemhead{Route-maps mechanism}
        \begin{itemize}
            \item Routes can be aggregated between \Glspl{as}.
            \item Properties can be changed on the fly by mathing
            \begin{enumerate*}[label={\alph*)}]
                \item \Gls{bgp} communities,
                \item \Gls{ip} prefix,
                \item \Gls{bgp} as-path, 
            \end{enumerate*}
        \end{itemize}
        \item 
    \end{itemize}
    \item \itemhead{States}
    \begin{enumerate}
        \item Idle: \Gls{bgp} while initializing refuses all incoming connections. Will initiate \Gls{tcp} connection to peer.
        \item Connect: Waits for \Gls{tcp} connection. If \Gls{tcp} is established goes to state OpenSent. If \Gls{tcp} is \textit{un}successful ConnectRetry timer is started and then goes to Active state.
        \item Active: When ConnectRetry counter reaches 0 goes to state Connect.
        \item OpenSent: Sends \gls{msg} to remote node. Waits for reply \gls{msg} before going to OpenConfirm.
        \item OpenConfirm: Nodes exchange keepalive \glspl{msg} and goes to Established state if successful.
        \item Established: Nodes can now exchange KeepAlive, Updates, and Notification \glspl{msg}.
    \end{enumerate}
\end{itemize}