Routing zwischen 2 NICs

uzumakinaruto

uzumakinaruto

Tripel-As
Hi,

ich habe jetzt in meinem Server eine 2. NIC eingebaut und das Netzwerk neu strukturiert.

Clients -> Lan-Switch
Server -> Lan-Switch (eth0 - 192.168.0.1)
Server -> DSL-Router (eth1 - 192.168.0.2)
DSL-Router -> Internet

jetzt möchte ich das die clients den server als router benutzen. (dhcp ist schon konfiguriert dafür)

aber irgendwie muss ich jetzt dem server sagen das alles was auf eth0 ankommt und ins inet will über eth1 wieder rausgeht.

ip_forward ist schon aktiviert .. aber das ist ja nicht alles

route zeigt mit beiden nics auf den dsl-router. ich denke mal das hier das problem liegt

danke im voraus

PS: google hat nicht geholfen ;)
 
Du wirst mittels 'route' einfach eine Route setzen müssen. Alternativ machst du das Forwarding über iptables.
 
Entweder Route legen, wenn denn verschiedene Netzte vorliegen zwischen Client und Server oder eben nur die entsprechenden Default-Gateways eintragen.
Am Client ist das DG der Server; am Server der DSL-Router.
 
wie ihr oben sehen könnt habe ich aber das gleiche ip netz. ist also eigentlich keine route im eigentlichen sinne.

einfach umstellen kann ich das auch nicht, da am dsl-router über wds noch weitere leute ins netzwerk mit reinkommen.
 
Wie bereits gesagt, sollte das problemlos mittels 'route' zu lösen sein. Ich lese jetzt aber nicht für dich die Manpage für die genaue Syntax. Im groben dürfte das so aussehen:

route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0

oder so in der Art. Für mehr siehe 'man route'.
 
ich versuche das jetzt noch einmal wiederzugeben um sicherzugehen das ich es richtig verstanden habe.

ich kann mein ziel mit 2 route befehlen erreichen (hin und rückweg)

eth0 = mit dem lan-switch verbunden um den clients den weg ins internet zu ermöglichen.
eth1 = verbindung zum dsl router um eine verbindung ins internet im lan bereitzustellen

route add -host 192.168.0.2 netmask 255.255.255.0 dev eth0 (weiterleitung der pakete von eth0 auf eth1 [client zum internet])
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth1 (weiterleitung der pakete von eth1 auf eth0 [internet zu den clients])

oder habe ich da jetzt etwas übersehen oder gar völlig falsch verstanden?
 
Die Rück-Route (Internet zu den Clients) sollte nicht notwendig sein, da ja das IP-Forwarding dafür sorgt, dass die Clients die Antworten korrekt erhalten. Die Rück-Route wäre nur notwendig, wenn die Clients Dienste nach außen anbieten sollen. Ausserdem muss natürlich der Default-Gateway für eth1 gesetzt sein, so dass Pakete, die an eth1 gereicht werden auch von dort weiter zum Router gehen können. Du kannst es dir aber auch einfach machen und einfach mal mein Skript aus dem Habo-Wiki probieren. ;) Das löst das Problem mittels iptables wesentlich einfacher.
 
ich bekomm das einfach nicht hin .. grr und ich habe kein script im habo wiki gefunden. der iptables-beitrag wird zum "originalen" wiki eintrag weitergeleitet.

ich habe gedacht das kann ich ohne weiteres realisieren, aber dafür werde ich wohl genauere hilfe brauchen.

Code:
192.168.0.1     *               255.255.255.0   U     0      0        0 eth0
192.168.0.2     *               255.255.255.0   U     0      0        0 eth1
default         192.168.0.254   0.0.0.0         UG    0      0        0 eth1
default         192.168.0.254   0.0.0.0         UG    0      0        0 eth0

das hat debian schon von alleine eingetragen.
damit ist keine verbindung möglich.

