14116
Goto Top

Zwei gleiche Subnetze routen

Ich muß zwei Firmen die zufällig dasgleiche Subnetzhaben mithilfe eines Linux-Routers verbinden. Beide Firmen verwenden 10.0.0.0/24.

Mein Linuxrouter hat hierzu zwei NIC's.
Fa 1 soll über 10.0.0.0 ansprechbar sein
Fa 2 soll virtuell das Netz 192.168.1.0 / 24 bekommen

Kann mir jemand die nötigen IPTABELS regeln posten?


Günter

Content-Key: 22552

Url: https://administrator.de/contentid/22552

Printed on: April 18, 2024 at 23:04 o'clock

Member: n.o.b.o.d.y
n.o.b.o.d.y Jan 01, 2006 at 12:01:27 (UTC)
Goto Top
Hai,

Fa 2 soll virtuell das 192iger Netz bekommen? Und dann? Mein Verständnis von TCPIP sagt mit, dass das Routing bei gleichen Subnetzen nicht funktioniert....Denn wie willst Du denn den PCs aus Fa2 das 192iger Netz zuweisen/bekanntgeben? Könnte mit höchstens eine Lösung mit einem Transfernetzt zwischen den beiden Standorten vorstellen.

Ralf
Member: gemini
gemini Jan 01, 2006 at 12:15:35 (UTC)
Goto Top
Funktionieren tut das schon, wir haben eine ähnliche Konstellation, allerdings auf einen Host begrenzt.

Dazu muss eine NAT-Regel definiert werden, die das 10-Netz in das 192er übersetzt.
Wie das in iptables aussieht weiß ich allerdings nicht face-sad
Member: law
law Jan 01, 2006 at 16:55:16 (UTC)
Goto Top
Hallo,

so geht das nicht.
Das Zauberwort was du suchst heißt NAT.

Was an dabei nicht geht ist, dass Fa2 mit Fa 1 kommuniziert. Da Fa2 selbst ja noch das 10.0.0.0/24 hat werden die Anfragen dort natürlich lokal befriedigt.
Du kannst aber beiden einen eindeutigen Addressbereich zuweisen (z.B. Fa1 192.168.1.0/24 und Fa2 192.168.2.0/24) und dann mittels Network Address Translation die Anfragen in das jeweilige andere Netz übersetzen.

Ganz trivial ist das aber nicht, da du auch noch sicherstellen musst, dass der Router die Anfragen dann nur auf dem richtigen Interface rausgibt.

Es wäre hier wohl sehr sinnvoll zumindest in einem Netz die Addressen umzustellen. Und dann am besten gleich Addressen wählen, die so schnell kein anderer nimmt, z.B. Teilbereiche von 172.16.0.0/12
Member: xypseudo
xypseudo Jan 02, 2006 at 13:04:06 (UTC)
Goto Top
Firma A: 10.0.0.0/24
Firma B: 10.0.0.0/24
Auf dem Gateway: 192.168.0.0/24

Dann könnte man Firma A und B in das 192er Netz routen,
und von da aus wieder in das entsprechend andere Netz rein.

Hast du das so vor?
-> wird nicht gehen.

Denn: woher soll dein Gateway wissen,
wo nun die 10.0.1.1 ist? Firma A oder Firma B? Könnten beide sein...
Deswegen wird es interne IP's erst garnicht weiterrouten...

Wenn beide firmen ein */24er Netz brauchen, dann gib denen 10.1.0.0/24 und 10.2.0.0/24.
Per DHCP kannst das ja normalererweise ohne Probleme realisieren.
Dann brauchste auf deinem Gateway eigentlich nur 2-3 Sachen zu machen.
1.: IP-Forwarding einschalten
(geht unter Debian z.B.: mit dem Befehl "echo 1 > /proc/sys/net/ipv4/ip_forward")

2.: iptables-Regeln setzen.
Je nachdem wie das Netz gebaut ist, ist auch das ganz einfach.

Beispiel:
Auf deiner 1. Netzwerkkarte (eth0) hängt Firma A.
Auf deiner 2. Netzwerkkarte (eth1) hängt Firma B.

Dann brauchst du folgende Regel um Firma A mit Firma B zu verbinden:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Und die hier sollte das ganze von Firma B zu Firma A bewerkstelligen:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Ich sag dir aber direkt:
Dass es geht, kann ich dir nicht versprechen; das sollteste erst testen, bevor du das Ding in ein Produktiv-Netz übernimmst... Ich habe das immer für mein Internet-Gateway benutzt - da geht das ohne Probleme (in eine Richtung), aber dass es auch umgedreht geht kann ich dir nicht versprechen. Sollte es zwar theoretisch, aber wie gesagt - Praxiserfahrung habe ich damit nicht. ;o)

3.: Iptables-Regeln (ggf. auch das forwarding) fliegen nach nem Reboot wieder raus.
Schreibe dir also die 3 Befehle in ein File. Wichtig: Benutze für IPTables den vollständigen Pfad. Z.B.:

