Merge branch 'develop'

* develop: (23 commits)
  WIP: Adding content to BPDU section
  Added colors to frontpage line generated time and page header text
  Added package xcolor
  Updated spanning tree section with info on ports
  Added new command utccurrenttime
  Added document genetaion date into frontpage
  structure.tex: Added new packages babel and datetime2
  missed closing right sigh in tex command fig
  Updated chapter/section/spanningtree.tex
  Added iamges reading rstp
  Added images for spanning tree
  updated commands.tex
  Renamed unsrt.bib to references.bib
  Changed command fig to use absolute position when placing images inline
  Renamed unsrt.bib to references.bib
  WIP: Updated section bout spanning tree.
  Layer 3 Protocols: Still just headlines and bullet points
  Updated Main.tex and Structure.tex and moved all content to folder chapter
  Seperated chapters from the main document
  Updated and restructrued files, with layout seperated to structure.tex
  ...
This commit is contained in:
chhan11 2017-05-26 01:38:29 +02:00
commit 9b6aee4a5e
20 changed files with 865 additions and 455 deletions

35
chapter/baseconf.tex Normal file
View File

@ -0,0 +1,35 @@
\chapter{Base Configuration}
\section{Cisco Lab}
% <!-- ROUTER -->
\subsection{Router}
\subsubsection{File: base.cfg}
%\lstinputlisting[language=tcl]{code/router/base.cfg}
\subsubsection{File: reset.tcl}
%\lstinputlisting[language=tcl]{code/router/reset.tcl}
\newpage
% <!-- LAYER 3 SWITCH -->
\subsection{Layer 3 Switch}
\subsubsection{FILE: base.cfg}
\lstinputlisting[language=tcl]{code/l3switch/base.cfg}
\subsubsection{FILE: reset.tcl}
\lstinputlisting[language=tcl]{code/l3switch/reset-tcl.txt}
\subsubsection{FILE: resetvlans.tcl}
\lstinputlisting[language=tcl]{code/l3switch/resetvlans-tcl.txt}
\newpage
% <!-- LAYER 2 SWITCH -->
\subsection{Layer 2 Switch}
\subsubsection{FILE: base.cfg}
\lstinputlisting[language=tcl]{code/l2switch/base.cfg}
\subsubsection{FILE: reset.tcl}
\lstinputlisting[language=tcl]{code/l2switch/reset-tcl.txt}
\subsubsection{FILE: resetvlans.tcl}
\lstinputlisting[language=tcl]{code/l2switch/resetvlans-tcl.txt}

11
chapter/internet.tex Normal file
View File

@ -0,0 +1,11 @@
\chapter{The Internet {\footnotesize "Post cold-war modern times"}}
\section{Service Providers}
\section{IXP}
\section{MPLS}
\section{BGP}
\section{eVPN}

View File

@ -0,0 +1,7 @@
\chapter{Protocols Layer 2}
\subimport{./section/}{switchednetwork}
\newpage
\subimport{./section/}{spanningtree}

View File

@ -0,0 +1,6 @@
\chapter{Protocols Layer 3}
\subimport{./section/}{routednetwork}
\newpage

View File

@ -0,0 +1,8 @@
\section{Routed Network}
\section{OSPF}
\section{IS-IS}
\section{EIGRP}
\section{RIP}
\section{Static}
\section{BGP}

View File

