Das Starten des Prozesses in einem Netzwerk-Namespace , in dem nur die gewünschte IP-Adresse angezeigt wird , kann etwas Ähnliches bewirken. Angenommen, ich wollte nur, dass localhost für ein bestimmtes Programm verfügbar ist.
Zuerst erstelle ich den Netzwerk-Namespace:
ip netns add limitednet
Namespaces haben standardmäßig eine Loopback-Oberfläche, daher muss ich sie als Nächstes aufrufen:
sudo ip netns exec limitednet ip link set lo up
Jetzt kann ich ein Programm mit ausführen ip netns exec limitednet
und es kann nur die Loopback-Oberfläche sehen:
sudo ip netns exec limitednet ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
Wenn ich es auf eine andere Adresse als localhost beschränken wollte, könnte ich dem Namespace andere Schnittstellen hinzufügen, indem ich:
ip link set DEVICE_NAME netns NAMESPACE
Ich müsste etwas mehr experimentieren, um herauszufinden, wie eine einzelne IP-Adresse in einen Namespace eingefügt werden kann, wenn eine Schnittstelle möglicherweise mehr als eine IP-Adresse hat
Der LWN Artikel auf Namensräume ist auch hilfreich.