Как настроить сеть под Linux
Образы операционных систем, предоставляемые сервисом CLO, содержат предустановленный агент настройки сети netconfig. Агент netconfig можно также установить самостоятельно на любой виртуальный сервер с образом операционной системы.
Автоматическая установка netconfig
Чтобы установить netconfig автоматически, выполните следующую команду.
wget -qO - http://rep.clo.ru/utils/netconfig-install.sh|bash
Установка netconfig в ручном режиме
Шаг 1. Загрузите исполняемый файл программы netconfig и разрешите его запускать.
Для Ubuntu, Debian:
wget -qO /etc/network/netconfig http://rep.clo.ru/utils/netconfig
chmod 770 /etc/network/netconfig
Для Rocky, CentOS:
wget -qO /etc/sysconfig/network-scripts/netconfig http://rep.clo.ru/utils/netconfig
chmod 770 /etc/sysconfig/network-scripts/netconfig
Шаг 2. Создайте юнит systemd и включите его автозапуск через systemctl.
Для Ubuntu, Debian:
cat <<- \EOF > /etc/systemd/system/netconfig.service
[Unit]
Description=CLO NetConfig
DefaultDependencies=no
After=systemd-remount-fs.service
Before=networking.service
Before=NetworkManager.service
Before=systemd-networkd.socket
Before=networkd-dispatcher.service
Before=systemd-networkd.service
Before=network-pre.target
Before=cloud-init.target
Conflicts=shutdown.target
[Service]
Type=oneshot
Environment=SKIPDNS=1
RemainAfterExit=yes
ExecStart=/etc/network/netconfig
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable netconfig.service
Для Rocky:
cat <<- \EOF > /etc/systemd/system/netconfig.service
[Unit]
Description=CLO NetConfig
Before=NetworkManager.service
Before=systemd-networkd.service
[Service]
Type=oneshot
Environment=SKIPDNS=1
RemainAfterExit=yes
ExecStart=/etc/sysconfig/network-scripts/netconfig
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable netconfig.service
systemctl disable NetworkManager
Для CentOS:
cat <<- \EOF > /etc/systemd/system/netconfig.service
[Unit]
Description=CLO NetConfig
Wants=network.target
After=network-pre.target dbus.service
Before=network.target network.service
[Service]
Type=oneshot
Environment=SKIPDNS=1
RemainAfterExit=yes
ExecStart=/etc/sysconfig/network-scripts/netconfig
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable netconfig.service
systemctl disable NetworkManager
Примечание. В CentOS и Rocky скрипт netconfig используется в качестве замены NetworkManager. Это делается потому, что NetworkManager не поддерживает PBR и конфликтует с настройками, которые осуществляет скрипт netconfig. Конфликт приводит к нестабильной работе сети.
Настройка netconfig вручную
Если использование netconfig по каким либо причинам нежелательно, настройка сети может быть выполнена вручную с использованием стандартных инструментов и средств конкретной операционной системы.
Рекомендуется использовать маршрутизацию на основе правил, чтобы обеспечить одновременную работу нескольких сетевых интерфейсов.
Примечание. С каждым сетевым интерфейсом будет работать только один IP-адрес, который был назначен этому интерфейсу в Личном кабинете пользователя. IP-адреса, назначенные для сетевого интерфейса в качестве алиасов (псевдонимов), не будут работать с этим интерфейсом.
При отсутствии на сервере агента netconfig в Личном кабинете пользователя будут недоступны следующие возможности:
- Смена основного IP-адреса
- Автоматическая настройка сетевого интерфейса при добавлении IP-адреса
- Перенастройка интерфейсов при удалении IP-адреса
Внимание! в режиме работы сети L2 метаданные сервера, используемые агентом netconfig, недоступны. Поэтому на уровне L2 настройка сети должна выполняется вручную, При переключении сети на уровень L2 рекомендуется также удалять скрипт-конфигуратор netconfig из образа сервера.