Gateway setzen

lunatikz

Cadet 3rd Year
Registriert
Apr. 2010
Beiträge
60
Hallo,

Ich hab ein Problem mit dem Setzen eines Gateways.
Zunächst zum Setup:
Ich hab 2 VMs (debian) die mit VirtualBox laufen.
Eine VM ist dabei ein Client (mit 1 Netzwerkkarte, per V-Box konfiguriert auf internes Netzwerk)
Die andere VM is dabei ein Server (Mit 2 Netzwerkkarten, eine konfig. auf internes Netzwerk, die andere auf NAT konfiguriert, damit ich dort Zugriff aufs Inet habe)
Im Clienten als auch Server hab ich den Netzwerkkarten statische ips gegeben, und zusätzlich beim Clienten die IP des Servers als Gateway angegeben.
So, ich kann den Server vom Clienten aus problemlos pingen, (Prüfung erfolgt mittels wireshark auf dem server), jedoch wenn ich eine simple Browseranfrage (Aufruf beliebiger URL im Browser im Client) wird nicht der Gateway angesteuert, sondern es passiert einfach nichts, und der browser meldet irgendwann, dass die URL nicht aufgelöst werden kann.
Könnte es daran liegen, dass mein Server keine DNS-Server am laufen hat. Oder hab ich irgendeine wichtige Einstellung vergessen ..

Hintergrund: Es geht an sich darum, dass ich 2 vms per eigenes Netzwerk verbinden soll, und auf dem Server einen transparenten Proxy einrichten soll (squid). Jedoch erreiche ich per browseranfrage nicht den server...

Vielen Dank für jedwede Hilfe im Vorraus.

mfg,
lunatikz
 
In der /etc/resolv.conf muss noch ein DNS-Server konfiguriert werden. Der Eintrag "nameserver 8.8.8.8" sollte es schon tun.
 
du hast die frage selbst schon beantwortet
Könnte es daran liegen, dass mein Server keine DNS-Server am laufen hat.
ohne namensauflösung kein um setzen der url , also kein internet
 
muss denn der "router" zwingend einen dns server beherbergen? normalerweise sollte es doch mit einer richtig gesetzten route zum Netz, wo ein DNS Server steht (DSL Router z.b.) reichen
 
@xCtrl
sagen wir mal so, ich habe es versucht. aber das scheint ncht korrent zu funktionieren.
Also ich hab bei den Netzwerk einstellungen folgendes festgelegt. (Client)
Verbindungsart: manuell
IP: 192.168.0.13
Subnet: 24
GW: 192.168.0.14

Routen hatte ich hinzugefügt, aber die werden nicht übernommen, also nicht gespeichert.
als route hatte ich
IP: 0.0.0.0
SUbnet: 24
GW: 192.168.0.14

Dies wird, as said, aber nicht übernommen, sobald ich alles bestätige und die verbindung wieder editieren möchte, existiert meine zuvor definierte route nicht mehr.
Ergänzung ()

@miepel danke ich probier das mal gleich
 
0.0.0.0? nöö... Du gibtst praktisch als Gateway deine VM an, die als Router fungiert. Diese wiederrum leitet ja, dank zweiter NIC den Verkehr weiter ins eigendliche Netzwerk, wo dann dein eigendlicher dns und gateway ins Internet steht

Ergo musst Du die Route am Client setzen

Edit: Die Router VM kennt ja beide netze, da sie ja pro netz einen seperaten NIC hat. Dein Client wiederrum kann mit dem anderen netz nix anfangen - kennt es sozusagen nicht. Erst durch eine Router lernen sich die beiden kennen
 
@miepel: habe es probiert, nach dem neustarten der beiden interfaces aufm server, wird der eintrag wieder zurück geändert (bei mir jetzt: 192.168.1.1)
Ergänzung ()

@xCtrl:

0.0.0.0? nöö...

Ehm ich hab die routen auf dem client nur festgelegt, nicht aufn server.
als gateway hab ich sozusagen die IP des servers (welcher auch eine VM ist) verwendet.
und die 0.0.0.0 gibt doch nur dass saämtlicher ausgehender verkehr an den gw weitergeleitet werden soll, oder täusche ich mich da ?
 
Zuletzt bearbeitet:
du musst die ip des netzes eingeben, wo du hin möchtest... als gateway gibst du den nic von der vm an, der in dem gleichen netz ist, wie die client-vm

