Zwei Interface im selben Netz

Manga schrieb:
Da steht eigetlich nix besonderes, nur:

ifconfig_rl0="inet 192.168.0.98 netmask 255.255.255.0"
ifconfig_vr0="inet 192.168.0.99 netmask 255.255.255.0"
Das klappt so nicht.

Man kann natuerlich bel. viele IPs im gleichen Subnetz haben, der Empfang stellt auch nicht das Problem dar, sondern das Senden. Bis auf eine NIC bekommen einfach alle NICs die 255.255.255.255 (sic!) als Subnetzmaske. Dadurch ist sichergestellt, dass die Route ins (zB) 192.168.0.* Netz nur ueber ein Interface gehen kann. Behelfen kann man sich hier mit Source-Routen, also Routen, die nicht nur das Ziel, sondern auch die Quelle mit in Betracht ziehen. Dafuer muss man dann ueblicherweise Paketfilter wie zB pf bemuehen.
 
@Manga:
Könntest Du mal die ausgabe von ifconfig posten?


Das antworten auf bestehende Verbindungen und Verbindungsanfragen sollte auch kein problem sein. Das aufbauen neuer Verbindungen geht evtl. nur über das erste Interface. Hab gerade meinerr Netzwerkkarte 10 zusätzliche IPs verpasst, ssh auf jede geht, nur vwenn ich dann eine Verbindung aufbaue, scheint diese über das erste interface zu gehen.(Ich weiß, daß dies kein gutes Testszenario ist, aber ich hab zur Zeit weder einen zweiten NIC noch einen laufenden rechner mit dem ich mich auf meiner Kiste von außen einloggen könnte)

Zum Thema hostname:
Ein Hostname ist keine Pflicht für eine IP, und gegebenenfalls sollte pro IP ein anderer Hostname gegebeen werden.
 
Hier mal die ifconfig:

Code:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet6 fe80::240:f4ff:feb4:100%rl0 prefixlen 64 scopeid 0x1
        inet 192.168.0.14 netmask 0xffffff80 broadcast 192.168.0.127
        ether 00:40:f4:b4:01:00
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::20d:87ff:fe6e:3a67%vr0 prefixlen 64 scopeid 0x2
        inet 192.168.0.99 netmask 0xffffff80 broadcast 192.168.0.127
        ether 00:0d:87:6e:3a:67
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet 127.0.0.1 netmask 0xff000000


Kann durchaus sein, das die zweite NIC in Wirklichkeit eine /32er Maske hat, Etherreal zeigt nur die IP an (oder ich habs übersehn) und da ich hier hinter einem NAT Router bin, fällt das eh nicht auf das die Maske falsch ist.

Was mir gerade aufgefallen ist:
Wenn ich eine zweite NIC per Hand ins selbe Subnetz heben will, muss ich ifconfig zweimal ausführen, beim ersten mal weist es der NIC einfach keine Adresse zu, beim zweiten mal dann schon - jeweils ohne Fehlermeldung.
 
Bei Mangas config gibts n kleinen aber feinen unterschied:
er hat die netmask 0xffffff80 und der broadcast läuft über .127
normal wäre
netmask 0xffffff00 broadcast .255

Mit seiner Variante gehts auch bei mir (FreeBSD 6.0-RELEASE-p5).
 
Dann poste mal die richtige ifconfig. ;)
Kann nämlich garnet sein, da es nicht zugelassen wird. :S
Wenns doch geht werfe ich meine Logik ausm Fenster.
 
Kann nämlich garnet sein, da es nicht zugelassen wird. :S

Wieso sollte es in einem Subnetz gehen und im nächsten nicht?

Die ifconfig sieht dann eben so aus:

Code:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet6 fe80::240:f4ff:feb4:100%rl0 prefixlen 64 scopeid 0x1
        inet 192.168.0.14 netmask 0xffffff00 broadcast 192.168.0.255
        ether 00:40:f4:b4:01:00
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet6 fe80::20d:87ff:fe6e:3a67%vr0 prefixlen 64 scopeid 0x2
        inet 192.168.0.99 netmask 0xffffff00 broadcast 192.168.0.255
        ether 00:0d:87:6e:3a:67
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
        inet 127.0.0.1 netmask 0xff000000
 
