Router als Switch nutzen - möglich?

langabsi

Newbie
Registriert
Dez. 2017
Beiträge
5
Hallo zusammen,

lässt sich ein Router (ohne integrierten Switch, wirklich, der klassische Router/das Gateway) als Switch umfunktionieren?

Die Frage ist, 1) ist der Client in der Lage, sobald er in seinem Subnetz /24 keine passende Adresse findet, die Anfrage im selben Subnetz an das Gateway weiterzuleiten oder bricht die Anfrage ab und geht nicht ans Gateway, z.B. weil keine entsprechende Adresse im Subnetz gefunden wurde - und 2) kann das Gateway dann eine Routingtabelle angeben, die, statt auf weitere Subnetze an bestimmten Interfaces, auf bestimmten Interfaces auf spezifische IP-Adressen/32 zeigt.

Bsp.: PC1 und PC2 im selben Subnetz. PC1 hat Gateway1 angegeben und ist an Gateway-Interface1 angeschlossen, analog mit PC2, Gateway2 und Gateway-Interface2. Routingtabellen im Gateway zeigen dabei z.B. auf Ziel PC1 mit: Ziel-IP1/32, nächstem Gateway Ziel-IP1/32 (oder 127.0.0.1) und Interface IP1/32 (oder 127.0.0.1). Für PC2 gilt dies analog.
Ping von PC1 zu PC2 muss dann entweder 1) abbrechen oder 2) an Gateway und über Routingtabelle weitergegeben werden.

Die Frage hat mich heute durch verschiedene Foren getrieben und ich habe versucht, es mit Filius nachzustellen, hat leider nicht geklappt, hier waren Routingtabellen drin, die ich leider nicht löschen konnte. Die Frage ist quasi nur theoretisch, da im Consumerbereich (fast) alle Router einen Switch integriert haben, aber mich interessiert die Funktionsweise.

Grüße
 
Zuletzt bearbeitet von einem Moderator: (URL entfernt)
Wie sollte ein Router ohne Switch als Switch funktionieren?

Wenn du von semiprofessionellen Routern wie EdgeRouter und Co sprichst, kommt es drauf an. Nur weil ein Router zB 5 LAN Schnittstellen hat, sind sie nicht zwangsläufig als Switch nutzbar. Für eine echte Switchfunktion bedarf es entsprechender Hardware, da man die Schnittstellen ansonsten per Software bridgen müsste, was massiven Einfluss auf die Performance hat.

Deine übrigen Fragen klingen sehr merkwürdig und entbehren jedweder technischen Grundlage. Wenn zwei Geräte im selben Subnetz sind, sind sie eben im selben Subnetz. "Freie Adressen" vergibt entweder ein DHCP Server oder man muss sie manuell vergeben und dann auvh selbst darauf achten, dass die IP nicht schon benutzt wird. Das Gateway kommt ebenfalls via DHCP oder eben manuell.
 
Der Unterschied zwischen einem Router und einem einfachen Switch ist der, daß der Router jedes empfangene Datenpaket an sämtliche angeschlossenen Ports weiterleitet, egal was für ein Paket das nun ist oder wo es hin adressiert ist.

Ein Switch hingegen schaut sich an, was als Absender bei Paketen drinsteht von angeschlossenen Ports und nutzt künftig jene Absendeadresse um Pakete anderer Ports an einen passenden Empfänger weiterzuleiten. Sendet Port A also Daten an Adresse x und der Switch kann jene Adresse zu Port B zuordnen, so leitet er jenes Paket ausschließlich an Port B weiter und verstopft dadurch nicht sämtliche Anschlüsse unnötig. Von irgendwelchen virtuellen Unterteilungen kennt der Switch da nichts. Wenn an Port A die IP 192.168.0.5 ist und an Port B 192.168.100.250 wird es genauso behandelt wie 192.168.0.6 - selbst 1.1.1.1 vs. 2.2.2.2 würde er schlucken... wobei du aber auf private IP-Netze achten solltest um nicht versehentlich einen Internetserver zu blockieren.

Um Subnetze, Tagging und dergleichen zu praktizieren braucht es einen sogenannten managed Switch.

Und die hälfte deiner Frage bezieht sich ausschließlich auf den angeschlossenen Computer, der nun auf was-weiß-ich läuft. Es kann ein Computer mit einem Linuxderivat oder einer Version von Windows sein... oder aber ein Android Tablet, ein Internetrouter mit angepasster Linuxvariante oder sonstwas. Insofern kann man dort nur die Antwort "Das hängt davon ab..." geben.
 
