%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

% Schriftarten für fettes Monospace
%\usepackage[T1]{fontenc}
%\usepackage{lmodern}

% Häckchen
\usepackage{amssymb}% http://ctan.org/pkg/amssymb
\usepackage{pifont}% http://ctan.org/pkg/pifont

%Kopfzeile
\ihead{Netzwerktechnik}
\chead{}
\ohead{http://kohnlehome.de/netz/ospf.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
OSPF (Open Shortest Path First)
\end{center}

\section*{Features and Characteristics}
\begin{itemize}
    \item OSPFv2: IPv4, OSPFv3: IPv6
    \item Single-Area OSPF: only area 0, Multi-Area OSPF: all areas are connected to backbone (area 0)
    \item link: router interface, network segment
    \item link-state: information about a link (network prefix, prefix length, cost)
    
\end{itemize}

\section*{OSPF components}
\begin{itemize}
    \item Routing Protocol Messages (LSPs)
    
    \item Data Structures
    \begin{itemize}
        \item Adjacency Database: Neighbor Table
        \item Link-state Database: Topology Table
        \item Forwarding Database: Routing Table
    \end{itemize}
    \item Algorithm: Dijkstra shortest-path first (SPF) algorithm          
\end{itemize}

\section*{OSPF Operation}
    \begin{enumerate}
        \item Establish Neighbor Adjacencies (Hello Packets $\Rightarrow$ Neighbor Table)
        \item Exchange Link-State Advertisements (LSAs)
        \item Build the Link State Database ($\Rightarrow$ Topology Table)
        \item Execute the SPF Algorithm ($\Rightarrow$ SPF Tree)
        \item Choose the Best Route ($\Rightarrow$ Routing Table)
    \end{enumerate}

\subsection*{OSPF Operational States}
\begin{enumerate}
    \item DOWN: send hello paket
    \item INIT: received hello paket with own router-id
    \item 2WAY: DR + BDR election (not on point-to-point networks)
    \item EXSTART: decide first router
    \item EXCHANGE: exchange DBDs
    \item LOADING: send LSR
    \item FULL: Routers are synchronized
\end{enumerate}

\subsection*{DR (Designated Router) and BDR (Backup Designated Router) election}
\begin{itemize}
    \item on multiaccess networks, e.g. Ethernet
    \item 1. highest priority, 2. highest router id
\end{itemize}



\section*{Link State Packets (LSPs)}
    \begin{itemize}
        \item Type 1: Hello packet
        \item Type 2: Database description packet (DBD): abbriviated list of LSDB
        \item Type 3: Link-state Request packet (LSR): request more information about an entry
        \item Type 4: Link-state Update packet (LSU): reply to LSR, contains one or more LSAs
        \begin{itemize}
            \item LSA Type 1: Router LSA
            \item LSA Type 2: Network LSA
            \item LSA Type 3 or 4: Summary LSA
            \item LSA Type 5: Autonomous System External LSA
            \item LSA Type 6: Multicast OSPF-LSA
            \item LSA Type 7: Defined for Not-So-Stubby areas
            \item LSA Type 8: External Attributes LSA for Border Gateway Patrol (BGPs)
        \end{itemize}
        \item Type 5: Link-state Achnowledgment packet (LSAck): Ack LSU        
    \end{itemize}

\subsection*{OSPF Packet Header}
\href{https://tools.ietf.org/html/rfc2328#appendix-A.3.1}{RFC2328}
\begin{verbatim}
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Version #   |     Type      |         Packet length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          Router ID                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Area ID                             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Checksum            |             AuType            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Authentication                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
\end{verbatim}

\subsection*{OSPF Hello Packet Data}
\href{https://tools.ietf.org/html/rfc2328#appendix-A.3.2}{RFC2328}
\begin{verbatim}
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Network Mask                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         HelloInterval         |    Options    |    Rtr Pri    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     RouterDeadInterval                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Designated Router                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   Backup Designated Router                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      List of Neighbors                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              ...                              |
\end{verbatim}


%\section*{Configuration}
%\subsection*{Router ID}
%\subsection*{Point-to-Point OSPF Networks}
%\subsection*{Multiaccess OSPF Networks}
%\subsection*{Modify Single-Area OSPFv2}
%\subsection*{Default Route Propagation}
%\subsection*{Verify Single-Area OSPFv2}


\end{document}
