Subnetze und Erreichbarkeit

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
g-henna
Beiträge: 733
Registriert: 03.11.2003 14:59:56
Wohnort: Berlin

Subnetze und Erreichbarkeit

Beitrag von g-henna » 09.06.2004 20:21:18

Hi

Ich hab hier ein Netzwerk, das soll in zwei Unternetze aufgesplittet werden, die sich gegenseitig nicht sehen sollen. Es gibt aber auch noch zwei Server im Netz, die von beiden Unternetzen gesehen werden sollen. Ist das mit folgender IP-Vergabe machbar?

Code: Alles auswählen

[192.168.1.1/255.255.254.0]-----+-----[192.168.0.1/255.255.254.0]
                                |
                                S
                                |
[192.168.1.*/255.255.255.0]-----+-----[192.168.0.*/255.255.255.0]
S ist der Switch, an dem alle Rechner dranhängen. Oben sind die beiden Server (man beachte das andere Subnet) und unten die beiden Unternetze (eigentlich ja auch "Subnet", aber egal *grin*). Innerhalb dieser Unternetze sehen sich doch jetzt die einzelnen Rechner und beide Server, aber nicht das jeweils andere Unternetz, oder?

Bye
g-henna
follow the penguin...

ernohl
Beiträge: 1248
Registriert: 04.07.2002 08:11:56
Wohnort: HL

Beitrag von ernohl » 10.06.2004 09:42:46

Erst einmal müsstest du "nicht sehen können" klar definieren.

Grundsätzlich: Die Netmask ist eigentlich nur dazu da herauszufinden, ob in Abhängigkeit der eigenen IP der Zielrechner direkt erreicht werden kann (dann holt er sich über einen Broadcast die MAC-Adresse und verschickt das Paket direkt hin) oder ob er einen Gateway benötigt (dann wird das Paket an den Gateway mit der Information des endgültigen Empfängers geschickt und dieser muss sich dann "kümmern").

Ergo ist es IMHO keine gute Idee mit unterschiedlichen Netzmasken innerhalb eines Netzes bzw. Subnetzes zu hantieren. Ob man es trotzdem brauchbar zum Laufen bekommt, habe ich allerdings nie ausprobiert.

Aber wie gesagt, was bedeutet "nicht sehen können"? Dürfen sie sich weder "sehen" noch irgendwie erreichen?
Gruß
ernohl

Benutzeravatar
g-henna
Beiträge: 733
Registriert: 03.11.2003 14:59:56
Wohnort: Berlin

Beitrag von g-henna » 10.06.2004 16:48:16

Hi!

(Hey, mein Ausrufezeichen geht wieder! Juhu!) Ich dachte immer, dass bei einem auszuliefernden TCP/IP-Paket mit Hilfe der Subnetzmaske überprüft wird, ob die beiden Rechner überhaupt im gleichen Subnet liegen (= die *Netz*-Adresse ist gleich). Wenn dies nicht so ist, wird das Paket aufgrund der TCP/IP-Spezifikationen gar nicht erst an den Rechner weitergeleitet oder von dem nicht angenommen oder so, und das meinte ich mit "nicht sehen". Man helfe mir bitte auf die Sprünge...

Bye
g-henna
follow the penguin...

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 10.06.2004 19:09:27

Hmmm... Die Subnetzmaske ist nur dazu da, dass der kernel entscheiden kann, ob er eine direkte Zustellung (innerhalb des Netzes) machen kann, oder ob er die Pakete an einen Gateway schicken muss.

Damit ist die Lösung Deines Problems eigentlich schon sichtbar: Schalte den Server als Router zwischen die Netze (z.B. 192.168.1.0/24 und 192.168.2.0/24). Der Server hat dann 2 Netzwerkkarten, von denen die eine in dem einen Subnetz ist, und die anderen in dem anderen. Das ganze erfordert dann zwar 2 Switches, funktioniert dafür dann aber auch ;-). Solnage Du auf dem Server dann kein ip_forwarding aktivierst, können sich die beiden Subnetze nicht erreichen.

Switches sind ja gerade dazu gedacht, dass sich alle angeschlossenen Rechner "sehen" (d.h. erreichen) können. Das mit der Netzmaske könnte einfach schiefgehen, wenn der Switch schlau sein will, und ARP Anfragen aus seinem Cache beantwortet. Dann "sehen" sich die Rechner trotzt der unterschiedlichen Subnetze...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
g-henna
Beiträge: 733
Registriert: 03.11.2003 14:59:56
Wohnort: Berlin

Beitrag von g-henna » 10.06.2004 20:30:21