Edit: liste mal die IP Bereiche von deinem Netz, wo der client drin ist und das netz, wo du hin routen willst, auf
 
Zuletzt bearbeitet:
du musst die ip des netzes eingeben, wo du hin möchtest... als gateway gibst du den nic von der vm an, der in dem gleichen netz ist, wie die client-vm

ich nehme mal an, du meinst damit die routen beim client..
dies geht ja nicht, da
Dies wird, as said, aber nicht übernommen, sobald ich alles bestätige und die verbindung wieder editieren möchte, existiert meine zuvor definierte route nicht mehr.

um weitere Missverständnisse vorzubeugen, was genau meinst du mit NIC ? die mac_adresse ? falls nicht, wie erhalte ich den NIC von der entsprechenden Netzwerkarte im Server ?

@edit:

Client VM :
IP: 192.168.0.13\24
GW: 192.168.0.14

Server VM:
Netzwerkkarte 1:
IP: 192.168.0.14\24

Netzwerkkarte 2: (verbunden mit Host-System via NAT, per DHCP konfig.)
IP: 10.0.2.15\24
Vorgaberoute: 10.0.2.2
Primary DNS: 192.168.1.1 (mein "Hardware Router")
 
Zuletzt bearbeitet:
lunatikz schrieb:
@xCtrl
sagen wir mal so, ich habe es versucht. aber das scheint ncht korrent zu funktionieren.
Also ich hab bei den Netzwerk einstellungen folgendes festgelegt. (Client)
Verbindungsart: manuell
IP: 192.168.0.13
Subnet: 24
GW: 192.168.0.14

Routen hatte ich hinzugefügt, aber die werden nicht übernommen, also nicht gespeichert.
als route hatte ich
IP: 0.0.0.0
SUbnet: 24
GW: 192.168.0.14

Dies wird, as said, aber nicht übernommen, sobald ich alles bestätige und die verbindung wieder editieren möchte, existiert meine zuvor definierte route nicht mehr.
Ergänzung ()

@miepel danke ich probier das mal gleich

1. Stell sicher, dass kein Network-Manager installiert ist. Der überschreibt gerne deine Netzwerkeinstellungen.
2. Ein Gateway hat immer die Subnetzmaske 0. Mit einer 24er Netzmaske würdest du nur die Adressen von 0.0.0.1 bis 0.0.0.254 erreichen können.
3. Debian behält die Routen, die du über die Kommandozeile eingibt nur bis zum nächsten Neustart. Du solltest du Routen also irgendwo in einer config-Datei festnageln.
 
1. Stell sicher, dass kein Network-Manager installiert ist. Der überschreibt gerne deine Netzwerkeinstellungen.

den musste ich extra installieren, damit ich überhaupt irgendwelche Netzwerkeinstellungen per GUI vornehmen konnte, bin kein linux spezialist, und kenne daher auch so gut wie gar nicht die genauen standorte der linux konfig datein, und allgemein alles den ganzen terminal kram.. ich weiss in der hinsicht, hab ich reichlich nachholbedarf ;)

2. Ein Gateway hat immer die Subnetzmaske 0. Mit einer 24er Netzmaske würdest du nur die Adressen von 0.0.0.1 bis 0.0.0.254 erreichen können.

d.h. beim Server die SUbnet einstellung auf 0 ändern ?
 
lol, ok, das hätt ich mir dann auch denken können ^^
aber wie meinst du das mit netzwerkkarte angeben, ich gebe doch die ip der netzwerkkarte der server vm an, die im gleichen netz wie die client vm ist. Oder meinst du genau das ? :D
 
Also um das ganze nochmal zusammen zu fassen, ich bin leider nicht weiter gekommen ;)
Hier nochmal nen evtl. recht unübersichtliches aber recht aussagekräftiges screenshot..
wie gesagt, die routen lassen sich irgendwie nicht definieren, die verschwinden immer nachm bestätigen des einstellens. auch muss ich das root pw beim bestätigen der routen komischerweise nicht eingeben...

zu den fehlenden verbindungsinfos vom server bei eth1:
ip addy: 192.168.0.14
Broadcast: 192.168.0.255
Sub: 255.255.255.

@miepel:
wenn ich das subnetz beim server (eth1) auf 0 (bzw. 0.0.0.0) ändern möchte, wird der anwenden button "deaktiviert"

ach und wie gesagt, das pingen hat funktioniert! und scannen via nmap im bereich hat den server bzw. den clienten gefunden.
 

