
14116
31.12.2005, aktualisiert am 06.01.2006
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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 22552
Url: https://administrator.de/forum/zwei-gleiche-subnetze-routen-22552.html
Ausgedruckt am: 13.04.2025 um 09:04 Uhr
10 Kommentare
Neuester Kommentar
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
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
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
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
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.
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.
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.
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.
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
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

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.
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.