Forum: PC-Programmierung Linux: Mehrere Netzwerkschnittstellen nebeneinander


von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ich haett' gerne mal folgendes Problem :-)
Einen (Linux)-Rechner, mit mehreren (z.B. 2) Netzwerk(z.B. 
Ethernet)schnittstellen.
Soweit sogut.
Jetzt ist ja recht klar, dass wenn ich hergehe, und z.b. eth0 die IP 
Adresse 192.168.1.5/24 zuweise und eth1 die IP Adresse 192.168.1.7/24 - 
ich mich ueber Probleme nicht zu wundern brauche...
Gibt's da was, um den Netzwerkkram so zu konfigurieren, dass alle 
Prozesse eben nur eines der beiden eth Interfaces "sehen", niemals 
beide? Und ich natuerlich vorher sagen kann, welcher Prozess nun welches 
Interface "sieht".
Und ich dann z.b. vom einem Webserver (der nur eth0 kennt) auf der 
selben Maschine was per wget (was nur eth1 kennt) "runterladen" kann, 
aber nur dann, wenn beide Ethernetports mit einem Netzwerkkabel 
miteinander verbunden sind?

Gruss
WK

von Mario M. (thelonging)


Lesenswert?

Google mal nach "network namespaces". Da kann man ein Interface aus dem 
System herausnehmen und über einen eigenen Netzwerkstack einem Prozess 
(dein Webserver) zuweisen.

von ozo (Gast)


Lesenswert?

Hallo,

schau dir mal network namespaces an: 
https://man7.org/linux/man-pages/man8/ip-netns.8.html

Grüße

von Joerg (Gast)


Lesenswert?

Du kannst Prozesse die Verbindungen annehmen (also z.B. den Webserver) 
auf bestimmte IPs binden.

Irgendwo in der Webserverconfig gibt es wahrscheinlich eine Anweisung 
wie "LISTEN 0.0.0.0:80" a.k.a mache Port 80 auf allen IPs auf.
Wenn du das auf 192.168.1.7:80 änderst lauscht der Webserver nur noch 
auf dieser IP.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Aha! network namespaces heisst wohl der Apparat, den ich suche.
Heissen Dank!

Gruss
WK

von Pal Pebre (Gast)


Lesenswert?

was für linux?

vergeude keine zeit. schau da mal rein:
https://de.wikipedia.org/wiki/Bridge_(Netzwerk)

einfach brutils installieren und konfigurieren.

that's all folks.

gruss
pal

von Mario M. (thelonging)


Lesenswert?

Dann gehen die Daten aber nicht übers Netzwerkkabel.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Pal Pebre schrieb:
>
> einfach brutils installieren und konfigurieren.
>
> that's all folks.
>
Nein, im Gegenteil. Wenn man einen Graben oder eine Schlucht braucht, 
ist eine Bruecke nicht hilfreich ;-)

Gruss
WK

von Andre (Gast)


Lesenswert?

Zusätzlich würde ich noch mit iptables & ufw alle unnötigen Ports 
schließen, weil Server ja immer interessante Ziele sind auch im LAN.

von Dergute W. (derguteweka)


Lesenswert?

Andre schrieb:
> Zusätzlich würde ich noch mit iptables & ufw alle unnötigen Ports
> schließen, weil Server ja immer interessante Ziele sind auch im LAN.

Supergeheimtip: Wenn man vorher die Ports garnicht erst aufmacht, muss 
man sie hinterher auch nicht mit Extrasoftware wieder zumachen...

SCNR,
WK

von foobar (Gast)


Lesenswert?

> eth0 die IP Adresse 192.168.1.5/24 zuweise und
> eth1 die IP Adresse 192.168.1.7/24

Das solltest du dir nochmal Überlegen.  Das gleiche Netz auf zwei 
Interfaces ist nicht der Bringer.  Besser 192.168.1.5/24 und 
192.168.2.5/24.

von Dergute W. (derguteweka)


Lesenswert?

foobar schrieb:
> Das solltest du dir nochmal Überlegen.
Habbich. Und so wie ich's schrub will ich's. Nicht anders.
Und mit den empfohlenen network namespaces wird das auch hinhauen.
Nochmal Danke!

>  Das gleiche Netz auf zwei
> Interfaces ist nicht der Bringer.
Doch. Ist total angesagt hier und jetzt.

> Besser 192.168.1.5/24 und
> 192.168.2.5/24.
Nee. So kanns ja jeder Depp.
Und dann braeuchte man noch einen teuren router...

SCNR,
WK

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Du solltest dir noch die Konfiguration des RFC 3704 Reverse-Path Filters 
net.ipv4.conf.default.rp_filter ansehen. Je nach Linux-Version ist die 
Voreinstellung 'strict' und verhindert damit asymmetrische Routing über 
die zwei NICs.

von Welches Ziel? (Gast)


Lesenswert?

Dergute W. schrieb:
> Jetzt ist ja recht klar, dass wenn ich hergehe, und z.b. eth0 die IP
> Adresse 192.168.1.5/24 zuweise und eth1 die IP Adresse 192.168.1.7/24 -
> ich mich ueber Probleme nicht zu wundern brauche...

Und welches Ziel willst du erreichen?
Das Ziel möglichst präzise beschreiben.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Welches Ziel? schrieb:
> Und welches Ziel willst du erreichen?
> Das Ziel möglichst präzise beschreiben.

Hat er doch geschrieben. Er will einen "teuren Router" vermeiden. Ich 
meine wir reden hier von sagenhaften 0 Euro für das Einschalten von 
Forwarding im Kernel. Oder ca. 35 Euro für einen MikroTik hEX Lite.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Hannes J. schrieb:
> Hat er doch geschrieben. Er will einen "teuren Router" vermeiden.

Uuaaah - Loide...
Ich hab' im ersten Post geschrieben, was ich such'. Mit Beispiel 
(IP-Adressen/Netzwerke/webserver/wget). Und gleich die 2 naechsten 
Poster haben das verstanden und mir das richtige Schluesselwort 
geliefert. Genau das suchte ich, ich wusste nur nicht, wie's heisst. Das 
erklaerte ich im 5. Post dieses Schretts.
Und da es dieses Feature ootb im ip Kommando gibt, ist's auch nix 
voellig schwachsinniges; auch wenn das hier vielleicht der Ein oder 
Andere so noch nie gehoert hat und auch nie brauchen wird.
<drain addict>All good!</drain addict>

Gruss
WK

von Sebastian (Gast)


Lesenswert?

Vorsicht Falle, Linux implementiert nur das "weak host model".

LG, Sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.