1
0
Fork 0
mirror of https://gitlab.com/netravnen/NetworkLabNotes.git synced 2024-11-23 19:17:54 +00:00

WIP: Updated bgp

This commit is contained in:
chhan11 2017-06-30 08:22:13 +02:00
parent de79d35f52
commit 99c5c262c8
4 changed files with 50 additions and 18 deletions

View file

@ -156,6 +156,7 @@
\newacronym{tlv}{TLV}{Type, Length, Value} \newacronym{tlv}{TLV}{Type, Length, Value}
\newacronym{toc}{ToC}{Table of Contents} \newacronym{toc}{ToC}{Table of Contents}
\newacronym{tosdr}{ToS;DR}{Terms of Service; Didn't Read} \newacronym{tosdr}{ToS;DR}{Terms of Service; Didn't Read}
\newacronym{ttl}{TTL}{Time-to-live}
\newacronym{udld}{UDLD}{Unidirectional Link Detection} \newacronym{udld}{UDLD}{Unidirectional Link Detection}
\newacronym{udp}{UDP}{User Datagram Protocol} \newacronym{udp}{UDP}{User Datagram Protocol}
\newacronym{utc}{UTC}{Coordinated Universal Time} \newacronym{utc}{UTC}{Coordinated Universal Time}

View file

@ -7,14 +7,15 @@
\section{EIGRP} \section{EIGRP}
\section{RIP} \section{RIP}
\section{Static} \section{Static}
\newpage
\section{BGP} \section{BGP}
\wikicommons{BGP_FSM} \wikicommons{BGP_FSM}
The protocol of the internet used since 1994.\cite{wiki:Border_Gateway_Protocol} 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}. Currently based upon \rfc{4271} with updates following in \rfc{6286} \rfc{6608}, \rfc{6793}, \rfc{7606}, \rfc{7607}, \rfc{7705}.
\begin{itemize} \begin{itemize}
\item \itemhead{Properties} \item \itemhead{Properties}
@ -27,20 +28,19 @@ Currently based upon \rfc{4271} with updates following in \rcf{6286} \rfc{6608},
\begin{itemize} \begin{itemize}
\item \itemhead{Route-maps mechanism} \item \itemhead{Route-maps mechanism}
\begin{itemize} \begin{itemize}
\item Routes can be aggregated between \Glspl{as}. \item Routes can be aggregated between \glspl{as}.
\item Properties can be changed on the fly by mathing \item Properties can be changed on the fly by mathing
\begin{enumerate*}[label={\alph*)}] \begin{mylist}
\item \Gls{bgp} communities, \item \gls{bgp} communities,
\item \Gls{ip} prefix, \item \gls{ip} prefix,
\item \Gls{bgp} as-path, \item \gls{bgp} as-path,
\end{enumerate*} \end{mylist}
\end{itemize} \end{itemize}
\item
\end{itemize} \end{itemize}
\item \itemhead{States} \item \itemhead{States}
\begin{enumerate} \begin{enumerate}
\item Idle: \Gls{bgp} while initializing refuses all incoming connections. Will initiate \Gls{tcp} connection to peer. \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 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 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 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 OpenConfirm: Nodes exchange keepalive \glspl{msg} and goes to Established state if successful.
@ -48,4 +48,21 @@ Currently based upon \rfc{4271} with updates following in \rcf{6286} \rfc{6608},
\end{enumerate} \end{enumerate}
\end{itemize} \end{itemize}
\subsection[iBGP]{Internal Border Gateway Protocol}
\gls{ibgp} is running \gls{bgp} within the same \gls{as} between routers. Much like running a general \gls{igrp} in the network.
Tradition one has to be fearful of creating \textit{routing loops} in the network. \glspl{bgp} mechanism for this is using either \begin{mylist} \item Full Mesh, or \item \glspl{rr} \end{mylist}.
Problems by running \textit{Full Mesh} is the formula of \[ iBGPsessions = n*(n-1)/2 \] \note{where $ n $ is the number \gls{ibgp} speakers} which results in scaling problems as \gls{ibgp} speakers are added to the \gls{as}.
\textit{\glspl{rr}} solves this problem by peering with all \gls{ibgp} speakers in the \gls{as}. All \gls{ibgp} speakers are then clients of the \glspl{rr}. This in turn helps maintainability by also advertising routes learnt from \gls{ibgp} clients to clients. Classic filtering/mathing route-maps/prefix-filters can be used to \textit{not} advertise all routes select group of clients from the \glspl{rr}.
\subsection[eBGP]{External Border Gateway Protocol}
\gls{ebgp} connections is inherently different from \gls{ibgp} connections. Some assumptions are made such as
\begin{enumerate}
\item a \gls{ttl} of 1 is the default\footnote{Multi-hop \gls{ebgp} can thou be configured},
\item distance is set to 20 compared to 200 for \gls{ibgp} routes,
\item Next hop does \textit{not} change for \gls{ebgp} routes advertised to \gls{ibgp} neighbours.
\end{enumerate}

View file

@ -129,3 +129,8 @@ License: \texttt{\href{https://creativecommons.org/licenses/by-sa/3.0/}{CC BY-SA
% Usage: % Usage:
\newcommand{\rfc}[1]{RFC #1\footnote{\href{https://tools.ietf.org/html/rfc#1}{tools.ietf.org/html/rfc#1}}} \newcommand{\rfc}[1]{RFC #1\footnote{\href{https://tools.ietf.org/html/rfc#1}{tools.ietf.org/html/rfc#1}}}
% Usage: \note{<text>} or \nb{<text>}
\newcommand{\note}[1]{{\color{Mahogany!20!black}{\small(#1)}}}
\newcommand{\nb}[1]{\note{#1}}

View file

@ -2,14 +2,23 @@
author = "Hector Camba Lainez", author = "Hector Camba Lainez",
title = "Cap4 implementing vtp", title = "Cap4 implementing vtp",
year = "2010", year = "2010",
url = {https://www.slideshare.net/lucky0679/cap4-implementing-vtp}, url = {\url{https://www.slideshare.net/lucky0679/cap4-implementing-vtp}},
note = "[Online; accessed 22-May-2017]" note = "[Online; accessed 22-May-2017]"
} }
@misc{ web:SP_Tiers, @misc{ web:SP_Tiers,
author = "Orhan Ergun", author = "Orhan Ergun",
title = "{Tier 1,Tier 2 and Tier 3 Service Providers - Tier and BGP Peering} --- Orhanergun.net", title = "{Tier 1,Tier 2 and Tier 3 Service Providers - Tier and BGP Peering} --- Orhanergun.net",
year = "2017", year = "2017",
howpublished = {\url{https://orhanergun.net/2017/01/tier-1-tier-2-tier-3-service-providers/}}, howpublished = {\url{https://orhanergun.net/2017/01/tier-1-tier-2-tier-3-service-providers/}},
note = "[Online; accessed 17-June-2017]" note = "[Online; accessed 17-June-2017]"
} }
@misc{ Differen15:online,
author = {\url{http://www.differencebetween.com/author/root/}{Andrew}},
title = "Difference Between EBGP and IBGP",
howpublished = {\url{http://www.differencebetween.com/difference-between-ebgp-and-vs-ibgp/}},
month = "September",
year = "2011",
note = "[Online; accessed on 24-June-2017]"
}