Proxy - Server

 
 

Definition eines Proxy-Servers

Einsatzgründe eines Proxy-Servers

Funktion eines Proxy-Servers

Implementierungen

Links

 
 

Definition eines Proxy-Servers

 
 
Wenn Sie mit einem WWW-Browser wie Netscape eine Seite laden, die auf einem Server in Amerika liegt, bedeutet dies normalerweise, daß das Netscape-Programm eine TCP-Verbindung über das Internet zu dem Server in Amerika aufbaut und von dort die Daten empfängt. Wird dieser Browser für die Verwendung eines Proxy-Servers konfiguriert, baut das Netscape-Programm eine Verbindung zum Proxy-Server auf, sagt diesem die Adresse (URL) der gewünschten Seite in Amerika und der Proxy-Server holt die Daten über das Internet vom Original-Server und reicht sie an den Browser - den Client - durch. Ein Proxy-Server erledigt also Übertragungen aus dem Internet (exakter gesagt: über spezielle Internet-Anwendungsprotokolle wie im wesentlichen HTTP und ggf. Gopher und FTP, denen die Dokumentadresse beginnend mit http:, gopher: bzw. ftp: entsprechen) auf Anforderung von Clients, die in der Regel im gleichen lokalen Netz liegen. 

Ist ein Proxy-Server mit einem Cache konfiguriert - das ist dann der Proxy-Caching-Server -. speichert er die empfangenen Dokumente zusätzlich in einem lokalen Plattenbereich und kann die nächste Anforderung eines lokal schon gespeicherten Dokumentes befriedigen, ohne die Daten nochmals über das konzeptionell und oft auch real langsamere Internet empfangen zu müssen. 
 

Um nicht veraltete lokale Kopien aus dem Cache an Clients zu geben, wird er u.U. vorher bei dem Original-Server anfragen, ob sich das Dokument gegenüber dem letzten nachgehaltenen Modifizierungsdatum geändert hat; Verfahren für eine solche Nachfrage kennt allerdings nur das Hypertext Transport Protocol (HTTP). Diese sichert Aktualität bei gleichzeitiger Reduzierung der Übertragungszeiten.

Einsatzgründe eines Proxy-Servers

  • Zentraler Internetzugang
  • Performancegewinn
  • Sicherheit
 

Folgende Gründe sprechen für die Verwendung eines Proxy-Servers: 

 
  1. Die Clients haben selbst keine Verbindung zum Internet, wohl aber der Proxy-Server. Dies ist der Fall bei vielen z.B. Firmennetzen, die aus Sicherheitsgründen nach außen etwa über einen Firewall-Rechner abgeschottet sind (bei Firmen meist zum Schutz vor der Konkurrenz, die Betriebsgeheimnisse ausspionieren könnte, bei unserer Verwaltung zum Schutz unserer Daten), aber auch bei den öffentlichen PC's im Universitätsrechenzentrum. Typischerweise ist dann die Proxy-Server-Software auf der Firewall installiert; dies muß aber nicht so sein.
  2. Der Performance-Gewinn durch den Cache - sowohl bezogen auf reduzierte Internet-Übertragungen, als auch auf u.U. schnelleren Zugriff insbesondere auf häufig verlangte auswärtige Dokumente.
Heterogene Architektur des WWW 
 

Funktion eines Proxy-Servers

  • Firewall
  • Masquerading
  • Cache

Proxy-Server:

Der grundlegende Zwecks eine Proxies ist es, Web-Browsern von Maschinen innerhalb eines Firewalls Zugang zu Diensten des Internet zu garantieren.  

Der Proxy läuft typischer Weise auf der Firewall-Maschine. Er wartet auf die Anfragen der Maschinen innerhalb des Firewall (Clients), sendet diese weiter an die entsprechenden entfernten (remote) Server außerhalb des Firewall, empfängt die Ergebnisse der Anfragen (z.B. ein HTTP-Dokument, eine Datei einer FTP-Anfrage etc.) und sendet diese an die Clients zurück (siehe Abb. 1). 

Abb. 1 (Proxy-Server als Diensterbringer) 

Nach der oben beschriebenen Vorgehensweise würde also der Proxy bei jeder Anfrage den gewünschten entfernten Server kontaktieren und das Ergebnis an den Client, selbst wenn diese Anfrage schon kurz zuvor von einem anderen Client gestellt wurde und sich am Ergebnis der Anfrage nichts geändert hat.  

Nun hat man sich gefragt: "Wieso eigentlich ? Kann man den Proxy nicht so modifizieren, daß er sämtliche Ergebnisse einer Anfrage seiner Clients cached (z.B. auf einer Festplatte) und bei nachfolgenden Anfragen seiner Clients erst in diesem Cache nachsieht, und beim Vorhandensein des Ergebnisse sofort diese seinem Client zurückliefert und gar nicht erst den entfernten Server kontaktiert ?" 
 

Masquerading:

Mit IP-Masquerading ist es möglich, ein komplettes Firmennetz hinter einer einzigen IP-Adresse zu verstecken. Der Bastionsrechner (Masquerading-Host) gibt alle Anfragen der Firmenrechner dem Internet gegenüber als seine eigenen Anfragen aus und leitet die Antworten auf »seine« Anfragen an die echten Fragesteller im Firmennetz weiter. Für die Rechner im Internet erscheint es so, als wenn alle Datenkommunikation vom Masquerading-Rechner ausgeht. Die hinter dem Masquerading-Rechner befindlichen internen Firmenrechner sind unsichtbar. 

