Настройка статических IP-адресов с помощью NetworkManager в RHEL/CentOS

Настройте постоянный статический IP в RHEL или CentOS с помощью `nmcli`, включая шлюз, DNS, активацию и проверку отката.

Настройка статических IP-адресов с помощью NetworkManager в RHEL/CentOS

Сетевое взаимодействие — одна из первых вещей, которую необходимо правильно настроить на сервере. В RHEL и CentOS NetworkManager позволяет настроить постоянный статический IP-адрес без ручного редактирования файлов интерфейсов, что безопаснее в новых версиях Enterprise Linux.

Это руководство описывает команды nmcli для установки адреса, шлюза и DNS-серверов, активации профиля и проверки того, что изменения сохраняются после перезагрузки.

Понимание NetworkManager и nmcli

Прежде чем перейти к шагам настройки, давайте проясним основные компоненты, которые мы будем использовать:

Что такое NetworkManager?

NetworkManager — это демон, который управляет сетевыми настройками, упрощая управление сетевыми подключениями. Он может управлять различными типами подключений, включая Ethernet, Wi-Fi, мобильный широкополосный доступ и VPN. Он автоматически обнаруживает и настраивает сетевые устройства и пытается поддерживать активное сетевое подключение, переключаясь между доступными подключениями по мере необходимости. Для серверов он гарантирует, что ваши сетевые интерфейсы настроены правильно и сохраняются после перезагрузок.

Что такое nmcli?

nmcli — это клиент командной строки для NetworkManager. Он позволяет управлять NetworkManager и настраивать сетевые подключения из терминала. Он особенно полезен в серверных средах без графического интерфейса. Команды nmcli интуитивно понятны и предоставляют надежный способ взаимодействия с полным спектром функций NetworkManager, от отображения состояния сетевых устройств до создания и изменения сложных профилей подключений.

Предварительные требования

Чтобы следовать этому руководству, убедитесь, что у вас есть:

  • Права root: Вам понадобится доступ sudo или вход в систему как root для внесения изменений в сетевую конфигурацию.
  • Информация о системе: Статический IP-адрес, маска подсети (или нотация CIDR), шлюз по умолчанию и IP-адреса DNS-серверов, которые вы собираетесь использовать.
  • Идентифицированный сетевой интерфейс: Знание имени сетевого интерфейса (например, enp0s3, eth0), который вы хотите настроить. Мы расскажем, как его найти.

Пошаговая настройка статического IP-адреса

Вот как настроить статический IP-адрес с помощью nmcli.

Шаг 1: Определите ваш сетевой интерфейс

Сначала вам нужно узнать имя сетевого интерфейса, который вы хотите настроить. Вы можете перечислить все активные сетевые устройства и их статусы с помощью nmcli device или nmcli device status:

nmcli device status

Пример вывода:

DEVICE     TYPE      STATE                   CONNECTION
enp0s3     ethernet  connected               System enp0s3
lo         loopback  unmanaged               --

В этом примере enp0s3 — наш Ethernet-интерфейс. Запомните имя вашего интерфейса.

Шаг 2: Создайте новый профиль сетевого подключения

Обычно хорошей практикой является создание нового профиля подключения для вашей статической IP-конфигурации, а не прямое изменение существующего, управляемого DHCP, особенно если вы хотите легко вернуться к предыдущим настройкам. Профиль подключения хранит все настройки для конкретного сетевого подключения.

Чтобы создать новый профиль Ethernet-подключения, используйте команду nmcli connection add. Укажите тип подключения, описательное имя подключения (con-name) и имя интерфейса (ifname).

sudo nmcli connection add type ethernet con-name my-static-eth ifname enp0s3
  • type ethernet: Указывает Ethernet-подключение.
  • con-name my-static-eth: Присваивает имя этому новому профилю подключения. Выберите что-то описательное.
  • ifname enp0s3: Привязывает этот профиль подключения к физическому сетевому интерфейсу enp0s3.

Альтернатива: Изменение существующего профиля

