Eine virtuelle Linux-Schnittstelle, die tatsächlich Pakete weiterleiten kann

Eine virtuelle Linux-Schnittstelle, die tatsächlich Pakete weiterleiten kann

Ich habe eine Linux-Maschine mit einer tatsächlichen Schnittstelle, die mit dem Internet verbunden ist; sagen wir eth0 192.168.1.108

Ich muss eine virtuelle Schnittstelle erstellen, die den Datenverkehr über [eth0] leitet, aber basierend auf einigen Zugriffskontrolllisten eine andere IP-Adresse [10.10.0.1] anzeigt.

Ich muss für Zugriffskontrollzwecke ein neues virtuelles Gerät mit der IP-Adresse 10.10.0.1 erstellen.

Ich habe ein Dummy-Gerät erstellt

ip link add name acl0 type dummy
ip addr add 10.10.0.1
ip link set dev acl0 up

Dadurch wird die Schnittstelle erstellt, es wird jedoch kein tatsächlicher Datenverkehr weitergeleitet.

Wie kann ich ein virtuelles Gerät mit einer bestimmten IP-Adresse erstellen, das den Datenverkehr tatsächlich weiterleitet?

Antwort1

Bitte bearbeiten Sie Ihre Frage und geben Sie Details an, warum Sie eine zweite IP benötigen und wie Sie diese für Zugriffszwecke verwenden möchten.

EinSchnittstelleleitet den Verkehr nicht weiter. Der Kernel leitet den Verkehr weiter.

  1. Eine Dummy-Schnittstelle ist nur als Platzhalter für eine IP ohne Funktionalität geeignet, damit Anwendungen daran gebunden werden können. Viele Leute haben den Fehler gemacht, anzunehmen, dass sie irgendwie etwas tut, aber das ist nicht der Fall.

  2. Sie können derselben Schnittstelle mehrere IP-Adressen zuweisen, müssen dann aber sicherstellen, dass alle Ihre Anwendungenbindenan eine bestimmte Adresse, oder Sie werden Spaß daran haben, die Zufallseffekte zu debuggen.

  3. Je nachdem, welche Art von „Zugriffskontrolle“ Sie benötigen, können Sie die Netzwerke für verschiedene Anwendungen ganz einfach trennen, indem SieNetzwerk-Namespace. Platzieren Sie die „spezielle“ Anwendung im Netzwerk-Namespace. Sie verhält sich dann für das Netzwerk so, als würde sie auf einem anderen Computer ausgeführt. Sie können ihr also andere Einstellungen zuweisen.

Verwenden Sie entweder ein macvlanauf Ihrem Server, eth0damit er dieselbe Schnittstelle mit einer anderen IP-Adresse verwendet (oder verwenden Sie DHCP, um ihm eine IP zuzuweisen), oder erstellen Sie ein Veth-Paar zwischen dem neuen Namespace und dem Hauptnetzwerk-Namespace und führen Sie dann das normale Routing durch.

verwandte Informationen