Рейтинг:0

Почему я маршрутизирую к контейнерам локально и как это сделать лучше?

флаг fr

Я настраиваю новый сервер на новом сайте. Сервер находится за маршрутизатором/брандмауэром. Сервер должен запускать несколько контейнеров LXC для различных сервисов. Контейнеры LXC соединены мостом брлкс. Кроме того, сервер подключается к другому сайту с помощью OpenVPN в еще одном контейнере LXC, соединенном мостом с сетевой картой сервера. Из-за проблем со старой настройкой цель состоит в том, чтобы поместить функции маршрутизации и брандмауэра в выделенный внешний маршрутизатор.

У нас получается что-то вроде этого:

Роутер: 10.1.1.1
Сервер: 10.1.1.2
OpenVPN: 10.1.2.2 (подключен к сетевой карте 10.1.1.2 и подключен к маршрутизатору)
brlxc: 10.1.3.1 (на сервере)
Контейнер: 10.1.3.2 (на brlxc)
Внешний сайт: 10.2.0.0/16 (через 10.1.2.2)

Физически коробка роутера подключена одним кабелем к серверу.

Сервер и клиент OpenVPN получают 10.1.1.1 в качестве маршрута по умолчанию; контейнер 10.1.3.1 на сервере. Маршрутизатор 10.1.1.1 имеет маршрут для отправки 10.2.0.0/16 через 10.1.2.2, маршрут для отправки 10.1.3.0/24 через 10.1.1.2 и на данный момент имеет 10.1.0.0/16 в качестве локальной сети.

Первая озадачивающая вещь, которую я заметил, заключалась в том, что мне нужен был 10.2.0.0/16 через 10.1.2.2 в качестве статического маршрута на сервере. В противном случае маршрутизатор отправит перенаправление ICMP, и соединение прервется.

После добавления первого контейнера LXC мне нужно было добавить 10.1.3.0/24 через 10.1.1.2 в клиент OpenVPN.

Хотя настроить все эти маршруты и, в конечном итоге, определить даже правила брандмауэра на сервере не так уж и сложно, это не соответствует моей цели разработки — иметь маршрутизатор для маршрутизации и брандмауэра, а сервер — для запуска служб.

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

djdomi avatar
флаг za
у вас есть вопрос обдумывания, как сервер должен знать, какой пакет должен быть где-то сброшен? я думаю, вы должны еще раз рассмотреть модель OSI;)
флаг fr
Я предполагаю, что я что-то упускаю, и мои знания о нижних уровнях OSI вполне могут быть улучшены.Наивная идея заключалась в том, что сервер просто отправляет все на роутер и дает ему решать. Затем он может вернуть пакет, используя тот же физический кабель, по которому он его получил. Но мне, вероятно, придется разделить их с помощью VLAN - просто размышляю ...
Рейтинг:0
флаг fr

Я нашел решение для опубликованной проблемы. Теперь я использую тегированный интерфейс Ethernet для маршрутизатора и распределяю VLAN с помощью eth0.VLAN интерфейс к мостам без адреса к хосту.

авто brvlanX
iface brvlanX инет статический
  bridge_ports eth0.vlanX
  bridge_fd 0
  bridge_nowait 0
  адрес 0.0.0.0

А сам хост может сразу использовать свой интерфейс VLAN.

Это направляет весь трафик виртуальных машин / контейнеров хоста через маршрутизатор, который, в свою очередь, может применять правила брандмауэра.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.