Запуск процесу всередині мережевого простору імен, який може бачити лише потрібну IP-адресу, може досягти чогось подібного. Наприклад, я вважаю, що я хотів, щоб локальний хост був доступний для певної програми.
Спочатку я створюю мережевий простір імен:
ip netns add limitednet
У просторах імен за замовчуванням є інтерфейс зворотного зв'язку, тому наступне мені просто потрібно піднести його:
sudo ip netns exec limitednet ip link set lo up
Тепер я можу запустити програму за допомогою, ip netns exec limitednet
і вона зможе бачити лише інтерфейс зворотного зв'язку:
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
Якщо я хотів обмежити його адресою, відмінною від localhost, я міг би додати інші інтерфейси в область імен за допомогою:
ip link set DEVICE_NAME netns NAMESPACE
Мені доведеться трохи експериментувати, щоб зрозуміти, як додати одну ІР-адресу до простору імен у випадку, коли в інтерфейсі може бути більше однієї IP-адреси
Стаття LWN про простори імен також корисна.