Настройка межсетевого экрана OPNsense в режиме кластера высокой доступности на серверах Yandex BareMetal
Предлагаемое решение позволяет настроить на серверах BareMetal периметральный межсетевой экран OPNsense
Смысл предлагаемого решения заключается в том, чтобы к интернету были подключены только серверы межсетевого экрана
Решение должно быть отказоустойчивым, поэтому предлагаемая конфигурация – это кластер высокой доступности
Для того чтобы клиенты в защищенном сегменте сети могли автоматически получать IP-адреса и корректный адрес шлюза, в решении применяется сервер ISC DHCPv4 в высокодоступной конфигурации: реализация OPNsense позволяет реплицировать список DHCP-адресов между серверами с ролями Master и Backup в кластере.
Схема решения:
-
Публичная сеть BareMetal пула серверов
ru-central1-m4
. -
Приватная подсеть BareMetal
opnsense-private-subnet-m4
. -
Два сервера BareMetal в составе кластера OPNsense:
opnsense-master
иopnsense-backup
. При написании настоящего руководства использовался межсетевой экран OPNsense версии25.1
. -
Один сервер BareMetal
vmware-esxi
с запущенной платформой виртуализации VMware ESXi . При написании настоящего руководства использовался гипервизор ESXi версии7.0U3g
. -
На сервере
vmware-esxi
запущена виртуальная машина:opnsense-tester-vm
. При написании настоящего руководства виртуальная машина создавались под управлением ОС Linux Ubuntu 24.04 без графического пользовательского интерфейса. -
Инсталляционный сервер
jump-server
, необходимый для настройки серверов OPNsense и ESXi, при помощи которого можно обращаться к приватным IP-адресам серверов OPNsense и ESXi.Инсталляционный сервер должен иметь графический пользовательский интерфейс
и браузер . Для упрощения настроек в настоящем руководстве в роли инсталляционного сервера будет выступать сервер BareMetal, загруженный в режиме восстановления и диагностики с Rescue-CD.Примечание
В качестве альтернативы Rescue-CD вы можете использовать VPN-подключение, при помощи которого можно будет обращаться к приватным IP-адресам серверов извне приватной подсети. При использовании VPN-соединения на серверах OPNsense потребуется настройка статического маршрута в сегмент сети за пределами текущей приватной подсети.
Чтобы настроить межсетевой экран OPNsense в режиме кластера высокой доступности на серверах Yandex BareMetal:
- Подготовьте облако к работе.
- Создайте загрузочные образы в BareMetal.
- Создайте приватную подсеть BareMetal.
- Арендуйте серверы BareMetal.
- Настройте кластер высокой доступности OPNsense.
- Установите гипервизор и создайте виртуальную машину.
- Убедитесь в работоспособности решения.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость предлагаемого решения входят:
- плата за аренду серверов BareMetal (см. тарифы Yandex BareMetal);
- плата за хранение данных в Object Storage и операции с ними (см. тарифы Yandex Object Storage).
Создайте загрузочные образы в BareMetal
Установка межсетевого экрана OPNsense и гипервизора ESXi на серверы BareMetal будет выполняться из пользовательских загрузочных образов BareMetal, которые вы подготовите перед тем, как приступать к развертыванию инфраструктуры.
Загрузите ISO-образы программных продуктов в Yandex Object Storage
Для создания инфраструктуры, предусмотренной предлагаемым решением, вам потребуются ISO-образы
Примечание
Yandex Cloud не предоставляет дистрибутивы этих программных продуктов, вам следует приобрести их самостоятельно.
Загрузите образы с дистрибутивами OPNsense и ESXi в бакет Object Storage:
- Если у вас еще нет бакета в Object Storage, создайте его с ограниченным доступом.
- Загрузите образы в ваш бакет, например, через консоль управления, с помощью AWS CLI или WinSCP. В терминах Object Storage загруженные файлы образов будут называться объектами.
- Получите ссылки на загруженные образы. Используйте эти ссылки при создании загрузочных образов в BareMetal.
Создайте загрузочные образы в BareMetal
-
В консоли управления
выберите каталог, в котором вы планируете создавать инфраструктуру. -
В списке сервисов выберите BareMetal.
-
На панели слева выберите
Загрузочные образы. -
Нажмите кнопку Загрузить образ.
-
Введите имя для образа OPNsense. Требования к имени:
- длина — от 2 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Добавьте описание образа.
-
Вставьте ссылку на образ OPNsense, полученную в Object Storage.
-
Нажмите кнопку Загрузить.
-
Аналогичным образом создайте загрузочный образ ESXi.
Создайте приватную подсеть BareMetal
- В консоли управления
выберите каталог, в котором вы создаете инфраструктуру. - В списке сервисов выберите BareMetal.
- На панели слева выберите
Приватные подсети и нажмите кнопку Создать подсеть. - В поле Пул выберите пул серверов
ru-central1-m4
. - В поле Имя задайте имя подсети:
opnsense-private-subnet-m4
. - Не включая опцию IP-адресация и маршрутизация, нажмите кнопку Создать подсеть.
Арендуйте серверы BareMetal
-
В консоли управления
выберите каталог, в котором вы создаете инфраструктуру. -
В списке сервисов выберите BareMetal и нажмите кнопку Заказать сервер.
-
В поле Пул выберите выберите пул серверов
ru-central1-m4
. -
В блоке Конфигурация выберите подходящую конфигурацию сервера. Для тестирования предлагаемого решения будет достаточно конфигурации с минимальными аппаратными характеристиками.
-
В блоке Образ выберите
Без операционной системы
. -
В блоке Условия аренды выберите период, на который вы арендуете сервер.
По окончании указанного периода аренда сервера будет автоматически продлена на такой же период. Прервать аренду в течение указанного периода аренды нельзя, но можно отказаться от дальнейшего продления аренды сервера.
-
В блоке Сетевые настройки:
- В поле Приватная подсеть выберите созданную ранее подсеть
opnsense-private-subnet-m4
. - В поле Публичный адрес выберите
Автоматически
.
- В поле Приватная подсеть выберите созданную ранее подсеть
-
В блоке Информация о сервере в поле Имя задайте имя сервера:
opnsense-master
. -
Нажмите кнопку Заказать сервер.
-
Аналогичным способом арендуйте еще один сервер с именем
opnsense-backup
в пуле серверовru-central1-m4
. -
Аналогичным способом арендуйте еще два сервера в пуле серверов
ru-central1-m4
– с именамиvmware-esxi
иjump-server
. Но при заполнении формы аренды этих серверов в блоке Сетевые настройки в поле Публичный адрес выберитеБез адреса
.
Примечание
Подготовка серверов может занять до 20 минут — в это время серверы будут находиться в статусе Provisioning
, после чего они перейдут в статус Ready
.
Настройте кластер высокой доступности OPNsense
Настройка кластера высокой доступности включает в себя установку межсетевого экрана OPNsense на два сервера BareMetal, последующее создание из этих серверов кластера OPNsense и его настройку.
Установите межсетевой экран OPNsense на серверы
Совет
Чтобы сэкономить время, вы можете запустить установку OPNsense на серверах opnsense-master
и opnsense-backup
одновременно в разных окнах браузера: установка на двух этих серверах выполняется одинаково.
-
Подключитесь к KVM-консоли сервера
opnsense-master
.Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
user-iso
выберите сохраненный ранее образ с OPNsense. - Нажмите кнопку Connect CD/DVD.
- Убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на путь к выбранному образу, и нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
-
Чтобы запустить сервер с выбранного образа, в правом верхнем углу KVM-консоли нажмите кнопку Reboot to cdrom.
-
Дождитесь запуска сервера и инициализации интерактивной оболочки OPNsense – этот процесс может занять до десяти минут.
По завершении инициализации в экране терминала в KVM-консоли вы увидите предложение аутентифицироваться:
login:
-
Аутентифицируйтесь, используя следующие учетные данные:
- имя пользователя:
installer
; - пароль:
opnsense
.
Совет
Чтобы в KVM-консоли вставить текст из буфера обмена, воспользуйтесь полем Paste text here в правом верхнем углу.
- имя пользователя:
-
В окне Keymap Selection оставьте значение по умолчанию
Continue with default keymap
и нажмите Enter. -
В окне выбора действия выберите
Install (ZFS)
и нажмите Enter. -
В окне ZFS Configuration выберите
mirror
и нажмите Enter. -
В следующем окне с выбором блочных устройств для создания виртуального RAID-массива с помощью стрелок вверх и вниз и пробела выберите HDD или SSD диски сервера, например:
sda0
иsda1
. Затем нажмите Enter. -
В окне с предупреждением о возможной потере данных подтвердите согласие на внесение изменений в таблицу разделов. Для этого с помощью стрелок вправо и влево выберите
YES
и нажмите Enter.Будет запущен процесс установки межсетевого экрана OPNsense на сервер.
Внимание
В процессе установки не закрывайте и не обновляйте окно KVM-консоли. В противном случае установочный образ окажется отмонтирован от сервера BareMetal и установку придется начинать заново.
Процесс установки может занять до часа.
-
После завершения установки в окне Final Configuration выберите
Root Password
, чтобы задать пароль для пользователяroot
, и нажмите Enter. Введите и подтвердите введенный пароль. -
После установки пароля в окне Final Configuration выберите
Complete Install
и нажмите Enter. -
В окне Installation Complete выберите
Reboot now
и нажмите Enter. -
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
Not connected
. - Нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
-
Аналогичным образом установите OPNsense на сервер
opnsense-backup
.
Выполните предварительную настройку серверов OPNsense
Прежде чем приступать к настройке кластера OPNsense, выполните базовую настройку сетевых интерфейсов обоих серверов OPNsense:
-
Подключитесь к KVM-консоли сервера OPNsense.
Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
Аутентифицируйтесь, используя имя пользователя
root
и пароль, заданный при установке сервера. Если вы не задавали пароль пользователяroot
, значение пароля по умолчанию –opnsense
.В результате успешной аутентификации вы увидите текстовое меню базовых настроек сервера со списком возможных действий.
-
Убедитесь, что в системе настроены сетевые интерфейсы:
Примечание
В зависимости от конфигурации сервера BareMetal он может быть оснащен сетевыми картами
Intel
илиMellanox
. Сетевые интерфейсы на картахIntel
ядро ОС настраивает автоматически, а для настройки сетевых интерфейсов на картахMellanox
могут потребоваться дополнительные действия.-
Введите
8
(вариантShell
) и нажмите Enter, чтобы открыть терминал операционной системы. -
Проверьте наличие сетевых интерфейсов:
ifconfig
Если в выводе команды присутствуют сетевые интерфейсы с описаниями (
description
)LAN
иWAN
, значит, дополнительных действий не требуется.Пример:
igb0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mt description: LAN (lan) options=4802028<VLAN_MTU,JUMBO_MTU,WOL_MAGIC,HWSTATS,MEXTPG> ether 00:25:90:3:a1:fe inet 192.168.1.1 netmask Oxffffff00 broadcast 192.168.1.255 inet6 fe80::225:90ff:fee3:a1fe%igb0 prefixlen 64 scopeid 0x1 media: Ethernet autoselect (1000baseT ‹full-duplex>) status: active nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> igb1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mt description: WAN (wan) options=4800028<VLAN_MTU,JUMBO_MTU,HWSTATS,MEXTPG> ether 00:25:90:3:a1:ff inet 94.126.204.143 netmask Oxfffffffe broadcast 94.126.204.143 inet6 fe80::225:90ff:fee3:a1ff%igb1 prefixlen 64 scopeid 0x2 media: Ethernet autoselect (1000baseT <full-duplex>) status: active nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
В приведенном примере сетевые интерфейсы
igb0
иigb1
имеют соответственно описанияLAN
иWAN
, а также назначенные IP-адреса. В этом случае вы можете переходить к следующему шагу.Что делать, если в выводе нет интерфейсов
LAN
иWAN
с назначенными адресами.-
Создайте и откройте дополнительный файл конфигурации
loader.conf.local
:ee /boot/loader.conf.local
-
Добавьте в созданный файл конфигурации строку:
mlx4en_load="YES"
-
Закройте файл, сохранив изменения. Для этого нажмите сочетание клавиш Esc + Enter и в открывшемся окне введите
a
. -
Перезапустите систему:
reboot
-
Дождитесь перезапуска системы, аутентифицируйтесь и перейдите в терминал ОС.
-
Повторно выполните команду
ifconfig
, чтобы убедиться, что необходимые сетевые интерфейсы появились в системе. ИнтерфейсыMellanox
будут иметь идентификаторыmlxen0
иmlxen1
.
-
-
Закройте терминал операционной системы:
exit
-
-
Настройте LAN-интерфейс сервера:
-
Введите
2
(вариантSet interface IP address
) и нажмите Enter:1 - LAN (igb0 - static, track6) 2 - WAN (igb1 - dhcp, dhep6)
-
Введите номер интерфейса LAN и нажмите Enter.
-
Configure IPv4 address LAN interface via DHCP? [y/N]
:Введите
n
, чтобы задать для интерфейса статический IPv4-адрес. -
Enter the new LAN IPv4 address. Press <ENTER> for none
:MasterBackupВведите адрес
192.168.1.252
.Введите адрес
192.168.1.253
. -
Enter the new LAN IPv4 subnet bit count (1 to 32)
:Введите префикс CIDR
подсети. Например:24
. -
For a WAN, enter the new LAN IPv4 upstream gateway address. For a LAN, press <ENTER> for none
:Нажмите Enter, чтобы не задавать адрес шлюза.
-
Configure IPv6 address LAN interface via WAN tracking? [Y/n]
:Введите
n
, чтобы не настраивать IPv6-адрес с помощью функции Track Interface. -
Configure IPv6 address LAN interface via DHCP6? [y/N]
:Введите
n
, чтобы не настраивать получение IPv6-адреса по DHCP6. -
Enter the new LAN IPv6 address. Press <ENTER> for none
:Нажмите Enter, чтобы не задавать IPv6-адрес.
-
Do you want to enable the DHCP server on LAN? [y/N]
:Введите
n
, чтобы не настраивать DHCP-сервер. Вы настроите DHCP-сервер через веб-интерфейс позднее. -
Do you want to change the web GUI protocol from HTTPS to HTTP? [y/N]
:Введите
y
, чтобы использовать протокол HTTP для доступа к веб-интерфейсу конфигурации сервера. -
Restore web GUI access defaults? [y/N]
:Введите
y
, чтобы для доступа к веб-интерфейсу конфигурации сервера использовать настройки по умолчанию.
Настройки серверов OPNsense обновятся, и вы сможете продолжить конфигурирование серверов и кластера OPNsense через веб-интерфейс по указанным адресам:
MasterBackupYou can now access the web GUI by opening the following URL in your web browser: http://192.168.1.252
You can now access the web GUI by opening the following URL in your web browser: http://192.168.1.253
Дополнительные настройки, если вы будете подключаться к веб-интерфейсу через VPN.
-
Введите
8
(вариантShell
) и нажмите Enter, чтобы открыть терминал операционной системы. -
Настройте статический маршрут в VPN-сегмент сети:
MasterBackuproute add <CIDR-VPN-сегмента> 192.168.1.252
route add <CIDR-VPN-сегмента> 192.168.1.253
Где
<CIDR-VPN-сегмента>
– CIDR подсети в VPN-сегменте. Например:172.28.1.0/24
. -
Убедитесь, что маршрут добавлен:
netstat -rn4
Вывод команды должен содержать маршрутную запись вида:
MasterBackup172.28.2.0/24 192.168.1.252. UGS. mlxen1
172.28.2.0/24 192.168.1.253. UGS. mlxen1
-
На этом базовые настройки серверов OPNsense выполнены. Дальнейшее конфигурирование серверов и кластера вы будете выполнять через веб-интерфейс.
Настройте кластер серверов OPNsense
Для настройки кластера серверов OPNsense необходим инсталляционный сервер (Jump server), имеющий графический пользовательский интерфейс и доступ в приватную подсеть, к которой подключены хосты кластера.
Для упрощения необходимых настроек в настоящем руководстве в роли такого инсталляционного сервера будет использоваться арендованный ранее сервер jump-server
, загруженный в режиме восстановления и диагностики с Rescue-CD.
Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
Запустите сервер
jump-server
с Rescue-CD, выбрав в основном меню SystemRescue вариант загрузки по умолчанию –Boot SystemRescue using default options
.После запуска SystemRescue в KVM-консоли будет запущен терминал ОС SystemRescue.
-
Чтобы запустить графическую оболочку SystemRescue, в терминале ОС SystemRescue выполните команду
startx
. -
Поскольку в приватной подсети
opnsense-private-subnet-m4
пока нет DHCP-сервера, настройте сетевой интерфейс вручную:- В правом нижнем углу экрана графической оболочки SystemRescue правой кнопкой мыши нажмите значок сети и выберите
Edit Connections...
. - В открывшемся окне в блоке Ethernet выберите
Wired connection 1
и нажмите значок шестеренки. - В открывшемся окне настроек перейдите на вкладку IPv4 Settings и в поле Method выберите
Manual
. - В блоке Addresses нажмите кнопку Add, затем в поле Address введите
192.168.1.20
, а в поле Netmask –24
. - Нажмите кнопку Save.
- В правом нижнем углу экрана графической оболочки SystemRescue правой кнопкой мыши нажмите значок сети и выберите
-
Убедитесь, что появился сетевой доступ к серверам OPNsense. Для этого в левом нижнем углу экрана нажмите значок терминала и в открывшемся окне введите команду:
ping 192.168.1.252 -c3
Результат:
PING 192.168.1.252 (192.168.1.252) 56(84) bytes of data. 64 bytes from 192.168.1.252: icmp_seq=1 ttl=64 time=0.110 ms 64 bytes from 192.168.1.252: icmp_seq=2 ttl=64 time=0.127 ms 64 bytes from 192.168.1.252: icmp_seq=3 ttl=64 time=0.115 ms --- 192.168.1.252 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2024ms tt min/avg/max/mdev = 0.110/0.117/0.127/0.007 ms
Сетевая связность с сервером OPNsense установлена.
Совет
Если команда
ping
не возвращает пакеты от сервера, попробуйте отключить сетевой интерфейсWired connection 1
и вместо него настроить интерфейсWired connection 2
. -
В правом нижнем углу экрана нажмите значок Firefox, чтобы открыть браузер.
-
В окне браузера настройте оба сервера OPNsense:
-
В адресной строке браузера введите адрес сервера:
MasterBackuphttp://192.168.1.252
http://192.168.1.253
-
На странице аутентификации введите имя пользователя
root
и пароль, заданный при установке сервера. Если вы не задавали пароль пользователяroot
, значение пароля по умолчанию –opnsense
. -
Задайте настройки кластера высокой доступности:
-
В главном меню перейдите в настройки кластера высокой доступности:
System
→High Availability
→Settings
. -
В поле Synchronize all states via выберите интерфейс
LAN
. -
В поле Sync compatibility выберите
OPNsense 24.7 or above
. -
В полях Synchronize Peer IP и Synchronize Config:
MasterBackupУкажите IP-адрес сервера с ролью Backup:
192.168.1.253
.Укажите IP-адрес сервера с ролью Master:
192.168.1.252
. -
В поле Remote System Username укажите имя пользователя
root
.Примечание
На серверах OPNsense для целей синхронизации вы можете создать дополнительных пользователей в разделе главного меню
System
→Access
. -
В поле Remote System Password укажите пароль от заданной выше учетной записи.
-
В поле Services выберите сервисы, состояние которых требуется синхронизировать. Нажмите
Select All
, чтобы выбрать все сервисы – этот вариант подходит для демонстрации возможностей предлагаемого решения. -
Нажмите кнопку Apply, чтобы сохранить и применить изменения.
-
-
Задайте настройки виртуального IP-адреса CARP:
-
В главном меню перейдите в настройки виртуальных IP-адресов:
Interfaces
→Virtual IPs
→Settings
. -
Нажмите значок
, чтобы добавить новый виртуальный IP-адрес, и в открывшемся окне:-
В поле Mode выберите
CARP
. -
В поле Interface выберите
LAN
. -
В поле Network / Address укажите
192.168.1.254/24
. -
В поле Peer (ipv4):
MasterBackupУкажите IP-адрес сервера с ролью Backup:
192.168.1.253
.Укажите IP-адрес сервера с ролью Master:
192.168.1.252
. -
В поле Password задайте пароль, который будет использован для защиты CARP-группы.
Используйте один и тот же пароль для настройки обоих серверов.
-
В поле VHID Group задайте идентификатор группы. Например:
101
.Используйте один и тот же идентификатор группы для настройки обоих серверов.
-
Нажмите кнопку Save, чтобы сохранить настройки виртуального IP-адреса.
-
-
Нажмите кнопку Apply, чтобы применить изменения.
-
-
Настройте DHCP-сервер в приватной подсети:
-
В главном меню перейдите в настройки DHCP:
Services
→ISC DHCPv4
→LAN
. -
Включите опцию Enable DHCP server on the LAN interface.
-
В поле Range задайте диапазон IP-адресов приватной подсети, доступных для выдачи клиентам DHCP-сервером. Например: from
192.168.1.100
to192.168.1.199
. -
В поле DNS servers укажите адреса серверов доменных имен, которые будут выданы клиентам. Например:
77.88.8.8
. -
В поле Gateway укажите IP-адрес CARP-интерфейса, который был настроен ранее:
192.168.1.254
. -
В поле Default lease time (seconds) задайте срок аренды предоставляемого IP-адреса в секундах. Например:
3600
. -
В поле Failover peer IP:
MasterBackupУкажите IP-адрес сервера с ролью Backup:
192.168.1.253
.Укажите IP-адрес сервера с ролью Master:
192.168.1.252
. -
Нажмите кнопку Save, чтобы сохранить настройки DHCP-сервера.
-
-
-
На сервере с ролью
Master
выполните синхронизацию настроек хостов кластера:Примечание
Когда OPNsense работает в режиме кластера, изменение настроек в работе межсетевого экрана следует производить в первую очередь на хосте с ролью
Master
. Хост с рольюBackup
получит обновленные параметры в процессе синхронизации изменений.- В адресной строке браузера введите адрес сервера
http://192.168.1.252
. - В главном меню перейдите в настройки кластера высокой доступности:
System
→High Availability
→Status
. - Пролистайте вниз страницу со списком сервисов и в строке Synchronize and reconfigure all нажмите кнопку
(Restart all services
).
Важно
В процессе синхронизации изменений также выполняется перезапуск сервисов.
- В адресной строке браузера введите адрес сервера
-
Проверьте состояние CARP-группы на обоих хостах:
MasterBackup-
В адресной строке браузера введите адрес сервера с ролью Master:
http://192.168.1.252
. -
В главном меню перейдите в настройки виртуальных IP-адресов:
Interfaces
→Virtual IPs
→Status
. -
На вкладке Addresses убедитесь, что в столбце Status серверу назначена роль
Master
.Если статус адреса –
DISABLED
, нажмите кнопку Temporarily disable CARP, затем – Enable CARP. В результате статус виртуального адреса должен смениться на нужный. -
Перейдите на вкладку pfSync nodes и убедитесь, что в списке присутствуют два хоста.
-
В адресной строке браузера введите адрес сервера с ролью Backup:
http://192.168.1.253
. -
В главном меню перейдите в настройки виртуальных IP-адресов:
Interfaces
→Virtual IPs
→Status
. -
На вкладке Addresses убедитесь, что в столбце Status серверу назначена роль
Backup
.Если статус адреса –
DISABLED
, нажмите кнопку Temporarily disable CARP, затем – Enable CARP. В результате статус виртуального адреса должен смениться на нужный. -
Перейдите на вкладку pfSync nodes и убедитесь, что в списке присутствуют два хоста.
-
На этом основная часть настройки кластера высокой доступности завершена.
Для дальнейшей настройки может потребоваться создание правил межсетевого экранирования. Но в рамках настоящего руководства достаточно базового набора правил, а также автоматически созданных правил NAT-трансляции, которые позволят клиентам получать доступ к интернету, то есть обеспечат движение трафика через межсетевой экран между интерфейсами LAN и WAN.
Установите гипервизор и создайте виртуальную машину
Установите гипервизор
-
Подключитесь к KVM-консоли сервера
vmware-esxi
.Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
user-iso
выберите сохраненный ранее образ с VMware ESXi. - Нажмите кнопку Connect CD/DVD.
- Убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на путь к выбранному образу, и нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Browse и в директории
-
Чтобы запустить сервер с выбранного образа, в правом верхнем углу KVM-консоли нажмите кнопку Reboot to cdrom.
-
Дождитесь запуска сервера и инициализации интерактивной оболочки установщика ESXi, запустите процесс установки и примите условия лицензионного соглашения (EULA).
-
Выберите диск сервера, на который будет установлен гипервизор и используемую раскладку клавиатуры.
-
Задайте пароль пользователя
root
для доступа к настройкам гипервизора. -
Подтвердите согласие на внесение изменений в таблицу разделов, чтобы начать установку ESXi.
-
Дождитесь завершения процесса установки и нажмите Enter, чтобы перезапустить сервер.
-
В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите значок с изображением CD-диска. В открывшемся окне:
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
Not connected
. - Нажмите кнопку Close.
- В секции CD/DVD Media1 нажмите кнопку Disconnect и убедитесь, что в секции Status для устройства Virtual CD 1 значение поля Connected To изменилось на
-
Дождитесь запуска гипервизора и задайте сетевые настройки:
-
Нажмите F2 и введите заданный при установке пароль пользователя
root
, чтобы перейти в настройки.Если пароль не был задан при установке, по умолчанию вход в учетную запись пользователя
root
осуществляется без пароля. -
В главном меню настроек выберите
Configure Management Network
. -
В открывшемся меню выберите
IPv4 Configuration
. -
С помощью клавиши пробел выберите
Set static IPv4 address and network configuration
и задайте:- IPv4 Address – любой свободный IP-адрес, входящий в приватную подсеть
opnsense-private-subnet-m4
и не входящий в диапазон адресов, доступных для выдачи клиентам DHCP-сервером OPNsense. Например:192.168.1.50
. - Subnet Mask – маску подсети
255.255.255.0
. - Default Gateway – созданный ранее в кластере OPNsense виртуальный IP-адрес CARP
192.168.1.254
.
- IPv4 Address – любой свободный IP-адрес, входящий в приватную подсеть
-
Нажмите Enter, чтобы сохранить изменения.
-
Нажмите Esc, чтобы выйти из меню настроек и применить изменения.
-
В открывшемся окне подтвердите применение обновленных настроек и перезапуск сетевого интерфейса.
-
Создайте виртуальную машину
Для создания и настройки виртуальных машин необходим инсталляционный сервер (Jump server), имеющий графический пользовательский интерфейс и доступ в приватную подсеть, к которой подключен гипервизор.
Для упрощения необходимых настроек в настоящем руководстве в роли такого инсталляционного сервера будет использоваться арендованный ранее сервер jump-server
, загруженный в режиме восстановления и диагностики с Rescue-CD.
Примечание
Все последующие действия этого этапа настройки будут выполняться в окне KVM-консоли.
-
Запустите сервер
jump-server
с Rescue-CD, выбрав в основном меню SystemRescue вариант загрузки по умолчанию –Boot SystemRescue using default options
. -
Чтобы запустить графическую оболочку SystemRescue, в терминале ОС SystemRescue выполните команду
startx
. -
В правом нижнем углу экрана нажмите значок Firefox, чтобы открыть браузер.
-
Скачайте на сервер ISO-образ операционной системы, которую вы будете устанавливать на виртуальную машину.
Примечание
В настоящем руководстве на ВМ будет установлена ОС Linux Ubuntu 24.04
без графического пользовательского интерфейса (Server install image
). -
В адресной строке введите адрес гипервизора, например:
https://192.168.1.50/
. -
На странице аутентификации введите имя пользователя
root
и пароль, заданный при установке ESXi. -
Загрузите в файловое хранилище гипервизора образ операционной системы, который вы будете устанавливать на виртуальную машину:
-
В главном меню слева выберите Storage.
-
В открывшемся окне выберите хранилище
datastore1
. -
В меню сверху нажмите кнопку Datastore browser и в открывшемся окне:
-
Нажмите кнопку Create directory и создайте директорию
ISO
. -
Выберите созданную директорию
ISO
и нажмите кнопку Upload. -
В открывшемся окне выберите скачанный ранее ISO-образ.
По умолчанию скачанные файлы сохраняются в директорию
/Home/Downloads/
-
Дождитесь загрузки образа в хранилище и нажмите кнопку Close в правом нижнем углу окна.
-
-
-
Создайте виртуальную машину:
-
В главном меню слева выберите Virtual Machines и нажмите кнопку Create / Register VM.
-
В окне Select creation type выберите
Create a new virtual machine
и нажмите кнопку Next. -
В окне Select a name and guest OS:
- В поле Name введите имя создаваемой машины. Например:
opnsense-tester-vm
. - В поле Guest OS family выберите
Linux
. - В поле Guest OS version выберите
Ubuntu Linux (64-bit)
. - Нажмите кнопку Next.
- В поле Name введите имя создаваемой машины. Например:
-
В окне Select storage выберите хранилище
datastore1
и нажмите Next. -
В окне Customize setting на вкладе Virtual Hardware:
- В поле CPU выберите количество vCPU, выделяемое виртуальной машине. Например:
4
. - В поле Memory выберите объем оперативной памяти, выделяемый виртуальной машине. Например:
8 GB
. - В поле Hard disk 1 выберите объем жесткого диска, выделяемый виртуальной машине. Например:
50 GB
. - В поле CD/DVD Drive 1 выберите
Datastore ISO file
и в открывшемся окне выберите загруженный ранее образ. - Остальные параметры оставьте без изменений и нажмите Next.
- В поле CPU выберите количество vCPU, выделяемое виртуальной машине. Например:
-
В окне Ready to complete проверьте параметры создаваемой виртуальной машины и нажмите кнопку Finish, чтобы создать ВМ.
-
В главном меню слева выберите Virtual Machines и выберите виртуальную машину
opnsense-tester-vm
. -
В открывшемся окне нажмите кнопку
Power on или значок в окне с превью виртуальной машины. -
Нажмите на окно с превью виртуальной машины и разверните его на весь экран.
-
Выполните процедуру установки операционной системы, выбрав нужные параметры языка, раскладки клавиатуры, типа установки и т.д. Вы можете оставлять все настройки по умолчанию – этого будет достаточно для тестирования предлагаемого решения в рамках настоящего руководства.
На экране с сетевыми настройками убедитесь, что виртуальная машина получила приватный IP-адрес в подсети
opnsense-private-subnet-m4
из диапазона, заданного в настройках DHCP-сервера OPNsense.На экране Profile configuration задайте имя и пароль пользователя, который будет иметь доступ к ВМ.
-
После завершения установки нажмите Reboot Now.
-
Убедитесь в работоспособности решения
Для проверки работоспособности решения будет использована виртуальная машина, созданная ранее на сервере под управлением VMware ESXi.
Проверку работоспособности можно считать успешно пройденной, если:
- виртуальная машина получит IP-адрес в локальной сети от DHCP-сервера, созданного в кластере OPNsense;
- виртуальная машина сможет получить доступ в интернет через межсетевой экран OPNsense.
Проверьте получение IP-адреса клиентом от DHCP-сервера
-
Подключитесь к KVM-консоли сервера
opnsense-master
. -
Аутентифицируйтесь на сервере OPNsense, используя имя пользователя
root
и пароль, заданный при установке сервера. -
Введите
8
(вариантShell
) и нажмите Enter, чтобы открыть терминал операционной системы. -
Выполните команду:
tcpdump -i <идентификатор_интерфейса> -pvn port 67 and port 68
Где
<идентификатор_интерфейса>
– идентификатор сетевого интерфейса сервера, подключенный к приватной подсетиopnsense-private-subnet-m4
. Например:igb0
.Команда
tcpdump
позволяет прослушать сетевой интерфейс, чтобы наглядно продемонстрировать работу протокола DHCP.Результат:
10:45:50.180979 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 328) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:7a:bf:5c, length 300, xid 0x6094a655, Flags [none] Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Discover MSZ (57), length 2: 576 Parameter-Request (55), length 7: Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12) Domain-Name (15), BR (28), NTP (42) Hostname (12), length 8: "alp-vm-1" Vendor-Class (60), length 12: "udhcp 1.37.0" Client-ID (61), length 7: ether 00:0c:29:7a:bf:5c 10:45:51.229540 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 192.168.1.252.67 > 192.168.1.153.68: BOOTP/DHCP, Reply, length 300, xid 0x6094a655, Flags [none] Your-IP 192.168.1.153 Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Offer Server-ID (54), length 4: 192.168.1.252 Lease-Time (51), length 4: 600 Subnet-Mask (1), length 4: 255.255.255.0 Default-Gateway (3), length 4: 192.168.1.254 Domain-Name-Server (6), length 4: 77.88.8.8 Domain-Name (15), length 11: "localdomain" 10:45:51.280876 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 330) 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:0c:29:7a:bf:5c, length 302, xid 0x6094a655, secs 1, Flags [none] Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: Request Requested-IP (50), length 4: 192.168.1.153 Server-ID (54), length 4: 192.168.1.252 MSZ (57), length 2: 576 Parameter-Request (55), length 7: Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Hostname (12) Domain-Name (15), BR (28), NTP (42) Hostname (12), length 8: "alp-vm-1" Vendor-Class (60), length 12: "udhcp 1.37.0" Client-ID (61), length 7: ether 00:0c:29:7a:bf:5c 10:45:51.281467 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328) 192.168.1.252.67 > 192.168.1.153.68: BOOTP/DHCP, Reply, length 300, xid 0x6094a655, secs 1, Flags [none] Your-IP 192.168.1.153 Client-Ethernet-Address 00:0c:29:7a:bf:5c Vendor-rfc1048 Extensions Magic Cookie 0x63825363 DHCP-Message (53), length 1: ACK Server-ID (54), length 4: 192.168.1.252 Lease-Time (51), length 4: 600 Subnet-Mask (1), length 4: 255.255.255.0 Default-Gateway (3), length 4: 192.168.1.254 Domain-Name-Server (6), length 4: 77.88.8.8 Domain-Name (15), length 11: "localdomain"
Анализ результата:
Результат содержит два основных этапа:
Запрос IP-адреса клиентомПредложение IP-адреса DHCP-сервером0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request DHCP-Message (53), length 1: Discover Client-ID (61), length 7: 00:0c:29:7a:bf:5c
192.168.1.252.67 > 192.168.1.153.68: BOOTP/DHCP, Reply Client-Ethernet-Address: 00:0c:29:7a:bf:5c DHCP-Message (53), length 1: Offer Server-ID (54), length 4: 192.168.1.252 Your-IP: 192.168.1.153 Subnet-Mask (1), length 4: 255.255.255.0 Default-Gateway (3), length 4: 192.168.1.254 Domain-Name-Server (6), length 4: 77.88.8.8
Проверьте наличие доступа в интернет с виртуальной машины
-
Запустите сервер
jump-server
с Rescue-CD, выбрав в основном меню SystemRescue вариант загрузки по умолчанию –Boot SystemRescue using default options
. -
Запустите графическую оболочку SystemRescue, выполнив команду
startx
. -
В графическом интерфейсе пользователя в правом нижнем углу экрана нажмите значок Firefox, чтобы открыть браузер.
-
В адресной строке введите адрес гипервизора, например:
https://192.168.1.50/
. -
На странице аутентификации введите имя пользователя
root
и пароль, заданный при установке ESXi. -
В главном меню слева выберите Virtual Machines и выберите виртуальную машину
opnsense-tester-vm
. -
В открывшемся окне нажмите кнопку
в экране с превью виртуальной машины и разверните его на весь экран. В окне терминала виртуальной машины:-
Введите имя пользователя и пароль, заданные при создании ВМ, чтобы аутентифицироваться.
-
Убедитесь, что виртуальной машине присвоен IP-адрес:
ip a
Результат:
1: 1o: «LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 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 noprefixroute valid_lft forever preferred_lft forever 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fa_codel state UP group default glen 1000 link/ether 00:0c:29:86:04:10 brd ffiff:ff:ff:ff:ff altname enp3s0 inet 192.168.1.153/24 metric 100 brd 192.168.1.255 scope global dynamic ens160 valid_lft 459sec preferred_lft 459sec inet6 fe80::20c:29ff:fe86:d410/64 scope link valid_lft forever preferred_lft forever
Сетевой интерфейс
ens160
получил от DHCP-сервера IP-адрес192.168.1.153
. -
Установите пакеты
net-tools
иtraceroute
:sudo apt install net-tools traceroute
-
Проверьте таблицу маршрутов:
netstat -rn
Результат:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 ens160 77.88.8.8 192.168.1.254 255.255.255.255 UGH 0 0 0 ens160 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens160 192.168.1.254 0.0.0.0 255.255.255.255 UH 0 0 0 ens160
-
Проверьте доступность любого внешнего адреса, например,
1.1.1.1
:ping -c 3 1.1.1.1
Результат:
PING 1.1.1.1 (1.1.1.1): 56 data bytes 64 bytes from 1.1.1.1: seq=0 ttl=55 time=2.252 ms 64 bytes from 1.1.1.1: seq=1 ttl=55 time=2.354 ms 64 bytes from 1.1.1.1: seq=2 ttl=55 time=2.363 ms --- 1.1.1.1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 2.252/2.323/2.363 ms
-
Проверьте маршрут до любого внешнего адреса, например,
1.1.1.1
:traceroute -n 1.1.1.1
Результат:
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets 1 192.168.1.253 0.223 ms 0.176 ms 0.147 ms 2 94.126.204.142 2.914 ms 3.193 ms * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 195.208.209.7 2.697 ms * * 9 * 62.115.139.123 12.950 ms * 10 * * * 11 * * * 12 * * * 13 * * * 14 1.1.1.1 1.725 ms * *
-
Результаты тестирования показывают, что виртуальная машина имеет доступ в интернет.
Как удалить созданные ресурсы
- Удалите созданные в бакете объекты, затем удалите сам бакет.
- Удалить серверы BareMetal нельзя. Вместо этого откажитесь от продления их аренды.