You've already forked linux_ws2122
							
							fix(dhcp): init
This commit is contained in:
		
							
								
								
									
										131
									
								
								chapters/05-dhcp.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								chapters/05-dhcp.tex
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,131 @@
 | 
				
			|||||||
 | 
					% <#>-----------------------------------------------------------------------<#>
 | 
				
			||||||
 | 
					\section{DHCP}%
 | 
				
			||||||
 | 
					\label{sec:dhcp}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Das \acrfull{acr:dhcp} ist heute unverzichtbar, denn es dient der automatischen
 | 
				
			||||||
 | 
					Konfiguration von Netzwerk-Schnittstellen eines Systems. Neben den üblichen
 | 
				
			||||||
 | 
					Parametern einer IP-Schnittstelle (IP-Adresse, Netzwerkmaske und Gateway) können
 | 
				
			||||||
 | 
					auch weitere Parameter übergeben werden. Beispielsweise Hostname,
 | 
				
			||||||
 | 
					DNS-Server-Adresse, Zeit-Server-Adresse, TFTP-Server-Adresse und Search-Domain. In RFC2132 sind weitere Parameter spezifiziert.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\subsection{Ablauf}%
 | 
				
			||||||
 | 
					\label{sec:dhcp.ablauf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{figure}[!h]
 | 
				
			||||||
 | 
					  \centering
 | 
				
			||||||
 | 
					  \begin{tikzpicture}
 | 
				
			||||||
 | 
					    \draw (-3,0) -- (-3,-6) (12,0) -- (12,-6);
 | 
				
			||||||
 | 
					    \node at (-3,.3) {Client};
 | 
				
			||||||
 | 
					    \node at (12,.3) {Server};
 | 
				
			||||||
 | 
					    \draw[-{Latex[length=4mm, width=3mm]}] (-3,-1) -- node[midway, above, rotate=-4] {DHCP-DISCOVER} (12,-2);
 | 
				
			||||||
 | 
					    \draw[{Latex[length=4mm, width=3mm]}-] (-3,-3.5) -- node[midway, above, rotate=4] {DHCP-OFFER} (12,-2.5);
 | 
				
			||||||
 | 
					    \draw[-{Latex[length=4mm, width=3mm]}] (-3,-4) -- node[midway, above, rotate=-3] {DHCP-REQUEST} (12,-4.5);
 | 
				
			||||||
 | 
					    \draw[{Latex[length=4mm, width=3mm]}-] (-3,-5.5) -- node[midway, above, rotate=3] {DHCP-ACK} (12,-5);
 | 
				
			||||||
 | 
					  \end{tikzpicture}
 | 
				
			||||||
 | 
					  \caption{DHCP-Ablauf}%
 | 
				
			||||||
 | 
					  \label{figure:dhcp.ablauf}
 | 
				
			||||||
 | 
					\end{figure}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{description}[itemsep=0pt]
 | 
				
			||||||
 | 
					  \item[DHCP-DISCOVER] \mbox{} \\
 | 
				
			||||||
 | 
					  Der Client sucht im Netzwerk nach einen
 | 
				
			||||||
 | 
					  \acrshort{acr:dhcp}-Server. Dazu verwendet er die Broadcast-Adresse auf
 | 
				
			||||||
 | 
					  \acrshort{acr:osi}-Schicht 2.
 | 
				
			||||||
 | 
					  \bigskip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  \item[DHCP-OFFER] \mbox{} \\
 | 
				
			||||||
 | 
					  Ein oder mehrere \acrshort{acr:dhcp}-Server werden auf die Anfrage des Clients
 | 
				
			||||||
 | 
					  regieren und mit einer Konfiguration antworten.
 | 
				
			||||||
 | 
					  \bigskip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  \item[DHCP-REQUEST] \mbox{} \\
 | 
				
			||||||
 | 
					  Der Client wählt einer der angebotenen Konfigurationen aus und fordert diese
 | 
				
			||||||
 | 
					  beim Server an.
 | 
				
			||||||
 | 
					  \bigskip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  \item[DHCP-ACK] \mbox{} \\
 | 
				
			||||||
 | 
					  Der Server bestätigt die Vergabe der Konfiguration und sendet die
 | 
				
			||||||
 | 
					  Gültigkeitsdauer (Lease time) der Konfiguration mit.
 | 
				
			||||||
 | 
					\end{description}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Der folgende Ausschnitt aus einer Logdatei des ISC-DHCP-Servers verdeutlicht die
 | 
				
			||||||
 | 
					DHCP-Meldungen und den Ablauf zwischen Client und Server. Dabei ist gut zu
 | 
				
			||||||
 | 
					erkennen, dass die Kommunikation auf \acrshort{acr:osi}-Schicht 2 stattfindet,
 | 
				
			||||||
 | 
					denn der Client besitzt noch keine IP. Es ist nur die \acrshort{acr:mac}-Adresse
 | 
				
			||||||
 | 
					bekannt.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{bashcode}
 | 
				
			||||||
 | 
					$ tail -n 4 /var/log/dhcp.log
 | 
				
			||||||
 | 
					DHCPDISCOVER from d8:e0:e1:c5:69:6d (android-10) via enp1s0
 | 
				
			||||||
 | 
					DHCPOFFER on 192.168.179.34 to d8:e0:e1:c5:69:6d (android-10) via enp1s0
 | 
				
			||||||
 | 
					DHCPREQUEST for 192.168.179.34 (192.168.179.12) from d8:e0:e1:c5:69:6d (android-10) via enp1s0
 | 
				
			||||||
 | 
					DHCPACK on 192.168.179.34 to d8:e0:e1:c5:69:6d (android-10) via enp1s0
 | 
				
			||||||
 | 
					\end{bashcode}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{itemize}[label={},itemsep=0pt]
 | 
				
			||||||
 | 
					  \item \textbf{Aufgabe 1a:} Neben DHCP-DISCOVER, DHCP-OFFER, DHCP-REQUEST und
 | 
				
			||||||
 | 
					  DHCP-ACK gibt es weitere DHCP-Meldungen. Diese sind im RFC spezifiziert.
 | 
				
			||||||
 | 
					  Welche weiteren DHCP-Meldungen gibt es und wozu dienen sie?
 | 
				
			||||||
 | 
					\end{itemize}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\subsection{Randbedingungen und Informationen}%
 | 
				
			||||||
 | 
					\label{sec:dhcp.randbedingungen}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Weitere Randbedingungen und Informationen zu \acrshort{acr:dhcp}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{enumerate}[itemsep=0pt]
 | 
				
			||||||
 | 
					  \item Da die Suche nach einer Netzwerkkonfiguration per DHCP-DISCOVER über
 | 
				
			||||||
 | 
					  Broadcast auf \acrshort{acr:osi}-Schicht 2 stattfindet, kann nur ein Server im
 | 
				
			||||||
 | 
					  eigenen Subnetz erreicht werden. Soll ein Server in einem anderen Subnetz
 | 
				
			||||||
 | 
					  erreich werden, muss auf dem Router (Gateway) ein Relay-Agent eingerichtet
 | 
				
			||||||
 | 
					  werden.
 | 
				
			||||||
 | 
					  \item Es ist möglich die Vergabe einer IP-Konfiguration statisch an eine
 | 
				
			||||||
 | 
					  \acrshort{acr:mac}-Adresse zu binden.
 | 
				
			||||||
 | 
					  \item Per \acrshort{acr:dhcp} lässt sich ein \acrshort{acr:tftp}-Server
 | 
				
			||||||
 | 
					  definieren, welcher \acrshort{acr:pxe}-Boot ermöglicht - booten eines Systems
 | 
				
			||||||
 | 
					  über das Netzwerk.
 | 
				
			||||||
 | 
					  \item Weitere details sind in RFC2131 und RFC2132 spezifiziert.
 | 
				
			||||||
 | 
					\end{enumerate}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\subsection{Dynamic DNS}%
 | 
				
			||||||
 | 
					\label{sec:dhcp.dynamic-dns}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Das \acrfull{acr:ddns} oder auch DynDNS genannt wird verwendet, um
 | 
				
			||||||
 | 
					\acrlongpl{acr:rr} im \acrshort{acr:dns} hinzuzufügen, aktualisieren oder zu
 | 
				
			||||||
 | 
					entfernen. Grund kann beispielsweise sein, dass vergebene Konfigurationen des
 | 
				
			||||||
 | 
					\acrshort{acr:dhcp}-Servers an Clients in einer \acrshort{acr:ddns}-Zone
 | 
				
			||||||
 | 
					automatisch gepflegt werden sollen.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Ein weiteres Beispiel für \acrshort{acr:ddns} ist die Übermittlung der
 | 
				
			||||||
 | 
					IP-Adresse des häuslichen Routers, beispielsweise einer FRITZ!Box, an einen
 | 
				
			||||||
 | 
					Provider wie \href{https://strato.de}{strato.de},
 | 
				
			||||||
 | 
					\href{https://noip.com}{noip.com} oder \href{https://ionos.de}{ionos.de}, wenn
 | 
				
			||||||
 | 
					durch einen IP-Reconnect die IP-Adresse des Routers im Internet sich ändert.
 | 
				
			||||||
 | 
					Dadurch wird die IP-Adresse zu einem \acrshort{acr:ddns}-Record synchron
 | 
				
			||||||
 | 
					gehalten.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\subsection{DDNS Ablauf}%
 | 
				
			||||||
 | 
					\label{sec:dhcp.dyndns-ablauf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Das folgende Sequenzdiagramm beschreibt den Ablauf von \acrshort{acr:ddns}
 | 
				
			||||||
 | 
					zwischen einem ISC-DHCP-Server (dhcpd) und ISC-DNS-Server (bind9). Dabei umfasst
 | 
				
			||||||
 | 
					die DDNS-UPDATE Meldung folgende \acrshortpl{acr:rr}: A, AAAA, PTR und optional
 | 
				
			||||||
 | 
					TXT.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					\begin{figure}[!h]
 | 
				
			||||||
 | 
					  \centering
 | 
				
			||||||
 | 
					  \begin{tikzpicture}
 | 
				
			||||||
 | 
					    \draw (-7,0) -- (-7,-7) (0,0) -- (0,-7) (7,0) -- (7,-7);
 | 
				
			||||||
 | 
					    \node at (-7,.3) {Client};
 | 
				
			||||||
 | 
					    \node at (0,.3) {DHCP};
 | 
				
			||||||
 | 
					    \node at (7,.3) {DNS};
 | 
				
			||||||
 | 
					    \draw[-{Latex[length=4mm, width=3mm]}] (-7,-1) -- node[midway, above, rotate=-8] {DHCP-DISCOVER} (0,-2);
 | 
				
			||||||
 | 
					    \draw[{Latex[length=4mm, width=3mm]}-] (-7,-3.5) -- node[midway, above, rotate=8] {DHCP-OFFER} (0,-2.5);
 | 
				
			||||||
 | 
					    \draw[-{Latex[length=4mm, width=3mm]}] (-7,-4) -- node[midway, above, rotate=-5] {DHCP-REQUEST} (0,-4.5);
 | 
				
			||||||
 | 
					    \draw[{Latex[length=4mm, width=3mm]}-] (-7,-5.5) -- node[midway, above, rotate=5] {DHCP-ACK} (0,-5);
 | 
				
			||||||
 | 
					    \draw[-{Latex[length=4mm, width=3mm]}] (0,-5) -- node[midway, above, rotate=-5] {DDNS-UPDATE} (7,-5.5);
 | 
				
			||||||
 | 
					    \draw[-{Latex[length=4mm, width=3mm]}] (7,-6) -- node[midway, above, rotate=4] {DDNS-RESPONSE} (0,-6.5);
 | 
				
			||||||
 | 
					  \end{tikzpicture}
 | 
				
			||||||
 | 
					  \caption{DHCP-Ablauf}%
 | 
				
			||||||
 | 
					  \label{figure:dhcp.ablauf}
 | 
				
			||||||
 | 
					\end{figure}
 | 
				
			||||||
							
								
								
									
										10
									
								
								index.tex
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								index.tex
									
									
									
									
									
								
							@@ -339,6 +339,7 @@
 | 
				
			|||||||
% Dokumentation:
 | 
					% Dokumentation:
 | 
				
			||||||
\usepackage{tikz}
 | 
					\usepackage{tikz}
 | 
				
			||||||
\usetikzlibrary{intersections}
 | 
					\usetikzlibrary{intersections}
 | 
				
			||||||
 | 
					\usetikzlibrary{arrows.meta}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
% Packet:           varwidth
 | 
					% Packet:           varwidth
 | 
				
			||||||
% Beschreibung:     The package defines a varwidth environment (based on minipage) which is an analogue
 | 
					% Beschreibung:     The package defines a varwidth environment (based on minipage) which is an analogue
 | 
				
			||||||
@@ -410,10 +411,11 @@
 | 
				
			|||||||
  % Importiere weitere .tex Dokumente
 | 
					  % Importiere weitere .tex Dokumente
 | 
				
			||||||
  % \include{./examples/examples}
 | 
					  % \include{./examples/examples}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  \include{./chapters/01-ssh}
 | 
					  % \include{./chapters/01-ssh}
 | 
				
			||||||
  \include{./chapters/02-file-permissions}
 | 
					  % \include{./chapters/02-file-permissions}
 | 
				
			||||||
  \include{./chapters/03-network}
 | 
					  % \include{./chapters/03-network}
 | 
				
			||||||
  \include{./chapters/04-dns}
 | 
					  % \include{./chapters/04-dns}
 | 
				
			||||||
 | 
					  \include{./chapters/05-dhcp}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  % \include{./chapters/01-network}
 | 
					  % \include{./chapters/01-network}
 | 
				
			||||||
  % \include{./chapters/02-dns}
 | 
					  % \include{./chapters/02-dns}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@
 | 
				
			|||||||
\newacronym{acr:ddl}{DDL}{Data-Definition-Language}
 | 
					\newacronym{acr:ddl}{DDL}{Data-Definition-Language}
 | 
				
			||||||
\newacronym{acr:dhcp}{DHCP}{Dynamic Host Configuration Protocol}
 | 
					\newacronym{acr:dhcp}{DHCP}{Dynamic Host Configuration Protocol}
 | 
				
			||||||
\newacronym{acr:dns}{DNS}{Domain Name System}
 | 
					\newacronym{acr:dns}{DNS}{Domain Name System}
 | 
				
			||||||
 | 
					\newacronym{acr:ddns}{DDNS}{Dynamic Domain Name System}
 | 
				
			||||||
\newacronym{acr:eCryptfs}{eCryptfs}{Enterprise Cryptographic Filesystem}
 | 
					\newacronym{acr:eCryptfs}{eCryptfs}{Enterprise Cryptographic Filesystem}
 | 
				
			||||||
\newacronym{acr:ext2}{ext2}{Second Extended Filesystem}
 | 
					\newacronym{acr:ext2}{ext2}{Second Extended Filesystem}
 | 
				
			||||||
\newacronym{acr:ext3}{ext3}{Third Extended Filesystem}
 | 
					\newacronym{acr:ext3}{ext3}{Third Extended Filesystem}
 | 
				
			||||||
@@ -17,8 +18,11 @@
 | 
				
			|||||||
\newacronym{acr:icann}{ICANN}{Internet Corporation for Assigned Names and Numbers}
 | 
					\newacronym{acr:icann}{ICANN}{Internet Corporation for Assigned Names and Numbers}
 | 
				
			||||||
\newacronym{acr:ip}{IP}{Internet Protocol}
 | 
					\newacronym{acr:ip}{IP}{Internet Protocol}
 | 
				
			||||||
\newacronym{acr:kvm}{KVM}{Kernel-based Virtual Machine}
 | 
					\newacronym{acr:kvm}{KVM}{Kernel-based Virtual Machine}
 | 
				
			||||||
 | 
					\newacronym{acr:mac}{MAC}{Media Access Control}
 | 
				
			||||||
\newacronym{acr:ntfs}{NTFS}{New Technology File System}
 | 
					\newacronym{acr:ntfs}{NTFS}{New Technology File System}
 | 
				
			||||||
\newacronym{acr:ntp}{NTP}{Network-Time-Protocol}
 | 
					\newacronym{acr:ntp}{NTP}{Network-Time-Protocol}
 | 
				
			||||||
 | 
					\newacronym{acr:osi}{OSI}{Open Systems Interconnection}
 | 
				
			||||||
 | 
					\newacronym{acr:pxe}{PXE}{Preboot Execution Environment}
 | 
				
			||||||
\newacronym{acr:raid}{RAID}{Redundant Array of Independent Disks}
 | 
					\newacronym{acr:raid}{RAID}{Redundant Array of Independent Disks}
 | 
				
			||||||
\newacronym{acr:ram}{RAM}{Random-Access-Memory}
 | 
					\newacronym{acr:ram}{RAM}{Random-Access-Memory}
 | 
				
			||||||
\newacronym{acr:rdp}{RDP}{Remote-Desktop-Protocol}
 | 
					\newacronym{acr:rdp}{RDP}{Remote-Desktop-Protocol}
 | 
				
			||||||
@@ -30,6 +34,7 @@
 | 
				
			|||||||
\newacronym{acr:ssh}{SSH}{Secure-Shell}
 | 
					\newacronym{acr:ssh}{SSH}{Secure-Shell}
 | 
				
			||||||
\newacronym{acr:uefi}{UEFI}{Unified Extensible Firmware Interface}
 | 
					\newacronym{acr:uefi}{UEFI}{Unified Extensible Firmware Interface}
 | 
				
			||||||
\newacronym{acr:telnet}{Telnet}{Teletype Network}
 | 
					\newacronym{acr:telnet}{Telnet}{Teletype Network}
 | 
				
			||||||
 | 
					\newacronym{acr:tftp}{TFTP}{Trivial File Transfer Protocol}
 | 
				
			||||||
\newacronym{acr:tld}{TLD}{Top-Level-Domain}
 | 
					\newacronym{acr:tld}{TLD}{Top-Level-Domain}
 | 
				
			||||||
\newacronym{acr:vnc}{VNC}{Virtual-Network-Computing}
 | 
					\newacronym{acr:vnc}{VNC}{Virtual-Network-Computing}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								solutions/05-dhcp.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								solutions/05-dhcp.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Aufgabe 1a:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DHCP-NAK
 | 
				
			||||||
 | 
					# DHCP-Server sieht sein Konfigurationsangebot zurück.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DHCP-DECLINE
 | 
				
			||||||
 | 
					# Client weißt das Konfigurationsangebot vom Server ab.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DHCP-INFORM
 | 
				
			||||||
 | 
					# Client informiert sich über weitere Konfigurationsparameter beim Server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DHCP-RELEASE
 | 
				
			||||||
 | 
					# Explizite Aufforderung des Clients die Konfiguration wieder freizugeben und
 | 
				
			||||||
 | 
					# anderen Clients zur Verfügung zu stellen.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# https://www.nm.ifi.lmu.de/pub/Diplomarbeiten/demm99/HTML-Version/node52.html
 | 
				
			||||||
		Reference in New Issue
	
	Block a user