• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Bridge oder Routing?

Hi!

Ich hab ein kleines Problem:
Ich hab hier ein Netzwerk, über das mehrere Rechner ins Internet gehen. (Router ist ein EISFAIR)
Aus räumlichen Gründen habe ich einen SuSE 9.1 über WLAN an dieses Netz angebunden. Jetzt möchte ich einen weiteren Rechner anbinden. Der steht direkt neben dem SuSE rechner. Nun das Problem:
Ich möchte keine neue WLAN-Karte kaufen müssen, also verbinde ich die beiden Rechner einfach über ein Cross-Over Kabel.
(Normale Netzwerk-Karten haben beide)

Die NIC im SuSE-Rechner ist eth0. Die WLAN-Karte ist ra0.
Der neue Rechner braucht nicht aus dem kompletten Netz erreichbar sein.
(Wenn ich übers Netz auf ihn zugreifen will [SSH usw...], dann passiert das eh über meinen SuSE-Rechner.)
Ich benötige nur Zugriff auf das Internet von dem neuen Rechner aus.
Von dem SuSE-Rechner muss ich aber auch weiterhin vollen Zugriff auf das Netzwerk haben.

Wie mache ich das am besten?
Ist es angebracht eine Bridge zu konfigurieren, oder geht es mit Routing?
Und wenn ja, wie geht es am einfachsten?

MfG

Arne
 

Martin Breidenbach

Ultimate Guru
Ich male mal ein Bild von der Sache. Den neuen Rechner nenne ich hier 'Client':

SuSE --- WLAN --- Router --- Internet
I
I
I
Client

Bridging ist die eine Möglichkeit, Routing die andere. Bei Routing muß ein wenig konfiguriert werden:

1. Variante - ohne Masquerading
Zwischen SuSE und Client wird ein eigenes Subnetz aufgebaut.
Bei SuSE wird Routing eingeschaltet.
Im Router wird eine statische Route zum 'Client-Netz' eingetragen
Beim Client wird SuSE als Default-Gateway eingetragen

2. Variante - mit Masquerading
Zwischen SuSE und Client wird ein eigenes Subnetz aufgebaut.
Bei SuSE wird Routing eingeschaltet.
Bei SuSE wird Masquerading aktiviert.
Beim Client wird SuSE als Default-Gateway eingetragen

bei Variante 2 läßt sich 'Client' nur von 'SuSE' ansprechen. Dafür muß im Router nichts geändert werden.
 
A

Anonymous

Gast
Hallo Martin,

was soll das Masquerading für eine Funktion haben?
 
A

Anonymous

Gast
Hallo Oc2pus,

die Funktion von Masquerading ist mir durchaus geläufig, ich seh hier nur den Sinn nicht. Routing erfüllt genau die Funktion die er benötigt.
 

oc2pus

Ultimate Guru
cybermailer schrieb:
Routing erfüllt genau die Funktion die er benötigt.

Du meinst mit "Routing" jetzt den Router. Also Variante 1 von Martin.

Für Variante 2 braucht er das Masquerading, sonst kann der "Client" nicht via Router ins Internet. Wie soll sonst der "Router" zurückrouten zum "Client"? Der "Client" ist dem Router nicht bekannt, nur "SuSE". Und dort wird letzendlich bestimmt wer der echte "Originator" eines Paketes war.
 
A

Anonymous

Gast
Ich glaub wir reden da aneinander vorbei. Da der Router der am Internet hängt ein Icefair ist, kann er dort doch eine Route setzen. Wozu soll ich dann auf dem "Suse-Router" Masquerading einsetzen?
 

gaw

Hacker
Das kommt auf den Zweck an. Verändert man die Routingtabellen des Icefair, muss der Rechner aus Sicht des Icefair sichtbar sein.

Soll, wie anfangs angedeutet, der Client-Rechner für alle anderen nicht sichtbar sein, kommt Routing natürlich nicht in Frage, denn damit wär der Client hinter dem Linuxrechner erreichbar also mindestens vom Icefair aus mit seiner IP-Adresse sichtbar. Zudem ist der Zugang zum Router und eine Neukonfiguration erforderlich. Oftmals sind die Policen in solchen Umgebungen aber so ausgelegt, dass die örtlichen Administratoren oder Berechtigten innerhalb ihres Netzes relativ frei in der Gestaltung sind, aber die Einstellungen des Routers nicht verändern können oder dürfen, zum Beispiel wenn der Internetzugang im Rahmen von Outsourcing von Fremdfirmen betreut wird. Man will den Netzzugang möglichst nicht verändern oder umkonfigurieren sondern das ganze im internen Netz regeln. Unter Umständen sind an dem Router andere Systeme womöglich im produktiven Einsatz angeschlossen, die auf keinen Fall beeinflusst werden sollen, um einfach unötige Risiken zu vermeiden( z.B: Anordnung der Geschäftsleitung oder IT-Abteilung nach dem Motto "von mir aus macht was ihre wollt, an dem Router verändert ihr aber nichts, dass ist uns zu riskant"). Dann ist das Routing als Lösung ausgeschlossen.

Aber auch Masquerading als Sonderform kann problematisch sein, dieses Verfahren wird eigentlich nur im Zusammenhang mit dynamischen Adressen genutzt wenn alle privaten Adressen eines Netzes auf eine öffentliche gemappt werden sollen. .

