IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Das Kommando route und Routinggrundlagen



Das Kommando route und Routinggrundlagen

grundzuege statischen routings, das route kommando, netstat -nr werden erklaert. kurze erwaehung von RFC1597 private space IPs und masquerading.


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:39:20
Referenzen: man route
man netstat
RFC 1597
Schwierigkeit: Fortgeschrittene
Ansichten: 9939x
Rating: 1 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



| special deluxe |

Übersicht

viele leute setzten einen linux oder BSD rechner als "router" ein. damit
er packete im netz weiterleitet. ist billiger als ein hardware router in
vielen faellen auch leistungfaehiger... man kann damit ja noch mehr machen
als nur routen..

wie finden den die IP packete ihren weg durchs netz? sie werden anhand
ihrer zieladdresse von router zu router weitergereicht und gelangen so an
ihr ziel. jedes system muss dabei eine sogennannte "routing table" haben
anhand derer die entscheidung getroffen wird welche packete wohin zu
leiten sind. man kann sich jede route, also jeden eintrag in dieser
tabelle, als kleines wegweiserschild vorstellen..das den IP packeten den
weg zeigt.

ein router kann dabei ein packete entweder direkt an eine angeschlossene
netzwerkkarte weiterleiten wenn er denkt dass die zieladdresse direkt an
auf diesem netzwerksegment existiert.. oder er leitet ein packet an einen
anderen router weiter. der router an den weitergeleitet wird muss aber
direkt auf diesem netzwerksegment (oder am anderen ende einer
point-to-point verbindung) zu finden sein..

als 3. fall gibt es noch eine route zu einem gateway

um die gegenwertige routing table auszulesen koennen wir den befehl:

route -n

(manche unixe bevorzugen:

netstat -nr

)

(das -n besagt dabei in beiden faellen dass der router die IP addressen
nicht via DNS nameservice nachschlagen soll. was laenger dauern kann und
meist nicht unbedingt uebersichtlicher wird..)

auf einem linux rechner mit der IP addresse 10.1.2.3 koennte die ausgabe
z.b. so aussehn:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.1.7.0 10.1.2.77 255.255.255.0 UG 1 0 0 eth0
0.0.0.0 10.1.2.1 0.0.0.0 UG 1 0 0 eth0


fuer addressen die in den bereich 10.1.2.xxx fallen (die netmaske legt
fest wie lang der bereich ist.. hier einfach ein class C netz) versucht
linux die packete direkt an das lokale ethernet auf eth0 zu schicken (der
wert 0.0.0.0 im gateway feld besagt: hier haben wir KEINEN gateway)

dann haben wir eine route fuer addressen aus dem bereich 10.1.7.xxx die
sollen zu einem gateway mit der addresse 10.1.2.77 geschickt werden (man
beachte dieser gateway liegt in dem bereich der direkt angeschlossen
rechner.. die selbst ohne gateway erreichbar sind)

der letzte eintrag ist die default route (erkannbar an dem 0.0.0.0 und der
netmask 0.0.0.0 ) fuer alle netzwerkpackete fuer die sonst keine route
existiert (z.b. fuer 123.44.55.66) wird diese route verwendet und wir
hoffen dass der router mit der IP 10.1.2.1 diese ein stueck naeher an ihr
ziel bringt..

welchen weg die packte von router zu router nehmen kann man sich mit dem
befehl:

traceroute 194.152.178.12

ansehen.

obiger fall ist ja noch recht einfach. kompliziertere router haben aber
i.a. mehrere interface und leiten packte die auf einem interface
hereinkommen an ein anderes weiter. das verhalten eingehende packete
eventuell weiterzuleiten ist normalerweise abgeschalten.

im debian kann man das auf in der datei /etc/network/options
mit einem eintrag:

ip_forward=yes

einschalten. (achtung: der eintrag wird erst beim naechsten starten aktiv. )

will man das forwarding gleich haendisch einschalten so kann man das im
linux mit:

echo 1 > /proc/sys/net/ipv4/ip_forward

mit

cat /proc/sys/net/ipv4/ip_forward

kann man sich die gegenwertige einstellung anschaun.
0 ...nicht forwarden.
1 ... forwarden.

routen traegt man im debian in /etc/network/interfaces ein. (siehe das
mitgelieferte beispielfile )

haendisch laegt man eine route mit:

route add -net 10.1.7.0 netmask 255.255.255.0 gw 10.1.2.77

ebenso kann man sie wieder loeschen:

route del -net 10.1.7.0 netmask 255.255.255.0

solcherart eingetragener routen sind natuerlich nicht permanent. d.h. beim
naechsten starten des rechners sind sie nicht mehr da.. ausser man hat die
entsprechenden startup scripts seiner distribution editiert.

welche IP addressen kann man nun fuer sein privates internes netzwerk
verwenden?

in der internet "norm" (die normen im internet sind sogenannte RFC
documente) RFC1597 besagt dass man folgende bereiche benutzen darf:


10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255

damit waere z.b.: 192.168.123.0 mit netmask 255.255.255.0
ein erlaubtes privates netz.

solche privaten netze werden im oeffentlichen internetz NICHT geroutet.
d.h. die packete gehen verloren.. (und selbst wenn sie doch ans ziel
kommen wuerden: da der empfaenger keine ahnung hat woher sie kommen kann
man doch keine verbindung aufbauen.. weil er die packete nicht beantworten
kann...)

damit also jemand der so eine private IP addresse in irgend einem firmen
netzwerk hat dennoch das netz benuetzen kann gibt es jetzt 2
moeglichkeiten:

* entweder man surft nur ueber einen proxy-server der zur einen haelfte
im internen netz steht und zur anderen haelfte eine echte addresse
hat.. und wickelt auch seinen email verkehr ueber einen mailserver ab
der auf der einen seite vom internen netz erreichbar ist und der auf
der anderen seite eine verbindung zum weltweiten netz hat..

oder:

* man hat eine router der "IP masquerading" (auch NAT - network address
translation) beherscht. dieser router kann die IP packete die durch ihn
hindurchgeroutet werden "umschreiben". und zwar verpasst er diesen
packeten seine eigene echte absender IP addresse. damit gehen die
antwortpackte auch wieder an ihn selbst.. und diese schreibt er
ebenfalls wieder um und schickt sie dann an die interne addresse.

sitzt man also hinter so einem maquerading so kann man mehr oder
weniger transparent im netz surfen obwohl die eigenen packte eigentlich
gar nicht ins netz duerfen...

wie wir so einen maquerading gateway selbst bauen lernen wir aber ein
andermal.

noch ein paar worte zum routing: die routing tabelen grosser router die
zwischen den einzelenen providern "vermitteln" haben z.t einige 10000 bis
100000 eintraege. diese werden natuerlich nicht haendisch verwaltet..
(weil man ja andauernd routen umlegen muesste um z.b. an einer defekten
leitung vorbeizurouten oder aehnliches). diese routing tabelen werden von
eigen programmen (routing daemons) gegenseitig austauschen... die
protokolle mit denen sich diese routing daemons unterhalten nennt man
"routing protokolle" und den vorgang (im gegensatz zum oben gelernten
statischen routen) "dynamisches routing".

das lernen wir aber erst VIEL spaeter...


EXERCISES:

* schau dir deine eigene routing table an. (mit route und netstat)

* wenn du mindestens 3 rechner hast: mach ein kleines netzwerk mit 3
segmenten und einen router in der mitte. versuche kontakt zwischen den 2
aeusseren rechnern herzustellen.


_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06246
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1154
Comments: 0