nachdem ich mir die route befehlsregeln angeguckt habe, habe ich dem server gesagt dass dar host(dsl router) 192.168.0.254 über eth1 erreichbar ist

Code:
192.168.0.254   *               255.255.255.255 UH    0      0        0 eth1

ich sehe das problem darin, das alle im internet von wirklichen 2 unterschiedlichen logischen ip netzen reden, die ich aber nicht habe.

weshalb ICH das nicht genauso umsetzen will ist, das meine nachbarn über WDS kontakt zu meinem dsl-router aufnehmen und dann von meinem server per dhcp eine adresse bekommen. es wird auch mein dns server verwendet.

also kann ich meinem dsl-router und meiner 2. NIC nicht einfach ein 192.168.1.0/24 netz geben ohne das es zu problemen kommt.

oder übersehe ich da jetzt noch etwas und es wäre an sich doch möglich??

http://www.mengel-web.de/img/netzwerk.png
 
Vergiss das mal mit den route-Befehlen, es ist ebenso egal ob deine IP's von eth0 und eth1 im gleichen Netzwerksegment liegen. Es zählt ausschließlich die Tatsache das eth1 Zugriff zum Internet hat. Ziel ist ja nur das du den ein- und ausgehenden Verkehr von eth0 über eth1 bereitstellen willst.

Das geht damit (minimales Gateway Script) für OpenSuSE (als root ausführen):
ACHTUNG! Pfad zu iptables kann von Distro zu Distro unterschiedlich sein.
Als root 'which iptables' ausführen und prüfen!

Code:
#!/bin/bash

IPTABLES=/usr/sbin/iptables

#Netzwerk-Device zum Internet
DEV_INET=eth1

#Netzwerk-Device zum LAN
DEV_LAN=eth0

case "$1" in
start)
		echo "Starting Gateway"

		### Routing ###
		echo "setting up routing"
		echo 1 > /proc/sys/net/ipv4/ip_forward
		$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
		$IPTABLES -t nat -A POSTROUTING -o $DEV_INET -j MASQUERADE
		;;
stop)
		echo "flushing all rules"
		$IPTABLES -F
		$IPTABLES -X
		$IPTABLES -t nat -F
		$IPTABLES -t nat -X
		$IPTABLES -t mangle -F
		$IPTABLES -t mangle -X
		$IPTABLES -P INPUT ACCEPT
		$IPTABLES -P FORWARD ACCEPT
		$IPTABLES -P OUTPUT ACCEPT
		echo "disabling routing"
		echo 0 > /proc/sys/net/ipv4/ip_forward
		;;
restart)
		$0 stop
		$0 start
		;;
*)
		echo "Usage: `basename $0` {start|stop|restart}" >&2
		exit 64
		;;
esac

exit 0

Dein Rechner muss nun auf den Clients als Default-GW bekannt gemacht werden:
Falls der Client ein Linux-Rechner ist:
Code:
route add default gw 192.168.0.1 eth0
Unter Windows geht das in den TCP/IP-Einstellungen der entsprechenden Netzwerkkarte

Da dein Rechner weder als DHCP- noch DNS- Server fungiert, müssen die Clients ihre IP's selbst vergeben und eintragen. Ferner muss auch darauf geachtet werden das ein gültiger DNS-Server hinterlegt ist. Entweder ein bereits existierenden aus deinem internen LAN oder einen externen.

Sind all diese Vorraussetzungen erfüllt, klappt das mit dem Internet-Zugriff wunderbar.
Habe ich selbst getestet und so im Einsatz.
 
Zuletzt bearbeitet:
danke .. hat geklappt :-D

ich habe hier einen dhcp und dns server im einsatz ;)
 

Ähnliche Themen

Router routing mit mehreren Netzwerken

CentOS 7: Falsche Metric bei regelbasiertem Routing nach Server-Reboot

Routing 2 Subnetze (WLAN und ETH)

Routing mehrere Netzwerkkarten

Debian Routing Problem

Zurück
Oben