In FreeBSD 4.9 war es sehr einfach, mit nur einem einzigen Befehl wie zu erreichen
jail [-u username] path hostname ip-number command
Wenn Pfad war /
, hatten Sie genau das gleiche Programm wie üblich ausgeführt, aber die gesamte Netzwerkkommunikation war darauf beschränkt, nur die angegebene IP-Adresse als Quelle zu verwenden. Manchmal ist es sehr praktisch.
Jetzt gibt es unter Linux LXC, das den FreeBSD- jail
Zonen (oder Solaris-Zonen) sehr ähnlich sieht. Können Sie sich eine ähnliche Methode zum Ausführen eines Programms vorstellen?
Antworten:
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:
Namespaces haben standardmäßig eine Loopback-Oberfläche, daher muss ich sie als Nächstes aufrufen:
Jetzt kann ich ein Programm mit ausführen
ip netns exec limitednet
und es kann nur die Loopback-Oberfläche sehen:Wenn ich es auf eine andere Adresse als localhost beschränken wollte, könnte ich dem Namespace andere Schnittstellen hinzufügen, indem ich:
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.
quelle
jail
, werde ich sie verwenden. ;)