@ -0,0 +1,257 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% SECTION BEGIN spanning tree protocol %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Spanning Tree}
Spanning Tree exists for the \textbf{sole} reason to save "your" network and all the broadcast storms an network engineer having a bad day can by mistake create!
STP comes from the above desire where redundancy was wanted but no protocol existed before STP to help in this regard.
\begin{table}[h]
\centering
\caption{Spanning Tree standrds}
\label{stpstandards}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|l|l|l|l|l|}
\hline
\textbf{} & \textbf{Standard} & \textbf{Ressource Usage} & \multicolumn{2}{l|}{\textbf{Convergence}} \\ \hline
CST & 802.1D & Low & Slow & All vlans \\ \hline
PVST+ & Cisco & High & Slow & Per vlan \\ \hline
RSTP & 802.1w & So-so (Med.) & Fast & All vlans \\ \hline
RPVST+ & Cisco & On-the-double (V.High) & Fast & Per vlan \\ \hline
MST & 802.1s & Med. - High & Fast & Vlan list \\ \hline
\end{tabular}%
}
\end{table}
\subsection{Port Roles}
When a switch is enabled for Spanning Tree. One of the following roles will have been assumed by any port on the switch in question.
\begin{itemize}
\item \textbf{Root port:} Only 1 port on any switch (non-counting the root bridge!). Is always the port with the lowest metric (aka. best path) to the root bridge.
\begin{itemize}
\item The upstream/-link port closest to the root bridge on all switches apart from the root bridge.
\end{itemize}
\item \textbf{Designated port:} A designated port is the port on any segment closest to the root bridge and forwarding traffic.
\begin{itemize}
\item The port on any switch in downstream direction closet to the root bridge.
\end{itemize}
\item \textbf{\textit{Non}-designated port:} Put in blocking mode and not currently forwarding traffic.
\begin{itemize}
\item All switch ports which did not get elected as the root or designated port.
\end{itemize}
\item \textbf{Disabled port:} The port has been one-way-or-another shut down.
\end{itemize}
\subsubsection{specific port roles}
\begin{itemize}
\item \textbf{Alternative port} is an active port in network with an alternative path to the root bridge. A port in alternative mode will remain active but \textit{discards} all traffic until the the current designated path fails.
\item \textbf{Backup port} is running in active mode and \textit{discards} all traffic it recieves until the current designated port on the segment the backup port is connected to, fails.
\end{itemize}
Election of ports goes in order of the following values (low is best): 1) root bridge id, 2) lowest path cost to root bridge, 3) sender bridge id, 4) sender port bridge id
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% SECTION BEGIN standards %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Standards}
\begin{itemize}
\item STP {\scriptsize Spanning Tree Protocol}
\begin{itemize}
\item IEEE 802.1D
\item Was created in a time where bridged networks was the norm.
\item Supports a single vlan/lan.
\end{itemize}
\item CST {\scriptsize Common Spanning Tree}
\begin{itemize}
\item An evolution of stp
\item Cst still only supports one STP instance.
\item But CST do thou in contrast to STP support \textit{multiple} vlans.
\end{itemize}
\item PVST {\scriptsize Per Vlan Spanning Tree}
\begin{itemize}
\item Now obsolute and succeded by PVST+
\end{itemize}
\item PVST+ {\scriptsize Per Vlan Spanning Tree Plus}
\begin{itemize}
\item Runs an instance of STP per vlan.
\item Can guarante better utilization of available network bandwidth.
\item Root bridge and port priorities can be configured per vlan.
\item Uses the term alternate for nondesignated port.
\end{itemize}
\item RSTP {\scriptsize Rapid Spanning Tree Protocol}
\begin{itemize}
\item IEEE 802.1w
\item A future development of the original 802.1D standard meant to provide faster convergance. As the original STP standard wasn't actually that fast.
\end{itemize}
\item RPVST+ {\scriptsize Rapid Per Vlan Spanning Tree Plus}
\begin{itemize}
\item A cisco implementation of RSTP based upon pvst+.
\end{itemize}
\item MST {\scriptsize Multiple Spanning Tree}
\begin{itemize}
\item Originally a cisco developed protocol. MST has since been developed as an IEEE standard.
\item MST can as CST map multiple vlans to a single STP instance.
\item MST \textit{differently} than CST supports multiple STP instances.
\item Fx. Instance 1: Vlan 1-99, Instane 2: Vlan 100-199.
\end{itemize}
\end{itemize}
\subsection{Features}
\subsubsection{BPDU}
\textbf{B}ridge \textbf{P}rotocol \textbf{D}ata \textbf{U}nits is on cisco equipment sent out every 2 seconds and generally catogorizes into 2 categories:
\begin{itemize}
\item \textit{Configuration} BPDU used for STP calculations and
\item \textit{Topology change notifications} BPDUs used to notify other network nodes of a change in the network.
\end{itemize}
Any network node with switchports and STP + BPDU enabled sends out BPDU packets with the ports mac as the src address. The destination mac is is designated STP multicast addr 01:80:C2:00:00:00.
\subsubsection{Root Bridge}
Using a \textbf{R}oot \textbf{B}rigde as the reference point for the STP instance and calculation of root/designated/non-designated ports.\\This election process uses a pre-configured bridge priority (ranges from $0$ to $2^{16}$) (defaults to $2^{15}$). If a tie in priority is found the switch in possession of the lowest mac address wins the root bridge election.
\subsubsection{Port Cost}
\begin{table}[h]
\centering
\caption{Default port cost in spanning tree}
\label{stpportcost}{!}{%
\begin{tabular}{|l|l|}
\hline
\textbf{Link} & \textbf{Default Cost} \\ \hline
10 Gbps & 1 \\ \hline
1 Gbps & 4 \\ \hline
100 Mbps & 19 \\ \hline
10 Mbps & 100 \\ \hline
\end{tabular}%
}
\end{table}
\fig{spanningtree/portroles}{stpportroles}{Port Election}
\textit{\textbf{NB:} beware that when working with bundled links (aka. ether-/port-channel). Then the link cost will be calculated based upon the summarized bandwidth accross all links.}
\fig{spanningtree/portstates}{stpportstates}{Port States}
\section{Rapid Spanning Tree Protocol}
\fig{rstp/portroles}{rstpportroles}{Port Roles}
\fig{rstp/portlinktypes}{rstpportlinktypes}{Port link types}
Things to be aware of regarding RSTP port roles
\begin{itemize}
\item \textbf{Shared} port state will only ever be present on segments where a hub is present.
\item \textbf{Point-2-Point} port is connected to a single switch on the other end.
\item \textbf{Edge} port roles is only ever connected to end devices. Status as Edge port is lost if a BPDU is ever recieved.
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% SECTION BEGIN port roles %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Port roles}
\subsection{Fast port roles}
Cisco did on their part early on enhance the original spanning tree standard with some proprietary portroles that can (on cisco switch equipment) skip steps in the port role election process. And configure a STP switchport to a specific behavior as described below:
\begin{itemize}
\item PortFast
\begin{itemize}
\item Configures access port to transition directly to forwarding state.
\item Improve convergence times of non-RSTP.
\item Port does no forwan TCN\footnote{\textbf{Needs finding out what TCN is.}} BPDUs either.
\item PortFast can be enabled either A) per port \textit{or} B) globally for all ports in access mode.
\begin{enumerate}
\item Per port: \footnote{Accesss port}\\\cliline{switch(config-if)# spanning-tree portfast}
\item Per port: \footnote{Trunk port}\\\cliline{switch(config-if)# spanning-tree portfast trunk}
\item Globally:\\\cliline{switch(config)# spanning-tree portfast default}
\end{enumerate}
\end{itemize}
\item UplinkFast
\begin{itemize}
\item Enables fast uplink failover on access switch.
\item Improve convergence times of non-RSTP.
\item Enabled only with non-RSTP
\item Integrated into Cisco's RSTP implementaion and enabled by defaut.
\item Cisco proprietary
\item Only works if switch has blocked ports
\item Designed with switches in access layer as deployment target.
\item Enabled for the entire switch. Cannot be enabled pr. vlan.
\item \cliline{switch(config)# spanning-tree uplinkfast} enables the feature.
\end{itemize}
\item BackboneFast
\begin{itemize}
\item Enables fast convergence in distribution or core layer when STP change occurs.
\item Improve convergence times of non-RSTP.
\item Enabled only with non-RSTP
\item Integrated into Cisco's RSTP implementaion and enabled by default.
\item Disabled by default
\item \cliline{switch(config)# spanning-tree backbonefast} enables the feature.
\item \textit{Scenario:} If switch needs searching new path root bridge. BackboneFast shortens process.
\begin{enumerate}
\item Switch will search for alternative path to root.
\item If BPDU recieved on blocked port. Port considered alternative path path to root.
\item If alternate path identified. RQL\footnote{\textbf{R}equest \textbf{L}ink \textbf{B}locking} packets are out for identify either A) an alternative path to the root bridge \textit{or} B) an up-/downstream switch with a path to the root bridge.
\end{enumerate}
\end{itemize}
\end{itemize}
\subsection{Loop Prevention}
\begin{itemize}
\item BPDU Guard
\begin{itemize}
\item Disables the PortFast-enabled port if a BPDU is received. The port goes into mode \texttt{err-disable}.
\item Enable per port:\\\cliline{switch(config-if)# spanning-tree bpduguard enable}
\item Enable globally for portfast enabled ports:\\\cliline{switch(config)# spanning-tree portfast bpduguard default}
\end{itemize}
\item BPDU Filter
\begin{itemize}
\item Suppresses BPDUs on ports
\item Behaves differently depending if enabled
\item A) globally \textit{or}
\begin{enumerate}
\item Affects all active portfast enabled ports, which \underline{don't} have a BPDU port configuration.
\item If BPDU recieved on port, portfast and BPDU filter is disabled.
\item Sends \textbf{10} BPDUs on startup. If BPDU recieved in this timeframe \textit{same consequence as above} happens to the port.
\end{enumerate}
\item B) per-port:
\begin{enumerate}
\item
\end{enumerate}
\end{itemize}
\item Root Guard
\begin{itemize}
\item Prevents external switches from becoming roots
\end{itemize}
\item Loop Guard
\begin{itemize}
\item Prevents an alternate port from becoming the designated port if no BPDUs are received
\end{itemize}
\end{itemize}
\subsection{Link}
\begin{itemize}
\item Unidirectional Link Detection (UDLD)
\item FlexLinks
\end{itemize}
\section*{Online Ressources on STP}
\begin{itemize}
\item Spanning Tree \@WikiPedia \cite{wp_spanningtree}
\end{itemize}

View File

@ -0,0 +1,167 @@
\section{Switch Network}
\subsection{VTP}
\fig{vtp/implementing-vtp}{imp-vtp1}{VTP}
\subsubsection{VTP Modes}
The tree modes a VTP \textit{enabled} device can operate are
\begin{itemize}
\item Transparent
\item Server
\item Client
\end{itemize}
Of course you can \textit{disable} VTP altogether.
Key things to be aware of \textit{before} enabling VTP in your environment is to make double sure of only having 1 VTP domain. \textbf{If} 2 or more VTP domains exists. Be triple sure to separate them! As to avoid having an VTP server DB overridden with data from another VTP domain.
The three VTP modes \textit{operates} as follow
\begin{itemize}
\item Transparent
\begin{itemize}
\item Creates, modifies and deletes \textit{local} vlans only
\item Forwards advertisements
\item Does \textit{not} synchronizes vlan configurations.
\end{itemize}
\item Server
\begin{itemize}
\item Creates, modifies and deletes vlans
\item Sends and forwards advertisements
\item Synchronizes vlan configurations
\end{itemize}
\begin{itemize}
\item Cannot create, modify or delete vlans
\item Send and forwards advertisements
\item Synchronizes vlan configurations
\end{itemize}
\end{itemize}
\subsubsection{VTP Announcement}
VTP operates with announcements sent out in intervals. Summarized it amounts to
\begin{itemize}
\item 1 \textit{summary} announcement per 5th minute from the server
\item The summary announcement informs clients of the current revision
\item An announcement is sent out \textit{on the spot} when a change has been made on the VTP server
\end{itemize}
Do remember it is \textbf{only} the VTP server which has the vlan configuration stored \textbf{on disk}. All device clients and transparent nodes do only store the vlans delegated by VTP in memory.
\subsubsection{Common Issues}
\begin{itemize}
\item Different/Incompatible VTP versions
\item Wrong password
\item Incorrect mode name
\item No server set (all devices configured in transparent/client/vtp disabled mode)
\end{itemize}
\subsubsection{VTP Versions}
\begin{itemize}
\item Version 1
\item Version 2
\begin{itemize}
\item Version-dependent transparent mode
\item Consistencycheck
\item Token ring support
\item Unrecognized type-length-value support
\end{itemize}
\item Version 3 (not "yet" common)
\begin{itemize}
\item Extended VLAN support: Allow ranges are 1-1005,1018-2095. Not mentioned vlans ranges up to 4095 is still reserved.
\item Domain name is not automatically learned.
\item Better security.
\item Better database propagation.
\item MST now supported.
\end{itemize}
\end{itemize}
\subsubsection{VTP Pruning}
The art of only allowing the vlan traffic to flow on \textit{necessary} links.
This means if there are no clients in a vlan on a device. Then no traffic for the inactive vlans is send down-/upstream on the link in question.
\fig{vtp/vtp-pruning}{vtpruning1}{VTP Pruning}
\subsubsection{Security}
It is \textbf{strongly} recommended to enable the security features supported in VTP.
\textbf{Password:} MD5 hashing, Case-sensitive, Length between 8 and 64 chars.
\notice{VTP Scaling}{
As the network grows and grows and grows and grows some more over long/short timespans.
You will \textbf{for certain} come to cross-rode, where you \textbf{must} consider to
go away from using VTP in the network. The problems of managing an elderly network and
wiping and re-introducing nodes in the network. You \textbf{will} face the issue of a
wiped vlan database from the VTP domain.
}
\subsubsection{Example configuration}
\lstinputlisting{code/vtp/example.cfg}
\subsection{Channel Bundling (aka. EtherChannel, PortChannel)}
Channel bundling is the "art" of using multiple physical links as one single logical link in when viewed from the perspective of the forwarding plane.
Technologies:
\begin{itemize}
\item \textbf{PAgP:} The Cisco-only thingy
\item \textbf{LACP:} The IEEE standard
\item \textbf{Static:} Just forced on
\end{itemize}
\fig{channelbundling/network-without-channelbundling}{noethernetchannel}%
{No Channelbundling present}
Channel bundling of switch ports in the network may or may not be the best idea, in regards to the networks growth rate in terms of min. required bandwidth.
Channel bundling spreads out the in and egress flows based upon one of several methods configured on the switch:
\begin{itemize}
\item Source to Destination MAC
\item Source to Destination IP
\end{itemize}
Keep in mind this will by no means archive true load balancing. Where all links are equally used based upon number of flows \textit{or} in terms of used bandwidth.
\begin{table}[h]
\centering
\caption{Channel bundling mechanisms}
\label{chbundmech1}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|l|l|l|}
\hline
Hash Input Code & Hash Input Detecision & Switch Model \\ \hline
dst-ip & Dest IP addr & All models \\ \hline
dst-mac & Dest MAC addr & All models \\ \hline
src-dst-ip & Src and dest IP addr & All models \\ \hline
src-dst-mac & Src and dest MAC addr & All models \\ \hline
src-ip & Src IP addr & All models \\ \hline
src-mac & Src MAC addr & All models \\ \hline
src-port & Src port no & 4500,6500 \\ \hline
dst-port & Dest port no & 4500,6500 \\ \hline
src-dst-port & Src and dest port no & 4500,6500 \\ \hline
\end{tabular}%
}
\end{table}
\fig{channelbundling/network-with-channelbundling}{withethernetchannel}%
{Channelbundling present}
\subsubsection{Protocol Properties}
\begin{itemize}
\item LACP
\begin{itemize}
\item Active: Enabled
\item Passive: Waits for LACP packets on the wire before enabled
\end{itemize}
\item PAgP
\begin{itemize}
\item Desirable: Enabled
\item Auto: Waits for PAgP packets on the wire before enabled
\end{itemize}
\end{itemize}
Some other \underline{required} settings to be (equal across all ports) aware of when configuring Channel bundling are
\begin{enumerate}
\item Port speeds
\item Duplex mode
\item Configured vlan ranges
\end{enumerate}
\subsubsection{Example configuration}
\lstinputlisting{code/channelbundling/example.cfg}

View File

@ -11,41 +11,37 @@ no aaa new-model
clock timezone MET 1 0
clock summer-time MET-DST recurring last Sun Mar 2:00 last Sun Oct 3:00
system mtu routing 1500
vtp mode transparent
no ip domain-lookup
ip domain-name cisco.tld
password encryption aes
spanning-tree mode pvst
spanning-tree extend system-id
vlan internal allocation policy ascending
vlan 666
name VLAN-BLACKHOLE
exit
lldp timer 12
lldp holdtime 100
lldp reinit 5
lldp tlv-select mac-phy-cfg
lldp tlv-select management-address
lldp tlv-select port-vlan
lldp tlv-select power-management
lldp tlv-select system-name
lldp run
ip tcp synwait-time 5
ip ssh logging events
ip ssh version 2
ip ssh dh min size 2048
ip ssh dscp 56
no ip http server
no ip http secure-server
line con 0
exec-timeout 60 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
exec-timeout 60 0
privilege level 15
logging synchronous
login
length 0
stopbits 1
line vty 5 15
exec-timeout 60 0
logging synchronous
login
stopbits 1
interface range f0/1-24 , g0/1-2
shutdown
exit
interface range f0/1-18
switchport mode access
switchport access vlan 666
no cdp enable
no lldp transmit
lldp recieve
exit
interface range f0/19-24
switchport mode trunk
@ -53,7 +49,41 @@ interface range f0/19-24
switchport trunk native vlan 1
no shutdown
exit
vtp mode transparent
interface Vlan1
no ip address
shutdown
exit
interface Vlan666
no ip address
shutdown
exit
no ip http server
no ip http secure-server
cdp advertise-v2
cdp holdtime 100
cdp timer 12
cdp tlv app
cdp tlv location
cdp run
line con 0
exec-timeout 60 0
privilege level 15
logging synchronous
stopbits 1
exit
line vty 0 4
exec-timeout 60 0
privilege level 15
logging synchronous
login
length 0
stopbits 1
exit
line vty 5 15
exec-timeout 60 0
logging synchronous
login
stopbits 1
exit
end
}

View File

@ -4,32 +4,73 @@ service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
service password-encryption
service counters max age 10
hostname distribution-switch-1
hostname __HOSTNAME__
logging buffered notifications
no logging console
no aaa new-model
clock timezone MET 1 0
clock summer-time MET-DST recurring last Sun Mar 2:00 last Sun Oct 3:00
system mtu routing 1500
vtp mode transparent
no ip domain-lookup
ip domain-name cisco.tld
password encryption aes
spanning-tree mode pvst
spanning-tree extend system-id
vlan internal allocation policy ascending
vlan 666
name VLAN-BLACKHOLE
exit
lldp timer 15
lldp holdtime 180
lldp reinit 5
lldp run
lldp tlv-select mac-phy-cfg
lldp tlv-select management-address
lldp tlv-select port-vlan
lldp tlv-select power-management
lldp tlv-select system-name
ip tcp synwait-time 5
ip ssh logging events
ip ssh version 2
ip ssh dh min size 2048
ip ssh dscp 56
ip classless
interface range f0/1-24 , g0/1-2
shutdown
switchport mode access
switchport access vlan 666
no cdp enable
no lldp transmit
lldp recieve
exit
interface range f0/19-24
switchport mode trunk
switchport trunk allowed vlan 1
switchport trunk native vlan 1
no shutdown
exit
interface Vlan1
no ip address
shutdown
exit
interface Vlan666
no ip address
shutdown
exit
no ip http server
no ip http secure-server
cdp advertise-v2
cdp holdtime 100
cdp timer 12
cdp tlv app
cdp tlv location
cdp run
line con 0
exec-timeout 60 0
privilege level 15
logging synchronous
stopbits 1
exit
line vty 0 4
exec-timeout 60 0
privilege level 15
@ -37,21 +78,12 @@ line vty 0 4
login
length 0
stopbits 1
exit
line vty 5 15
exec-timeout 60 0
logging synchronous
login
stopbits 1
interface range f0/1-24 , g0/1-2
shutdown
exit
interface range f0/1-18
no cdp enable
exit
interface range f0/19-24
no shutdown
exit
vtp mode transparent
exit
end
}

