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.
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.
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.
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 macvlan
auf Ihrem Server, eth0
damit 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.