Die Vermittlung von Datenpaketen wird als Routing bezeichnet. Das Routing hat die Aufgabe, den effizientesten Weg zu suchen. Effizient kann heißen: kostengünstig, aber auch z.B. schnellstmöglich (Hierfür gibt es Routing-Algorithmen).
Jeder Router muss also eine Entscheidung treffen, wohin er die Datenpakete weiterleitet. Einen Router zeichnet allgemein aus, dass er an mindestens 2 physikalisch getrennte Netze angeschlossen ist. (Anm.: Zwischen Gateway und Router wird oft nicht unterschieden. - Ein Gateway würde aber auch eine Umsetzung verschiedener Protokolle zwischen Netzen ermöglichen.)
Ein Router kommt ins Spiel, wenn die Zieladresse (Empfängeradresse / Zielhostadresse) in einem anderen Netzwerk respektive Subnetz liegt. Der Sender kennt zwar die Zieladresse, nicht unbedingt aber den Weg dorthin.
Als snail-mail Postbeispiel lässt sich wieder festhalten: Ergeht ein Brief innerhalb der Büroabteilung an einen Kollegen, wird der Brief gleich persönlich überreicht (direct delivery), ist der Brief an eine Person in einer anderen Abteilung gerichtet, wird er an die Hauspost übergeben, die den weiteren Weg des Briefes möglichst effizient bestimmt (indirect delivery).
Der Vorgang ist dabei wie folgt:
a) Ist das zu versendende Datenpaket für den eigenen Rechner bestimmt (wenn die eigene IP als Zielrechner angegeben ist, bzw. z.B. 127.0.0.1, was - wie schon erwähnt - für den eigenen Rechner steht und prinzipiell nicht geroutet wird), hat das Paket somit gleich sein Ziel erreicht und wird verarbeitet.
Hier der route-Befehl in der Windows Eingabeaufforderung, der auch die Route für das 127.0.0.0 Netz anzeigt:
J:\Dokumente und Einstellungen\Administrator>route print
===========================================================================
Schnittstellenliste
0x1 ............................... MS TCP Loopback interface
0x10003 ...00 e0 18 b7 3c 4c ...... Broadcom NetXtreme Gigabit Ethernet
===========================================================================
===========================================================================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1
b) Die Zieladresse liegt im eigenen Sub-Netz: Das IP-Paket wird direkt ins eigene Subnetz geschickt (ob die Zieladresse im eigenen Subnetz liegt, lässt sich durch Maskierung der Zieladresse mit der eigenen Subnetzmaske feststellen, d.h. logische UND Verknüpfung von Subnetzmaske und Ziel-IP).
c) Die Zieladresse liegt außerhalb des eigenen Netzes. Das Paket wird über eine bekannte Route für die Zieladresse gesendet oder aber an den Router (default Gateway, default route), der sich um die Weiterleitung kümmert.
Durchläuft ein Paket z.B. 3 Router hintereinander bis das Zielnetzwerk erreicht wird, wird von 3 Hops gesprochen (Sprünge). Der Weg, den die Pakete nehmen, und wie lange die Router für die Verarbeitung benötigen, lassen sich über den dos-Befehl traceroute herausfinden. Die Weiterleitung kann in Abhängigkeit von z.B. schnellster Zustellbarkeit, physischer Entfernungen, maximalem Netzwerkdurchsatzes, kostengünstigster Strecke etc. passieren
d) Ist keine default Gateway bekannt, wird das Datenpaket verworfen.
Ein Router arbeitet normalerweise auf Layer 3 (Networklayer) des ISO/OSI-Schichtenmodells und bildet eine Broadcast- bzw Collision-Domain (so werden auch Teilnetze genannt, da hier mit Broadcasts- bzw Kollisionen nur im eigenen Teilnetz auftreten können und nicht weitergereicht werden)
Der Router untersucht nur die Pakete, die an ihn gerichtet werden zur Weiterleitung.
Beispiel: Routing zweier privater Netze
Versendet z.B. ein Gerät ein Datenpaket, beinhaltet dieses wie besprochen Herkunfts- und Empfängeradresse. Haben die Herkunfts- und Empfängeradresse den selben Netzwerksanteil, kann das Paket direkt an den Rechner im gleichen Netzwerk gesendet werden, andererseits wird das Paket an einen Router gesandt, der versucht, das Paket weiter zuzustellen (In Windows wird die IP des Routers default gateway genannt).
Ist die Ziel IP-Adresse im eigenen Net/Sub-Netz, verwendet der Rechner das ARP-Protokoll, um die MAC-Adresse des Zielrechners herauszufinden, die zum Senden des Datenpackets nötig ist. ("Gegenteil": RARP - Reverse Address Resolution Protocol. RARP-Server liefert zu einer MAC-Adresse eine IP-Adresse).
Genauer: MAC/ARP (Adress Resolution Protokoll). Damit die Zielkomponente, an die Daten gesendet werden, wirklich eindeutig bestimmbar ist und keine identischen Hardwareadressen im Netz auftreten können, gibt es die Ethernetadressen (meist MAC-Adressen oder physikalische Adresse genannt), die fix in der Hardwarekomponente gespeichert sind (z.B. Netzwerkkarte, Router etc). Aufruf von ipconfig /all in der Windows-Eingabeaufforderung fördert z.B. diese zu Tage:
12stellige Hexadezimalzal (Werte 0-9, A-F)
Das Herausfinden der MAC-Adresse kann auf zweierlei Arten geschehen: Der "Quellrechner" kann einen so genannten ARP-Request an alle anderen Rechner in seinem Sub-Netz schicken (broadcast arp request), um so vom Zielrechner, der ja seine IP-Adresse selbst kennt, dessen gewünschte MAC-Adresse zu erfahren. ARP arbeitet nur innerhalb des LANs, findet also nur MAC-Adressen von Rechnern des gleichen Netzes.
Da sich immer alle Rechner zwangsweise mit diesen "broadcasts" beschäftigen müssen, haben die Rechner sogenannte ARP-caches (auch ARP-Tabellen genannt), in denen sie erfolgreiche Anfragen verzeichnen, um so nicht jedesmal wieder einen "broadcast" auf alle Rechner "loslassen" zu müssen. Die zweite Möglichkeit ist also das Auslesen des ARP-Caches, was natürlich immer vor einem allfälligen broadcast durchgeführt wird, um nicht unnötig das Netz zu belasten.
Beispiel: Überblick über den ARP-Befehl und Arp-Cache (arp -a)
Wir "Pingen" nun zum Test die Adresse 193.170.98.2 an, damit müsste diese Adresse auch im arp-cache des Rechners landen:
Aber auch der Router, nicht nur andere Rechner des Sub(Netzes), kann auf den ARP-Request antworten. Antwortet der Router mit seiner MAC.Adresse, bedeutet dies, dass der Rechner (die Zieladresse) außerhalb des (Sub-)Netzes liegt und die Pakete, wie oben ewähnt, an den Router gesendet werden, der sich um die Weiterleitung annimmt. Der Router verwendet im Gegensatz zum ARP-Cache so genannte Routingtabellen zur Weiterleitung.Arten von Routing
- default Routen (An diese werden Datenpakete, die nicht im eigenen Adressbereich liegen, gesendet) und
- statische Routen (Sie sind fix in der Routingtabelle des Routers/Hosts eingetragen),
- dynamische Routen (Router/Hosts tauschen Routingtabelleneinträge aus, um immer den optimalen Weg zu nutzen - mittels: Routing Information Protocol (RIP)).
Dynamische Routen: Hier werden, wie gesagt, durch das RiP Protokoll Daten ausgetauscht. Z.B. bewerten Router z.B. die Zeit für das Routing (neue Zeit kürzer als alte Zeit? Wenn ja, neue Route übernehmen). So könnte z.B. der schnellste Weg dynamisch angepasst werden.
Open Shortest Path First (OSFP): An den Pfaden (Kanten) zwischen den Routern läßt sich z.B. die Vermittlungszeit ablesen, der OSFP-Algorithmus ermittelt die kürzeste Route. Die Kanten werden immer wieder neu gewichtet (berechnet). OSFP unterstützt aber auch andere Modi, die Kanten könnten genauso mit den Routingkosten in € belegt werden und OSFP nimmt den billigsten Weg. Auch können Kanten gerichtet sein, d.h. in die Gegenrichtung e-d-c-a könnten die Kanten andere Werte annehmen.
Die Router schicken dabei HELLO-Messages aus, um ihre "'Nachbar"-Router zu erreichen (Router a z.B. an seine Nachbar-Router b, c und f). Die Werte der Kanten werden so gegenseitig ausgetauscht und in eine Routing-Tabelle eingetragen. Nach und nach tauschen alle Router ihre Routing-Tabellen über die sogenannte Link-State-Message aus. Auf die erhaltenen Routingtabellen wird letztendlich der OSFP-Algorithmus angewandt, der diese z.B. hinsichtlich Kosten bzw. Geschwindigkeit für alle Ziele optimiert.
Eine Routingtabelle enthält dabei meist folgende Einträge:
- DESTINATION (Zielnetz oder IP-Adresse)
- GATEWAY (Gateway, das genommen werden muss, um die DESTINATION zu erreichen),
- FLAGS (bestimmte Flags, wie H für Ziel, ist ein Host, G für Route nutzt ein Gateway, U Route existiert und ist verwendbar)
- REFCNT (Anzahl der bisherigen Routenbenutzung),
- INTERFACEN (Name des Netzwerks-Interface für die Route),
- METRIC (Anzahl der Hops [Router] zwischen Absender und Ziel)
Das Weiterleiten der Datenpakete aufgrund der Routingtabellen wird allgemein Forwarding genannt.
Unter Windows: Netzwerksziel/Netzwerkmaske entspricht dabei DESTINATION, Gateway ist gleich benannt und Schnittstelle steht für INTERFACE, Anzahl steht für METRIC.
???????????????? Aktive Routen:
???????????????? Netzwerkziel?? Netzwerkmaske???? Gateway?????? Schnittstelle?? Anzahl
???????????????? 127.0.0.0????? 255.0.0.0???????? 127.0.0.1???? 127.0.0.1?????? 1
Standardgateway: 193.170.98.1
d.h. alle Daten an das Netz 127.0.0.0 werden an die Schnittstelle 127.0.0.1 (localhost) gesendet (Loop-Back-Route hat standardmäßig jeder Rechner in seiner Routingtabelle - eigentlich eine Route vom eigenen Rechner zum eigenen Rechner). Alles nicht an die Loopback-Adresse adressierten Daten werden automatisch an das defaulte Gateway (mittels default route) gesandt.
Route-Befehle unter Windows:
route add host gateway (statische Route der Routing-Tabelle hinzufügen)
route add net gateway
route del net (statische Route löschen)
route del host
route print (Routing-Tabelle ausgeben)
Beispiel 3 private Netze (192.168.0.0, 192.168.1.0, 192.168.2.0) mit Routern verbunden, der Router hat jeweils 2 Netzwerkinterfaces für die anliegenden Netze.
Es stellt sich nun auch die Frage, wann ein Rechner solche 'broadcasts' ins Netz schicken kann und was passiert, wenn er die Adresse des Zielhosts nun weiß, bzw. Datenpakete übertragen möchte? Da es sich bei Ethernet prinzipiell um ein Broadcast-Netzwerk handelt, werden prinzipiell alle Datenpakete an das ganze Netzwerk gesandt (samt Quelladresse, Zieladresse und Protokoll). Jeder Rechner des Netzes, die einen solchen broadcast erhalten, hat nun zu prüfen, ob die Zieladresse des Datenpakets mit seiner eigenen Adresse übereinstimmt. Ist dies der Fall, nimmt er das Paket vom Netz und bearbeitet es. Alle anderen Rechner ignorieren das Paket.
Das Senden der Anfragen/Antworten bzw Datenpakete ist jedoch nur möglich, wenn auch die Leitung frei ist (Ethernet als Bus-Topologie benötigt eine solche exclusive Kabelnutzung, vgl. gepflegtes Gespräch zwischen 2 Personen: "Fangen beide gleichzeitig an zu reden, brechen meist beide kurz das Gespräch ab und warten kurz, bis sie es erneut versuchen").
Darum wird auf 'Freileitung' geprüft: Werden auf der Leitung keine Signale entdeckt, schickt der Rechner seine Pakete los, andernfalls wartet er kurze Zeit und prüft erneut auf Sendemöglichkeit. Sollten z.B. 2 Rechner gleichzeitig der Meinung sein, die Leitung wäre frei, kommt es zu einer Kollision der Datenpakete auf der Leitung. Hier tritt die CSMA/CD (Carrier Sense Multiple Access with Collision Detection) Technik in Kraft. Dadurch können die an der Kollision beteiligten Rechner die Kollision erkennen (collision detected) und stellen das Senden ein (solange sich ein so genanntes Jam-Signal, das auf die Kollision hinweist, auf der Leitung befindet). Ist das Jam-Signal nicht mehr vorhanden, versuchen die Rechner nach kurzer Zeit die zuvor kollidierten Datenpakete erneut zu senden.
CSMA/CD im Ethernet (spezieller):
MA (Multiple Access) bedeutet dabei, dass alle Stationen unabhängig auf das gemeinsame Übertragungsmedium zugreifen können.
CS (Carrier Sense) heißt, dass beim Versenden zuerst geprüft werden muss, ob eventuell eine andere Übertragung gerade läuft, also das Medium belegt ist. Erst wenn das Medium frei ist, fängt die Station an zu senden.
CD (Collision Detection): Da es natürlich sein kann, dass auch eine andere Station gerade anfängt zu senden, kann es zu Kollisionen der Datenpakete kommen. So prüft die versendende Station permanent auf Kollisionen. Tritt keine auf, ist das Datenpaket erfolgreich versendet worden. Erkennt die Station aber eine Kollision wird, wie gesagt, das Jam-Signal ausgeschickt. Befindet sich das Jam-Signal auf der Leitung (dem Medium), warten alle Stationen eine fixe Zeit (ca. 9,6?s) und zusätzlich noch einen durch Zufall ermittelten Zeitwert, sonst würden ja eventuell wieder alle Stationen gleichzeitig zu Senden anfangen (Back-Off Zeit). Sollten dennoch Pakete nicht ankommen, kümmern sich z.B. bei TCP die höheren Protokollschichten um die erneute Anforderung des Pakets.
Der Bereich (Netzwerkssegment), in dem CSMA/CD-Traffic zwischen den Stationen stattfindet, wird collision-domain genannt.
Mit broadcast-domain wird ein Netzwerksbereich bezeichnet, in dem alle Stationen des Bereichs ein broadcast-signal erhalten können.
Bezeichnung | OSI Schicht | Trennt collision-domains | Erweitert collision-domains | Unterbricht broadcasts (trennt broadcast-domains) | Broadcasts werden weitergesandt (vergrößert broadcast-domains) |
Hub | 1 | ? | X | ? | X |
Repeater | 1 | ? | X | ? | X |
Bridge | 2 | X | ? | ? | X |
Switch | 2 | X | ? | ? | X |
Switch (managebar) | 2 | X | ? | X | ? |
Router | 3 | X | ? | X | ? |
Abgesehen von Kollisionen kann es zu verschiedenen anderen Zuständen ("Fehlern") im Netzwerk kommen. Hier kommt das ICMP-Protokoll ins Spiel (Internet Control Message Protocol). Ist zum Beispiel ein Zielrechner im Netzwerk nicht erreichbar (ermitteln mittels Ping-Befehl), informiert z.B. der Router mittels einer generierten ICMP-Meldung ("Destination unreachable" bzw "Zielhost nicht erreichbar") den Absender des Pakets. ICMP-Meldungen werden dabei in IP-Datagrammen versendet.
Die offizielle Liste der ICMP-Meldungen:
Einige Messages besitzen noch genauer spezifizierte "Codes", z.B. ICMP-Messge 3 (Destination unreachable) hat Codes von 0-15, die die ICMP-Message noch genauer spezifizieren: Kommt z.B. Code 1 zurück vom Router, dürfte der Rechner z.B. ausgeschaltet oder nicht vorhanden sein.
Die Reaktionen eines WindowsXP-Rechners auf ICMP-Anfragen lässt sich über die Firewall (ICF - Internet Connection Firewall) regeln:
Software-Router (Firewall, Schutz)
Software-Router basieren meist auf einem PC mit 2 Netzwerkkarten und geeigneter Routing-Software. Windows unterstützt dies z.B. mit seiner Internetverbindungsfreigabe (ICS - Internet Connection Sharing).
Software Router setzen meist auf NAT (Network Adress Translation) / PAT ( IP-Masquerading ) bzw. Port-Forwarding
Per NAT/IP-Masquerading lassen sich Netze mit privaten Adressen (bzw nicht offiziellen-Internet-Adressen) dennoch mit dem Internet vebinden. Dabei bleibt das interne Netz weiterhin von außen "unsichtbar", also nicht erreichbar (erhöhte Sicherheit).
Umgekehrt, der Zugriff von Innen nach Außen ist jedoch möglich: Dafür merkt sich die vermittelnde Station per NAT zu jeder Verbindung die IP der internen Station und das Ziel im Internet. (Wird auch der Port mitgespeichert, wird von PAT oder IP-Masquerading gesprochen). Aufgrund der Werte, die er intern in einer Tabelle für die einzelnen Stationen vewaltet, weiß er, welche Stationen welche Anfragen ins Internet schicken. Die eigentliche Anfrage schickt aber dann der "Roter"-Rechner selbst ins Internet. Aufgrund der zurückkommenden Antwort aus dem Internet, leitet er diese wiederum mit Hilfe der angelegten Tabelle an den internen Rechner weiter, der vorhin die Anfrage ins Internetz schickte. Alle Pakete, die über diesen Rechner(bzw Hardwarerouter) laufen, werden also anhand dieser Tabelle manipuliert: Bei der Anfrage aus dem internen Netzt ins Internet ersetzt er folglich die private Quelladresse (zB. 192.168.0.30) mit seiner öffentlichen (z.B. 193.170.98.150), unter der er die Anfrage dann ins Netz schickt. Die Antwort auf die Anfrage erhält so wieder der Vermittlungsrechner und rückübersetzt sie mit der internen IP laut Tabelle.
Einschränkung:
- Kommunikation muss verbindungsorientiert sein.
- Interne Stationen sind von außen nicht erreichbar.
Vorteil:
- Es wird nur eine ofizielle Internet IP-Adresse benötigt.
Port-Forwarding
Mittels Port-Forwarding können interne Rechner durch einen Verbindungsaufbau von außen dennoch erreicht werden. Der vermittelnde Rechner wartet dabei auf einem bestimmten Port auf eintreffende Datenpakete. Treffen auf diesem Pakete ein, leitet er sie an einen internen Computer (z.B. 192.168.0.30) weiter. Für Rechner im Internet sieht es wiederum so aus, als würde der Serverdienst auf dem vermittelnden Rechner selbst laufen.
Zusätzlichen Schutz bieten Firewalls.
Firewalls
Meist eine Kombination aus Software- u. Hardware (Ausnahme: Application-Firwall - eine Softwarelösung). Sie dienen zum Schutz von Netzwerken (z.B. jeglichen Zugriff von außen (Internet) unterbinden).
Paketfilter
Der Paketfilter regelt den über ihn laufenden Paketfluss abhängig von Firewall-Regeln (rulesets). Paketfilter können sich z.B. in einem Router oder Switch befinden bzw in speziell auf Paketfiltering ausgelegten Netzwerkskomponenten. In letzter Zeit häufig auch in onboard-Netzwerk-Chipsätzen, die mit der zugehörigen Netzwerktreibersoftware paketfiltering durchführen.
Rulesets können Umfassen :
- bestimmte IP-Adressen (z.B. keine eingehenden internen privaten IP-Adressen aus dem Internet, da diese nur gefälscht sein können)
- bestimmte Ports (z.B. Telnet-Verbindungen auf Port 23 nur von der Adresse 193.170.98.20 zulassen)
- bestimmte Pakete (z.B. keine ICMP-Messages eingehend und ausgehend)
Applikation Firewall
Spezielle Softwareprogramme (Applications), die zusätzlich zum Paket-Filtering auch die verwendete Applikation spezifiziert. (Z.B. Mozilla darf nur über Port 80 ins Internet verbinden, bzw. Internet Explorer darf gar nicht ins Internet verbinden). Ein Vorteil liegt darin, dass auch ausgehende Verbindungen programmabhängig analysiert werden, so scheitern Spyware oder Backdoors meist an der Application-Firewall. Natürlich gibt es auch Programme, die direkt die Firewall attackieren und sich so einen Weg unter Umgehung der Application-Firewall suchen. Deswegen ist es ratsam, einen Virenscanner ständig aktualisiert mitlaufen zu lassen und alle System- und Programmupdates einzuspielen.