Подготовка сервера RedOS 7.3
Процесс подготовки серверов для установки компонентов системы 5А происходит в несколько этапов:
- Настройка SSH-ключей.
- Настройка сетевого экрана (Firewall).
- Установка и настройка Docker.
- Проверка работы systemd.
- Проверка наличия crontab.
- Установка и настройка FRR.
- Установка keepalived для VRRP.
- Дополнительные настройки для RedOS 7.3.
- Типичные проблемы и их решение.
- Финальная проверка перед развёртыванием приложения.
Для каких задач используются компоненты
- SSH-ключи — обеспечивают безопасное беспарольное соединение между серверами, необходимое для автоматизации развертывания и управления компонентами балансировщика.
- Docker — используется для контейнеризации компонентов системы 5А. Это обеспечивает изоляцию, простоту обновления и единообразие окружения на всех поддерживаемых ОС.
- systemd — служит init-системой для управления сервисами (Docker, FRR), их автозапуском и контролем состояния.
- crontab — планировщик задач, используемый для выполнения регулярных операций (ротация логов, проверки состояния, обновления маршрутов).
- FRR (Free Range Routing) — обеспечивает динамическую маршрутизацию по протоколам BGP, OSPF, VRRP, BFD. Эти протоколы необходимы для отказоустойчивой связности сетевых агентов балансировщика.
1. Настройка SSH-ключей
Для обеспечения безопасного и беспарольного доступа между серверами необходимо настроить SSH-ключи.
Рекомендация по безопасности: для развёртывания системы используйте выделенный jump-хост (промежуточный сервер). Это повышает безопасность (снижает риск компрометации учётных данных) и упрощает управление ключами доступа. Подробнее о настройке jump-хоста см. в разделе Типичные проблемы.
RedOS 7.3
- Установите пакет
openssh-clients:sudo yum install openssh-clients -y - Создайте SSH-ключ:
ssh-keygen -t rsa -b 4096 - Установите корректные права на публичный ключ:
chmod 644 ~/.ssh/id_rsa.pub - Скопируйте публичный ключ на целевой сервер:
ssh-copy-id user@server_ip - Проверьте подключение:
ssh user@server_ip
2. Настройка сетевого экрана (Firewall)
Перед установкой компонентов системы 5А необходимо открыть порты на всех серверах в соответствии с требованиями, описанными в документе «Требования к серверам» (раздел «Настройка сетевого экрана», Таблицы 1 и 2). Убедитесь, что разрешены как входящие, так и исходящие соединения согласно матрице взаимодействий.
Для RedOS 7.3 примеры открытия портов приведены в разделе 8 данного документа (если используется firewalld). Если firewalld отсутствует, настройка выполняется стандартными средствами (iptables, nftables).
Если вы используете firewalld, после настройки всех правил не забудьте выполнить sudo firewall-cmd --reload.
3. Установка и настройка Docker
RedOS 7.3
Перед установкой Docker удалите конфликтующие пакеты (podman, старые версии docker, cri-dockerd):
# Проверить наличие конфликтующих пакетов
rpm -qa | grep -E 'docker|podman|cri|containerd'
# Удалить найденные конфликтующие пакеты (если они не нужны для других задач)
sudo yum remove docker docker-ce docker-ce-cli containerd.io cri-dockerd podman-docker -y
sudo yum autoremove -y
sudo yum clean allДля установки Docker следуйте официальной инструкции РЕД ОС 7.3:
После выполнения официальной инструкции дополнительно выполните:
# Добавить текущего пользователя в группу docker
sudo usermod -aG docker $USER
# Проверить работоспособность Docker
docker infoЕсли официальная инструкция отсутствует или недоступна, используйте стандартную установку Docker (см. инструкцию для CentOS 7, dnf необходимо заменить на yum).
4. Проверка работы systemd
На всех целевых ОС в качестве init-системы используется systemd. Для проверки его работоспособности выполните следующие команды на каждом сервере:
-
Убедитесь, что systemd является init-системой. Выполните команду:
ps -p 1 -o comm=Ожидаемый вывод:
systemd. Если выводinitилиsysvinit, значит, systemd не используется. -
Убедитесь, что система загружена не в аварийном режиме. Выполните команду:
systemctl get-defaultОжидаемый вывод:
multi-user.targetилиgraphical.target. Если выводrescue.targetилиemergency.target, верните систему в обычный режим:sudo systemctl set-default multi-user.target sudo reboot
5. Проверка наличия crontab
Для планирования регулярных задач система 5А использует cron. Убедитесь, что утилита crontab установлена и доступна.
RedOS 7.3
- Проверьте доступность
crontab:sudo crontab -l - Если команда не найдена, установите пакет
cronie:sudo yum install cronie -y - Запустите службу crond:
sudo systemctl enable --now crond
6. Установка и настройка FRR
RedOS 7.3
Пакет FRR доступен в стандартных репозиториях RedOS 7.3.
- Установите FRR:
sudo yum install frr frr-pythontools -y - Включите необходимых демонов в файле
/etc/frr/daemons:Установите:sudo nano /etc/frr/daemonszebra=yes bgpd=yes ospfd=yes vrrpd=yes bfdd=yes - Создайте файлы конфигурации и настройте права:
sudo touch /etc/frr/frr.conf sudo touch /etc/frr/vtysh.conf sudo chown -R frr:frr /etc/frr sudo bash -c 'chmod 640 /etc/frr/*.conf' - Запустите FRR:
sudo systemctl enable --now frrПримечание: Эта команда одновременно включает автозагрузку службы и запускает её. После выполнения убедитесь, что служба активна (см. шаг 6).
- Проверьте корректность конфигурации и статус службы:
Убедитесь, что в выводе присутствует
sudo systemctl status frractive (running). Затем проверьте конфигурацию черезvtysh:Внутриsudo vtyshvtyshвыполните:show running-config show ip route show ip bgp summary show ip ospf neighbor show vrrp exit
7. Установка keepalived для VRRP
Для обеспечения отказоустойчивости VIP-адресов по протоколу VRRP необходимо установить keepalived на каждый агент балансировки.
Минимальная версия: keepalived ≥ 2.2 (требуется для поддержки VRRPv3 с дробным интервалом анонсов, unicast-режима и корректной работы nopreempt).
Проверка версии после установки:
keepalived --version
# Ожидается: 2.2.x или новееУстановка (RedOS 7.3):
sudo yum install -y keepalivedСервис keepalived не нужно запускать или включать в автозагрузку вручную. Его конфигурацией и жизненным циклом управляет агент системы «Балансировщик 5А».
8. Дополнительные настройки для RedOS 7.3
Настройка SELinux
SELinux включён по умолчанию и может блокировать работу компонентов 5А. Для упрощения настройки рекомендуется отключить SELinux:
- Временно отключите:
sudo setenforce 0 - Постоянно отключите:
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config - Перезагрузите систему:
sudo reboot
Настройка firewalld
Firewalld может отсутствовать в RedOS 7.3. Если он не нужен, пропустите настройку. Если требуется:
sudo yum install firewalld -y
sudo systemctl enable --now firewalld
# Затем открыть порты через firewall-cmd (аналогично CentOS)Общее требование: Перед открытием портов ознакомьтесь с полным списком необходимых портов в документе «Требования к серверам» (Таблицы 1 и 2). Примеры команд для
firewalld:
# Порты для FRR
sudo firewall-cmd --permanent --add-port=179/tcp
sudo firewall-cmd --permanent --add-port=89/tcp
sudo firewall-cmd --permanent --add-port=112/tcp
# Основные порты системы 5А (пример, полный список см. в требованиях)
sudo firewall-cmd --permanent --add-port=8443/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --permanent --add-port=5432/tcp
# Применить изменения
sudo firewall-cmd --reload
# Проверить открытые порты
sudo firewall-cmd --list-ports9. Типичные проблемы и их решение
| Проблема | Решение |
|---|---|
vtysh: Can't open configuration file | Не создан vtysh.conf или неправильные права. Выполните шаг 6 (создание файлов и настройка прав: sudo touch /etc/frr/frr.conf /etc/frr/vtysh.conf && sudo chown -R frr:frr /etc/frr && sudo bash -c 'chmod 640 /etc/frr/*.conf'). |
| Конфликт версий Docker CLI | Удалите конфликтующие пакеты (шаг 3 для RedOS 7.3: sudo yum remove docker docker-ce docker-ce-cli containerd.io cri-dockerd podman-docker -y) и переустановите Docker по официальной инструкции. |
FRR не стартует (systemctl status frr показывает ошибку) | Проверьте, что в /etc/frr/daemons включены только нужные демоны: zebra=yes, bgpd=yes, ospfd=yes, vrrpd=yes, bfdd=yes. Остальные оставьте no. Также проверьте синтаксис frr.conf. |
Ошибка прав на /etc/frr/*.conf | Выполните sudo chown -R frr:frr /etc/frr && sudo bash -c 'chmod 640 /etc/frr/*.conf' (шаг 6). |
| SSH-подключение отклоняется (Permission denied) при развертывании с самого сервера | Рекомендация: выполняйте развертывание с выделенного jump-хоста (промежуточного сервера). Это повышает безопасность и упрощает управление ключами. Если jump-хост не используется, убедитесь, что ваш публичный ключ скопирован на целевой сервер (ssh-copy-id), проверьте права на каталог ~/.ssh (должен быть 700) и файл ~/.ssh/authorized_keys (600). Временно можно включить аутентификацию по паролю в /etc/ssh/sshd_config (параметр PasswordAuthentication yes) и перезапустить sshd, но после завершения настройки рекомендуется отключить. |
10. Финальная проверка перед развёртыванием приложения
Убедитесь, что на каждом сервере выполнены следующие условия:
- Docker работает:
docker info(без ошибок, пользователь в группеdocker, раздел 3). - FRR запущен:
systemctl status frr(активен, нет ошибок - раздел 6). - SSH-ключи созданы и настроены (раздел 1).
- systemd используется как init (раздел 4).
- crontab доступен (раздел 5).
- Порты открыты в соответствии с требованиями: проверьте, что на всех серверах разрешены входящие соединения на порты из Таблицы 1 документа «Требования к серверам». Для быстрой проверки можно использовать команду:
(список портов замените на актуальный для вашей конфигурации).
sudo ss -tulpn | grep -E ':(8443|9000|5432|50051|9090)'
Только после успешной проверки всех пунктов приступайте к установке компонентов Балансировщика 5А.