Перейти до змісту

NetworkManager: Набір інструментів налаштування мережі

У 2004 році компанія Red Hat запустила проект NetworkManager, який має задовольнити користувачам Linux потреби поточного керування мережами, особливо керування бездротовими мережами. Сьогодні проектом керує GNOME. Домашню сторінку NetworkManager можна знайти тут.

NetworkManager — це стандартний набір інструментів налаштування мережі Linux. Він підтримує різні мережеві параметри від комп’ютера до сервера та мобільних пристроїв і ідеально інтегрований із популярними середовищами робочого столу та інструментами керування конфігурацією сервера.

Набір в основному включає два інструменти командного рядка:

  • nmtui. Налаштовує мережу в графічному інтерфейсі.
shell > dnf -y install NetworkManager NetworkManager-tui
shell > nmtui
NetworkManager TUI
Редагувати підключення
Активувати підключення
Встановити ім'я хоста системи
Вийти
OK
  • nmcli. Використовує командний рядок для налаштування мережі, або чистий командний рядок, або інтерактивний командний рядок.
Shell > nmcli connection show
NAME    UUID                                  TYPE      DEVICE
ens160  25106d13-ba04-37a8-8eb9-64daa05168c9  ethernet  ens160

Для RockyLinux 8.x ми розповіли, як налаштувати мережу у цьому документі. Ви можете використовувати vim для редагування файлу конфігурації мережевої карти в каталозі /etc/sysconfig/network-script/ або nmcli/nmtui, обидва з яких прийнятні.

Правила іменування для диспетчера пристроїв udev

