Netzwerkgrundlagen und

Werbung
Foliensatz 6
Netzwerkgrundlagen und
-konfiguration
Inhalt
•
Netzwerke
•
TCP/IP-Schichtenmodell
•
Netzwerkkonfiguration
•
DNS und DHCP
•
Netzwerkkonfiguration mit Puppet
Hinweis: Die Grafiken „Ethernetkabel mit RJ45-Stecker“ sowie Ethernetframe stehen unter der CC BYSA 3.0 Lizenz.
Netzwerke
•
Computernetzwerke dienen dem Austausch von Daten zwischen Computern. Die Daten können dabei
über Kabel, Glasfaser, durch elektromagnetische Strahlung, … übertragen werden (es gibt auch
etwas unüblichere Übertragungsmedien - siehe RFC 1149).
•
Eines der ersten großen Netzwerke war das ARPANET, der Vorläufer des heutigen Internets. Die USRegierung (genauer, DARPA) wollte ein dezentrales und fehlertolerantes Netzwerk für die
militärische Forschung schaffen.
•
Anfang der 1970er Jahre wurde von Vint Cerf und Robert Kahn schließlich die Grundlage für das
heutige Internet geschaffen, nämlich die Protokolle TCP und IP, und Anfang der 1980er Jahre löste
dann das neue Internet das alte ARPANET ab.
Links: Wired - Vint Cerf: We Knew What We Were Unleashing on the World, Internet Hall of Fame
Netzwerke - Abkürzungen
•
Wichtige Abkürzungen:
•
Request For Comments (RFC)
Öffentliche Dokumente, die Internetstandards und -protokolle beschreiben. Einmal veröffentlicht,
werden
sie
nicht
mehr
verändert
(siehe
auch
Ubuntu-Pakete
doc-rfc*).
Auf
http://tools.ietf.org/rfc/index findet sich die Lister aller RFCs.
•
Internet Engineering Task Force (IETF)
Organisation, die sich mit der technische Weiterentwicklung des Internet befasst. Gibt die RFCs
heraus.
•
Internet Corporation for Assigned Names and Numbers (ICANN)
Zuständig z.B. für die Vergabe von Namen (z.B. DNS-Namen) und Adressen (z.B. IP-Adressen).
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 1 von 21
Derzeit noch unter US-Kontrolle, es gibt aber ein Vorhaben, die zentralen Internetservices unter
internationale Aufsicht zu stellen.
•
Internet Assigned Numbers Authority (IANA)
Abteilung von ICANN, die die Vergabe von Nummern (z.B. Protokollnummern oder PortNummern) und Namen übernimmt.
Logische Karte von ARPANET, März 1977
Netzwerkmodelle
•
Damit Computer über ein Netzwerk kommunizieren können, müssen sie sich auf eine gemeinsame
Sprache einigen, d.h. es müssen Protokolle definiert sein, an die sich alle Beteiligten halten.
•
Das OSI-Modell (Open Systems Interconnection Model) ist ein Referenzmodell für
Netzwerkprotokolle. Es umfasst sieben Schichten und beschreibt, wie Geräte miteinandern
kommunizieren können. Jede dieser Schichten erfüllt eine andere Aufgabe.
•
Im OSI-Modell kommunizieren immer die Instanzen der selben Schicht über ein Protokoll
miteinander, z.B. Schicht 3 auf dem ersten Gerät mit Schicht 3 auf dem zweiten Gerät.
•
Die Daten werden von der obersten Schicht bis zur untersten Schicht auf dem sendenden Gerät
durchgereicht (und ev. mit Meta-Informationen versehen), übertragen und auf der Empfangsseite
von der untersten Schicht bis zur obersten Schicht durchgereicht (wobei die Meta-Informationen
ausgelesen und entfernt werden).
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 2 von 21
TCP/IP-Modell
•
Für das Internet wird ein einfacheres Netzwerkmodell verwendet, nämlich das vier Schichten
umfassende TCP/IP-Modell (beschrieben im RFC 1122):
•
Netzzugangsschicht: Beschreibt die physische Kommunikation von Geräten (z.B. über Kabel,
Glasfaser oder Funk)
•
Internetschicht:
Beschreibt
Netzwerkgrenzen hinweg.
•
Transportschicht: Beschreibt Ende-zu-Ende-Verbindungen,
miteinander kommunizieren können.
•
Anwendungsschicht: Umfasst alle Protokolle, die Anwendungen für die Kommunikation
miteinander verwenden.
die
Übermittlung
von
Datenpaketen
also
wie
über
zwei
mehrere
Applikationen
In jeder Schicht können verschiedene Protokolle benutzt werden.
•
Wir betrachten nun das TCP/IP-Modell, da andere Netzwerkmodelle auf Basis des OSI-Modells für
unsere Zwecke nicht relevant sind. Bei den einzelnen Schichten werden wird dann auch die
Implementierung und Verwendung unter Linux betrachten.
Datenverschachtelung bei TCP/IP
•
Wie auch beim OSI-Modell, werden beim TCP/IP-Modell beim Verschicken von Daten diese in ein
Paket verpackt, in der nächsten Schicht wird das gesamte Paket in ein anderes Paket verpackt und
so weiter bis hinunter zur Netzzugangsschicht. Am Zielgerät wird in umgekehrter Reihenfolge
wieder ausgepackt.
•
Beispiel für die Datenverschachtelung:
Netzzugangsschicht (Link Layer)
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 3 von 21
•
Die Netzzugangsschicht ist die unterste Schicht im TCP/IP-Modell und für die physische
Übertragung der Daten zuständig. Sie entspricht den Schichten 1 und 2 im OSI-Modell.
•
Die zuständige Hardware in einem Computer ist z.B. die Netzwerkkarte für kabelgebundene
Verbindungen oder die WLAN-Karte für Funkverbindungen.
•
Standardprotokoll für kabelgebundene Datenübertragung ist Ethernet (weitgehend ident zur IEEE
802.3 Norm). Für die Verbindung von Geräten werden bestimmte Kabel (CAT-5/CAT-6) und Stecker
benutzt.
Für die Übertragung von Daten via Funk über ein WLAN wird meist ein Standard aus der IEEE
802.11-Familie benutzt.
Netzzugangsschicht - MAC-Addresse
•
Jedem Netzwerkgerät ist eine eindeutige Nummer zur Identifikation, die MAC-Adresse (Media
Access Control Address), fix zugeordnet. Diese sollte weltweit eindeutig sein, aber es reicht, wenn
sie lokal eindeutig ist.
•
Eine MAC-Adresse besteht aus sechs Bytes, die hexadezimal und mit Doppelpunkten getrennt
geschrieben werden (z.B. 3C:97:0E:79:B8:0A).
•
Die spezielle MAC-Adresse FF:FF:FF:FF:FF:FF heißt Broadcastadresse, Pakete an diese Adresse
werden von allen Geräten im Netzwerk verarbeitet.
•
Ethernet und WLAN unterstützen auch Multicastadressen. Dabei muss das niedrigste Bit des
ersten Bytes der MAC-Addresse 1 sein (z.B. 01:00:5E:XX:XX:XX für IPv4 Multicast). Pakete an solche
Adressen werden nicht von allen, sondern nur von dafür registrierten Geräten verarbeitet.
•
MAC-Adressen können nicht beliebig von Herstellern vergeben werden. Jeder Hersteller bekommt
einen oder mehrere 3-Byte-Prefixe zugeordnet (siehe OUI-Liste der IEEE, z.B. 52:54:00:XX:XX:XX für
QEMU), die restliche drei Bytes kann der Hersteller dann beliebig vergeben.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 4 von 21
•
Ethernet und WLAN verwenden die gleiche Art von MAC-Adressen.
Netzzugangsschicht - Ethernet-Frame
•
Die zu sendenden Daten werden gemeinsam mit den nötigen Informationen (unter anderem die
Quell- und Ziel-MAC-Adresse) in ein Paket (genannt Ethernet-Frame) verpackt und dann über die
physische Verbindung verschickt.
•
Müssen mehr Daten verschickt werden, als in ein Paket passen (bei Ethernet z.B. 1500 Byte), so
müssen mehrere Pakete verschickt werden.
•
Die Technologie VLAN (Virtual Local Area Network) ermöglicht es, mehrere logische Netze über ein
physisches Netz zu betreiben, ohne dass die logischen Netze sich stören.
Siehe auch Ethernet Theory of Operation.
Netzwerkgeräte unter Linux
•
Jedem Netzwerkgerät (auch Netzwerkschnittstelle genannt) unter Linux wird ein Name zugeordnet.
In älteren Linuxsystem werden z.B. die Namen ethX und wlanX benutzt (dabei steht X für eine
Nummer). Dabei gibt es aber das Problem, dass beim Starten die Reihenfolge der Erkennung der
Netzwerkgeräte durch den Kernel die Benennung beeinflusst.
•
Dies wurde später umgangen, indem mittels udev in /etc/udev/rules.d/70-persistent-net.rules
ein fixer Name für ein Gerät basierend auf der MAC eingetragen wurde. Diese Lösung hatte aber
ihre eigenen Probleme, z.B. beim Kopieren von VM-Images.
•
Um eine konsistente Namensgebung zu erreichen, wird daher mittlerweile von udev die Benennung
nach einem vordefinierten Schema organisiert. Ethernetgeräte haben z.B. den Prefix „en“ und
WLAN-Geräte den Prefix „wl“. Danach folgt z.B. „o<index>“, falls es ein On-Board-Gerät ist, wobei
der Index der eindeutige Geräteindex ist.
Netzwerkgeräte unter Linux - Fortsetzung
•
Unabhängig von den physischen Netzwerkgeräten gibt es immer ein sogenanntes Loopback-Gerät
mit dem Namen „lo“. Damit lässt sich ein Netzwerk auch ohne physisches Netzwerkgerät simulieren,
z.B. um lokal Serveranwendungen zu testen.
Dieses Gerät sollte nie deaktiviert werden, weil viele Anwendung von dessen Funktionieren
ausgehen!
•
Mit Hilfe sogenannter TUN- bzw. TAP-Geräte können auch virtuelle Netzwerkgeräte simuliert
werden. Dabei simuliert ein TUN-Gerät ein Point-to-Point-Netzwerkgerät und TAP ein Ethernetgerät.
TUN- bzw. TAP-Geräte werden oft für VPNs (z.B. beim Uni-VPN) oder für Netzwerke virtueller
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 5 von 21
Maschinen verwendet.
•
Die Datei /proc/net/dev listet alle verfügbaren Kernel-Netzwerkgeräte auf, inklusive einiger
Statistiken. Und in /proc/net/dev_mcast findet man für jedes Netzwerkgerät die registrierten
Multicastadressen.
Internetschicht (Internet Layer)
•
Die Internetschicht erlaubt den Transport von Paketen über mehrere physischen Netze und
unterschiedliche Netzzugangsschichtprotokolle (z.B. Ethernet und WLAN) hinweg.
•
Es werden dabei keine Garantien abgegeben, ob die Pakete in der richtigen Reihenfolge bzw.
überhaupt am Zielgerät ankommen. D.h. das System arbeitet verbindungslos und versucht nur, die
Pakete von einem Rechner bestmöglich zum anderen Rechner zu transportieren.
•
Ein Gerät, das in zwei oder mehr logischen Netzen hängt, heißt Router. Dieses leitet Pakete von
einem Netz in ein anderes weiter.
•
Das Hauptprotokoll in dieser Schicht ist IP (Internet Protokoll, definiert in RFC 791). Dieses braucht,
so wie das Ethernet-Protokoll, wieder Adressen, die sogenannten IP-Adressen. Jedes Gerät, das über
das Internet mit anderen Geräten kommunizieren will, braucht eine eindeutige IP-Adressen (Notiz
am Rande: Es gibt auch Möglichkeiten, das zu umgehen, z.B. durch NAT bei IPv4).
Internetschicht - IP
•
Es gibt zwei Arten des IP-Protokolls: IPv4 und IPv6. Einer der wichtigsten Unterschiede zwischen
diesen beiden Protokollen ist die Größe des Adressraumes:
•
Bei IPv4 gibt es 2^32 IP-Adressen, also 4.294.967.296!
•
Bei
IPv6
gibt
es
2^128
340.282.366.920.938.463.463.374.607.431.768.211.456!
IP-Adressen,
also
•
IPv4-Adressen werden üblicherweise dezimal in vier Blöcken zu einem Byte geschrieben, z.B.
131.130.16.250. IPv6-Adressen werden hexadezimal in acht Blöcken zu zwei Bytes geschrieben, z.B.
2001:62a:4:2f00::22:250 (genau eine durchgehende Reihe von Blöcken mit Nullen kann durch
zwei Doppelpunkte ersetzt werden).
•
Derzeit wird fast ausschließlich IPv4 verwendet, aber IPv6 nimmt stetig an Bedeutung zu, da immer
mehr Geräte eine IP-Adresse brauchen. Von Vorteil dabei ist, dass IPv6 gleichzeitig zu IPv4 betrieben
werden kann.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 6 von 21
Internetschicht - IPv4
•
In dem Header eines IP-Pakets sind neben Quell- und Zieladresse auch verschiedene andere Felder
vorhanden, z.B. das TTL-Feld (time to live), das angibt, wie viele Zwischenstationen das Paket
passieren darf; oder das Protokoll-Feld, das angibt, welches Protokoll im Datenteil verwendet wird
(siehe auch /etc/protocols für eine Lister der möglichen Protokollnummern).
Internetschicht - IPv4-Netze
•
Früher wurden IPv4-Adressen in Netzklassen (z.B. Klassen A, B und C) eingeteilt. Da diese
Einteilung aber sehr unflexibel ist, kommt heutzutage fast ausschließlich das Classless Inter-Domain
Routing-Verfahren (CIDR, definiert in RFC 1518 und RFC 4632) zum Einsatz.
•
Beim CIDR wird durch die Angabe einer Netzwerkmaske die IP-Adresse in einen Netzwerk- und
einen Hostteil aufgeteilt. Die Netzwerkmaske gibt an, wie viele Bits vom Anfang der IP-Adresse den
Netzpräfix ausmachen.
Beispiel: IP-Adresse 131.130.16.33 und Netzwerkmaske 255.255.252.0 (entspricht 22 Bits), d.h.
das Netzwerk hat die IP-Adressen von 131.130.16.0 bis 131.130.19.255.
•
Diese künstliche Aufteilung der IP-Adresse in einen Netzwerk- und einen Hostteil erlaubt das
einfache Routing von IP-Paketen. Wie man am IP-Header sieht, muss diese Information den
beteiligten Geräten bekannt sein, weil es dafür kein Feld gibt.
Internetschicht - IPv4-Netze - Fortsetzung
•
Jedes IP-Netzwerk hat zwei spezielle Adressen: die Netzwerkadresse (die erste Adresse; im Beispiel
131.130.16.0) und die Broadcastadresse (die letzte Adresse, im Beispiel 131.130.19.255).
Die Netzwerkadresse zusammen mit der Netzwerkmaske bestimmt ein IP-Netzwerk eindeutig. Die
Broadcastadresse kann benutzt werden, um Daten an alle Geräte des Netzes zu schicken.
•
•
Damit ein Gerät Datenpakete an den richtigen Empfänger schicken kann, gibt es sogenannten
Routing-Tabellen:
•
Pakete für das selbe logische Netz werden direkt an den Empfänger zugestellt
•
Pakete für andere Netze werden an einen Router geschickt, der sie weiterleitet
Zusammen bedeutet das, dass man die IP-Adresse, die Netzwerkmaske als auch den Standardrouter
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 7 von 21
(Default-Gateway) wissen muss, damit ein Gerät in einem IP-Netzwerk richtig funktioniert.
Internetschicht - IPv4-Netze - Fortsetzung
•
Jede IP-Adresse aus dem Bereich 127.0.0.0/8 kann als Adresse für das Loopback-Gerät verwendet
werden. Üblicherweise verwendet man aber nur 127.0.0.1.
•
Die Netze 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16 sind private Netze. IPs aus diesen
Bereichen werden von Routern nicht in das globale Internet weitergeleitet.
Private Netzwerkadressen werden oft zuhause für WLAN-Netzwerke verwendet bzw. bei NAT.
•
So wie auf der Netzzugangsschicht gibt es auch auf der Internetschicht Multicastadressen. Alle IPAdressen im Bereich 224.0.0.0/4 sind Multicastadressen.
Unter anderem gibt es fixe Multicast-IP-Adressen zum Ansprechenr aller Geräte (224.0.0.1), zum
Ansprechen alle Router (224.0.0.2), für Multicast DNS (mDNS; 224.0.0.251) und für NTP (224.0.1.1).
Netzzugangs-/Internetschicht - ARP
•
Damit man Geräten im selben logischen Netz IP-Pakete schicken kann, muss deren MAC-Adresse
bekannt sein, da diese ja für die Ethernet-Frames auf der Netzzugangsschicht gebraucht werden.
•
Zum Zuordnen von IP- zu MAC-Adressen wird das Address Resolution Protocol (ARP, definiert in
RFC 826) benutzt. Das Protokoll gehört technisch gesehen zur Netzzugangsschicht.
IPv6 verwendet nicht ARP, sondern das Neighbor Discovery Protocol (NDP).
•
Ist für eine bestimmte IP-Adresse im gleichen Netz die MAC-Adresse noch nicht bekannt, so wird ein
ARP-Request mit der Bitte um Bekanntgabe der zur IP-Adresse gehörigen MAC-Adresse an die
Broadcastadresse der Netzzugangsschicht gesendet. Das Gerät mit der zugehörigen IP-Adresse
antwortet mit einem ARP-Reply, der die Zuordnung MAC-Adresse zu IP-Adresse enthält, direkt an die
MAC-Adresse des ersten Geräts.
•
Diese Zuordnungen von IP- zu MAC-Adressen werden üblicherweise lokal in einem ARP- bzw.
Neighborhood-Cache gespeichert. Der ARP-Cache kann über die Datei /proc/net/arp angezeigt
werden.
Internetschicht - ICMP
•
Das Internet Control Message Protocol (ICMP, definiert in RFC 792) dient zum Austausch von
Informationen und Fehlermeldungen. Es gehört zur Internetschicht und ist Bestandteil von IPv4,
benutzt aber IP zur Datenübertragung (d.h. es repräsentiert sich selbst als Protokoll einer höheren
Schicht).
•
Eine typische Verwendung von ICMP ist das Pingen von Geräten um herauszufinden, ob ein
bestimmtes Gerät verfügbar ist und wie groß die Paketumlaufzeit (round trip time, RTT) ist. Dazu
werden ICMP-Pakete vom Typ Echo Request bzw. Echo Reply und das TTL-Feld des IP-Headers
benutzt.
•
Eine weitere, für Benutzer nützliche Anwendung von ICMP ist Traceroute, mit der man den Weg
eines Pakets durch das Internet nachvollziehen kann.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 8 von 21
Netzwerkkonfiguration
•
Bei einem Ubuntu-Desktop-System wird für die Konfiguration der Netzwerkgeräte das Programm
NetworkManager verwendet. Dieses erlaubt eine einfache Konfiguration über die CLI oder GUI und
ist mittlerweile schon tief in verschiedene Desktop-Umgebungen wie Gnome oder KDE eingebunden.
Für die CLI gibt es z.B. den Befehl nmcli (zur Kontrolle des NetworkManager-Daemons).
•
Auf
jedem
Ubuntu-System
kann
die
Netzwerkkonfiguration
auch
über
die
Datei
/etc/network/interfaces vorgenommen. Aus mehreren Gründen (z.B. Sicherheit, statische
Konfiguraion) wird der NetworkManager z.B. auf Servern nicht verwendet.
•
Wir betrachten nur die manuelle Konfiguration bzw. die Konfiguration über die Konfigurationsdatei.
Konfiguration - Manuell via ip
•
Der Befehl ip kann nicht nur Netzwerkschnittstellen konfigurieren, sondern auch die Routing- sowie
die ARP-Tabellen manipulieren und noch einiges mehr.
•
Wir werden die folgenden Unterbefehle genauer betrachten und wie man damit eine Schnittstelle
von Hand konfiguriert:
•
•
ip link konfiguriert die Schnittstellen selbst.
•
ip address konfiguriert IP-Adressen für Schnittstellen.
•
ip route manipuliert die Routing-Tabellen.
•
ip neighbour verwaltet den ARP (und für IPv6 den Neighbourhood)-Cache.
Hinweise:
•
Viele Unterbefehl können abgekürzt werden, z.B. reicht ip l statt ip link.
•
Die globale Option -c aktiviert die Farbausgabe.
•
Einige Unterbefehle zeigen unterschiedliche Informationen
Protokollfamilie mit der Option -f FAMILIE gewählt wurde.
an,
je
nachdem,
welche
Links: Vergleich von ifconfig und ip, iproute2 auf Wikipedia, IPRoute Howto, Linux Advanced Routing &
Traffic Control HOWTO, Deprecated Linux networking commands and their replacements.
Konfiguration - ip link
ip link - Konfiguriert Netzwerkschnittstellen.
» Dieser Befehl kann virtuelle Schnittstellen anlegen und bestehende konfigurieren.
» Mit Hilfe des Unterbefehls set dev GERÄT [up|down] kann eine Schnittstelle (de)aktiviert
werden.
Nur über eine aktivierte Schnittstelle können Paket verschickt bzw. empfangen werden.
» Der Unterbefehl show zeigt die Schnittstellen inklusive zusätzlicher Informationen (z.B. der MACAdresse) an.
» $ ip link set dev eth0 up
$ ip link # Äquivalent zu: ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 9 von 21
DEFAULT group default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
Konfiguration - ip address
ip address - Konfiguriert IP-Addressen einer Schnittstelle.
» Der Unterbefehl add ADRESSE/PRÄFIX dev GERÄT fügt eine IP-Adresse in CIDR-Notation zur
Schnittstelle hinzu. Zusätzlich wird eine Route generiert, die angibt, dass IP-Adressen aus dem
angegebenen IP-Netzwerk direkt über das angegebene Gerät erreichbar sind.
Verwendet man „del“ statt „add“ wird die entsprechende IP-Adresse und Route gelöscht.
» Der Unterbefehl show zeigt alle Schnittstellen inklusive ihrer Adressen an.
» $ ip address add 10.10.10.101/24 dev eth0
$ ip address # Äquivalent zu: ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group
default qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.101/24 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe12:3456/64 scope link
valid_lft forever preferred_lft forever
Konfiguration - ip route
ip route - Manipuliert die Routing-Tabellen
» Der Unterbefehl add [ADRESSE/PRÄFIX | default] [via ADRESSE] [dev GERÄT] fügt eine neue
Route hinzu. Man gibt entweder die Adresse in CIDR-Notation an oder benutzt „default“ für die
Standardroute. Sollen Pakete über einen Router geleitet werden, wird die „via“ Anweisung
verwendet.
Verwendet man „del“ statt „add“ wird die entsprechende Route gelöscht.
» Der Unterbefehl show zeigt die Einträge der Routing-Tabellen an.
» $ ip route add default via 10.10.10.1
$ ip route # Äquivalent zu: ip route show
default via 10.10.10.1 dev eth0
10.10.10.0/24 dev eth0 proto kernel scope link
src 10.10.10.101
Konfiguration - ip neighbour
ip neighbour - Verwaltet den ARP (und für IPv6 den Neighbourhood)-Cache.
» Der Unterbefehl add ADRESSE lladdr LLADRESSE dev GERÄT fügt einen neuen IP-zu-MAC-Eintrag
in den Cache ein.
» Der Unterbefehl del ADRESSE löscht einen Eintrag aus dem Cache.
» Der Unterbefehl show zeigt alle Einträge des Caches an.
» $ ip neighbour # Äquivalent zu: ip neighbour show
$ ping -c 1 10.10.10.1 &>/dev/null
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 10 von 21
$ ip neighbour
10.10.10.1 dev eth0 lladdr 46:2e:38:61:0f:35 REACHABLE
Konfiguration - ifconfig
ifconfig - Konfiguriert eine Netzwerkschnittstelle.
» Wird benutzt, um Netzwerkschnittstellen zu (de)aktivieren und IP-Address-Konfigurationen
zuzuweisen bzw. um die aktuelle Konfiguration anzuzeigen.
» Option -a zeigt alle Schnittstellen (auch deaktivierte) an.
» $ ifconfig eth0 up 10.10.10.101/24
$ ifconfig eth0
eth0
Link encap:Ethernet HWaddr 52:54:00:12:34:56
inet addr:10.10.10.101 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::5054:ff:fe12:3456/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:34680 errors:0 dropped:0 overruns:0 frame:0
TX packets:24889 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19349325 (19.3 MB) TX bytes:3917637 (3.9 MB)
Konfiguration - route
route - Zeigt/Ändert die Routing-Tabelle.
» Wird üblicherweise nach ifconfig benutzt, um eine statische Route für einen Host/ein Netzwerk
anzulegen (z.B. um das Default-Gateway einzutragen).
» Optionen: -n → keine Namensauflösung von IP-Adressen, -net → Route für ein Netzwerk statt
einem Host anlegen.
» Für das Löschen einer Route del statt add verwenden.
» $ # Anlegen einer Netzwerk-Route
$ route add -net 10.10.10.0 netmask 255.255.255.0 dev
$ # Anlegen der Route für das Default-Gateway
$ route add default gw 10.10.10.1
$ route
Kernel IP routing table
Destination
Gateway
Genmask
Flags
default
10.10.10.1
0.0.0.0
UG
10.10.10.0
*
255.255.255.0
U
eth0
Metric Ref
0
0
0
0
Use Iface
0 eth0
0 eth0
Konfiguration - arp
arp - Manipuliert den ARP-Cache.
» Wird hauptsächlich für die Anzeige des ARP-Caches benutzt, man kann aber auch gespeicherte
Zuordnungen löschen bzw. neue hinzufügen.
» $ arp -i eth0 -s 10.10.10.1 46:2e:38:61:0f:35 # Hinzufügen eines Eintrags
$ arp
Address
HWtype HWaddress
Flags Mask
10.10.10.1
ether
46:2e:38:61:0f:35
CM
$ arp -i eth0 -d 10.10.10.1 # Entfernen eines Eintrags
$ arp
Address
HWtype HWaddress
Flags Mask
10.10.10.1
(incomplete)
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Iface
eth0
Iface
eth0
Seite 11 von 21
Konfiguration - /etc/network/interfaces
•
Man kann über die Datei /etc/network/interfaces die vorhandenen Netzwerkschnittstellen
entweder statisch oder über DHCP konfigurieren und auch festlegen, ob Schnittstellen automatisch
beim Booten aktiviert werden sollen.
•
Weiters können auch virtuelle Geräte (z.B. TAP-Geräte) damit erstellt und konfiguriert werden und
zusätzliche Informationen, wie z.B. die zu nutzenden DNS-Server, hinterlegt werden.
•
Die Befehle ifup und ifdown nutzen die Information aus der Datei, um Netzwerkschnittstellen zu
aktivieren und konfigurieren oder um sie zu deaktivieren. Weiters können mit ifquery die
Informationen zu einer oder mehreren konfigurierten Schnittstellen ausgegeben werden.
•
Ausführliche Informationen zur Syntax und zu den möglichen Anweisungen findet man in man 5
interfaces.
Konfiguration - /etc/network/interfaces Beispiel
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet static
address 131.130.61.5
netmask 255.255.255.240
network 131.130.61.0
broadcast 131.130.61.15
gateway 131.130.61.1
•
Die Anweisung „source“ erlaubt das Einbinden anderer Schnittstellendateien.
•
Die Anweisung „auto“ gefolgt von Schnittstellennamen bewirkt, dass diese Geräte in der
angegebenen Reihenfolge automatisch beim Starten aktiviert werden.
•
Die Konfiguration einer Schnittstelle erfolgt mittels der „iface“ Anweisung, gefolgt vom
Schnittstellennamen und „inet“ für IPv4 (bzw. „inet6“ für IPv6). Danach steht die Art der
Konfiguration: „loopback“ für das Loopback-Gerät, „static“ für eine statische Konfiguration, „dhcp“
für eine Konfiguration via DHCP bzw. „manual“ für eine manuelle Konfiguration.
Konfiguration - ifup/ifdown/ifquery
ifup/ifdown/ifquery - Verwalte eine konfigurierte Netzwerkschnittstelle.
» Es ist nur ein Programm mit drei Aufrufvarianten:
•
Als ifup werden Netzwerkschnittstellen aktiviert.
•
Als ifdown werden Netzwerkschnittstellen deaktiviert.
•
Als ifquery werden die Informationen aus den Konfigurationsdatein ausgelesen.
» In der Datei /run/network/ifstate ist der aktuelle Zustand gespeichert.
» Optionen: -a → alle als „auto“ markierte Schnittstellen verwenden, --force → Durchführung
erzwingen, -v → Befehle anzeigen, die ausgeführt werden, --list → bei ifquery alle Schnittstellen
auflisten, --state → bei ifquery den Status der Schnittstellen anzeigen.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 12 von 21
» $ ifup -a # alle Netzwerkschnittstellen aktivieren
$ ifquery --state
lo=lo
eth0=eth0
$ ifquery eth0
address: 10.10.10.101
netmask: 255.255.255.0
gateway: 10.10.10.1
broadcast: 10.10.10.255
Konfiguration - Zusammenfassung
•
Um eine Netzwerkschnittstelle manuell zu konfigurieren müssen also folgende Schritte durchgeführt
werden:
•
Aktivieren der Schnittstelle (mit ip link oder ifconfig)
•
Hinzufügen der IP-Adresse (mit ip address oder ifconfig)
•
Eventuell Hinzufügen eines Default-Gateways (mit ip route oder route)
•
Oder man fügt die entsprechenden Werte in /etc/network/interfaces ein und benutzt ifup.
•
Oder man benutzt ein Hilfsprogramm wie NetworkManager und dessen CLI- oder GUISchnittstellen.
•
Hinweis: Bei manchen Schnittstellen müssen noch zusätzliche Schritte durchgeführt werden, z.B.
Verbinden mit dem WLAN-Netzwerk bei einer WLAN-Schnittstelle.
Internetschicht - Befehle: arping
arping - Schickt ARP-Requests an einen Host.
» Nützlich, um die MAC-Adresse für eine bestimmte IP-Adresse herauszufinden.
» $ arping -c 1 10.10.10.1
ARPING 10.10.10.1 from 10.10.10.101 eth0
Unicast reply from 10.10.10.1 [46:2E:38:61:0F:35]
Sent 1 probes (1 broadcast(s))
Received 1 response(s)
0.615ms
Internetschicht - Befehle: ping
ping - Schickt einen Ping (ICMP-Echo-Request) an einen Host.
» Zum Testen, ob ein bestimmter Host erreichbar ist. Achtung: Manche Hosts sind aus
Sicherheitsgründen so konfiguriert, dass sie nicht antworten!
» Optionen: -c ANZAHL → Anzahl der zu sendenden Pakete, -b → Ping an Broadcastadresse erlauben,
-I SCHNITTSTELLE → Netzwerkschnittstelle auswählen, -s GRÖSSE → Paketgröße festlegen, -M do
→ Fragmentierung verbieten
» $ ping -c 1 www.orf.at
PING www.orf.at (194.232.104.139) 56(84) bytes of data.
64 bytes from orf.at (194.232.104.139): icmp_req=1 ttl=56 time=1.19 ms
--- www.orf.at ping statistics --1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.195/1.195/1.195/0.000 ms
$ ping -c 1 -M do -s 1800 orf.at
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 13 von 21
PING orf.at (194.232.104.141) 1800(1828) bytes of data.
ping: local error: Message too long, mtu=1500
--- orf.at ping statistics --1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
Internetschicht - Befehle: traceroute
traceroute - Zeigt die Route eines Pakets zu einem Host an.
» Kann neben ICMP-Echo-Requests auch andere Methoden verwenden (z.B. TCP und UDP).
» Optionen: -I → ICMP-Methode, -T → TCP-Method, -U → UDP-Methode.
» $ traceroute www.google.com
traceroute to www.google.com (173.194.44.244), 30 hops max, 60 byte packets
1 selene.cc.univie.ac.at (131.130.254.145) 1.499 ms 1.522 ms 1.480 ms
2 hekate.cc.univie.ac.at (131.130.254.37) 1.486 ms 1.459 ms 1.724 ms
3 ares.cc.univie.ac.at (131.130.253.113) 1.434 ms 1.399 ms 1.707 ms
4 vlan1501.wien1.aco.net (193.171.13.1) 1.365 ms * 1.659 ms
5 * * *
6 * * *
7 * * *
8 nixcz.net.google.com (91.210.16.211) 7.347 ms 7.313 ms 7.309 ms
9 209.85.241.79 (209.85.241.79) 7.607 ms 7.863 ms 7.520 ms
10 173.194.44.244 (173.194.44.244) 7.086 ms 7.106 ms 7.097 ms
$ traceroute6 www.google.com 2>/dev/null | tail -n 1
15 bk-in-x93.1e100.net (2a00:1450:4008:c01::93) 29.472 ms 29.337 ms 29.492 ms
Internetschicht - Befehle: mtr
mtr - Kombiniert die Funktionalität von ping und traceroute.
» Im Standardmodus zeigt mtr die Route zum Ziel an und aktualisiert laufend die Einträge.
» Optionen: -c ANZAHL → Anzahl der zu sendenden Pakete, -r → Reportmodus, -n → keine
Namensauflösung, -u → UDP-Methode, -T → TCP-Methode
» $ mtr -r orf.at
Start: Sun Apr 10 12:55:19 2016
HOST: ict
1.|-- minerva.cc.univie.ac.at
2.|-- vlan742.wien21.aco.net
3.|-- vlan71.wien1.aco.net
4.|-- 2001:628:1100:4::2
5.|-- 2001:628:1100:1015::2
6.|-- rou-vie-pe-101.apa.net
7.|-- c65-rz1-1.apa.net
8.|-- 2a01:468:1000:9::150
Loss%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
0.0%
Snt
10
10
10
10
10
10
10
10
Last
4.1
0.9
20.4
1.2
1.7
141.8
1.2
1.2
Avg
2.0
1.5
9.4
10.9
2.0
15.3
2.2
15.3
Best Wrst StDev
1.3
4.1
0.7
0.9
6.1
1.6
1.1 64.0 20.1
1.2 98.2 30.7
1.7
4.1
0.7
1.2 141.8 44.4
1.2 10.9
3.0
1.1 143.1 44.9
Transportschicht (Transport Layer)
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 14 von 21
•
Die Transportschicht ist für die Ende-zu-Ende-Übertragung von Daten von einem zu einem anderen
Gerät zuständig, unabhängig von der Art der Daten und von der Art und Weise, wie sie übermittelt
werden.
•
Die Anwendungen, die die Daten schicken bzw. empfangen, werden über sogenannte Portnummern
eindeutig identifiziert.
Bevor Daten ausgetauscht werden können, muss eine Anwendung eine Portnummer reservieren.
Damit wird sichergestellt, dass Daten immer zu richtigen Anwendung weitergeleitet werden.
Portnummern unter 1024 können nur vom Benutzer root reserviert werden. Eine Liste von
bekannten Portnummern findet man in der Datei /etc/services.
•
Zwei Protokolle werden hauptsächlich in dieser Schicht verwendet: das Transmission Control
Protocol (TCP, definiert in RFC 793) und das User Datagram Protocol (UDP, definiert in RFC 768).
TCP ist ein verbindungsorientiertes, zuverlässiges Protokoll. UDP hingegen stellt nur sicher, dass die
Pakete an die richtige Anwendung geschickt werden.
Transportschicht - TCP
•
TCP ist neben IP der Namensgeber für das gesamte Modell (TCP/IP-Modell), weil es das am
häufigsten verwendete Protokoll in der Transportschicht ist.
•
Das Protokoll erlaubt den zuverlässigen Austausch von Daten. Es kümmert sich darum, dass die
Pakete in der richtigen Reihenfolge an die Anwendung weitergegeben werden und dass verlorene
oder fehlerhafte Pakete nochmal gesendet werden.
•
Der TCP-Header wird an die Daten vorne angefügt.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 15 von 21
Transportschicht - TCP-Verbindungen
•
Damit zwei Anwendungen miteinander kommunizieren können, müssen zuerst sogenannte Sockets
(Paare aus IP-Adresse und Portnummern) erzeugt werden.
Durch ein Paar aus Server- und Client-Socket kann eine TCP-Verbindung eindeutig identifiziert
werden.
•
Bevor nun Daten ausgetauscht werden können, muss die Verbindung mittels des TCP-Handshakes
aufgebaut werden:
•
Der Client schickt ein SYN-Paket an den Server.
•
Der Server antwortet mit einem SYN/ACK-Paket an den Client.
•
Der Client schließt den Verbindungsaufbau mit einem ACK-Paket an den Server ab.
•
Nach dem TCP-Handshake können Daten ausgetauscht werden. Die Verbindung bleibt auch dann
bestehen, wenn keine Daten ausgetauscht werden. Erst der geordnete Verbindungsabbau (ähnlich
zum Verbindungsaufbau) beendet eine Verbindung.
•
Folgene Anwendungen verwenden beispielsweise TCP: HTTP, FTP, SSH
Transportschicht - UDP
•
Im Gegensatz zu TCP ist UDP ein verbindungsloses Protokoll, d.h. es wird keine Verbindung
aufgebaut, sondern es werden einfach nur Daten verschickt.
•
Wie bei TCP bezeichnet man ein Paar aus IP-Adresse und UDP-Portnummer mit Socket.
•
Es werden auch keinerlei sonstige Garantien gemacht, d.h. man hat hier die gleichen Probleme wie
bei IP-Datagrammen:
•
Die Reihenfolge der ankommenden Pakete kann sich ändern.
•
Es können Pakete mehrfach oder gar nicht ankommen.
•
Anwendungen, die UDP benutzen, müssen also robust gegenüber solchen Problem sein, haben aber
den Vorteil, dass Daten schneller verschickt werden können (der Verbindungsaufbau fällt ja komplett
weg).
•
Folgende Anwendungen verwenden beispielsweise UDP: DNS, DHCP, SNMP
Transportschicht - Befehle: ss
ss - Zeigt Socket-Statistiken an.
» Gehört zu dem selben Paket wie ip.
» Optionen: -l → nur Sockets im Status LISTEN anzeigen, -a → alle Sockets anzeigen, -r →
Adressen und Ports zu Namen auflösen, -n → keine Namensauflösung, -p → Prozess anzeigen, -t
→ TCP-Sockets anzeigen, -u → UDP-Sockets anzeigen, -x → Unix-Sockets anzeigen.
» $ ss -t -n -a
State
Recv-Q Send-Q
LISTEN
0
128
LISTEN
0
128
LISTEN
0
128
LISTEN
0
128
ESTAB
0
0
Local Address:Port
*:22
:::22
127.0.0.1:6010
::1:6010
192.168.56.101:22
Peer Address:Port
*:*
:::*
*:*
:::*
192.168.56.1:54330
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 16 von 21
Transportschicht - Befehle: netstat
netstat - Zeigt Netzwerkinformationen an.
» Sehr vielseitiges Programm mit vielen Optionen zur Anzeige von Routing-Tabellen, offenen
Verbindungen, Statistiken, …
» Anzeigen von: keine Angabe → offene Sockets, -r → Routing-Tabellen,
Netzwerkschnittstellen, -s → Statistiken, -g → registrierte Multicast-Gruppen.
-i
→
» Optionen: -n → keine Namensauflösung, -l → nur Sockets im Status LISTEN anzeigen, -a → alle
Sockets anzeigen, -t → TCP-Sockets anzeigen, -u → UDP-Sockets anzeigen, -p → Prozess
anzeigen.
» $ netstat -t -n -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp
0
0 0.0.0.0:22
0.0.0.0:*
tcp
0
0 10.10.10.101:22
10.10.10.1:44240
tcp6
0
0 :::22
:::*
$ netstat -g -n
IPv6/IPv4 Group Memberships
Interface
RefCnt Group
--------------- ------ --------------------lo
1
224.0.0.1
eth0
1
224.0.0.1
lo
1
ff02::1
lo
1
ff01::1
eth0
1
ff02::1:ff12:3456
eth0
1
ff02::1
eth0
1
ff01::1
State
LISTEN
ESTABLISHED
LISTEN
Anwendungsschicht
•
Die Anwendungsschicht umfasst alle Protokolle, die Anwendungen für die Kommunikation
miteinander verwenden.
•
Dazu gehören standardisierte Protokolle wie HTTP, FTP oder SSH, aber auch alle anderen, nichtstandardisierten Protokolle, die beliebige Anwendungen verwenden.
•
Wir betrachten im Folgenden zwei Protokolle, nämlich DHCP und DNS, da diese wichtige Aufgaben
bei der Netzwerkkonfiguration haben.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 17 von 21
DNS (Domain Name System)
•
Das Domain Name System (DNS, definiert in RFC 1034 und RFC 1035) erlaubt die Verbindung eines
Namens mit einer IP-Adresse. Erst dadurch konnte das Internet so richtig erfolgreich werden, da
sich Namen viel leichter merken lassen, als die IP-Adressen dahinter.
•
Die einzelnen Teile eines Domainnamens werden mit Punkten voneinander getrennt geschrieben,
z.B. mathematik.univie.ac.at.
•
Das DNS ist hierarchisch aufgebaut. Es gibt nicht ein paar DNS-Server, die alles wissen, sondern
viele, die Teile wissen und wissen, wo sie nachschauen können.
Ganz oben in dieser Hierarchie stehen die Root-Server, die die DNS-Server der Top Level Domains
(TLDs, im Domainnamen ganz rechts zu finden) kennen.
•
Soll ein Domainname zu einer IP-Adresse aufgelöst werden, wird dieser (im schlimmsten Fall) an
einen Root-Server geschickt. Dieser antwortet mit der IP-Adresse des DNS-Servers, der die TLD des
Domainnamens verwaltet. Dann wird dieser DNS-Server gefragt, der dann den nächsten Teil des
Domainnamens (von rechts nach links) auflöst und so weiter (iterative Auflösung).
Namensauflösung unter Linux
•
Jedes Linuxsystem hat einen Hostnamen, auch wenn der Computer keine Netzwerkschnittstellen
haben sollte. Dieser ist in /etc/hostname festgehalten und kann über hostname bzw. bei Verwendung
von systemd auch über hostnamectl angezeigt und geändert werden.
•
Für die Namensauflösung gibt es die NSS-Datenbank „hosts“. Die Standardkonfiguration benutzt die
Datei /etc/hosts und dann DNS als Quellen.
•
In der Datei /etc/hosts werden pro Zeile ein oder mehrere Namen mit einer IP-Adresse assoziiert:
127.0.0.1
127.0.1.1
localhost
host99.ict
host99
# The following lines are desirable for IPv6 capable hosts
::1
localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Namensauflösung unter Linux - /etc/resolv.conf
•
Für die Konfiguration von DNS wird die Datei /etc/resolv.conf benutzt. Früher wurde diese Datei
manuell erstellt, aktuell wird dafür das Paket resolvconf verwendet.
•
Auch wenn die Datei dynamisch generiert wird, kann man Änderungen immer noch manuell
vornehmen, muss aber damit rechnen, dass diese bei der nächsten Änderung der
Netzwerkkonfiguration überschrieben werden.
•
Eine /etc/resolv.conf-Datei kann z.B. so aussehen:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#
DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.10.10.1
search ict univie.ac.at
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 18 von 21
•
Die wichtigsten Anweisungen sind (siehe man resolv.conf):
•
nameserver IP-ADRESSE → Gibt den zu benutzenden DNS-Server an. Maximal drei DNS-Server
können so angegeben werden.
•
search DOMAIN1 [DOMAIN2 ...] → Gibt die Suchliste an, die verwendet wird, wenn der
Hostname nicht vollständig ist (i.e. es wird dann HOST.DOMAIN1, HOST.DOMAIN2, usw.
gebildet).
Namensauflösung unter Linux - resolvconf
•
Das Paket „resolvconf“ wird über Dateien in /etc/resolvconf konfiguriert. Dort können z.B. fixe
DNS-Server eingetragen werden.
•
Weiters ist resolvconf in verschiedene Netzwerkdienste wie NetworkManager, ifup, dnsmasq und
dhclient eingebunden, um DNS-Serveränderungen mitgeteilt zu bekommen.
•
Bei Verwendung von ifup können z.B. in /etc/network/interfaces bei einer Netzwerkschnittstelle
die zusätzlichen Optionen „dns-nameserver“ und „dns-search“ verwendet werden, um DNS
automatisch beim Aktivieren der Netzwerkschnittstelle zu konfigurieren.
Namensauflösung - Befehle: host, dig
host - Löst DNS-Namen auf.
» Mit der Option -t kann der Abfragetyp ausgewählt werden (z.B. „A“ für IPv4, „AAAA“ für IPv6
oder „MX“ für Mailserver)
» $ host login.univie.ac.at
login.univie.ac.at has address 131.130.20.69
login.univie.ac.at has IPv6 address 2001:62a:4:22::22:4
login.univie.ac.at mail is handled by 10 zidmx1.univie.ac.at.
login.univie.ac.at mail is handled by 10 zidmx3.univie.ac.at.
login.univie.ac.at mail is handled by 10 zidmx2.univie.ac.at.
dig - Löst DNS-Namen auf (und ist viel flexibler als host).
» Der Befehl wird meist in der Variante dig @SERVER NAME TYP verwendet, wobei SERVER der
DNS-Server, NAME der aufzulösende Name und TYP der Abfragetyp ist.
» Über „+ABFRAGEOPTION“ kann die Abfrage bzw. die Ausgabe beeinflusst werden.
» $ dig +nocomments +nostats +nocmd login.univie.ac.at
;login.univie.ac.at.
IN
A
login.univie.ac.at.
249
IN
A
131.130.20.69
$ dig +nocomments +nostats +nocmd login.univie.ac.at AAAA
;login.univie.ac.at.
IN
AAAA
login.univie.ac.at.
148
IN
AAAA
2001:62a:4:22::22:4
DHCP (Dynamic Host Configuration Protocol)
•
In größeren Netzwerken ist es mühsam, wenn jedes Gerät einzeln konfiguriert werden muss, d.h. IPAdresse, Netzwerkmaske und Default-Gateway zugewiesen werden müssen. Abhilfe schafft DHCP
(definiert in RFC 2131).
•
Bei DHCP wird eine Anfrage an einen DHCP-Server geschickt (mittels der Broadcastadresse
255.255.255.255), in der um eine IP-Adresse und zusätzliche Konfiguration gebeten wird.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 19 von 21
•
Der DHCP-Server antwortet mit einer noch nicht vergebenen IP-Adresse sowie der Netzwerkmaske.
Zusätzlich werden normalerweise das Default-Gateway sowie DNS-Server mitgeteilt. Die vergebene
IP-Adresse kann zudem zeitlich beschränkt gültig sein, vor Ablauf der Gültigkeit muss das Gerät
erneut den DHCP-Server fragen.
•
Die meisten WLAN-Router und z.B. auch VirtualBox (für NAT- und interne Netzwerke) verwenden
DHCP zur Konfiguration der angeschlossenen Geräte.
DHCP-Konfiguration
•
Bei Verwendung von ifup braucht als Konfigurationsart nur „dhcp“ eingestellt werden. D.h. folgende
Zeilen reichen für die automatische Konfiguration einer Netzwerkschnittstelle via DHCP:
auto eno1
iface eno1 inet dhcp
•
Im Hintergrund verwendet ifup das Programm dhclient. Dieses kann natürlich auch manuell
verwendet werden. Dazu braucht man nur dhclient SCHNITTSTELLE eingeben und das Programm
konfiguriert die Schnittstelle via DHCP.
Unter /etc/dhcp/ liegen die Konfigurationsdateien für dhclient, dort kann z.B. in dhclient.conf
eingestellt werden, welche Informationen vom DHCP abgefragt werden sollen.
Sonstige Befehle - Netzwerkmonitoring
Zur Überwachung eines Netzwerks oder zum Untersuchen von Netzwerkpaketen gibt es mehrere
Programme unter Linux:
•
tcpdump: CLI; Pakete, gefiltert nach Bedingungen, werden ausgegeben.
•
wireshark: GUI/CLI; Ähnlich wie tcpdump, aber leichter benutzbar. Kann tcpdump Ausgaben
verwenden.
•
iptraf: CLI (ncurses); Zeigt unter anderem Statistiken für verschiedene Protokolle an.
Netzwerkkonfiguration mit Puppet
•
In Puppet gibt es keine eingebauten Möglichkeiten, Netzwerkschnittstellen zu verwalten.
•
Es gibt aber mehrere nachinstallierbare Module, mit denen Netzwerkschnittstellen verwaltet werden
können, z.B. das puppet/network Modul.
Hostverwaltung mit Puppet
•
Hostnamen und deren IP werden in Puppet über die Ressource host verwaltet.
•
Unter Ubuntu wird standardmäßig der Provider parsed verwendet (der einzig mögliche). Dieser
modifiziert die Datei /etc/hosts.
•
Wichtige Attribute:
•
name: Der Name des Computers (falls nicht angegeben, wird der Titel verwendet).
•
ensure: Der gewünschte Zustand (present oder absent).
•
comment: Ein Kommentar zum Computer.
•
host_aliases: Ein Aliasname oder ein Array von Aliasnamen.
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 20 von 21
•
ip: Die IP-Adresse des Computers.
•
target: Die Zieldatei, in der die Informationen gespeichert werden (Standardwert: /etc/hosts).
Hostverwaltung mit Puppet - Beispiele
•
Anlegen oder Modifizieren eines Hosteintrags:
host {'ict-infrastruktur.home:
ensure => present,
host_aliases => 'ict-infrastruktur',
ip => '127.0.0.1',
}
•
Löschen eines Hosteintrags:
host {ict-infrastruktur.home': ensure => absent}
ICT-Infrastruktur für Bildungsaufgaben | Sommersemester 2016 | Version: 2016-04-11 10:18
Seite 21 von 21
Herunterladen