Hä jetzt kappiere ich garnix mehr. Habe es eben selbst bei mir ausprobiert und das geht wirklich.
Dürfte laut RFC garnet gehen. :S
Ich kloppe jetzt meine Logik in die Tonne und gehe schlafen. :(
 
Könntet ihr bitte die RFC mit angeben, auf die ihr verweist?
Ich würds nämlich gern mal nachlesen.
 
Du scheinst da etwas durcheinander zu wuerfeln. Warum sollte das denn nicht gehen? Man muss dann nur wissen, wie die Pakete ins lokale Netz geroutet werden.

Hier koennte ja mal einer die Ausgabe von netstat -rn nachliefern.
 
Ich hab zwar nur einen NIC, aber cih denke das gewünschte, kann amn daran auch sehen....:
Code:
chaos#ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.1.42 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::240:f4ff:fe16:fddc%rl0 prefixlen 64 scopeid 0x1
        ether 00:40:f4:16:fd:dc
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
chaos# ifconfig rl0 inet 192.168.1.210 netmask 255.255.255.0 alias
chaos# ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=8<VLAN_MTU>
        inet 192.168.1.42 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::240:f4ff:fe16:fddc%rl0 prefixlen 64 scopeid 0x1
        inet 192.168.1.210 netmask 0xffffff00 broadcast 192.168.1.255
        ether 00:40:f4:16:fd:dc
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
dann:
Code:
 thomas@chaos ~ % ssh -l test 192.168.1.210
[...]Password:[...]
chaos% ssh -l test 192.168.1.42
[...]Password:[...]
chaos% netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGS         0   131374    rl0
127.0.0.1          127.0.0.1          UH          0    10170    lo0
192.168.1          link#1             UC          0        0    rl0
192.168.1.1        00:a0:c5:53:2e:fe  UHLW        1     7094    rl0     46
192.168.1.42       00:40:f4:16:fd:dc  UHLW        0       83    lo0
192.168.1.210      00:40:f4:16:fd:dc  UHLW        0       58    lo0

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::1                               ::1                           UH          lo0
fe80::%rl0/64                     link#1                        UC          rl0
fe80::240:f4ff:fe16:fddc%rl0      00:40:f4:16:fd:dc             UHL         lo0
fe80::%lo0/64                     fe80::1%lo0                   U           lo0
fe80::1%lo0                       link#2                        UHL         lo0
ff01::/32                         ::1                           U           lo0
ff02::%rl0/32                     link#1                        UC          rl0
ff02::%lo0/32                     ::1                           UC          lo0
chaos%netstat -p tcp
\[ Internet, geht euch nichts an....]
tcp4       0     48  chaos.ssh              chaos.65324            ESTABLISHED
tcp4       0      0  chaos.65324            chaos.ssh              ESTABLISHED
tcp4       0     48  192.168.1.210.ssh      chaos.55622            ESTABLISHED
tcp4       0      0  chaos.55622            192.168.1.210.ssh      ESTABLISHED
\[ internet, und localhost]
Fazit: Verbindungsaufbauen scheint von der zuerst eingerichtetten IP-Adresse auszugehen.

Hab aber wiegesagt zur Zeit keinen wieteren NIC und keinen anderen Rechner, von dem aus ich mich auf meiner Kiste einloggen könnte. Aber vielleicht liefert ja jemand mit der gewünschten Konfiguration nach.

Ferner würd ich mich sehr für RFC-Nummern interessieren, da hier ja unterschiedliche Meinung herscht, was angeblich drinsteht

ciao
chaos
 
Habe jetz mal von einem Rechner aus eine Anfrage auf den Apachen laufen lassen.
Die Pakete hab ich mit Etherreal mitgeschnitten.

Diese gehen alle an die IP und MAC der jeweiligen NIC, aber schon der arp kommt von der MAC der primären NIC mit der IP der der Karte von der das Paket kommen sollte.
Scheint als würde FreebSD im Hintergrund einen alias auf die primäre NIC legen, und dann alles über diese Karte abwickeln.
Selbst wenn man den Dienst an die andere Karte bindet.
Hat also tatsächlich keinen Effekt.

dmesg zeigt dabei folgendes:

arp: 192.168.0.10 is on rl0 but got reply from 00:13:d3:b3:70:c6 on vr0

und hier nochmal die netstat Ausgaben:

Code:
www# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.0.1        UGS         0       79    rl0
127.0.0.1          127.0.0.1          UH          0       10    lo0
192.168.0          link#1             UC          0        0    rl0
192.168.0.1        00:09:5b:df:b8:4e  UHLW        2       24    rl0   1157
192.168.0.14       00:40:f4:b4:01:00  UHLW        1      157    lo0
192.168.0.99       00:0d:87:6e:3a:67  UHLW        1       29    rl0   1059

Internet6:
Destination                       Gateway                       Flags      Netif Expire
::1                               ::1                           UH          lo0
fe80::%rl0/64                     link#1                        UC          rl0
fe80::240:f4ff:feb4:100%rl0       00:40:f4:b4:01:00             UHL         lo0
fe80::%vr0/64                     link#2                        UC          vr0
fe80::20d:87ff:fe6e:3a67%vr0      00:0d:87:6e:3a:67             UHL         lo0
fe80::%lo0/64                     fe80::1%lo0                   U           lo0
fe80::1%lo0                       link#4                        UHL         lo0
ff01::/32                         ::1                           U           lo0
ff02::%rl0/32                     link#1                        UC          rl0
ff02::%vr0/32                     link#2                        UC          vr0
ff02::%lo0/32                     ::1                           UC          lo0
www# netstat -p tcp
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp4       0      0  192.168.0.14.ssh       192.168.0.14.61572     ESTABLISHED
tcp4       0      0  192.168.0.14.61572     192.168.0.14.ssh       ESTABLISHED
tcp4       0      0  192.168.0.14.ssh       192.168.0.14.64448     ESTABLISHED
tcp4       0      0  192.168.0.14.64448     192.168.0.14.ssh       ESTABLISHED
 
Sehr interessant! Und schade zugleich!
Das heißt man könnte garnicht effektiv gesonderten Verkehr über eine bestimmte NIC schicken...
 
Ja mit pf haste ja ein Programm was das ganze unterstützt.
Alleine gehts net. ^^
PS: Habe mal in n paar RFCs nachgelesen, aber den Hinweis, dass es nicht klappt noch net gefunden. Werd mich aber rantalten.
 
Zurück
Oben