IP-Masquerading hat folgende Vorteile:

  • Die Firmenrechner können IP-Adressen im verbotenen Bereich bekommen. Dies spart die Kosten der Registrierung von offiziellen IP-Adressen. Damit ist eine zusätzliche Sicherheit verbunden: Selbst wenn das Masquerading des Bastions-Rechners ausfällt, werden IP-Pakete aus dem Internet trotzdem nicht ins interne Firmennetz gelangen, da kein Rechner weiß, daß er bei IP-Paketen mit einer verbotenen IP ans Ziel den Bastions-Rechner als Gateway-Rechner verwenden muß.
  • Eine bestehende IP-Infrastruktur braucht nicht geändert zu werden. Die Firmenrechner können jede beliebige IP bekommen; ihre wahre IP gelangt nicht ins Internet. Diese Methode ist jedoch nicht zu empfehlen, da es zu Kollisionen kommt, wenn ein interner Rechner Daten von einem externen Rechner mit offizieller IP anfordern möchte, die externe IP jedoch gleichzeitig im internen Firmennetz vergeben wurde.
  • Vom Internet aus kann nicht auf die Firmenrechner zugegriffen werden.
  • Beim Provider braucht nur eine einzige IP reserviert zu werden.

Proxy-Caching-Server:

 Die Antwort darauf ist der Proxy-Cache. Das genutzte Prinzip ist einfach: Speichere die empfangenen Dateien als lokale Kopie für den weiteren Gebrauch (siehe Abb. 2), sodaß der entfernete Server bei der nächsten Anfrage eines Proxy-Cache-Clients für diese Datei nicht mehr kontaktiert werden muß (siehe Abb. 3). 
Abb. 2 (Diensterbringung: Ergebnis der Anfrage befindet sich nicht im Cache) 
Abb. 3 (Diensterbringung: Ergebnis der Anfrage befindet sich bereits im Cache)

Das Cachen durch den Proxy-Server ist bedeutend effizienter, als durch jeden Client (z.B. netscape browser). Es spart Plattenplatz, da nur eine einzige Kopie des Anfrageergebnisses (i.w. Datei) gecached wird. Ebenso erlaubt dies ein effizienteres Caching von mehrfach, durch viele Clients referenzierten Dateien, da der Cache-Manager eine Vorhersage treffen kann, welche Dateien es wert sind, länger gecached zu werden, und welche nicht. Ein Proxy-Cache würde in der Lage sein, ein "Look ahead" und andere vorausschauende Algorithmen viel effizienter als seine Clients zu nutzen, da er viele Clienten und somit eine bedeutend gröere Grundlage (sample size) hat, auf der seine Statistiken bezüglich Cache-Verwaltung basieren.  

Ebenso macht es das Caching möglich, Internetdienste von Servern in Anspruch zu nehmen, die derzeit gar nicht erreichbar | online | busy sind, sogar wenn der Netzwerkzugang nach außen gestört ist, solange der Proxy selbst erreichbar und das Ergebnis der Anfrage bereits in seinem Cache ist. In gewisser Weise erreicht man damit auch eine verbesserte Qualität des Dienstes zu entfernten Netzwerkresourcen, wie z.B. sehr ausgelasteten FTP/Gopher Server, die oft nicht erreichbar sind oder den Dienst zwecks Überlastung verweigern. Desweiteren kann man einen Cache konstruieren, um die gecacheten Dateien für Demonstrationen an Orten schnell wiederzugeben, die keine oder nur eine sehr langsame Verbindung zu den Servern mit den Original-Dokumenten haben.  

Somit führt die Nutzung eines Proxy-Servers nicht nur zu einer höheren Geschwindigkeit der Diensterbringung und somit in der Regel auch zu geringeren Kosten, sondern ermöglicht auch eine geringere Belastung der Netzwerkresourcen zu den entfernten Servern.

Implementierungen

  • Apache Web-Server
  • Squid Proxy-Caching-Server
  • MS-Proxy-Server

Apache und Squid

Der Apache-Proxy eignet sich für eine kleine bis mittelgroße Nutzergruppe. Falls man plant, einen Proxy respektive Proxy-Cache in größerem Umfang einzusetzen, sollte man den Apache-Proxy eher links liegen lassen und einen Blick auf den als Freeware erhältlichen Squid werfen. Squid hat eine um einiges höhere Performance und ist insbesondere prädestiniert für den Einsatz in einem Cache-Netzwerk. Außerdem eignet er sich besser für sehr große Caches, die im Bereich von einigen GByte liegen, denn hier nimmt die Performance des Apache-Proxy spürbar ab.

Links

Proxy-Server

http://selene.rz.uni-duesseldorf.de/WWW/Proxy/Artikel.shtml 
http://www.uni-karlsruhe.de/Betrieb/Proxy 
http://irb.cs.uni-magdeburg.de/~elkner/proxy/Knowledge/german.shtml 
http://www.stz.org/ips/inter-net-work/forum9_3.html 

Apache und Squid

http://www.wi.hs-wismar.de/~zimmerma/diplom/ 
 
 
Matthias Boll, Fulda den 25.06.98