[linux-l] ping funktioniert nicht

Steffen Dettmer steffen at dett.de
So Dez 7 14:40:18 CET 2003


* Peter Koppatz wrote on Sat, Dec 06, 2003 at 23:01 +0100:
> Ah jetzt dämmerts: Werden die Pakete durchgereicht ohne sie zu manipulieren, 
> dann trägt der Rechner den Titel: Router
> Wenn aber mit den Paketen ein wenig voodoo gemacht wird, ist es ein Gateway.
> Hab ich das jetzt ein für allemal kapiert?

Na, so in etwa. Nach ISO ist ein Router ein Schicht-3 Dienst. Er
kennt also das Netzwerkprotokoll (IP) und kann hier und darunter
was ändern, also fragmentieren, de-fragmentieren, NAT machen und
vor allem an die nächste Station per Ethernet senden (also neues
Ethernetframe bauen). Ein Router weiß also, daß er ein IP Frame
hat, aber nicht, ob das ein HTTP Request oder eine DNS Anfrage
ist. Es interessiert ihn nicht.

Ein Gateway ist ein Schicht-7 Dienst. Er kennt also das
Applikationsprotokoll. Ein Gateway weiß also, daß hier ein HTTP
Request ist, und kann hier was schrauben. Beispielsweise
Zugriffsbeschränkungen hinzufügen, oder Anfragen aus einem Cache
beantworten (beispiel: squid). Ein klassisches Gateway wird
allerdings dazu benutzt, um Daten zwischen verschiedenen
Netzwerkprotokollen auszutauschen, also beispielsweise wenn ein
Client mit einem propritären, auf X.25 aufbauendem Protokoll eine
TCP Datenbank ansprechen möchte.

Nun zu den Verwirrungen. Ein Gateway im "Internet-Sinn" wird
meist Proxy genannt, ein Vertrauter. Der holt in der Regel Daten,
beispielsweise holt ein HTTP-Proxy Webseiten von einem Server,
vielleicht cacht er die auch. Ein Proxy ist also ein spezielles
Gateway, und hier hat man plötzlich oft "zufällig" auf beiden
Seiten das gleiche Netzwerkprotokoll (eben IP), obwohl man einen
HTTP-Proxy natürlich auch über einen Unix-Domain-Socket oder ein
nasses Handtuch ansprechen könnte, der entfernte Webserver würde
davon ja nix merken, er sieht nur IP.

Die weitere Verwirrung ist, daß Router manchmal Gateways genannt
werden, besonders der Begriff "Standardgateway" für den
Default-Router ist sehr gebräuchlich (aber nach ISO falsch).
Ältere "/sbin/route" sprachen auch von Gateways - inzwischen heißt
es hier richtig "Router". 

> >   Andere Linuxe benutzten ipchains
> 
> Das will ich nicht mehr anfangen, weil es ja von iptables abgelöst werden 
> soll, oder gibt es noch einen anderen Grund es zu benutzen, außer "Nerver 
> touch a runnig system"?

Der Vertipper in "nerver" ist lustig :-) Ich würde auch Neues
eher auf tables als auf chains aufbauen.

Soviel zu meinem Halbwissen.

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.




Mehr Informationen über die Mailingliste linux-l