echo 1 > /proc/sys/net/ipv4/ip_forward
/usr/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
/usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "IPTables-Einstellungen";
/usr/sbin/iptables -t nat -L -v -n

Mach das File ausführbar und verlinke es in den entsprechenden Runlevel.
Der letzte Befehl zeigt dir dann übrigens deine "Eingaben" an.

Vielleicht hilft dir das ja weiter.


gruss, pseudo.
Member: law
law Jan 02, 2006 at 13:39:11 (UTC)
Goto Top
Warum hier Masquerading?
Ich persönlich würde hier darauf eher verzichten.

Was gehen würde: Stell dir einen zweiten Router daneben. Jeder Router bekommt dann zwei Netzwerkschnittstellen. Mit der einen verbindest Du die beiden Router und auf der anderen jeweils die Netze anschließen. Selbstverständlich wählst du auf der Verbindung wo die beiden Router hängen einen eigenständigen Addressbereich. Dazu kommt dann noch nen bissl böses SNAT und DNAT und das sollte dann in der Theorie funktionieren.

Um das Netzwerkaddressen ändern solltest Du dich aber nicht zu lange drücken - so ist das einfach nicht schön.

Welche Dienste möchtest Du denn darüber laufen lassen? Wenn Du denkst, dass du dann die "Netzwerkumgebung" usw. problemlos Nutzen kannst - vergiss es. Aber einzelne Rechner direkt ansprechen könnte gehen - je nach den Krankheiten der entsprechenden Protokolle.
Mitglied: 14116
14116 Jan 02, 2006 at 13:55:01 (UTC)
Goto Top
Danke euch allen.

Scheinbar habe ich meine Problematik nicht vollständig zum Ausdruck gebracht.

Ich habe hier zwei Firmen
Firma A: 10.0.0.0/24
Firma B: 10.0.0.0/24
die dasgleiche Subnetz besitzen. Aus verschiedensten Gründen ist es nicht möglich die Subnetze zu ändern - das ist numal ein Fakt.

Mit hilfe eines Cisco LAN Routers ist es mir nunmal möglich ein bestimmtes Subnetz "virtuell" durch ein anderes anzusprechen. Technisch gesehen ist das ein 1:1 NAT.

Aus Kostengründen möchte ich nun anstatt eines CISCO Routers eine LINUX Box hinstellen. Da ich nicht Fit in IPTABLES bin, habe ich hier gepostet.

Beide Firmen haben ein korrekt geroutetes Netz. Der einfachheit halber nehmen wir an, daß überall der HOST .254 das Standardgateway der jeweiligen Firma sei.

IST:

Firma A: 10.0.0.0/24
Firma B: 10.0.0.0/24


SOLL:

Firma A: 10.0.0.0/24 (angesprochen über 192.168.1.0/24 aus Sicht von FirmaB)
Firma B: 10.0.0.0/24 (angesprochen über 192.168.2.0/24 aus Sicht von FirmaA)
Member: oezi
oezi Jan 02, 2006 at 14:53:53 (UTC)
Goto Top
mein tip:

man sollte nicht am falschen ende sparen. machs mit dem cisco router.
Member: xypseudo
xypseudo Jan 02, 2006 at 14:54:10 (UTC)
Goto Top
Masquerading, weil es nur eine zeile ist,
bevor ich mit snat und dnat anfange,
und sich gbl offensichtlich nicht mit iptables auskennt...
Machbar ist es jedenfalls :o)

@14116:
wenn du dir 2 virtuelle netze baust, kann das so natürlich gehen;
ist aber mit äusserst viel aktion verbunden.
10.0.0.A (der einfachheit halber A genannt) spricht 172.16.0.0 und damit dann 10.0.0.B an.
Umgedreht 10.0.0.B spricht dann halt mit 172.17.0.0 das 10.0.0.A-Netz an. Dann musste aber für jeden rechner was in iptables tippen, dann auch mit dnat und snat. und das ist dann auch nimmer so einfach in ein oder zwei sätzen zu erklären, da du dann routing über 3 netze (von 10.0.0.A nach 172.16.0.0. nach 10.0.0.B) machst...


pseudo
Member: xypseudo
xypseudo Jan 02, 2006 at 14:54:56 (UTC)
Goto Top
jo, den ciscos würde ich in dem fall natürlich auch den vorrang geben :o)
Mitglied: 9299
9299 Jan 06, 2006 at 20:20:08 (UTC)
Goto Top
Was du brauchst ist eine Bridge und kein Router.
Damit kannst du zwei Netze mit der gleichen Netzadresse verbinden.
Funktioniert unter Linux ähnlich wie ein Router.Der Kernel muss dementsprechend das Bridging erlauben.Suse und Debian bringen es im Standartkernel mit.Zusätzlich brauchst du die passenden Programme iptables,ebtables,arptables und die Bridge-utils.Die Karten werden in den Brdgemode versetzt und dann über iptables als physdev angesprochen.
Ich empfehle einen Blick auf http://bridge.sf.net dort steht detailiert wie es funktioniert.