Я настраиваю новый сервер на новом сайте. Сервер находится за маршрутизатором/брандмауэром. Сервер должен запускать несколько контейнеров 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.
Хотя настроить все эти маршруты и, в конечном итоге, определить даже правила брандмауэра на сервере не так уж и сложно, это не соответствует моей цели разработки — иметь маршрутизатор для маршрутизации и брандмауэра, а сервер — для запуска служб.
Я предполагаю, что есть лучший способ сделать это, и я, кажется, пропускаю некоторые предметы первой необходимости. Я был бы признателен за некоторые рекомендации по этому поводу.