DJND schrieb:
Der Unterschied zwischen einem Router und einem einfachen Switch ist der, daß der Router jedes empfangene Datenpaket an sämtliche angeschlossenen Ports weiterleitet, egal was für ein Paket das nun ist oder wo es hin adressiert ist.

...

Moment, aber diese fehlende "Intelligenz" bezeichnet doch immer einen Hub, oder? Ein Router/Gateway (ich nutze das synonym, korrigiert mich bitte, falls das falsch ist) hat doch in der Routingtabelle spezifiziert, welches Paket (basierend auf Ziel-IP/-Subnetzmaske) an welchen LAN-Port des Gateways geroutet wird. Die Routingtabelle kann natürlich Einträge für alle (* oder 0.0.0.0) oder nur bestimmte IPs oder IP-Bereiche, dann auf bestimmte Interfaces/LAN-Ports gemünzt, beinhalten.


Danke für die Erklärung zum Switch, da muss ich nochmal ran und mir einiges anschauen...

RAIJIN schrieb:
Wie sollte ein Router ohne Switch als Switch funktionieren?
Ok, dann war die Frage von mir undeutlich gestellt.

Ich wissen, ob ich in einem Router/Gateway mit mehreren LAN-Ports ein Routingtable so aufbauen kann, dass sich Clients, de im selben lokalen Netzwerk sind, gegenseitig sehen können. Ich versuche nochmal ein Beispiel zu geben

Router mit 4 Ports, kein DHCP aktiv
Port1 - 192.168.1.11
Port2 - 192.168.1.12
Port3 - 192.168.2.13
Port4 - 192.168.2.14

Client A
IP 192.168.1.1
Subnetzmaske /24
Default-Gateway 192.168.1.11
(Anschluss an Port1)

Client B
IP 192.168.1.2
Subnetzmaske /24
Gateway 192.168.1.12
(Anschluss an Port2)

Client C
IP 192.168.2.3
Subnetzmaske /24
Gateway 192.168.2.13
(Anschluss an Port3)


Ping/Paket Client A<->B
- Frage: Ist dies möglich, mit entsprechendem Eintrag im Routingtable des Routers? Oder ist das Standardgateway nur verantwortlich für Anfragen, die außerhalb des eigenen lokalen Netztes, d.h. außerhalb von 192.168.1.0/24, sind, und eine Anfrage im selben Netz ergibt in o.g. Szenario eine Fehlermeldung?

Ping Client B<->C
- Das sollte problemlos möglich sein und ist ja Sinn und Zweck des Routings, zwei unterschiedliche Netze zu verbinden, oder?


Ich hoffe, die Erklärung ist klarer. Wie gesagt, es geht mir tatsächlich nur um die Theorie, dass das sehr aufwändig wäre und mit einem Switch und Router besser zu lösen wäre, ist mir bewusst. Danke schonmal für die bisherigen Antworten!
Ergänzung ()

DJND schrieb:
...

Ein Switch hingegen schaut sich an, was als Absender bei Paketen drinsteht von angeschlossenen Ports und nutzt künftig jene Absendeadresse um Pakete anderer Ports an einen passenden Empfänger weiterzuleiten. Sendet Port A also Daten an Adresse x und der Switch kann jene Adresse zu Port B zuordnen, so leitet er jenes Paket ausschließlich an Port B weiter und verstopft dadurch nicht sämtliche Anschlüsse unnötig. Von irgendwelchen virtuellen Unterteilungen kennt der Switch da nichts. Wenn an Port A die IP 192.168.0.5 ist und an Port B 192.168.100.250 wird es genauso behandelt wie 192.168.0.6 - selbst 1.1.1.1 vs. 2.2.2.2 würde er schlucken... wobei du aber auf private IP-Netze achten solltest um nicht versehentlich einen Internetserver zu blockieren.

Um Subnetze, Tagging und dergleichen zu praktizieren braucht es einen sogenannten managed Switch.


Ok, die Funktionsweise des Speicherns von MAC-Adressen und Ports ist mir klar, aber Dein Beispiel leuchtet mir nicht ein.
Ich versuche mal ein neues Bsp zu geben, unabhängig von dem obigen Thema.

Client A
IP192.168.50.1
Subnetzmaske /24
Gateway n.V.

Client B
IP192.168.51.1
Subnetzmaske /24
Gateway n.V.