Falls, was in ähnlichen Umgebungen häufiger vorkommt, es sich in dem beschriebenen Szenario bei der Linuxbox und seinem dahinterliegenden Client um Rechner handelt, die beide private IP-Adressen verwenden und zudem die Adresse des Clients auch vor dem Icefair versteckt werden soll. muss das generalisierte Verfahren angewendet werden. Mit anderen Worten man würde mit iptables statt Masquerading eine einzelne explizite S-NAT Regel auf dem Linuxrechner formulieren. Im Grunde ist das beschriebene Szenarium auch die klassische Situation für die Anwendung einer einzelnen S-NAT Regel, wobei vorher das Forwarding eingeschaltet sein muß:

echo "1" > /proc/sys/net/ipv4/ip_forward
/usr/sbin/iptables -A POSTROUTING -t nat -s $IP_ADRESSE_DES_CLIENT -j SNAT --to-source $IP_ADRESSE_DES_LINUX_RECHNERS




mfG
gaw
 

Martin Breidenbach

Ultimate Guru
cybermailer schrieb:
was soll das Masquerading für eine Funktion haben?

Wir haben ja sowas:

Client----Linux----Router---Internet

Es geht darum daß Antwortpakete für Anfragen des Clients wieder den Weg zurückfinden.

Wenn 'Linux' als Router konfiguriert wird dann muß 'Router' eine Route in das Subnetz 'Client---Linux' kennen. Das kann durch den Eintrag einer statischen Route im 'Router' geschehen.

Falls man das aus irgendwelchen Gründen nicht machen kann dann könnte man das 'hinschummeln' indem man das Netz 'Client---Router' maskiert. Dann sieht der 'Router' Pakete vom 'Client' so als kämen sie von 'Linux' und den kennt er ja. Das ist allerdings schon 'von Hinten durch die Brust ins Auge' und die Lösung mit der statischen Route wäre mir lieber.
 
A

Anonymous

Gast
Ich habe das so noch nie ausprobiert. Gibt das keine Probleme durch das doppelte Masquerading?
 

gaw

Hacker
Man sollte in diesem Fall SNAT nutzen. Die man-page von iptables schreibt dazu:
MASQUERADE
This target is only valid in the nat table, in the POSTROUTING chain. It should only be used with dynamically assigned IP (dialup) connections: if you have a static IP address, you should use the SNAT target.

Bei einer Umsetzung einer statischen Adresse ist also SNAT anzuwenden.

mfG
gaw
 

Tenacity

Newbie
Auch wenn das Thema schon Jahre alt ist, steh ich gerad genau vor dem gleichen Problem, nur das die Wlan ne Lan Karte ist :)

Nun gilt immer noch die gepostete Lösung?

1. Variante - ohne Masquerading
Zwischen SuSE und Client wird ein eigenes Subnetz aufgebaut.
Bei SuSE wird Routing eingeschaltet.
Im Router wird eine statische Route zum 'Client-Netz' eingetragen
Beim Client wird SuSE als Default-Gateway eingetragen

Wenn ja, was heißt,...

...unter Suse wird Routing eingeschaltet?

Bei Yast -> Routing ist der Defaultgateway eingetragen und ein Häckchen bei Ip Forwarding gesetzt.

...im Router wird eine statische Route zum 'Client-Netz' eingetragen

In meinem Netgear Router gibt es zum statischen Routen vier obligatorische Felder

Destination IP Address ...
IP Subnet Mask ...
Gateway IP Address ...
Metric

Was muss ich wo eintragen? Bis auf Subnet ist mir das bisschen unklar, Metrik wird 2 vorgeschlagen...

Wär schön wenn wir den Thread nochmal aufwärmen könnten, dann hat er ja doch was gebracht und ich muss keinen neuen öffnen.

Danke erstmal im Voraus !
 

Tenacity

Newbie
Also ich hab mich jetzt an das Wiki http://wiki.linux-club.de/opensuse/Linux-Firewall_hinter_Hardware-Router gehalten, da werden die Fragen ja weitesgehend beantwortet. Nur leider klappt es immer noch nicht.

Zurzeit sieht es so aus:

Netzwerk

DSL Router 192.168.0.1 <=> eth0 192.168.0.2 Main PC eth1 192.168.1.1 <=> eth0 192.168.1.1 Client PC


Einstellungen

Im DSL Router ist eine statische Route eingetragen mit
Destination IP Address 192.168.1.0
IP Subnet Mask 255.255.255.0
Gateway IP Address 192.168.0.2
Metric 2

Auf dem Main PC mit Suse ist
Ip Forwarding aktiviert
Default Gateway 192.168.0.1 (schon immer)
Firewall deaktivert (zum testen)

Der Client PC
Default Gateway 192.168.1.1
DNS Server 192.168.0.1

Mit dem Client PC kann ich lustigerweise beide Netzwerkkarten des Main PCs anpingen (also 192.168.0.2 & 192.168.1.1), aber keine Internetadresse oder gar einen anderen Rechner im 192.168.0.0 Subnetzs.


Code:
media@media:~$ ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.248 ms

--- 192.168.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.248/0.293/0.317/0.031 ms
media@media:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.259 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.259/0.290/0.308/0.029 ms
media@media:~$

Jemand noch ne Idee?
 
Oben