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