Jetzt wird, wenn A und B am selben Switch laufen, doch keine Verbindung möglich sein, oder? Ich habe das eben mit dem Netzwerk-Lernprogramm Filius nachgestellt und es hat nicht geklappt...
 
Zuletzt bearbeitet:
langabsi schrieb:
Die Frage ist, 1) ist der Client in der Lage, sobald er in seinem Subnetz /24 keine passende Adresse findet, die Anfrage im selben Subnetz an das Gateway weiterzuleiten oder bricht die Anfrage ab und geht nicht ans Gateway, z.B. weil keine entsprechende Adresse im Subnetz gefunden wurde - und 2) kann das Gateway dann eine Routingtabelle angeben, die, statt auf weitere Subnetze an bestimmten Interfaces, auf bestimmten Interfaces auf spezifische IP-Adressen/32 zeigt.

Wenn ein PC ein IP-Paket verschickt, schaut er anhand der Adresse nach, der der Empfänger im gleichen (Sub)netz ist. Falls ja, schickt er das Paket direkt hin.
Falls nicht, ist das Ziel für den PC nicht direkt erreichbar, und er schickt das Paket statt dessen zum Standardgateway, und das ist dann dessen Problem. Das ist die ganze Logik. Es gibt da kein "falls das Ziel nicht antwortet" oder so was.

Beim Router sieht das ähnlich aus. Er bekommt ein Packet und schaut sich die Zieladresse an. Liegt die Adresse innerhalb das LAN-Subnetzes, leitet er es an seinen LAN-Port. Wenn nicht, schickt er es an seinen Standartgateway, normalerweise eine Adresse beim Internetprovider.

Du möchtest nun einen Router als einfachen Switch einsetzen. Macht zwar wenig Sinn, sollte aber prinzipiell machbar sein.
Allerdings braucht der Router natürlich mehrere einzel ansprechbare LAN-Ports, was zumindest bei Consumergeräten wohl nicht drin ist.

Man müsste wohl nur jeden LAN-Port als eigenes Netz definieren. Etwa die 192.168.0.1, mit der Subnetzmaske 255.255.255.254. Allerdings funktioniert das nur mit wenigen Kombinationen aus Adresse und Subnetmaske. Das wäre knifflig, und schränkt die möglichen Adressen im Netz arg ein.
Mit "normalen Routing" kommt man also nur eingeschränkt weiter.

Man könnte noch einfaches IP-Forwarding einrichten, dass er einfach alles von einem Port zum anderen kopiert. Aber spätestens jetzt sind wir in einem Bereich, der mit den normalen Routerfunktionen nichts mehr zu tun hat. Aber mit einem Linux-Router auf Kommandozeilenebene könnte es hinhauen.

Aber wirklich nur theoretisch. Sinn macht es in kaum einem denkbaren Szenario. :)
 
Stellt Host A anhand seiner eigenen IP-Adresse und der zugehörigen Subnetzmaske und er Ziel-IP fest, dass...

a) ...sich der Ziel-Host im gleichen Subnetz befindet.
=> Er adressiert ihn auf L2 Ebene direkt. Die zugehörige MAC ermittelt er vorher mit einem ARP-Request. Das wird aber nicht von einem Router weitergeleitet, weswegen der Verbindungsaufbau hier ins Leere geht...

b) ...sich der Ziel-Host nicht im gleichen Subnetz befindet.
=> Er adressiert sein Standardgateway auf L2 Ebene direkt. Das verwendet dann die Ziel-IP um den next Hop auf der Route zu ermitteln....

Die Konfiguration wird aber schon daran scheitern, dass ein Router nicht auf zwei Interfaces das gleiche Netz zulässt. Du könntest die Situation zwar durch passendes Subnetting und unterschiedlichen Masken bei Clients und Router provozieren, aber die Verbindungen werden trotzdem fehlschlagen, da die Hosts sich auf L2 Ebene direkt zu adressieren versuchen werden. Das schlägt aber in jedem Fall wegen a) fehl.

Einzige Möglichkeit eine Konnektivität mit einem reinen Router herzustellen ist die Konfiguration der Hosts in verschiedenen Netzen.
 
Zuletzt bearbeitet:
emulbetsup schrieb:
Stellt Host A anhand seiner eigenen IP-Adresse und der zugehörigen Subnetzmaske und er Ziel-IP fest, dass...

a) ...sich der Ziel-Host im gleichen Subnetz befindet.
=> Er adressiert ihn auf L2 Ebene direkt. Die zugehörige MAC ermittelt er vorher mit einem ARP-Request. Das wird aber nicht von einem Router weitergeleitet, weswegen der Verbindungsaufbau hier ins Leere geht...

