База знаний

Как настроить сеть под Linux

Образы операционных систем, предоставляемые сервисом CLO, содержат предустановленный агент настройки сети netconfig. Агент netconfig можно также установить самостоятельно на любой виртуальный сервер с образом операционной системы. 

Автоматическая установка netconfig

Чтобы установить netconfig автоматически, выполните следующую команду.

wget -qO - http://rep.clo.ru/utils/netconfig-install.sh|bash

Установка netconfig в ручном режиме


Шаг 1. Загрузите исполняемый файл программы netconfig и присвойте ему права на запуск.

wget -qO /etc/sysconfig/network-scripts/netconfig http://rep.clo.ru/utils/netconfig

chmod 770 /etc/network/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

Для AlmaLinux:

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 и AlmaLinux скрипт netconfig используется в качестве замены NetworkManager. Это делается потому, что NetworkManager не поддерживает PBR и конфликтует с настройками, которые осуществляет скрипт netconfig. Конфликт приводит к нестабильной работе сети.

Настройка netconfig вручную

Если использование netconfig по каким либо причинам нежелательно, настройка сети может быть выполнена вручную с использованием стандартных инструментов и средств конкретной операционной системы.

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

Примечание. С каждым сетевым интерфейсом будет работать только один IP-адрес, который был назначен этому интерфейсу в Личном кабинете пользователя. IP-адреса, назначенные для сетевого интерфейса в качестве алиасов (псевдонимов), не будут работать с этим интерфейсом.

При отсутствии на сервере агента netconfig в Личном кабинете пользователя будут недоступны следующие возможности:

  • Смена основного IP-адреса
  • Автоматическая настройка сетевого интерфейса при добавлении IP-адреса
  • Перенастройка интерфейсов при удалении IP-адреса

Внимание! в режиме работы сети L2 метаданные сервера, используемые агентом netconfig, недоступны. Поэтому на уровне L2 настройка сети должна выполняется вручную, При переключении сети на уровень L2 рекомендуется также удалять скрипт-конфигуратор netconfig из образа сервера.