mirror of
https://gitlab.com/netravnen/NetworkLabNotes.git
synced 2024-12-23 20:57:53 +00:00
Merge branch '17-l3-eigrp'
This commit is contained in:
commit
d2aa4d122e
|
@ -31,6 +31,7 @@
|
|||
\newacronym{dns}{DNS}{Domain Name System}
|
||||
\newacronym{dns6}{DNSv6}{Domain Name System version 6}
|
||||
\newacronym{dr}{DR}{Danmarks Radio}
|
||||
\newacronym{dual}{DUAL}{Diffusing Update Algorithm}
|
||||
\newacronym{dsl}{DSL}{Digital Subscriber Line}
|
||||
\newacronym{dst}{dst}{destination}
|
||||
\newacronym{dwdm}{DWDM}{}
|
||||
|
@ -46,6 +47,7 @@
|
|||
\newacronym{fhrp}{FHRP}{First Hop Redundancy Protocol}
|
||||
\newacronym{fib}{FIB}{Forward Information Base}
|
||||
\newacronym{fix}{FIX}{Federal Internet Exchange}
|
||||
\newacronym{frr}{FRR}{Free Range Routing daemon}
|
||||
\newacronym{fsm}{FSM}{Finite State Machine}
|
||||
\newacronym{ftp}{FTP}{File Transfer Protocol}
|
||||
\newacronym{ftps}{FTPS}{File Transfer Protocol Secure}
|
||||
|
@ -78,6 +80,7 @@
|
|||
\newacronym{ip6}{IPv6}{Internet Protocol version 6}
|
||||
\newacronym{ipv4}{IPv4}{Internet Protocol version 4}
|
||||
\newacronym{ipv6}{IPv6}{Internet Protocol version 6}
|
||||
\newacronym{ipx}{IPX}{Internetwork Packet Exchange}
|
||||
\newacronym{irc}{IRC}{Internet Relay Chat}
|
||||
\newacronym{irtf}{IRTF}{Internet Research Task Force}
|
||||
\newacronym{isis}{IS-IS}{Intermediate System to Intermediate System}
|
||||
|
@ -115,6 +118,7 @@
|
|||
\newacronym{ospf}{OSPF}{Open Shortest Path First}
|
||||
\newacronym{ospf3}{OSPFv3}{Open Shortest Path First v3}
|
||||
\newacronym{ospfv3}{OSPFv3}{Open Shortest Path First v3}
|
||||
\newacronym{p2p}{P-2-P}{Point-to-Point}
|
||||
\newacronym{pagp}{PAgP}{Port Aggregation Protocol}
|
||||
\newacronym{poe}{PoE}{Power over Ethernet}
|
||||
\newacronym{poe+}{PoE+}{Power over Ethernet Plus}
|
||||
|
@ -140,9 +144,11 @@
|
|||
\newacronym{rpvst}{RPVST}{Per Vlan Rapid Spanning Tree}
|
||||
\newacronym{rpvst+}{RPVST+}{Per Vlan Rapid Spanning Tree Plus}
|
||||
\newacronym{rsvp}{RSVP}{Resource Reservation Protocol}
|
||||
\newacronym{rtp}{RTP}{Reliable Transport Protocol}
|
||||
\newacronym{sdm}{SDM}{Security Device Manager}
|
||||
\newacronym{sdsl}{SDSL}{Symmetric Digital Subscriber Line}
|
||||
\newacronym{sftp}{SFTP}{Secure Shell File Transfer Protocol}
|
||||
\newacronym{sia}{SIA}{Stuck in Active}
|
||||
\newacronym{sla}{SLA}{Service Level Agreement}
|
||||
\newacronym{slaac}{SLAAC}{Stateless Address Autoconfiguration}
|
||||
\newacronym{smtp}{SMTP}{Simpe Mail Transfer Protocol}
|
||||
|
@ -170,6 +176,7 @@
|
|||
\newacronym{ula}{ULA}{Unique Local Address}
|
||||
\newacronym{utc}{UTC}{Coordinated Universal Time}
|
||||
\newacronym{vlan}{VLAN}{Virtual Local Area Network}
|
||||
\newacronym{vlsm}{VLSM}{Variable-Length Subnet Masking}
|
||||
\newacronym{vpn}{VPN}{Virtual Private Network}
|
||||
\newacronym{vrf}{VRF}{Virtual Routing and Forwarding}
|
||||
\newacronym{vrrp}{VRRP}{Virtual Router Redundancy Protocol}
|
||||
|
|
|
@ -2,9 +2,194 @@
|
|||
|
||||
\section{Routed Network}
|
||||
|
||||
\subsection{Administrative Distance}
|
||||
|
||||
\begin{table}[]
|
||||
\centering
|
||||
\resizebox{\columnwidth}{!}{%
|
||||
\begin{tabular}{|l|l|}
|
||||
\hline
|
||||
\textbf{Routing Protocol} & \textbf{Administrative distance} \\ \hline
|
||||
Directly connected interface & 0 \\ \hline
|
||||
Static route out an interface & 1 \\ \hline
|
||||
Static route to next-hop address & 1 \\ \hline
|
||||
DMNR - Dynamic Mobile Network Routing & 3 \\ \hline
|
||||
EIGRP summary route & 5 \\ \hline
|
||||
External BGP & 20 \\ \hline
|
||||
Internal EIGRP & 90 \\ \hline
|
||||
IGRP & 100 \\ \hline
|
||||
OSPF & 110 \\ \hline
|
||||
IS-IS & 115 \\ \hline
|
||||
Routing Information Protocol (RIP) & 120 \\ \hline
|
||||
Exterior Gateway Protocol (EGP) & 140 \\ \hline
|
||||
On Demand Routing (ODR) & 160 \\ \hline
|
||||
External EIGRP & 170 \\ \hline
|
||||
Internal BGP & 200 \\ \hline
|
||||
Next Hop Resolution Protocol (NHRP) & 250 \\ \hline
|
||||
Floating Static Route (ex. DHCP-learned) & 254 \\ \hline
|
||||
Unknown (Others) & 255 \\ \hline
|
||||
\end{tabular}%
|
||||
}
|
||||
\caption{Cisco default administrative distances}
|
||||
\label{cisco-default-administrative-distances}
|
||||
\end{table}
|
||||
|
||||
Always remember the following points for Cisco devices:\cite{wiki:Administrative_distance}
|
||||
\begin{itemize}
|
||||
\item An administrative distance of 255 will cause the router to remove the route from the routing table and not use it.
|
||||
\item Since IOS 12.2, the administrative distance of a static route with an exit interface is 1. Prior to the release of 12.2 it was in fact 0.
|
||||
\item Only the interface itself has an administrative distance of 0, since a route cannot have a distance of less than 1.
|
||||
\item Directly connected routes have an administrative distance of 0.
|
||||
\end{itemize}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{OSPF}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{IS-IS}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{EIGRP}
|
||||
|
||||
\gls{eigrp} is Cisco's enhanced edition if \gls{igrp}. Dating back to 1993 and a leg for Cisco over other vendors back in the early days of the Internet. (.. hmm. And remember Cisco's implementation of \gls{ospf} was known to be unstable until the early 2000's.)
|
||||
|
||||
The change to \gls{eigrp} from \gls{igrp} was due to the support of classless routing. (\gls{igrp} only supported classful routing of class A (/8), B (/16), and C (/24) networks.)
|
||||
|
||||
Cisco converted \gls{eigrp} to an open standard back in 2013 with \rfc{7868}.\cite{wiki:Enhanced_Interior_Gateway_Routing_Protocol}
|
||||
|
||||
\gls{eigrp} adds support for \gls{vlsm} and the \gls{dual} with improved routing capabilities in comparison to \gls{igrp}. Overall \gls{eigrp} provides better capabilities compared to it's predecessor.
|
||||
|
||||
\subsection[Math]{The Math behind}
|
||||
|
||||
\fig{math/eigrp-dual-long}{eigrp-dual-long}{\glspl{eigrp} \gls{dual} full formula}
|
||||
|
||||
By default $K_2$, and $K_4$ is set to zero. (The are user customizable!) And $K_5$ is set to 0.
|
||||
|
||||
In effect the resulting shorter formula is this:
|
||||
|
||||
\fig{math/eigrp-dual-short}{eigrp-dual-short}{\glspl{eigrp} \gls{dual} short formula}
|
||||
|
||||
\subsection{How it actually works}
|
||||
|
||||
\gls{eigrp} does it routing on a \texttt{next-hop} basis. Meaning it only stores information about a given routes next turn. And \textbf{not} about the destination itself. (Like \gls{ospf} does)
|
||||
|
||||
\subsubsection{Defaults}
|
||||
|
||||
\gls{eigrp} runs on Cisco equipment with values of:
|
||||
\begin{itemize}
|
||||
\item \itemhead[]{Administrative Distance (Defaults)}
|
||||
\begin{itemize}
|
||||
\item Internal: 90
|
||||
\item External: 180
|
||||
\item Summary: 5
|
||||
\end{itemize}
|
||||
\item \itemhead[]{Timers}
|
||||
\begin{itemize}
|
||||
\item Hello: 5s / 60s \footnote{The larger timer value applies at speeds <= T1 circuit bandwidth (a.k.a. lower-than-equal-to 1.544 Mbps)}
|
||||
\item Hold: 15s / 180s
|
||||
\end{itemize}
|
||||
\item \itemhead[]{Supported Protocols}
|
||||
\begin{itemize}
|
||||
\item \gls{ip}
|
||||
\item \gls{ipx}
|
||||
\item AppleTalk
|
||||
\end{itemize}
|
||||
\item \itemhead[]{Other}
|
||||
\begin{itemize}
|
||||
\item Type: Distance Vector
|
||||
\item Algorithm: \gls{dual}
|
||||
\item Transport: \gls{ip}/88
|
||||
\item Authentication: MD5
|
||||
\item Multicast \gls{ipv4}: 224.0.0.10
|
||||
\item Multicast \gls{ipv6}: <!-- some number -->
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Tables}
|
||||
|
||||
\gls{eigrp} contains three tables for storing route information.
|
||||
|
||||
\begin{enumerate}
|
||||
\item \itemhead[]{Neighbor Table}
|
||||
\begin{itemize}
|
||||
\item \textit{Lists \textbf{all} directly connected neighbors}
|
||||
\item Next-Hop Router(s)
|
||||
\item Interface(s)
|
||||
\end{itemize}
|
||||
\item \itemhead[]{Topology Table}
|
||||
\begin{itemize}
|
||||
\item \textit{Lists \textbf{all} learned from \textbf{all} \gls{eigrp} neighbors}
|
||||
\item Destination
|
||||
\item Metric
|
||||
\end{itemize}
|
||||
\item \itemhead[]{Global Routing Table}
|
||||
\begin{itemize}
|
||||
\item \textit{Best routes from \gls{eigrp} topology tabel will be copied to the routing table}
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
|
||||
\subsection{Stub Routing}
|
||||
|
||||
\gls{eigrp} features some different ways to configure routers for specific routing scenarios. \texttt{Stub} routing is one of them.
|
||||
|
||||
Stub routing effectively prevents the given stub site/router to be used for transit traffic.
|
||||
|
||||
If a router is configured as a \texttt{Stud Router}. It only carries information about \tsq{it}s locally connected routes and a default route back to the transit routers. \tsq{It}s also omitted from being queried about networks is does not advertise. {\small (I.e. The Routes Query Process)}s
|
||||
|
||||
\subsection{Updates Exchange}
|
||||
|
||||
\begin{enumerate}
|
||||
\item Routers always exchange full topology table information when neighbor-ship is established.
|
||||
\item Now refresh of data will be done. Unless topology updates occur.
|
||||
\item If the topology changes. A partial update about the specific prefix is sent to neighbors.\footnote{Changes includes metric components, link statuses, change in announced topology information.}
|
||||
\item If a neighbor-ship fail. Then a new adjacency is formed with a full topology exchange is done.
|
||||
\end{enumerate}
|
||||
|
||||
Always remember \gls{eigrp} does split-horizon by default on all active links when exchanging topology updates.
|
||||
|
||||
Split-horizon is the \textit{famous} rule about not sending topology updates back to the router who sent the topology update in the first place.
|
||||
|
||||
\gls{eigrp} uses \gls{rtp} to send topology updates and confirmation receipts.
|
||||
|
||||
On \gls{p2p} interfaces. \gls{eigrp} simply send and ACK back to the sender.
|
||||
On multi-access interface/segments. \gls{eigrp} sends updates to 224.0.0.10 and receivers reply with a unicast ACK message to the sender.
|
||||
|
||||
\subsection[SIA]{Stuck-in-Active}
|
||||
\gls{eigrp} is known and feared for it being \texttt{Stuck-in-Active} mode when exchanging route updates between routers. The Stuck-in-Active state could cause problems on low end network gear with a low amount of resources available for the routing process. Which in cases could cause the network device to use all available resources when querying neighbor devices for updates.
|
||||
|
||||
\fig{eigrp/stuck-in-active}{stuck-in-active}{EIGRP Stuck in Active}
|
||||
|
||||
End result is neighbor ships between \gls{eigrp} routers is terminated and re-established again with a fresh set of route updates going out.
|
||||
|
||||
Imagine a large \gls{eigrp} topology (3-digit number of routers) in a single domain and beginning with 1 neighbor-ship gets re-established. And then again and again and again. Can result in quickly several routers going Stuck-in-Active because \gls{eigrp} queries are not getting answered within a short time-frame when all routers needs to query \tsq{it}s own neighbors and their neighbors and their neighbors and so forth. Until their are no more neighbors to be queried up and down the hierarchical network topology.
|
||||
|
||||
\fig{network/routing}{network-topology}{Medium sized network topology}
|
||||
|
||||
\subsection{Non-Cisco Implementations}
|
||||
|
||||
This is always a particular point of discussion around \gls{eigrp}. Cisco has released \textit{some} information on how \gls{eigrp} works.
|
||||
Not \textit{all} information.
|
||||
And only as \textit{informational} RFCs.
|
||||
This ensures Cisco \textit{still} has control of the development of the protocol.
|
||||
Because they have retained ownership by only publishing informational RFCs.
|
||||
|
||||
This has been a hindrance for the adoption of \gls{eigrp} in other vendors than Cisco them-self.
|
||||
|
||||
Known adoptions of EIGRP includes:
|
||||
\begin{itemize}
|
||||
\item \gls{frr} targeted release 4\cite{Frr30-4047:online}
|
||||
\item Quagga has known works for trying to implement \gls{eigrp}. Still not officially implemented, thou.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Filtering}
|
||||
|
||||
\gls{eigrp} routing updates can of course be filtered in- and outgoing direction on Cisco boxes by using prefix-lists and applying the prefix lists under the \texttt{router eigrp x} process.
|
||||
|
||||
\newpage
|
||||
|
||||
\section{RIP}
|
||||
|
||||
rip is the old routing protocol still existing using nukber-of-hops as the metric to calculate which route to take to the intended destination. This approach can work fine but has a nukber of weaknesses.
|
||||
|
@ -13,10 +198,14 @@ rip is the old routing protocol still existing using nukber-of-hops as the metri
|
|||
3. Has no concept of load sharing traffic between links if the same amount of hops is present amongst the best paths available.
|
||||
4. Limited to a miximum of 16 hops between source and destination.
|
||||
|
||||
\newpage
|
||||
|
||||
\subsection{RIPng}
|
||||
|
||||
The version of rip supporting ipv6. different to the standard rip in the ng version is using different multicast addresses to communicate on.
|
||||
|
||||
\newpage
|
||||
|
||||
\section{Static}
|
||||
|
||||
\newpage
|
||||
|
|
BIN
img/eigrp/stuck-in-active.jpg
Normal file
BIN
img/eigrp/stuck-in-active.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
BIN
img/math/eigrp-dual-long.png
Normal file
BIN
img/math/eigrp-dual-long.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
img/math/eigrp-dual-short.png
Normal file
BIN
img/math/eigrp-dual-short.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.9 KiB |
BIN
img/network/routing.jpg
Normal file
BIN
img/network/routing.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 114 KiB |
|
@ -39,4 +39,13 @@
|
|||
month = "September",
|
||||
year = "2011",
|
||||
note = "[Online; accessed on 24-June-2017]"
|
||||
}
|
||||
|
||||
@misc{Frr30-4047:online,
|
||||
author = {Donald Sharp},
|
||||
title = {Frr 3.0 → 4.0 · FRRouting/frr Wiki},
|
||||
howpublished = {\url{https://github.com/FRRouting/frr/wiki/Frr-3.0-%E2%86%92-4.0}},
|
||||
month = {February},
|
||||
year = {2018},
|
||||
note = {(Accessed on 02/18/2018)}
|
||||
}
|
|
@ -96,4 +96,20 @@
|
|||
year = "2017",
|
||||
howpublished = {\url{http://en.wikipedia.org/w/index.php?title=Solicited-node\%20multicast\%20address&oldid=787116453}},
|
||||
note = "[Online; accessed 19-July-2017]"
|
||||
}
|
||||
|
||||
@misc{ wiki:Administrative_distance,
|
||||
author = "Wikipedia",
|
||||
title = "{Administrative distance} --- {W}ikipedia{,} The Free Encyclopedia",
|
||||
year = "2017",
|
||||
howpublished = {\url{http://en.wikipedia.org/w/index.php?title=Administrative\%20distance&oldid=799742717}},
|
||||
note = "[Online; accessed 18-September-2017]"
|
||||
}
|
||||
|
||||
@misc{ wiki:Enhanced_Interior_Gateway_Routing_Protocol,
|
||||
author = "Wikipedia",
|
||||
title = "{Enhanced Interior Gateway Routing Protocol} --- {W}ikipedia{,} The Free Encyclopedia",
|
||||
year = "2017",
|
||||
howpublished = {\url{http://en.wikipedia.org/w/index.php?title=Enhanced\%20Interior\%20Gateway\%20Routing\%20Protocol&oldid=800921738}},
|
||||
note = "[Online; accessed 18-September-2017]"
|
||||
}
|
|
@ -4,28 +4,25 @@
|
|||
\usepackage{lmodern}
|
||||
\usepackage{geometry}
|
||||
\usepackage{listings}
|
||||
\usepackage{color}
|
||||
\usepackage[usenames,dvipsnames,svgnames]{xcolor}
|
||||
\usepackage{color} % makes custom color codes available.
|
||||
\usepackage[usenames,dvipsnames,svgnames]{xcolor} % makes custom color codes available.
|
||||
\usepackage{graphicx}
|
||||
\usepackage[numbers,square,sectionbib,comma,nonamebreak,elide]{natbib}
|
||||
\usepackage[numbers,square,sectionbib,comma,nonamebreak,elide]{natbib} % used with layout for bibliography section.
|
||||
\usepackage{float}
|
||||
\usepackage[english]{babel}
|
||||
\usepackage{fancyhdr}
|
||||
\usepackage{wrapfig}
|
||||
\usepackage{array}
|
||||
\usepackage{lipsum}
|
||||
\usepackage{fancybox}
|
||||
\usepackage{fancybox} % styling of boxes.
|
||||
\usepackage{varwidth}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{enumitem} % makes available changes to lists.
|
||||
\usepackage{titlepic}
|
||||
\usepackage[nottoc]{tocbibind}
|
||||
\usepackage{url}
|
||||
\usepackage[showisoZ]{datetime2}
|
||||
\usepackage{url} % cmd \url.
|
||||
\usepackage[showisoZ]{datetime2} % more options for time formatting.
|
||||
\usepackage{transparent}
|
||||
\usepackage{soul}
|
||||
\usepackage{caption}
|
||||
\usepackage{enumitem}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{tikzsymbols} % http://ctan.math.utah.edu/ctan/tex-archive/graphics/pgf/contrib/tikzsymbols/tikzsymbols.pdf
|
||||
\usepackage{textcomp}
|
||||
\usepackage{parskip}
|
||||
|
@ -34,7 +31,7 @@
|
|||
\usepackage{makecell}
|
||||
\usepackage{inconsolata}
|
||||
\usepackage{blindtext}
|
||||
\usepackage{expdlist}
|
||||
\usepackage{expdlist}
|
||||
\usepackage{epigraph} % used to style quotes
|
||||
\usepackage{titling} % makes available \thetitle \theauthor \thedate
|
||||
\usepackage[toc,acronym,footnote,nomain]{glossaries} % Load the package with the acronym option
|
||||
|
@ -47,6 +44,8 @@
|
|||
citecolor=darkgray,
|
||||
filecolor=darkgray,
|
||||
urlcolor=darkgray]{hyperref} % https://en.wikibooks.org/wiki/LaTeX/Hyperlinks
|
||||
\usepackage{amsmath,amssymb} % math things.
|
||||
\usepackage{lipsum}
|
||||
|
||||
|
||||
\renewcommand*{\multicolumntoc}{3} % https://tex.stackexchange.com/a/6455
|
||||
|
|
Loading…
Reference in a new issue