47
commands.tex Normal file
View File

@ -0,0 +1,47 @@
% Usage: \pic[<pct-of-columnwidth>]{<path-to-file>}
\newcommand{\pic}[2][50]{
\begin{center}
\transparent{0.4}
\includegraphics[width=0.#1\columnwidth]{#2}
\end{center}
}
% Usage: \fig{<path-to-file>}{<label>}{<caption>}
\newcommand{\fig}[4]{
\begin{figure}[h!]
\centering
\includegraphics[width=0.95\columnwidth]{#1}
\caption{#3}
\label{fig:#2}
\end{figure}
}
% Usage: \svg{<path-to-file>}{<label>}{<caption>}
\newcommand{\svg}[3]{
\begin{figure}[h]
\centering
\includesvg{#1}
\caption{#3}
\label{fig:#2}
\end{figure}
}
\newcommand{\notice}[2]{%
\shadowbox{%
\begin{varwidth}{0.85\linewidth}
\texttt{\textbf{#1}}\\
#2
\end{varwidth}
}
}
\newcommand{\cliline}[2][]{\lstinline[columns=fixed,#1]{#2}}
\newcommand{\utccurrenttime}[0]{%
\today%
T%
\DTMcurrenttime%
\DTMfetchTZhour{now}%
:%
\DTMfetchTZminute{now}
}

BIN
img/profilepic/pic1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
img/rstp/portlinktypes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
img/rstp/portroles.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

83
layout/color.tex Normal file
View File

@ -0,0 +1,83 @@
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% +--------------------------------------+ %
% | The following colours is available | %
% | with \usepackage[dvipsnames]{xcolor} | %
% +--------------------------------------+-------------------------------+
% | http://www.maths.adelaide.edu.au/anthony.roberts/LaTeX/ltxusecol.php |
% +----------------------------------------------------------------------+
% Apricot %
% Aquamarine %
% Bittersweet %
% Black %
% Blue %
% BlueGreen %
% BlueViolet %
% BrickRed %
% Brown %
% BurntOrange %
% CadetBlue %
% CarnationPink %
% Cerulean %
% CornflowerBlue %
% Cyan %
% Dandelion %
% DarkOrchid %
% Emerald %
% ForestGreen %
% Fuchsia %
% Goldenrod %
% Gray %
% Green %
% GreenYellow %
% JungleGreen %
% Lavender %
% LimeGreen %
% Magenta %
% Mahogany %
% Maroon %
% Melon %
% MidnightBlue %
% Mulberry %
% NavyBlue %
% OliveGreen %
% Orange %
% OrangeRed %
% Orchid %
% Peach %
% Periwinkle %
% PineGreen %
% Plum %
% ProcessBlue %
% Purple %
% RawSienna %
% Red %
% RedOrange %
% RedViolet %
% Rhodamine %
% RoyalBlue %
% RoyalPurple %
% RubineRed %
% Salmon %
% SeaGreen %
% Sepia %
% SkyBlue %
% SpringGreen %
% Tan %
% TealBlue %
% Thistle %
% Turquoise %
% Violet %
% VioletRed %
% White %
% WildStrawberry %
% Yellow %
% YellowGreen %
% YellowOrange %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

425
main.tex
View File

@ -1,116 +1,7 @@
% Declare Document Class
\documentclass[a4paper,12pt,twoside,twocolumn]{book}
\documentclass[a4paper,12pt,twoside,twocolumn,landscape]{book}
\setlength{\columnsep}{2em}
% Latex Packages
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{geometry}
\usepackage{listings}
\usepackage{color}
\usepackage{graphicx}
\usepackage{float}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\usepackage{wrapfig}
\usepackage{array}
\usepackage{lipsum}
\usepackage{fancybox}
\usepackage{varwidth}
\usepackage{enumitem}
% Define color
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codepurple},
basicstyle=\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=4
}
\lstset{style=mystyle}
% Path where images are located relative
% to the file main.tex
\graphicspath{{img/}{figures/}}
% Custom commands
% Usage: \pic[<pct-of-columnwidth>]{<path-to-file>}
\newcommand{\pic}[2][50]{
\begin{center}
\transparent{0.4}
\includegraphics[width=0.#1\columnwidth]{#2}
\end{center}
}
% Usage: \fig{<path-to-file>}{<label>}{<caption>}
\newcommand{\fig}[3]{
\begin{figure}[h]
\centering
\includegraphics[width=0.95\columnwidth]{#1}
\caption{#3}
\label{fig:#2}
\end{figure}
}
\newcommand{\notice}[2]{%
\shadowbox{%
\begin{varwidth}{0.85\linewidth}
\texttt{\textbf{#1}}\\
#2
\end{varwidth}
}
}
% In which order to look after images in
% declared graphicspath{}'s
% 1. Low-quality JPG
% 2. Med-quality PNG
% 3. High-quality PDF
\DeclareGraphicsExtensions{.jpg,.png,.pdf}
% Package Params
\geometry{a4paper,margin=4em}
%\setlength{\parindent}{4em}
%\setlength{\parskip}{1em}
%\renewcommand{\baselinestretch}{2.0}
% Define fancy header and footer
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{ZBC}
\fancyhead[RE,LO]{\rightmark}
\fancyfoot[CE,CO]{\leftmark}
\fancyfoot[LE,RO]{\thepage}
% width of header and footer rule is by default 0px.
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\footrulewidth}{1pt}
% Use the roman numeric system for pagenumbers
\pagenumbering{roman}
\setlist[itemize,1]{leftmargin=\dimexpr 26pt-.2cm}
\setlist[itemize,2]{leftmargin=\dimexpr 26pt-.3cm}
\input{structure} % Load structure cfg for document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@ -120,309 +11,40 @@
\begin{document}
% Which info to insert on the title page
\DTMsavenow{now}
\title{r17dinh409}
\author{Christoffer Hansen <zbcchhan11 at zbc.dk>}
\date{May 22 - June 30, 2017}
% Make title page contents
\author{Christoffer | chhan11 <zbcchhan11 at zbc.dk>}
\date{May 22 - June 30, 2017\\%
{\tiny\texttt{\color{GreenYellow}Generated: \utccurrenttime}}%
}
\titlepic{\includegraphics[width=0.3\textwidth]{profilepic/pic1}}
\maketitle
\tableofcontents
% Define length between paragrahps
\setlength{\parskip}{0.35em}
% Define lineheight
\renewcommand{\baselinestretch}{1.15}
% Only applied after generation of TOC
\setlength{\parskip}{0.35em} % Define length between paragrahps
\renewcommand{\baselinestretch}{1.15} % Define lineheight
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN CHAPTER: Base Configuration %
% BEGIN chapters %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\import{chapter/}{baseconf}
\chapter{Base Configuration}
\import{chapter/}{layer2protocols}
\section{Cisco Lab}
\import{chapter/}{layer3protocols}
% <!-- ROUTER -->
\subsection{Router}
\subsubsection{File: base.cfg}
%\lstinputlisting[language=tcl]{code/router/base.cfg}
\subsubsection{File: reset.tcl}
%\lstinputlisting[language=tcl]{code/router/reset.tcl}
\newpage
% <!-- LAYER 3 SWITCH -->
\subsection{Layer 3 Switch}
\subsubsection{FILE: base.cfg}
\lstinputlisting[language=tcl]{code/l3switch/base.cfg}
\subsubsection{FILE: reset.tcl}
\lstinputlisting[language=tcl]{code/l3switch/reset-tcl.txt}
\subsubsection{FILE: resetvlans.tcl}
\lstinputlisting[language=tcl]{code/l3switch/resetvlans-tcl.txt}
\newpage
% <!-- LAYER 2 SWITCH -->
\subsection{Layer 2 Switch}
\subsubsection{FILE: base.cfg}
\lstinputlisting[language=tcl]{code/l2switch/base.cfg}
\subsubsection{FILE: reset.tcl}
\lstinputlisting[language=tcl]{code/l2switch/reset-tcl.txt}
\subsubsection{FILE: resetvlans.tcl}
\lstinputlisting[language=tcl]{code/l2switch/resetvlans-tcl.txt}
\import{chapter/}{internet}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN CHAPTER: Protocols %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Protocols}
\section{Routed Network}
\subsection{OSPF}
\subsection{IS-IS}
\subsection{EIGRP}
\subsection{RIP}
\subsection{Static}
\subsection{BGP}
\newpage
\section{Switch Network}
\subsection{VTP}
\fig{vtp/implementing-vtp}{imp-vtp1}{VTP}
\subsubsection{VTP Modes}
The tree modes a VTP \textit{enabled} device can operate are
\begin{itemize}
\item Transparent
\item Server
\item Client
\end{itemize}
Of course you can \textit{disable} VTP altogether.
Key things to be aware of \textit{before} enabling VTP in your environment is to make double sure of only having 1 VTP domain. \textbf{If} 2 or more VTP domains exists. Be triple sure to separate them! As to avoid having an VTP server DB overridden with data from another VTP domain.
The three VTP modes \textit{operates} as follow
\begin{itemize}
\item Transparent
\begin{itemize}
\item Creates, modifies and deletes \textit{local} vlans only
\item Forwards advertisements
\item Does \textit{not} synchronizes vlan configurations.
\end{itemize}
\item Server
\begin{itemize}
\item Creates, modifies and deletes vlans
\item Sends and forwards advertisements
\item Synchronizes vlan configurations
\end{itemize}
\begin{itemize}
\item Cannot create, modify or delete vlans
\item Send and forwards advertisements
\item Synchronizes vlan configurations
\end{itemize}
\end{itemize}
\subsubsection{VTP Announcement}
VTP operates with announcements sent out in intervals. Summarized it amounts to
\begin{itemize}
\item 1 \textit{summary} announcement per 5th minute from the server
\item The summary announcement informs clients of the current revision
\item An announcement is sent out \textit{on the spot} when a change has been made on the VTP server
\end{itemize}
Do remember it is \textbf{only} the VTP server which has the vlan configuration stored \textbf{on disk}. All device clients and transparent nodes do only store the vlans delegated by VTP in memory.
\subsubsection{Common Issues}
\begin{itemize}
\item Different/Incompatible VTP versions
\item Wrong password
\item Incorrect mode name
\item No server set (all devices configured in transparent/client/vtp disabled mode)
\end{itemize}
\subsubsection{VTP Versions}
\begin{itemize}
\item Version 1
\item Version 2
\begin{itemize}
\item Version-dependent transparent mode
\item Consistencycheck
\item Token ring support
\item Unrecognized type-length-value support
\end{itemize}
\item Version 3 (not "yet" common)
\begin{itemize}
\item Extended VLAN support: Allow ranges are 1-1005,1018-2095. Not mentioned vlans ranges up to 4095 is still reserved.
\item Domain name is not automatically learned.
\item Better security.
\item Better database propagation.
\item MST now supported.
\end{itemize}
\end{itemize}
\subsubsection{VTP Pruning}
The art of only allowing the vlan traffic to flow on \textit{necessary} links.
This means if there are no clients in a vlan on a device. Then no traffic for the inactive vlans is send down-/upstream on the link in question.
\fig{vtp/vtp-pruning}{vtpruning1}{VTP Pruning}
\subsubsection{Security}
It is \textbf{strongly} recommended to enable the security features supported in VTP.
\textbf{Password:} MD5 hashing, Case-sensitive, Length between 8 and 64 chars.
\notice{VTP Scaling}{
As the network grows and grows and grows and grows some more over long/short timespans.
You will \textbf{for certain} come to cross-rode, where you \textbf{must} consider to
go away from using VTP in the network. The problems of managing an elderly network and
wiping and re-introducing nodes in the network. You \textbf{will} face the issue of a
wiped vlan database from the VTP domain.
}
\subsubsection{Example configuration}
\lstinputlisting{code/vtp/example.cfg}
\subsection{Channel Bundling (aka. EtherChannel, PortChannel)}
Channel bundling is the "art" of using multiple physical links as one single logical link in when viewed from the perspective of the forwarding plane.
Technologies:
\begin{itemize}
\item \textbf{PAgP:} The Cisco-only thingy
\item \textbf{LACP:} The IEEE standard
\item \textbf{Static:} Just forced on
\end{itemize}
\fig{channelbundling/network-without-channelbundling}{noethernetchannel}%
{No Channelbundling present}
Channel bundling of switch ports in the network may or may not be the best idea, in regards to the networks growth rate in terms of min. required bandwidth.
Channel bundling spreads out the in and egress flows based upon one of several methods configured on the switch:
\begin{itemize}
\item Source to Destination MAC
\item Source to Destination IP
\end{itemize}
Keep in mind this will by no means archive true load balancing. Where all links are equally used based upon number of flows \textit{or} in terms of used bandwidth.
\fig{channelbundling/network-with-channelbundling}{withethernetchannel}%
{Channelbundling present}
\subsubsection{Protocol Properties}
\begin{itemize}
\item LACP
\begin{itemize}
\item Active: Enabled
\item Passive: Waits for LACP packets on the wire before enabled
\end{itemize}
\item PAgP
\begin{itemize}
\item Desirable: Enabled
\item Auto: Waits for PAgP packets on the wire before enabled
\end{itemize}
\end{itemize}
Some other \underline{required} settings to be (equal across all ports) aware of when configuring Channel bundling are
\begin{enumerate}
\item Port speeds
\item Duplex mode
\item Configured vlan ranges
\end{enumerate}
\subsubsection{Example configuration}
\lstinputlisting{code/channelbundling/example.cfg}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN section: Spanning Tree %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section{Spanning Tree}
Spanning Tree exists for the \textbf{sole} reason to save "your" network and all the broadcast storms an network engineer having a bad day can by mistake create!
STP comes from the above desire where redundancy was wanted but no protocol existed before STP to help in this regard.
% Please add the following required packages to your document preamble:
% \usepackage{graphicx}
\begin{table}[h]
\centering
\caption{Spanning Tree standrds}
\label{stpstandards}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{|l|l|l|l|l|}
\hline
\textbf{} & \textbf{Standard} & \textbf{Ressource Usage} & \multicolumn{2}{l|}{\textbf{Convergence}} \\ \hline
CST & 802.1D & Low & Slow & All vlans \\ \hline
PVST+ & Cisco & High & Slow & Per vlan \\ \hline
RSTP & 802.1w & So-so (Med.) & Fast & All vlans \\ \hline
RPVST+ & Cisco & On-the-double (V.High) & Fast & Per vlan \\ \hline
MST & 802.1s & Med. - High & Fast & Vlan list \\ \hline
\end{tabular}%
}
\end{table}
\subsection{Port Roles}
When a switch is enabled for Spanning Tree. One of the following roles will have been assumed by any port on the switch in question.
\begin{itemize}
\item \textbf{Root port:} Only 1 port on any switch (non-counting the root bridge!). Is always the port with the lowest metric (aka. best path) to the root bridge.
\item \textbf{Designated port:} A designated port is the port on any segment closest to the root bridge and forwarding traffic.
\item \textbf{\textit{Non}-designated port:} Put in blocking mode and not currently forwarding traffic.
\item \textbf{Disabled port:} The port has been one-way-or-another shut down.
\end{itemize}
\subsection{Standards}
\subsubsection{STP}
\subsubsection{PVST}
\subsubsection{RPVST+}
\subsubsection{MST}
\subsection{Features}
\begin{itemize}
\item PortFart
\item UplinkFast
\item BackboneFast
\item BPDU Guard
\item BPDU Filter
\item Root Guard
\item Loop Guard
\item Unidirectional Link Detection (UDLD)
\item FlexLinks
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN CHAPTER: Internet %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Internet}
\section{BGP}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN LIST OF FIGURES %
% BEGIN list of figures %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -431,7 +53,7 @@ When a switch is enabled for Spanning Tree. One of the following roles will have
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN LIST OF TABLES %
% BEGIN list of tables %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -440,12 +62,11 @@ When a switch is enabled for Spanning Tree. One of the following roles will have
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BEGIN REFERENCES %
% BEGIN references %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{unsrt}
\bibliography{unsrt}
\bibliography{references}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %

24
references.bib Normal file
View File

@ -0,0 +1,24 @@
@online{vtpchap4,
author = {Hector Camba Lainez},
title = {Cap4 implementing vtp},
year = 2010,
url = {https://www.slideshare.net/lucky0679/cap4-implementing-vtp},
note = {Last Accessed: 2017-05-22},
}
@misc{wp_spanningtree,
title = {Spanning Tree Protocol},
year = 2017,
url = {https://en.wikipedia.org/w/index.php?title=Spanning_Tree_Protocol&oldid=778662646},
urldate = {2017-05-24},
note = {Last Accessed: 2017-05-24},
}
@book{froom2015implementing,
author = {Froom, Richard},
title = {Implementing Cisco IP switched networks (SWITCH) : foundation learning guide},
publisher = {Cisco Press},
year = {2015},
address = {Indianapolis, IN},
isbn = {978-1-58720-664-1}
}

101
structure.tex Normal file
View File

@ -0,0 +1,101 @@
% Latex Packages
\usepackage{import}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{geometry}
\usepackage{listings}
\usepackage{color}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{graphicx}
\usepackage[numbers,square,sectionbib,comma,nonamebreak,elide]{natbib}
\usepackage{float}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\usepackage{wrapfig}
\usepackage{array}
\usepackage{lipsum}
\usepackage{fancybox}
\usepackage{varwidth}
\usepackage{enumitem}
\usepackage{titlepic}
\usepackage[nottoc]{tocbibind}
\usepackage{url}
\usepackage{babel}
\usepackage[showisoZ]{datetime2}
\usepackage{lastpage}
\bibliographystyle{unsrtnat} %styles list https://www.sharelatex.com/learn/Natbib_bibliography_styles
% Path where images are located relative
% to the file main.tex
\graphicspath{{img/}{figures/}}
% In which order to look after images in
% declared graphicspath{}'s
% 1. Low-quality JPG
% 2. Med-quality PNG
% 3. High-quality PDF
\DeclareGraphicsExtensions{.jpg,.png,.pdf}
\fancypagestyle{fancybook}{%
\fancyhf{}%
% Note the ## here. It's required because \fancypagestyle is making a macro (\ps@fancybook).
% If we just wrote #1, TeX would think that it's the argument to \ps@fancybook, but
% \ps@fancybook doesn't take any arguments, so TeX would complain with an error message.
% You are not expected to understand this.
\renewcommand*{\sectionmark}[1]{ \markright{\thesection\ ##1} }%
\renewcommand*{\chaptermark}[1]{ \markboth{\chaptername\ \thechapter: ##1}{} }%
% Increase the length of the header such that the folios
% (typography jargon for page numbers) move into the margin
\fancyhfoffset[LE]{6mm}% slightly less than 0.25in
\fancyhfoffset[RO]{6mm}%
% Put some space and a vertical bar between the folio and the rest of the header
\fancyhead[LE]{\color{GreenYellow}\thepage\hskip3mm\vrule\hskip3mm\leftmark}%
\fancyhead[RO]{\color{GreenYellow}\rightmark\hskip3mm\vrule\hskip3mm\thepage}%
}
\pagestyle{fancybook}
% Use the roman numeric system for pagenumbers
\pagenumbering{roman}
\subimport{.}{commands} % Import user-defined commands
\input{layout/color} %user-defined colors
\lstdefinestyle{mystyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codepurple},
basicstyle=\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=4
}
\geometry{a4paper,margin=2cm}
\setlength{\columnsep}{1.5cm} %space between columns
\setlength{\headheight}{15pt}
\setlength{\footnotesep}{0.5cm} %space between footnotes:
\setlength{\skip\footins}{2cm} %space between the text body and the footnotes
\setlist[itemize,1]{leftmargin=\dimexpr 26pt-.2cm}
\setlist[itemize,2]{leftmargin=\dimexpr 26pt-.3cm}
\lstset{style=mystyle} %apply lst styling

View File

@ -1,19 +0,0 @@
@online{vtpchap4,
ALTauthor = {Hector Camba Lainez},
ALTeditor = {editor},
title = {Cap4 implementing vtp},
date = {Jun 25, 2010},
url = {https://www.slideshare.net/lucky0679/cap4-implementing-vtp},
OPTsubtitle = {subtitle},
OPTtitleaddon = {titleaddon},
OPTlanguage = {language},
OPTversion = {version},
OPTnote = {note},
OPTorganization = {organization},
OPTdate = {22},
OPTmonth = {05},
OPTyear = {2017},
OPTaddendum = {addendum},
OPTpubstate = {pubstate},
OPTurldate = {2017-05-22},
}