Linux: Есть ли удобный способ выполнить программу, привязывающую ее к IP-адресу по выбору?

В FreeBSD 4.9 было очень легко выполнить только одну команду:

jail [-u username] path hostname ip-number command 

если путь был / вас была такая же программа, как и обычная, но вся ее сетевая связь была ограничена использованием только данного IP-адреса в качестве источника. Иногда это очень удобно.

Теперь в Linux есть LXC, который очень похож на jail FreeBSD (или зоны Solaris) – можете ли вы подумать о том же способе выполнения программы?

One Solution collect form web for “Linux: Есть ли удобный способ выполнить программу, привязывающую ее к IP-адресу по выбору?”

Запуск процесса внутри сетевого пространства имен, который может видеть только желаемый IP-адрес, может выполнить нечто подобное. Например, предположил, что мне нужен только локальный хост для конкретной программы.

Во-первых, я создаю пространство имен в сети:

 ip netns add limitednet 

Пространства имен имеют интерфейс loopback по умолчанию, поэтому в следующий раз мне просто нужно поднять его:

 sudo ip netns exec limitednet ip link set lo up 

Теперь я могу запустить программу, используя ip netns exec limitednet и она сможет видеть только интерфейс loopback:

 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-адрес в пространство имен в случае, когда интерфейс может иметь более одного IP-адреса

Также полезно использовать статью LWN в пространствах имен .

  • Установка каталога mergerfs с привязкой mount под lxc не показывает ничего, кроме прав root или 555
  • Каков наилучший способ создания белого списка seccomp для LXC
  • lxc: запуск виртуального бокса внутри контейнера
  • несколько контейнеров lxc, совместно использующих один и тот же пул ресурсов процессора и памяти
  • Есть ли способ поделиться службой, прослушивающей петлю хоста с гостем LXC?
  • Как запустить службу при запуске контейнера lxc?
  • Как сохранить совпадения UID / GID-сопоставлений при архивировании гостевого LXC?
  • Правила iptables для двух разных контейнеров lxc
  • Профиль LXC apparmor ограничивает выполнение сценариев в / run / *
  • Какой доклер реализации контейнера использует
  • Команда для запуска дочернего процесса «offline» (без внешней сети) в Linux
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.