b) ...sich der Ziel-Host nicht im gleichen Subnetz befindet.
=> Er adressiert sein Standardgateway auf L2 Ebene direkt. Das verwendet dann die Ziel-IP um den next Hop auf der Route zu ermitteln....

Die Konfiguration wird aber schon daran scheitern, dass ein Router nicht auf zwei Interfaces das gleiche Netz zulässt. Du könntest die Situation zwar durch passendes Subnetting und unterschiedlichen Masken bei Clients und Router provozieren, aber die Verbindungen werden trotzdem fehlschlagen, da die Hosts sich auf L2 Ebene direkt zu adressieren versuchen werden. Das schlägt aber in jedem Fall wegen a) fehl.

Einzige Möglichkeit eine Konnektivität mit einem reinen Router herzustellen ist die Konfiguration der Hosts in verschiedenen Netzen.

Danke an Alle, spätestens in dem zitierten Post waren beide Antworten drin, die ich in dem Szenario gesucht habe :) Btw: ich baue das nicht nach, war rein interessehalber.
 
Also, ein Router - und ich rede nicht von Fritzboxxen und Co - hat mehrere unabhängige Netzwerkschnittstellen bzw LAN Ports. Das heißt, dass jeder Port ein eigenes Subnetz bedient. Zum Beispiel so:

eth0 - 192.168.0.1 /24
eth1 - 192.168.1.1 /24
eth2 - 192.168.2.1 /24
eth3 - 192.168.3.1 /24
eth4 - 192.168.4.1 /24

Out of the box wird jeder Router - zB ein EdgeRouter - zwischen diesen Subnetzen routen, denn das ist seine Kernaufgabe. Die Firewall im Router kann allerdings den gegenseitigen Zugriff reglementieren oder gar komplett blocken (zB Gast-Netzwerk). Die Routingtabelle generiert der Router selbst, da er ja jeweils in jedem dieser Subnetze vertreten ist. Das macht ein PC auch, wenn er mehrere Netzwerkkarten bzw WLAN hat. Genau genommen tut das jedes Netzwerkgerät. Das Routing zu fremden Subnetzen übernimmt in der Regel das Standard-Gateway (zB der Router), das entweder selbst im fremden Subnetz ist oder ein weiteres Gateway kennt.

Einige Router wie zB der EdgeRouter-X können mehrere Ports zu einem Switch zusammenfassen und somit zB eth2-4 gemeinsam auf 192.168.2.1 setzen - sie werden dann zu einem neuen, virtuellen Interface, "switch0" anstelle von eth2-4. Dazu ist aber wie schon erwähnt Switch-Hardware nötig, die eben auf Layer2 switchen kann. Ohne solche Hardware könnte man eth2-4 bridgen. Auf den ersten Blick sieht das genauso aus wie ein Switch, aber geswitcht wird dann in Software bzw direkt von der CPU. Allerdings hat das massive Auswirkungen auf die Performance. Während ein Switch zuverlässig mit 1 Gbit/s switchen kann, wird eine Bridge nur einen Bruchteil davon leisten können.
 
Zuletzt bearbeitet:
emulbetsup schrieb:
a) ...sich der Ziel-Host im gleichen Subnetz befindet.
=> Er adressiert ihn auf L2 Ebene direkt. Die zugehörige MAC ermittelt er vorher mit einem ARP-Request. Das wird aber nicht von einem Router weitergeleitet, weswegen der Verbindungsaufbau hier ins Leere geht...

Habe doch noch eine Nachfrage zu a)

Wird die Anfrage im Gateway noch verarbeitet, d.h. wieder per Routingtabelle zurück an das Interface gegeben und läuft dann ins Leere?
Oder ist bereits am Port des Gateways Schluß, in dem dieser die Anfrage nicht bestätigt, aber auch nicht weitergibt zur internen Verarbeitung mittels Routingtabelle?
Ergänzung ()

Raijin schrieb:
Also, ein Router - und ich rede nicht von Fritzboxxen und Co - hat mehrere unabhängige Netzwerkschnittstellen bzw LAN Ports. Das heißt, dass jeder Port ein eigenes Subnetz bedient. Zum Beispiel so:

eth0 - 192.168.0.1 /24
eth1 - 192.168.1.1 /24
eth2 - 192.168.2.1 /24
eth3 - 192.168.3.1 /24
eth4 - 192.168.4.1 /24