Anhänge

  • Screenshot-1_server.png
    Screenshot-1_server.png
    178,3 KB · Aufrufe: 110
  • Screenshot_client.png
    Screenshot_client.png
    171,7 KB · Aufrufe: 102
lunatikz schrieb:
d.h. beim Server die SUbnet einstellung auf 0 ändern ?

Es geht nur um die Gateway-Route auf deinem Client. Die 24er Subnetzmaske für dein LAN ist gut gewählt. Die Subnetzmaske gibt nur an, wie groß das Zielnetz ist:
0 -> volle 32Bit Hostanteil also 4 Mrd. Adressen im Netz (alle IPv4 Adressen im Internet)
24 -> 8Bit Hostanteil. Also ein Netz mit 256 Adressen.
32 -> ein einzelner Rechner

Wenn ein Rechner ein Paket senden möchte und den Next-Hop bestimmen will, geht er seine Routingtable durch. Dabei gleicht er die Zieladresse des Pakets mit den Zielnetzen in seiner Routingtable ab. Dabei haben Einträge mit hoher Subnetzmaske mehr Priorität als Einträge mit geringer Subnetzmaske (32 > 24 > 0). Die Gateway-Route sollte also immer zum Schluss geprüft werden.

Es geht beim Routing also nur darum das Paket zu einem Rechner zu schicken, der weiß wie es zum Zielrechner kommt. Dabei muss jeder Router zwischen Sender und Empfänger jedes Paket mit der jeweiligen lokalen Routingtable abgleichen.
 
32 ist nicht richtig. 2^0 ist zwar eins, aber Netzadresse und Broadcastadresse kommen ja noch hinzu. Das kleinste wäre /30 mit 4 Adressen, davon 2 nutzbar.
 
Es geht nur um die Gateway-Route auf deinem Client. Die 24er Subnetzmaske für dein LAN ist gut gewählt. Die Subnetzmaske gibt nur an, wie groß das Zielnetz ist:

was mich wieder zu folgendem problem führt:

wie gesagt, die routen lassen sich irgendwie nicht definieren, die verschwinden immer nachm bestätigen des einstellens. auch muss ich das root pw beim bestätigen der routen komischerweise nicht eingeben...

mit dem routen der pakete dachte ich mir das eigentlich so, dass der Client eine Webanfrage per Port 80 an den gateway schickt, welcher der server ist, dieser server leitet das paket mittels iptables regel auf port 3128 um. auf port 3128 lauscht squid (proxy) und verarbeitet das ganze :)

ich bin jetzt hier beim server (siehe anhang)

auch bin ich mir nicht sicher, was die gateway einstellung beim server eth1 betrifft, ich pointe da auf meinen richtigen hw- router, und bin mir nicht sicher ob das richtig ist, weil ich ja qausi auf der VM-ebene bin..
Ergänzung ()

andere Frage: kann man denn den network manager daran hindern die /etc/resolv.conf immer automatisch anzupassen ?
per rechte setzung oder so ?
oder wär das keine gute idee, dem system schreibzugriff zu verweigern ?
--> hat sich erledigt, konnte das Überschreiben verhindern, ns ist auf 8.8.8.8 gesetzt, hat aber leider auch nichts gebracht .. die pakete kommen einfach nicht beim eth1 vom server an
 

Anhänge

  • Screenshot-1_server.png
    Screenshot-1_server.png
    163 KB · Aufrufe: 124
Zuletzt bearbeitet:
shadow_one schrieb:
32 ist nicht richtig. 2^0 ist zwar eins, aber Netzadresse und Broadcastadresse kommen ja noch hinzu. Das kleinste wäre /30 mit 4 Adressen, davon 2 nutzbar.

Das kann ich nicht auf mich sitzen lassen :)

Code:
user@geraet:~$ ip route add 10.20.1.1/32 via 172.27.1.2
user@geraet:~$ ip r
default via 172.27.1.1 dev eth0 
10.20.1.1 via 172.27.1.2 dev eth0

Linux betrachtet das als Host-Route. Bei Windows ist das übrigens die einzige Möglichkeit eine Host-Route zu erstellen:

Code:
route add 10.20.1.1 mask 255.255.255.255 172.27.1.2

Du hast natürlich recht, dass die 32 kein Netz mit nutzbaren Adressen ergeben würde. Aber die Betriebssysteme interpretieren es eben anders.
 
Zurück
Oben