mirror of
https://gitlab.com/netravnen/NetworkLabNotes.git
synced 2024-11-26 19:27:57 +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{dns}{DNS}{Domain Name System}
|
||||||
\newacronym{dns6}{DNSv6}{Domain Name System version 6}
|
\newacronym{dns6}{DNSv6}{Domain Name System version 6}
|
||||||
\newacronym{dr}{DR}{Danmarks Radio}
|
\newacronym{dr}{DR}{Danmarks Radio}
|
||||||
|
\newacronym{dual}{DUAL}{Diffusing Update Algorithm}
|
||||||
\newacronym{dsl}{DSL}{Digital Subscriber Line}
|
\newacronym{dsl}{DSL}{Digital Subscriber Line}
|
||||||
\newacronym{dst}{dst}{destination}
|
\newacronym{dst}{dst}{destination}
|
||||||
\newacronym{dwdm}{DWDM}{}
|
\newacronym{dwdm}{DWDM}{}
|
||||||
|
@ -46,6 +47,7 @@
|
||||||
\newacronym{fhrp}{FHRP}{First Hop Redundancy Protocol}
|
\newacronym{fhrp}{FHRP}{First Hop Redundancy Protocol}
|
||||||
\newacronym{fib}{FIB}{Forward Information Base}
|
\newacronym{fib}{FIB}{Forward Information Base}
|
||||||
\newacronym{fix}{FIX}{Federal Internet Exchange}
|
\newacronym{fix}{FIX}{Federal Internet Exchange}
|
||||||
|
\newacronym{frr}{FRR}{Free Range Routing daemon}
|
||||||
\newacronym{fsm}{FSM}{Finite State Machine}
|
\newacronym{fsm}{FSM}{Finite State Machine}
|
||||||
\newacronym{ftp}{FTP}{File Transfer Protocol}
|
\newacronym{ftp}{FTP}{File Transfer Protocol}
|
||||||
\newacronym{ftps}{FTPS}{File Transfer Protocol Secure}
|
\newacronym{ftps}{FTPS}{File Transfer Protocol Secure}
|
||||||
|
@ -78,6 +80,7 @@
|
||||||
\newacronym{ip6}{IPv6}{Internet Protocol version 6}
|
\newacronym{ip6}{IPv6}{Internet Protocol version 6}
|
||||||
\newacronym{ipv4}{IPv4}{Internet Protocol version 4}
|
\newacronym{ipv4}{IPv4}{Internet Protocol version 4}
|
||||||
\newacronym{ipv6}{IPv6}{Internet Protocol version 6}
|
\newacronym{ipv6}{IPv6}{Internet Protocol version 6}
|
||||||
|
\newacronym{ipx}{IPX}{Internetwork Packet Exchange}
|
||||||
\newacronym{irc}{IRC}{Internet Relay Chat}
|
\newacronym{irc}{IRC}{Internet Relay Chat}
|
||||||
\newacronym{irtf}{IRTF}{Internet Research Task Force}
|
\newacronym{irtf}{IRTF}{Internet Research Task Force}
|
||||||
\newacronym{isis}{IS-IS}{Intermediate System to Intermediate System}
|
\newacronym{isis}{IS-IS}{Intermediate System to Intermediate System}
|
||||||
|
@ -115,6 +118,7 @@
|
||||||
\newacronym{ospf}{OSPF}{Open Shortest Path First}
|
\newacronym{ospf}{OSPF}{Open Shortest Path First}
|
||||||
\newacronym{ospf3}{OSPFv3}{Open Shortest Path First v3}
|
\newacronym{ospf3}{OSPFv3}{Open Shortest Path First v3}
|
||||||
\newacronym{ospfv3}{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{pagp}{PAgP}{Port Aggregation Protocol}
|
||||||
\newacronym{poe}{PoE}{Power over Ethernet}
|
\newacronym{poe}{PoE}{Power over Ethernet}
|
||||||
\newacronym{poe+}{PoE+}{Power over Ethernet Plus}
|
\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}
|
||||||
\newacronym{rpvst+}{RPVST+}{Per Vlan Rapid Spanning Tree Plus}
|
\newacronym{rpvst+}{RPVST+}{Per Vlan Rapid Spanning Tree Plus}
|
||||||
\newacronym{rsvp}{RSVP}{Resource Reservation Protocol}
|
\newacronym{rsvp}{RSVP}{Resource Reservation Protocol}
|
||||||
|
\newacronym{rtp}{RTP}{Reliable Transport Protocol}
|
||||||
\newacronym{sdm}{SDM}{Security Device Manager}
|
\newacronym{sdm}{SDM}{Security Device Manager}
|
||||||
\newacronym{sdsl}{SDSL}{Symmetric Digital Subscriber Line}
|
\newacronym{sdsl}{SDSL}{Symmetric Digital Subscriber Line}
|
||||||
\newacronym{sftp}{SFTP}{Secure Shell File Transfer Protocol}
|
\newacronym{sftp}{SFTP}{Secure Shell File Transfer Protocol}
|
||||||
|
\newacronym{sia}{SIA}{Stuck in Active}
|
||||||
\newacronym{sla}{SLA}{Service Level Agreement}
|
\newacronym{sla}{SLA}{Service Level Agreement}
|
||||||
\newacronym{slaac}{SLAAC}{Stateless Address Autoconfiguration}
|
\newacronym{slaac}{SLAAC}{Stateless Address Autoconfiguration}
|
||||||
\newacronym{smtp}{SMTP}{Simpe Mail Transfer Protocol}
|
\newacronym{smtp}{SMTP}{Simpe Mail Transfer Protocol}
|
||||||
|
@ -170,6 +176,7 @@
|
||||||
\newacronym{ula}{ULA}{Unique Local Address}
|
\newacronym{ula}{ULA}{Unique Local Address}
|
||||||
\newacronym{utc}{UTC}{Coordinated Universal Time}
|
\newacronym{utc}{UTC}{Coordinated Universal Time}
|
||||||
\newacronym{vlan}{VLAN}{Virtual Local Area Network}
|
\newacronym{vlan}{VLAN}{Virtual Local Area Network}
|
||||||
|
\newacronym{vlsm}{VLSM}{Variable-Length Subnet Masking}
|
||||||
\newacronym{vpn}{VPN}{Virtual Private Network}
|
\newacronym{vpn}{VPN}{Virtual Private Network}
|
||||||
\newacronym{vrf}{VRF}{Virtual Routing and Forwarding}
|
\newacronym{vrf}{VRF}{Virtual Routing and Forwarding}
|
||||||
\newacronym{vrrp}{VRRP}{Virtual Router Redundancy Protocol}
|
\newacronym{vrrp}{VRRP}{Virtual Router Redundancy Protocol}
|
||||||
|
|
|
@ -2,9 +2,194 @@
|
||||||
|
|
||||||
\section{Routed Network}
|
\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}
|
\section{OSPF}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
\section{IS-IS}
|
\section{IS-IS}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
\section{EIGRP}
|
\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}
|
\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.
|
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.
|
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.
|
4. Limited to a miximum of 16 hops between source and destination.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
|
||||||
\subsection{RIPng}
|
\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.
|
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}
|
\section{Static}
|
||||||
|
|
||||||
\newpage
|
\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 |
|
@ -40,3 +40,12 @@
|
||||||
year = "2011",
|
year = "2011",
|
||||||
note = "[Online; accessed on 24-June-2017]"
|
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)}
|
||||||
|
}
|
|
@ -97,3 +97,19 @@
|
||||||
howpublished = {\url{http://en.wikipedia.org/w/index.php?title=Solicited-node\%20multicast\%20address&oldid=787116453}},
|
howpublished = {\url{http://en.wikipedia.org/w/index.php?title=Solicited-node\%20multicast\%20address&oldid=787116453}},
|
||||||
note = "[Online; accessed 19-July-2017]"
|
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{lmodern}
|
||||||
\usepackage{geometry}
|
\usepackage{geometry}
|
||||||
\usepackage{listings}
|
\usepackage{listings}
|
||||||
\usepackage{color}
|
\usepackage{color} % makes custom color codes available.
|
||||||
\usepackage[usenames,dvipsnames,svgnames]{xcolor}
|
\usepackage[usenames,dvipsnames,svgnames]{xcolor} % makes custom color codes available.
|
||||||
\usepackage{graphicx}
|
\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{float}
|
||||||
\usepackage[english]{babel}
|
\usepackage[english]{babel}
|
||||||
\usepackage{fancyhdr}
|
\usepackage{fancyhdr}
|
||||||
\usepackage{wrapfig}
|
\usepackage{wrapfig}
|
||||||
\usepackage{array}
|
\usepackage{array}
|
||||||
\usepackage{lipsum}
|
\usepackage{fancybox} % styling of boxes.
|
||||||
\usepackage{fancybox}
|
|
||||||
\usepackage{varwidth}
|
\usepackage{varwidth}
|
||||||
\usepackage{enumitem}
|
\usepackage{enumitem} % makes available changes to lists.
|
||||||
\usepackage{titlepic}
|
\usepackage{titlepic}
|
||||||
\usepackage[nottoc]{tocbibind}
|
\usepackage[nottoc]{tocbibind}
|
||||||
\usepackage{url}
|
\usepackage{url} % cmd \url.
|
||||||
\usepackage[showisoZ]{datetime2}
|
\usepackage[showisoZ]{datetime2} % more options for time formatting.
|
||||||
\usepackage{transparent}
|
\usepackage{transparent}
|
||||||
\usepackage{soul}
|
\usepackage{soul}
|
||||||
\usepackage{caption}
|
\usepackage{caption}
|
||||||
\usepackage{enumitem}
|
|
||||||
\usepackage{amssymb}
|
|
||||||
\usepackage{tikzsymbols} % http://ctan.math.utah.edu/ctan/tex-archive/graphics/pgf/contrib/tikzsymbols/tikzsymbols.pdf
|
\usepackage{tikzsymbols} % http://ctan.math.utah.edu/ctan/tex-archive/graphics/pgf/contrib/tikzsymbols/tikzsymbols.pdf
|
||||||
\usepackage{textcomp}
|
\usepackage{textcomp}
|
||||||
\usepackage{parskip}
|
\usepackage{parskip}
|
||||||
|
@ -47,6 +44,8 @@
|
||||||
citecolor=darkgray,
|
citecolor=darkgray,
|
||||||
filecolor=darkgray,
|
filecolor=darkgray,
|
||||||
urlcolor=darkgray]{hyperref} % https://en.wikibooks.org/wiki/LaTeX/Hyperlinks
|
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
|
\renewcommand*{\multicolumntoc}{3} % https://tex.stackexchange.com/a/6455
|
||||||
|
|
Loading…
Reference in a new issue