Out of the box wird jeder Router - zB ein EdgeRouter - zwischen diesen Subnetzen routen, denn das ist seine Kernaufgabe. Die Firewall im Router kann allerdings den gegenseitigen Zugriff reglementieren oder gar komplett blocken (zB Gast-Netzwerk). Die Routingtabelle generiert der Router selbst, da er ja jeweils in jedem dieser Subnetze vertreten ist. Das macht ein PC auch, wenn er mehrere Netzwerkkarten bzw WLAN hat. Genau genommen tut das jedes Netzwerkgerät. Das Routing zu fremden Subnetzen übernimmt in der Regel das Standard-Gateway (zB der Router), das entweder selbst im fremden Subnetz ist oder ein weiteres Gateway kennt.

Einige Router wie zB der EdgeRouter-X können mehrere Ports zu einem Switch zusammenfassen und somit zB eth2-4 gemeinsam auf 192.168.2.1 setzen - sie werden dann zu einem neuen, virtuellen Interface, "switch0" anstelle von eth2-4. Dazu ist aber wie schon erwähnt Switch-Hardware nötig, die eben auf Layer2 switchen kann. Ohne solche Hardware könnte man eth2-4 bridgen. Auf den ersten Blick sieht das genauso aus wie ein Switch, aber geswitcht wird dann in Software bzw direkt von der CPU. Allerdings hat das massive Auswirkungen auf die Performance. Während ein Switch zuverlässig mit 1 Gbit/s switchen kann, wird eine Bridge nur einen Bruchteil davon leisten können.

Danke, das passt. Ich schaue mir Bridges nochmal an. Wie gesagt, ging im ganzen Fall nur um die Theorie und das Verständnis der Materie.
 
langabsi schrieb:
Habe doch noch eine Nachfrage zu a)

Wird die Anfrage im Gateway noch verarbeitet, d.h. wieder per Routingtabelle zurück an das Interface gegeben und läuft dann ins Leere?
Oder ist bereits am Port des Gateways Schluß, in dem dieser die Anfrage nicht bestätigt, aber auch nicht weitergibt zur internen Verarbeitung mittels Routingtabelle?

Um das zu verstehen muss man wissen wie und wofür die beiden verschiedenen Adressen (L2 MAC-Adresse - L3 IP-Adresse) in Netzen verwendet werden.

L2-Adresse wird für den Versand innerhalb eines Netzes verwendet. Diese wechselt beim Weg durch unterschiedliche Netze jedesmal, weil mit ihr jedes Mal der nächste Hop direkt adressiert wird.

L3-Adresse wird für den Versand zwischen Netzen verwendet. Die IP-Adresse wechselt dabei nur durch NAT und bleibt sonst unangetastet. Damit gibt sie in gewisser Weise das Fernziel an.

Zurück zum Beispiel a)
Der Host A stellt anhand seiner eigenen Netzwerkkonfiguration fest, dass sich sein Ziel Host B innerhalb seines Netzes befindet. Damit ist ihm klar, dass er für diese Kommunikation auch nicht sein Standardgateway (der Router) benötigt, weswegen er das auch gar nicht kontaktieren wird. Stattdessen versucht er mit einem ARP-Request an alle herauszufinden (Broadcast an die L2 BC-Adresse FF-FF-FF-FF-FF-FF), welche MAC-Adresse sein Ziel hat um es direkt auf L2-Ebene zu adressieren.

Das sieht sinngemäß so aus: "who has 192.168.1.44? tell 192.168.1.33"

Die Antwort darauf wäre ein ARP-Reply mit der der Inhaber der IP dem anfragenden Host seine MAC-Adresse übermittelt, damit er ihn direkt adressieren kann.

Jetzt werden L2-Broadcast-Nachrichten aber nicht zwischen Netzen weitergegeben (hätte ja auch kein Sinn, da die MAC-Adressen nur innerhalb eines Netzes verwendet werden und nicht routing-fähig sind), weswegen der Router (im Gegensatz zum Switch) diese Nachrichten nicht an andere Ports ausgibt. Der erhält sie aber und stellt nach seiner Logik fest, dass er nicht der Inhaber der angefragten IP ist, weswegen er dazu nichts weiter verlauten lässt. Er gibt sie aber aus o.g. Gründen nicht weiter....

Lange Rede, kurzer Sinn: Die Frage nach der MAC-Adresse für die IP von Host B bleibt unbeantwortet, weil sie Host B schlicht nicht erreicht und niemand sonst für ihn antwortet.
 
Zuletzt bearbeitet:
Zurück
Oben