Для RockyLinux 9.x, якщо ви перейдете до каталогу /etc/sysconfig/network-scripts/, там буде ** readme-ifcfg-rh.txt текст опису, який пропонує вам перейти до каталогу /etc/NetworkManager/system-connections/**.

Shell > cd /etc/NetworkManager/system-connections/  && ls
ens160.nmconnection

ens160 тут стосується назви мережевої карти в системі. Ви можете здивуватися, чому назва виглядає так дивно? Це через диспетчер пристроїв udev. Він підтримує багато різних схем імен. За замовчуванням фіксовані імена призначаються відповідно до мікропрограми, топології та інформації про місцезнаходження. До його переваг можна віднести:

  • Назви пристроїв цілком передбачувані.
  • Назви пристроїв залишаються фіксованими, навіть якщо ви додаєте або видаляєте апаратне забезпечення, оскільки повторного перерахування не відбувається.
  • Несправне обладнання можна легко замінити.

У RHEL 9 і відповідній версії спільноти операційних систем узгоджене іменування пристроїв увімкнено за замовчуванням. Диспетчер пристроїв udev генеруватиме назви пристроїв за наступною схемою:

Схема Опис Приклад
1 Назви пристроїв включають мікропрограмне забезпечення або номери індексів, надані BIOS для бортових пристроїв. Якщо ця інформація недоступна або застосовна, udev використовує схему 2. eno1
2 Назви пристроїв включають номери індексів вбудованого програмного забезпечення або наданого BIOS слота PCI Express (PCIe). Якщо ця інформація недоступна або застосовна, udev використовує схему 3. ens1
3 Назви пристроїв включають фізичне розташування роз’єму обладнання. Якщо ця інформація недоступна або застосовна, udev використовує схему 5. enp2s0
4 Назви пристроїв містять MAC-адресу. Red Hat Enterprise Linux не використовує цю схему за замовчуванням, але адміністратори можуть використовувати її за бажанням. enx525400d5e0fb
5 Традиційна непередбачувана схема іменування ядра. Якщо udev не може застосувати жодну з інших схем, диспетчер пристроїв використовує цю схему. eth0

Диспетчер пристроїв udev називає префікс мережевої карти на основі типу інтерфейсу:

  • en для Ethernet.
  • wl для бездротової локальної мережі (WLAN).
  • ww для бездротової глобальної мережі (WWAN).
  • ib, мережа InfiniBand.
  • sl, Інтернет-протокол послідовної лінії (slip)

Додайте кілька суфіксів до префікса, наприклад:

  • o on-board_index_number
  • s hot_plug_slot_index_number [f] функція [d] device_id
  • x MAC_адреса
  • [P] номер домену p шина s слот [f] функція [d] device_id
  • [P] номер домену p шина s слот [f] функція [u] Usb порт [c] інтерфейс конфігурації [i]

Ви можете скористатися man 7 systemd.net-naming-scheme, щоб отримати детальнішу інформацію.

Команда nmcli (рекомендовано)

Користувачі можуть не тільки налаштовувати мережу в чистому режимі командного рядка, а й використовувати інтерактивні команди для налаштування мережі.

nmcli connection

Команда nmcli connection може показувати, видаляти, додавати, змінювати, редагувати, вгору, вниз тощо.

Для конкретного використання зверніться до nmcli connection add --help, nmcli connection edit --help, nmcli connection modify --help тощо.

Наприклад, щоб налаштувати нове з’єднання зі статичним ip ipv4 за допомогою чистого командного рядка та запустити його автоматично, це може бути:

Shell > nmcli  connection  add  type  ethernet  con-name   CONNECTION_NAME  ifname  NIC_DEVICE_NAME   \
ipv4.method  manual  ipv4.address "192.168.10.5/24"  ipv4.gateway "192.168.10.1"  ipv4.dns "8.8.8.8,114.114.114.114" \
ipv6.method  disabled  autoconnect yes

Якщо ви використовуєте DHCP для отримання адреси ipv4, це може бути:

Shell > nmcli  connection  add  type ethernet con-name CONNECTION_NAME  ifname  NIC_DEVICE_NAME \
ipv4.method  auto  ipv6.method  disabled  autoconnect  yes

При наведеній вище конфігурації підключення не активується. Потрібно виконати наступні операції:

Shell > nmcli connection up  NIC_DEVICE_NAME

Увійдіть в інтерактивний інтерфейс за допомогою ключового слова edit на основі існуючого підключення та змініть його:

Shell > nmcli connection  edit  CONNECTION_NAME
nmcli > help

Ви також можете змінити одну чи декілька властивостей підключення безпосередньо з командного рядка за допомогою ключового слова modify. Наприклад:

Shell > nmcli connection modify CONNECTION_NAME autoconnect yes ipv6.method dhcp

Інформація

Операції через nmcli або nmtui зберігаються постійно, а не тимчасово.

Агрегація посилань

Деякі використовують кілька мережевих карт для агрегації посилань. На початку використання технології з’єднання існувало сім робочих режимів (0~6), а режим з’єднання підтримував щонайбільше дві мережеві карти. Пізніше технологія teaming поступово використовується як альтернатива, існує п'ять режимів роботи, а командний режим може використовувати до восьми мережевих карт. Порівняльне посилання між bonding і teaming можна знайти за цим посиланням.

Наприклад, режим склеювання 0:

Shell > nmcli  connection  add  type  bond  con-name  BOND_CONNECTION_NAME   ifname  BOND_NIC_DEVICE_NAME  mode 0
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME1   master  BOND_NIC_DEVICE_NAME
Shell > nmcli  connection  add  type  bond-slave   ifname NIC_DEVICE_NAME2   master  BOND_NIC_DEVICE_NAME

Конфігурація мережевої карти

Важливо

Не рекомендується вносити зміни за допомогою vim або інших редакторів.

Ви можете переглянути детальнішу інформацію в man 5 NetworkManager.conf і man 5 nm-settings-nmcli.

Вміст файлу конфігурації мережевої карти NetworkManager є файлом ключа у стилі init. Наприклад:

Shell > cat /etc/NetworkManager/system-connections/ens160.nmconnection
[connection]
id=ens160
uuid=5903ac99-e03f-46a8-8806-0a7a8424497e
type=ethernet
interface-name=ens160
timestamp=1670056998

[ethernet]
mac-address=00:0C:29:47:68:D0

[ipv4]
address1=192.168.100.4/24,192.168.100.1
dns=8.8.8.8;114.114.114.114;
method=manual

[ipv6]
addr-gen-mode=default
method=disabled

[proxy]
  • Рядки, які починаються з # і порожні рядки, вважаються коментарями.
  • Позначками [ і ] є розділ, у якому передбачається оголосити назву, а нижче наведено конкретні пари ключ-значення. Кожен оголошений заголовок і його пара ключ-значення утворюють синтаксичний сегмент.
  • Будь-який файл із суфіксом .nmconnection може використовувати NetworkManager.

Назви заголовків connection можуть містити такі загальні пари ключ-значення:

назва ключа опис
id Псевдонім con-name, значенням якого є рядок.
uuid Універсальний унікальний ідентифікатор, значенням якого є рядок.
type Тип підключення, значення якого можуть бути ethernet, bluetooth, vpn, vlan тощо. Ви можете скористатися man nmcli, щоб переглянути всі підтримувані типи.
interface-name Ім'я мережевого інтерфейсу, до якого прив'язано це з'єднання, значенням якого є рядок.
timestamp Позначка часу Unix, у секундах. Значення тут — це кількість секунд з 1 січня 1970 року.
autoconnect Чи запускається автоматично під час запуску системи. Значення має boolean тип.

Назви ethernet можуть містити такі загальні пари ключ-значення:

назва ключа опис
mac-address MAC фізична адреса.
mtu Maximum Transmission Unit (Максимальна одиниця передачі).
auto-negotiate Чи вести переговори автоматично. Значення має логічний тип.
duplex Значення можуть бути половиною (напівдуплекс), повним (повнодуплекс)
speed Вкажіть швидкість передачі даних мережевої карти. 100 - це 100 Мбіт/с. Якщо auto-negotiate=false, клавіша speed і duplex ** необхідно встановити ключ; якщо auto-negotiate=true, використана швидкість узгоджена, а запис тут не діє (це стосується лише специфікації BASE-T 802.3) ; коли ненульове значення, дуплексний** ключ повинен мати значення.

Імена заголовків ipv4 можуть містити такі загальні пари ключ-значення:

назва ключа опис
addresses Призначені IP-адреси
gateway Шлюз (наступний крок) для інтерфейсу
dns Використовуються сервери доменних імен
method Спосіб отримання IP. Значення має рядковий тип. Значення може бути: auto, disabled, link-local, manual, shared

Author: tianci li

Contributors: Steven Spencer