1
0
Fork 0
mirror of https://gitlab.com/netravnen/NetworkLabNotes.git synced 2024-11-26 19:27:57 +00:00

Compare commits

..

No commits in common. "e524a3b348e73e2e886f465d081b86a633cfc408" and "b8c3357a9b2c36e7ad66f31dd96bec66ed32b06b" have entirely different histories.

63 changed files with 117 additions and 687 deletions

15
.gitignore vendored
View file

@ -1,15 +0,0 @@
*.gz
*.aux
*.ist
*.acn
*.bbl
*.blg
*.lof
*.synctex(busy)
*.toc
*.out
latexmkrc
/main.*
/*.log
.vscode
.venv

View file

@ -1,5 +1,4 @@
Chriztoffer <chriztoffer@netravnen.de> <anonymous@overleaf.com> Christoffer <netravnen@gmail.com> <anonymous@overleaf.com>
Chriztoffer <chriztoffer@netravnen.de> <unknown@example.com> Christoffer <netravnen@gmail.com> <unknown@example.com>
Chriztoffer <chriztoffer@netravnen.de> <netravnen@users.noreply.github.com> Christoffer <netravnen@gmail.com> <netravnen@users.noreply.github.com>
Chriztoffer <chriztoffer@netravnen.de> <zbcchhan11@zbc.dk> Christoffer <netravnen@gmail.com> <zbcchhan11@zbc.dk>
Chriztoffer <chriztoffer@netravnen.de> <netravnen@gmail.com>

View file

@ -1,13 +0,0 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
#
# To skip hooks on single commit, use --no-verify
#
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files

View file

@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased] ## [Unreleased]
- See commit changelog - See commit changelog
## [0.4.0] - 2018-02-18
### Added
- EIGRP chapter
## [0.3.4] - 2017-09-17
### Fix
- Cannot remember what was fixed
## [0.3.3] - 2017-09-15 ## [0.3.3] - 2017-09-15
### Fix ### Fix
- Table 2: Spanning Tree standards - Table 2: Spanning Tree standards
@ -63,26 +55,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
- Initial version - Initial version
- Section: Spanning Tree - Section: Spanning Tree
[1.0.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.19.0...v1.0.0 [Unreleased]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.3...HEAD
[0.19.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.18.0...v0.19.0
[0.18.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.17.0...v0.18.0
[0.17.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.16.0...v0.17.0
[0.16.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.15.0...v0.16.0
[0.15.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.14.0...v0.15.0
[0.14.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.13.0...v0.14.0
[0.13.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.12.0...v0.13.0
[0.12.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.11.0...v0.12.0
[0.11.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.10.0...v0.11.0
[0.10.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.9.0...v0.10.0
[0.9.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.8.0...v0.9.0
[0.8.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.7.0...v0.8.0
[0.7.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.6.0...v0.7.0
[0.6.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.5.0...v0.6.0
[0.5.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.4.0...v0.5.0
[Unreleased]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.4.0...HEAD
[0.4.0]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.4...v0.4.0
[0.3.4]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.3...v0.3.4
[0.3.3]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.2...v0.3.3 [0.3.3]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.2...v0.3.3
[0.3.2]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.1...v0.3.2 [0.3.2]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.1...v0.3.2
[0.3.1]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.0...v0.3.1 [0.3.1]: https://gitlab.com/netravnen/CiscoLabNotes/compare/v0.3.0...v0.3.1

View file

@ -1,6 +1,6 @@
BSD 3-Clause License BSD 3-Clause License
Copyright (c) 2017-2018, Netravnen Copyright (c) 2017, Netravnen
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without

View file

@ -1,8 +0,0 @@
# Merge request
Describe in sub-points to the listed main points:
- New ?
- Changed ?
- Removed ?
Make sure to have read the [contribution guide](CONTRIBUTING.md) in advance

View file

@ -1,9 +1,7 @@
URLs: [Development repository][gitlab], [mirror][github], [mirror][git.data.coop]
# Subjects tryied covered # Subjects tryied covered
## Switching ## Switching
- [x] Spanning Tree - [X] Spanning Tree
- [ ] SDM Templates - [ ] SDM Templates
- [ ] PoE - [ ] PoE
- [ ] LACP - [ ] LACP
@ -12,9 +10,9 @@ URLs: [Development repository][gitlab], [mirror][github], [mirror][git.data.coop
- [ ] vPC (cisco proprietary) - [ ] vPC (cisco proprietary)
## Routing ## Routing
- [x] BGP - [X] BGP
- [ ] ISIS - [ ] ISIS
- [x] EIGRP (cisco proprietary) - [ ] EIGRP (cisco proprietary)
- [ ] OSPF - [ ] OSPF
- [ ] RIP - [ ] RIP
- [ ] InterVLAN Routing - [ ] InterVLAN Routing
@ -61,20 +59,19 @@ URLs: [Development repository][gitlab], [mirror][github], [mirror][git.data.coop
- [ ] StackWise - [ ] StackWise
## AAA ## AAA
- [x] TACACS+ (cisco proprietary) - [X] TACACS+ (cisco proprietary)
- [x] RADIUS - [X] RADIUS
## Example configuration snippets ## Example configuration snippets
- [ ] SSH - [ ] SSH
- [x] CDP (cisco proprietary) - [X] CDP (cisco proprietary)
- [x] DHCP - [X] DHCP
- [x] HSRP (cisco proprietary) - [X] HSRP (cisco proprietary)
- [x] Hardware clock - [X] Hardware clock
- [x] LLDP - [X] LLDP
- [x] NTP - [X] NTP
- [x] OSPFv2 - [X] OSPFv2
- [x] VTY - [X] VTY
[gitlab]: https://gitlab.com/NETRAVNEN/NetworkLabNotes [repo-origin]: https://gitlab.com/netravnen/CiscoLabNotes
[github]: https://github.com/NETRAVNEN/NetworkLabNotes [repo-mirror]: https://github.com/netravnen/CiscoLabNotes
[git.data.coop]: https://git.data.coop/NETRAVNEN/NetworkLabNotes/settings

View file

@ -1,10 +1,4 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = main.tex
\newacronym{adsl}{ADSL}{Asymmetric Digital Subscriber Line} \newacronym{adsl}{ADSL}{Asymmetric Digital Subscriber Line}
\newacronym{aodv}{AODV}{Adhoc On-Demand Distance Vector Routing}
\newacronym{ap}{AP}{Access Point} \newacronym{ap}{AP}{Access Point}
\newacronym{arin}{ARIN}{American Registry for Internet Numbers} \newacronym{arin}{ARIN}{American Registry for Internet Numbers}
\newacronym{arp}{ARP}{Address Resolution Protocol} \newacronym{arp}{ARP}{Address Resolution Protocol}
@ -37,8 +31,6 @@
\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{dsdv}{DSDV}{Destination-Sequenced Distance Vector}
\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}{}
@ -54,7 +46,6 @@
\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}
@ -67,8 +58,6 @@
\newacronym{gprs}{GPRS}{General Packet Radio Service} \newacronym{gprs}{GPRS}{General Packet Radio Service}
\newacronym{gsm}{GSM}{Global System for Mobile communications} \newacronym{gsm}{GSM}{Global System for Mobile communications}
\newacronym{ha}{HA}{High Availability} \newacronym{ha}{HA}{High Availability}
\newacronym{hsls}{HSLS}{Hazy-Sighted Link State Protocol}
\newacronym{hmac}{HMAC}{Hashed Message Authentication Code}
\newacronym{hsrp}{HSRP}{Hot-Standby Routing Protocol} \newacronym{hsrp}{HSRP}{Hot-Standby Routing Protocol}
\newacronym{http}{HTTP}{Hypertext Transfer Protocol} \newacronym{http}{HTTP}{Hypertext Transfer Protocol}
\newacronym{https}{HTTPS}{Hyper Text Transfer Protocol Secure} \newacronym{https}{HTTPS}{Hyper Text Transfer Protocol Secure}
@ -89,7 +78,6 @@
\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}
@ -105,7 +93,6 @@
\newacronym{lan}{LAN}{Local Area Network} \newacronym{lan}{LAN}{Local Area Network}
\newacronym{lldp}{LLDP}{Link Layer Discovery Protocol} \newacronym{lldp}{LLDP}{Link Layer Discovery Protocol}
\newacronym{mac}{MAC}{Media Access Control address} \newacronym{mac}{MAC}{Media Access Control address}
\newacronym{mbh}{MBH}{Mobile Backhaul}
\newacronym{mec}{MEC}{Multichannel Ether-channel} \newacronym{mec}{MEC}{Multichannel Ether-channel}
\newacronym{med}{MED}{Multi-Exit Discriminator} \newacronym{med}{MED}{Multi-Exit Discriminator}
\newacronym{metdst}{MET-DST}{Middle European Time Daylight Saving Time} \newacronym{metdst}{MET-DST}{Middle European Time Daylight Saving Time}
@ -124,13 +111,10 @@
\newacronym{nsf}{NSF}{Non-stop Forwarding} \newacronym{nsf}{NSF}{Non-stop Forwarding}
\newacronym{nss}{NSS}{National Security Strategy} \newacronym{nss}{NSS}{National Security Strategy}
\newacronym{ntp}{NTP}{Network Time Protocol} \newacronym{ntp}{NTP}{Network Time Protocol}
\newacronym{olsr}{OLSR}{Optimised Link State Routing}
\newacronym{osi}{OSI}{Open Systems Interconnection} \newacronym{osi}{OSI}{Open Systems Interconnection}
\newacronym{ospf}{OSPF}{Open Shortest Path First} \newacronym{ospf}{OSPF}{Open Shortest Path First}
\newacronym{ospf2}{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}
@ -156,11 +140,9 @@
\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}
@ -188,7 +170,6 @@
\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}

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{Base Configuration} \chapter{Base Configuration}
\section{Cisco Lab} \section{Cisco Lab}

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter[DHCP]{Dynamic Host Control Protocol} \chapter[DHCP]{Dynamic Host Control Protocol}
\section[DHCP Process]{Dynamic Host Control Protocol Process} \section[DHCP Process]{Dynamic Host Control Protocol Process}

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter[Internet]{The Internet {\footnotesize "Post cold-war modern times"}} \chapter[Internet]{The Internet {\footnotesize "Post cold-war modern times"}}
The internet is a fundamental communication technology for today's modern society. The thing that started as the \Gls{arpanet}\cite{wiki:ARPANET} back in the late nineteen sixties has evolved to become the core of today's globalization on Earth. The internet is a fundamental communication technology for today's modern society. The thing that started as the \Gls{arpanet}\cite{wiki:ARPANET} back in the late nineteen sixties has evolved to become the core of today's globalization on Earth.

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter[IP]{Internet Protocol} \chapter[IP]{Internet Protocol}
\section[IPv6]{Internet Protocol v6} \section[IPv6]{Internet Protocol v6}

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{L2 to L3} \chapter{L2 to L3}
\section{Vlan-to-vlan routing} \section{Vlan-to-vlan routing}

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{Layer 2} \chapter{Layer 2}
\section{Switch Network} \section{Switch Network}

View file

@ -1,231 +1,10 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{Layer 3} \chapter{Layer 3}
\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}
\gls{isis} is the ISO standardized routing protocol. Designed for use by intermediate systems.
\gls{isis} compared to other routing protocols standardized in the \gls{ietf}.
\begin{itemize}
\item Everything is \gls{tlv} based. Making the protocol very extensible by standardizing new \gls{tlv} values.
\item The participating nodes communicates with its neighbors on \gls{l2}. Thereby not \textit{requiring} \gls{l3} addresses on the link. And instead uses the \gls{mac} to target the neighbor node.
\item The connection is done on per-interface. Similar to \gls{ospf3}. Instead of the global approach in \gls{ospf2}.
\begin{itemize}
\item The per-interface is the result of deciding the area is handled per-interface. Instead of at the per-node level.
\item The border between areas is at the node level. Instead of the interface level in \gls{ospf2}.
\end{itemize}
\item Uses its own ethertype of 0x22F4\cite{IEEE802N51:online}.
\begin{itemize}
\item \rfc{6325}.
\end{itemize}
\item Commun
\end{itemize}
\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.
@ -234,58 +13,10 @@ 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{Babel}
Babel is built on the principles of 1) \gls{dsdv}, 2) \gls{aodv}, and 3)
\gls{eigrp} protocols.
Made for hybrid networks\footnote{network contains wired and wireless links}
and can account for a high level of instability on wireless links.
Babel has been reported to be running stable in unstable wireless networks with
a level of reliability and fast convergence.
\begin{itemize}
\item Loop-avoidance protocol,
\item Uses distributed Bellman-Ford algorithm,
\item \rfc{6126} in 45 pages, \textit{(28 are normative)}
\begin{enumerate}
\item Updates by \rfc{7298} {\scriptsize (The Babel extension
mechanism)}, and
\item \rfc{7557} {\scriptsize (Babel \gls{hmac} Cryptographic
Authentication)}.
\end{enumerate}
\item Highly extensible protocol,\cite{BabelDoe86:online}
\item Supports \gls{ip4} and \gls{ip6}.
\end{itemize}
Babel on \underline{wired} networks uses by default hop-count. Can be
configured to include several values when computing the metrics.
On \underline{wireless} networks Babel should be configured to take into
account factors such as link latency, packet loss, hop-count, and radio
diversity.
\subsection{Protocol support}
Currently the following projects include support for Babel:
\cite{Babel-al30:online}
\begin{itemize}
\item Bird {\footnotesize \url{http://bird.network.cz/}}
\item FRR {\footnotesize \url{https://frrouting.org/}}
\item Pybabel {\footnotesize \url{https://github.com/fingon/pybabel/}}
\item Sbabeld {\footnotesize \url{http://github.com/jech/sbabeld/}}
\end{itemize}
\newpage
\section{Static} \section{Static}
\newpage \newpage

View file

@ -1,75 +1,34 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{Linux} \chapter{Linux}
\section{Kernel Upgrades} \section{Kernel Upgrades}
LIST KERNELS ON /boot PARTITION
\begin{txt} \begin{txt}
dpkg --list | grep linux-image # LIST KERNELS ON /boot PARTITION
dpkg --list | grep linux-headers
dpkg --list | grep linux-image
dpkg --list | grep linux-headers
\end{txt} \end{txt}
REMOVE SELECTED KERNEL VERSIONS FROM BOOT PARTITION
\begin{txt} \begin{txt}
sudo apt-get purge linux-image-4.4.0-{75,78,79} # REMOVE SELECTED KERNEL VERSIONS FROM BOOT PARTITION
sudo apt-get purge linux-image-extra-4.4.0-{75,78,79}
sudo apt-get purge linux-headers-4.4.0-{75,78,79} sudo apt-get purge linux-image-4.4.0-{75,78,79}
sudo apt-get purge linux-image-extra-4.4.0-{75,78,79}
sudo apt-get purge linux-headers-4.4.0-{75,78,79}
or
sudo apt autoremove [-f]
\end{txt} \end{txt}
or alternatively
\begin{txt} \begin{txt}
sudo apt autoremove [-f] # My one-liner to remove old kernels (this also frees up disk space)
# https://askubuntu.com/a/254585
dpkg --list | grep linux-image | awk '{ print \$2 }' | sort -V | sed -n '/'`uname -r`'/q;p' | xargs sudo apt-get -y purge
\end{txt} \end{txt}
My one-liner to remove old kernels (this also frees up disk space). https://askubuntu.com/a/254585
\begin{txt} \begin{txt}
dpkg --list | grep linux-image | awk '{ print \$2 }' | sort -V | sed -n '/'`uname -r`'/q;p' | xargs sudo apt-get -y purge # Remember to update grub2 configuration
sudo update-grub2
\end{txt} \end{txt}
Remember to update grub2 configuration
\begin{txt}
sudo update-grub2
\end{txt}
\newpage
\subsection{Proxmox}
\subsubsection{Proxmox Migrations}
Move a LXC containers storage volumes to a different storage backend, both the boot disk, and additional disks. 1400 is here the example Container ID. And ''tank'' the target storage backend. We need to stop the container before we are allowed to migrate the storage volumes of the container. We start the container back up after finishing migrating the storage volumes.
\begin{txt}
sudo pct stop 1400 && \
sudo pct move-volume 1400 rootfs tank --delete && \
sudo pct move-volume 1400 mp0 tank --delete && \
sudo pct start 1400
\end{txt}
Using Remote Migrate to migrate an LXC container to a different Proxmox Node in another Proxmox Cluster. This is an offline migration, where we turn off the Container when migration. And restarting it with the new bridge setting afterwards. If the IPs have changed. This needs to be updated manually.
\begin{txt}
sudo pct remote-migrate \
$(
sudo pct list |
grep <LOOK FOR A SPECIFIC HOSTNAME> |
grep --perl-regex --only-matching '^\d+'
) \
<TARGET CONTAINER/VM ID> \
'apitoken=PVEAPIToken=<USER>@<METHOD>!<TOKEN NAME>=<TOKEN KEY>,host=<TARGET HOSTNAME OR IP>' \
--delete 1 \
--online 0 \
--restart 1 \
--target-bridge <TARGET BRIDGE NAME> \
--target-storage <TARGET STORAGE NAME>
\end{txt}

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{Campus Network} \chapter{Campus Network}
\section{Discover Nodes} \section{Discover Nodes}
@ -308,7 +303,7 @@ Cisco switches allow by default only the following 3 protos until the client is
\item The \textbf{authentication server} \item The \textbf{authentication server}
\end{itemize} \end{itemize}
\fig{8021x/portauth}{portauth}{802.1X Port Auth} \fig{8021X/portauth}{portauth}{802.1X Port Auth}
802.1X can be enabled on a Cisco switch globally by \cliline{dot1x system-auth-control} and \textit{then} enabled on the switch port{\footnotesize (s)} by \cliline{aaa authentication dot1x}. 802.1X can be enabled on a Cisco switch globally by \cliline{dot1x system-auth-control} and \textit{then} enabled on the switch port{\footnotesize (s)} by \cliline{aaa authentication dot1x}.

View file

@ -1,8 +1,3 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter[NTP]{Network Time Protocol} \chapter[NTP]{Network Time Protocol}
\gls{ntp} is the source of all evil and \gls{sla}. A network wide source of time configuration for all network nodes, servers, clients etc. is necessary. \gls{ntp} is the source of all evil and \gls{sla}. A network wide source of time configuration for all network nodes, servers, clients etc. is necessary.

View file

@ -1,26 +0,0 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{PiHole}
\section{Whitelisting}
\subsection{Zoom Video Conferencing}
\begin{txt}
COMMENT='Zoom Video Conferencing';
pihole -w --comment "${COMMENT}" zoom.us --noreload && \
pihole -w --comment "${COMMENT}" app.zoom.us --noreload && \
pihole -w --comment "${COMMENT}" xmpp.zoom.us --noreload && \
pihole --white-regex --comment "${COMMENT}" '^zoom([\d\w]+)\.(cloud|\w{3})\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '^\w{2}\d{1,4}\w{2}\d{1,4}\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '^us\d{1,4}web\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '^\w{1,4}\d{1,4}\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '^\w{2}\d{1,4}\w{1,4}static\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '\.cloud\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '^\w+(\d{1,2})?\.\w{2}\.zoom\.us$' --noreload && \
pihole --white-regex --comment "${COMMENT}" '^\w{2}\d{1,3}images\.zoom\.us$'
\end{txt}

View file

@ -1,6 +1 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{VoIP} \chapter{VoIP}

View file

@ -1,6 +1 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = ../main.tex
\chapter{Wireless} \chapter{Wireless}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,10 +1,12 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = main.tex
\DTMsavenow{now} \DTMsavenow{now}
\title{Networking with switches and routers, automation and IPv4/6}
\def\thesubject{My Notes going along with learning Cisco Networking}
\author{"Netravnen (Gmail) (netravnen@gmail.com)" <netravnen@gmail.com>\\
Fingerprint: C8B3 82A8 A1CD CDB7 71FE B24C C654 948F DA86 BECD}
\def\theversion{v0.3.3}
\date{{\footnotesize Last release \theversion\\% \date{{\footnotesize Last release \theversion\\%
\texttt{\color{Gray}Generated \utccurrenttime}}} \texttt{\color{Gray}Generated \utccurrenttime}}}

View file

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

View file

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

View file

@ -1,25 +1,8 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = main.tex
% Declare Document Class % Declare Document Class
\documentclass[a4paper,12pt,twoside,twocolumn,landscape]{book} \documentclass[a4paper,12pt,twoside,twocolumn,landscape]{book}
\include{structure} % Load structure cfg for document \include{structure} % Load structure cfg for document
\include{acronyms} % Load acronym list \include{acronyms} % Load acronym list
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% Define constants to ensure attribution of work %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\theversion{v0.4.0}
\title{Networking with switches and routers, automation and IPv4/6}
\def\thesubject{My Notes going along with learning Networking}
\author{"Chriztoffer Hansen" <chriztoffer@netravnen.de>\\
GPG: 18DD 23C5 5029 3098 DE07 052A 9DCF 2CA0 08EB D2E8}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % % %
% BEGIN DOCUMENT % % BEGIN DOCUMENT %
@ -52,7 +35,6 @@
\include{chapter/voip} \include{chapter/voip}
\include{chapter/baseconf} \include{chapter/baseconf}
\include{chapter/linux} \include{chapter/linux}
\include{chapter/pihole}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % % %
@ -87,7 +69,7 @@
% % % %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliography{references-books,references-websites,references-wikipedia,references-videos} \bibliography{references-books,references-websites,references-wikipedia}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % % %

View file

@ -1,9 +0,0 @@
@misc{BabelDoe86:online,
author = {Juliusz Chroboczek},
title = {Babel Doesn't Care + Slides - BattleMeshV8 - YouTube},
howpublished =
{\url{https://www.youtube.com/watch?v=1zMDLVln3XM&t=10s&ab_channel=AdjyLeak}},
month = {August},
year = {2015},
note = {(Accessed on 02/18/2018)}
}

View file

@ -40,30 +40,3 @@
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)}
}
@misc{Babel-al30:online,
author = {Juliusz Chroboczek},
title = {Babel — a loop-avoiding distance-vector routing protocol},
howpublished = {\url{https://www.irif.fr/~jch/software/babel/}},
month = {},
year = {},
note = {(Accessed on 02/18/2018)}
}
@misc{IEEE802N51:online,
author = {},
title = {IEEE 802 Numbers - https://www.iana.org/},
howpublished = {\url{https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml#ieee-802-numbers-1}},
month = {},
year = {},
note = {(Accessed on 10/01/2024)}
}

View file

@ -97,19 +97,3 @@
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]"
}

View file

@ -1,51 +1,52 @@
% !TeX TS-program =
% !TeX spellcheck = en_DK
% !TeX encoding = UTF-8
% !TeX root = main.tex
% Latex Packages % Latex Packages
\usepackage{amsmath,amssymb} % math things.
\usepackage{array}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{caption}
\usepackage{chngcntr}
\usepackage{color} % makes custom color codes available.
\usepackage[showisoZ]{datetime2} % more options for time formatting.
\usepackage{dblfnote} % https://tex.stackexchange.com/a/8180
\usepackage{enumitem} % makes available changes to lists.
\usepackage{epigraph} % used to style quotes
\usepackage{expdlist}
\usepackage{fancybox} % styling of boxes.
\usepackage{fancyhdr}
\usepackage{float}
\usepackage[T1]{fontenc} \usepackage[T1]{fontenc}
\usepackage{fourier}
\usepackage{geometry}
\usepackage[toc,acronym,nomain]{glossaries} % Load the package with the acronym option
\usepackage{glossaries-extra}
\usepackage{graphicx}
\usepackage[unicode=false,colorlinks=true,linkcolor=darkgray,citecolor=darkgray,filecolor=darkgray,urlcolor=darkgray]{hyperref} % https://en.wikibooks.org/wiki/LaTeX/Hyperlinks
\usepackage{inconsolata}
\usepackage[utf8]{inputenc} \usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{listings}
\usepackage{lmodern} \usepackage{lmodern}
\usepackage{makecell} \usepackage{geometry}
\usepackage[toc]{multitoc} \usepackage{listings}
\usepackage[numbers,square,sectionbib,comma,nonamebreak,elide]{natbib} % used with layout for bibliography section. \usepackage{color}
\usepackage{parskip} \usepackage[usenames,dvipsnames,svgnames]{xcolor}
\usepackage{soul} \usepackage{graphicx}
\usepackage{textcomp} \usepackage[numbers,square,sectionbib,comma,nonamebreak,elide]{natbib}
\usepackage[usenames,dvipsnames,svgnames]{xcolor} % makes custom color codes available. MUST for some reason be above tikzsymbols. \usepackage{float}
\usepackage{tikzsymbols} % http://ctan.math.utah.edu/ctan/tex-archive/graphics/pgf/contrib/tikzsymbols/tikzsymbols.pdf \usepackage[english]{babel}
\usepackage{titlepic} \usepackage{fancyhdr}
\usepackage{titling} % makes available \thetitle \theauthor \thedate
\usepackage[nottoc]{tocbibind}
\usepackage{transparent}
\usepackage{url} % cmd \url.
\usepackage{varwidth}
\usepackage{wrapfig} \usepackage{wrapfig}
\usepackage{array}
\usepackage{lipsum}
\usepackage{fancybox}
\usepackage{varwidth}
\usepackage{enumitem}
\usepackage{titlepic}
\usepackage[nottoc]{tocbibind}
\usepackage{url}
\usepackage[showisoZ]{datetime2}
\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}
\usepackage{fourier}
\usepackage{array}
\usepackage{makecell}
\usepackage{inconsolata}
\usepackage{blindtext}
\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
\usepackage{chngcntr}
\usepackage[toc]{multitoc}
\usepackage{dblfnote} % https://tex.stackexchange.com/a/8180
\usepackage[unicode=false,
colorlinks=true,
linkcolor=darkgray,
citecolor=darkgray,
filecolor=darkgray,
urlcolor=darkgray]{hyperref} % https://en.wikibooks.org/wiki/LaTeX/Hyperlinks
\renewcommand*{\multicolumntoc}{3} % https://tex.stackexchange.com/a/6455 \renewcommand*{\multicolumntoc}{3} % https://tex.stackexchange.com/a/6455
@ -277,34 +278,3 @@
% https://tex.stackexchange.com/a/146312 % https://tex.stackexchange.com/a/146312
\newlist{mylist}{enumerate*}{1} \newlist{mylist}{enumerate*}{1}
\setlist[mylist]{label={\alph*)},font={\color{red!25!black}\bfseries}} \setlist[mylist]{label={\alph*)},font={\color{red!25!black}\bfseries}}
% https://cscrunch.com/blog/corey-pennycuff/scripting-latex-create-base-conversion-worksheet
\def\colwidth{.42cm}
\newcommand{\baseconvertpractice}[2]{% number, # to not censor (1-3, or 0 for none)
\renewcommand\arraystretch{2}
\FPeval{\num}{#1}%
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}r|*{8}{>{\centering}p{\colwidth}|}|*{8}{>{\centering}p{\colwidth}|}@{}c@{}} \cline{2-17}%
Decimal & \multicolumn{16}{ r| }{\censorifnotequal{\num}{#2}{1}} &\\ \cline{2-17}%
Binary & \censorifnotequal{\getdigit{\num}{16}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{15}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{14}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{13}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{12}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{11}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{10}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{9}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{8}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{7}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{6}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{5}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{4}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{3}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{2}{2}}{#2}{2} &%
\censorifnotequal{\getdigit{\num}{1}{2}}{#2}{2} &\\ \cline{2-17}%
Hexadecimal & \multicolumn{4}{c|}{\censorifnotequal{\getdigit{\num}{4}{16}}{#2}{3}} &%
\multicolumn{4}{c||}{\censorifnotequal{\getdigit{\num}{3}{16}}{#2}{3}} &%
\multicolumn{4}{c|}{\censorifnotequal{\getdigit{\num}{2}{16}}{#2}{3}} &%
\multicolumn{4}{c|}{\censorifnotequal{\getdigit{\num}{1}{16}}{#2}{3}} &\\ \cline{2-17}%
\end{tabular*}%
}