Будут ли NAT-мосты LXC непривилегированными контейнерами маршрутизировать http-вызовы на хост-http-сервер через локальную сеть?

  1. Пользователь A имеет http-сервер, работающий на хост-компьютере Ubuntu с IP-адресом "HostIP " и портом 8081.
  2. Теперь пользователь A создает непривилегированный контейнер lxc (container1).
  3. Пользователь А входит в lxc-attach -n container1,
  4. Теперь пользователь root внутри container1 делает вызов как http://HostIP:8081/api вызов

Мой вопрос заключается в том, выполняет ли этот вызов маршруты к хосту напрямую или через локальную сеть. В основном, какие изменения конфигурации необходимо выполнить, чтобы избежать трафика локальной сети, если http-сервер размещен на хост-компьютере.

Наша конфигурация сети LXC:

lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:30:d2:42

Все контейнеры работают внутри хост-компьютера Ubuntu.

1 ответ

Решение

Подводя итог подробностям, которые вы мне сообщили, я могу ответить на это:

  • Сетевой мост LXC настроен для подключения через NAT
  • Сетевой мост LXC не подключен напрямую к локальной сети, в которой находится хост-система

Имея эту информацию в руках, ваш ответ: возможно. И это полностью зависит от хост-компьютера и от того, достаточно ли он умен, чтобы не перенаправлять трафик на адрес локальной сети с моста LXC через сеть локальной сети. (Что не всегда так)

Когда вы используете IP-адрес хост-компьютера, который у него есть для локальной сети, вполне возможно, что ваш компьютер будет глупым и не будет правильно маршрутизировать пакет, то есть пакет направляется на хост-компьютер по адресу локальной сетине частный диапазон IP для сети LXC) может передаваться в остальную часть локальной сети. Это не редкость, но это определенно не то, что вы ищете.

При работе с гостями LXC/LXD, подключенными к хосту, вы должны использовать IP-адрес шлюза от гостей (фактически частный IP-адрес на мосту LXC/LXD, который есть у хост-компьютера, чтобы он мог направлять трафик NAT к другим адресаты), когда трафик направляется напрямую от контейнеров к хосту и наоборот. Таким образом, трафик, направляемый от вашего гостя к вашему хосту (и наоборот), никогда не покидает ваш компьютер, так как он знает маршруты к гостю и хосту, соответственно, через эту ссылку NAT.

Если ваша подсеть для вашего моста, например, 192.168.230.0/24, и у гостя LXC есть IP 192.168.230.10, а у вашего хоста - 192.168.230.1, поэтому он ведет себя как маршрутизатор для гостей (это типичный NAT настройка моста, но с разными диапазонами IP), тогда вы должны использовать 192.168.230.1 вместо адреса локальной сети хост-системы, чтобы избежать утечки данных в сеть локальной сети.

Другие вопросы по тегам