Hi!

Am Netzwerkaufbau lässt sich leider nichts verändern, ich kann nur softwareseitig rumspielen. Na gut, im schlimmsten Fall sehen sich die einzelnen Rechner halt, aber die Hauptsache ist ja, dass alle Rechner der Unternetze die Server sehen. Ist das bei obiger Skizze der Fall?

Bye
g-henna
follow the penguin...

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 11.06.2004 00:12:47

Nabend,

ich glaub eher nicht(bin aber anderen Meinungen gegenüber nicht abgeneigt :).

Ich versuch mich mal an einer Begründung:
Beide Subnetze haben ne glatte netmask 255.255.255.0, wenn du jetzt von einem
Rechner im Subnet A (eg: 192.168.0.3) einen Broadcast rausschickst, wird das zu erreichende Subnet so maskiert:

Code: Alles auswählen

192  168 0   3
 x   x   x   x
255 255 255  0   = 192.168.0.[0]      -- Netzwerkadresse (log .und)
 0   0  0   255  = 192.168.0.[255]  -- Broadcastadresse (log.oder)
somit sieht ein subnet auch nur einen Server, die Server sehen vielleicht zwar beide
Subnetze aber nicht umgekehrt. Gut nachzuvollziehen auf http://www.hardware-bastelkiste.de/nw_class.html
oder: http://www.netzmafia.de/skripten/netze/netz8.html

ciao, frank
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 11.06.2004 15:31:59

noch'n Vorschlag:
du könntest, wenn du Zugriff auf die Server hast, auf jedem Server einen
alias definieren:

Server A: eth0 - 192.168.0.10/255.255.255.0 ist sichtbar aus 192.168.0.[x]
eth0:alias - 192.168.1.10/255.255.255.0 ist sichtbar aus 192.168.1.[x]

für den zweiten Server entsprechend mit ner anderen Adresse. Somit sind die
Subnetze getrennt aber können auf beide Server zugreifen.

Einen alias richtest du mit:
$> ip addr add 192.168.1.10/24 brd + dev eth0 label eth0:alias scope global
für den Server A ein. "ip" gehört zum package iproute und nachlesen kannst du
das in /usr/share/doc/iproute/ip-cref.dvi.gz

ciao, frank
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 07.03.2005 09:55:09

ich hab mir jetzt mit

Code: Alles auswählen

 ip addr add 10.10.30.2/24 brd + dev eth0 label eth0:alias scope global
eine virtuelle Netzwerkkarte zu eth0 192.168.71.24 erstellt.

Ich will alle anfragen vom 10.10.30er Netz umleiten auf 192.168.71er Netz, und dort auf den Router 192.168.71.9.

Code: Alles auswählen

BTS03-13:/home/myself # ifconfig
eth0      Protokoll:Ethernet  Hardware Adresse 00:04:75:C1:52:EB  
          inet Adresse:192.168.71.24  Bcast:192.168.71.255  Maske:255.255.255.0
          inet6 Adresse: fe80::204:75ff:fec1:52eb/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7195 errors:0 dropped:0 overruns:1 frame:0
          TX packets:1008 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 Sendewarteschlangenlänge:1000 
          RX bytes:1202285 (1.1 Mb)  TX bytes:216734 (211.6 Kb)
          Interrupt:5 Basisadresse:0xd400 

eth0:1    Protokoll:Ethernet  Hardware Adresse 00:04:75:C1:52:EB  
          inet Adresse:10.10.30.1  Bcast:10.10.30.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:5 Basisadresse:0xd400 
hier noch meine Route:

Code: Alles auswählen

BTS03-13:/home/myself # route -n
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.71.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.180.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
10.10.30.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.71.9    0.0.0.0         UG    0      0        0 eth0
Forwarding ist eingeschalten:

Code: Alles auswählen

echo 1 /proc/sys/net/ipv4/ip_forward
dann noch folgende IPTABLES Zeile:

Code: Alles auswählen

 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Ich kann aber mit einem PC im 10.10.30er Netz den Gateway 192.168.71.9 nicht anpingen. Die 192.168.71.24 kann ich anpingen, also routet er nicht weiter.

Kann mir jemand helfen ?
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Benutzeravatar
knecht
Beiträge: 1214
Registriert: 08.01.2004 15:33:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von knecht » 07.03.2005 10:27:52

:oops:

Code: Alles auswählen

echo "1" > /proc/sys/net/ipv4/ip_forward
so gings dann
_________________________________________________
Linux HowTo's, Programmierung, Wallpapers und 3D:
http://www.neoBerserker.de

Antworten