Если вы предпочитаете изменить существующее подключение (например, System enp0s3 из вывода nmcli device status), вы должны использовать nmcli connection modify с его существующим con-name.

sudo nmcli connection modify "System enp0s3" # замените на имя вашего подключения

Примечание: Для простоты и ясности это руководство предполагает, что вы создали новый профиль подключения с именем my-static-eth.

Шаг 3: Настройте параметры IPv4 (IP, шлюз, DNS)

Теперь давайте настроим статический IP-адрес, шлюз и DNS-серверы для нашего профиля подключения my-static-eth. Важно установить метод IPv4 в manual, чтобы отключить DHCP.

Установка IP-адреса и шлюза

Используйте свойства ipv4.addresses и ipv4.gateway. IP-адрес должен быть в нотации CIDR (например, 192.168.1.100/24).

sudo nmcli connection modify my-static-eth ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
  • ipv4.addresses 192.168.1.100/24: Устанавливает статический IP-адрес 192.168.1.100 с маской подсети 24 бита (255.255.255.0).
  • ipv4.gateway 192.168.1.1: Устанавливает шлюз по умолчанию для сети.

Установка DNS-серверов

Укажите один или несколько IP-адресов DNS-серверов. Разделяйте несколько адресов запятыми.

sudo nmcli connection modify my-static-eth ipv4.dns "1.1.1.1,8.8.8.8"

Если ваша организация использует внутренний DNS, используйте IP-адреса этих резолверов. Например, частный сервер может использовать 192.168.1.10 и 192.168.1.11.

Отключение DHCP для IPv4

Установите метод IPv4 в manual; в противном случае NetworkManager может все еще пытаться использовать DHCP для этого профиля.

sudo nmcli connection modify my-static-eth ipv4.method manual

Если сервер не должен использовать IPv6 на этом подключении, отключите его явно:

sudo nmcli connection modify my-static-eth ipv6.method disabled

Делайте это только в том случае, если ваша сеть не использует IPv6.

Шаг 4: Активируйте статический профиль

Поднимите новое подключение. Если вы работаете через SSH, выполняйте это из консольного доступа или запланируйте откат перед изменением активного интерфейса.

sudo nmcli connection up my-static-eth

Если старый DHCP-профиль все еще активен на том же интерфейсе, отключите его после подтверждения работы статического профиля:

sudo nmcli connection down "System enp0s3"

Замените "System enp0s3" на фактическое имя старого подключения из nmcli connection show.

Шаг 5: Проверьте адрес, маршрут и DNS

Проверьте активное подключение:

nmcli connection show --active

Подтвердите IP-адрес:

ip addr show enp0s3

Подтвердите маршрут по умолчанию:

ip route

Вы должны увидеть маршрут, похожий на:

default via 192.168.1.1 dev enp0s3

Проверьте настройки DNS, управляемые NetworkManager:

nmcli device show enp0s3 | grep DNS

Затем проверьте реальное подключение:

ping -c 3 192.168.1.1
ping -c 3 1.1.1.1
getent hosts example.com

Первая команда проверяет шлюз, вторая — исходящее IP-подключение, а третья — разрешение DNS.

Безопасные удаленные изменения

Изменения статического IP могут разорвать ваше SSH-соединение, если вы неправильно введете адрес или шлюз. Перед удаленным применением профиля держите открытой вторую сессию и рассмотрите возможность планирования отката:

sudo shutdown -r +5 "Перезагрузка для отката сети"

Если новый статический IP работает, отмените перезагрузку:

sudo shutdown -c

На системах, где перезагрузка неприемлема, создайте временное задание at или используйте консольный доступ вне полосы, чтобы вы могли восстановиться, если маршрут неправильный.

Вывод

Используйте профили подключений nmcli для постоянной настройки статического IP в RHEL и CentOS. Минимальный рабочий набор — ipv4.addresses, ipv4.gateway, ipv4.dns и ipv4.method manual; самый безопасный рабочий процесс — активировать профиль, проверить маршрут и поведение DNS, затем удалить или отключить старый DHCP-профиль только после того, как сервер станет доступен по новому адресу.