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

Вступ

У наші дні ви не можете багато чого зробити з комп’ютером без підключення до мережі. Незалежно від того, чи потрібно вам оновити пакети на сервері чи переглядати зовнішні веб-сайти зі свого ноутбука, вам знадобиться доступ до мережі! Метою цього посібника є надання користувачам Rocky Linux базових знань щодо налаштування підключення до мережі.

Передумови

  • Певний комфорт роботи з командного рядка
  • Підвищені або адміністративні привілеї в системі (наприклад, root, sudo тощо)
  • Додатково: знайомство з мережевими концепціями

Конфігурація мережі - Rocky Linux 9

З Rocky Linux 9 багато чого змінилося в конфігурації мережі. Однією з головних змін є перехід від мережевих сценаріїв (досі доступних для встановлення, але фактично застарілих) до використання Менеджера мережі та ключових файлів, а не файлів на основі ifcfg. NetworkManager, починаючи з 9, надає пріоритет keyfiles над попередніми ifcfg файлами. Оскільки зараз це значення за замовчуванням, налаштування мережі має прийняти значення за замовчуванням як правильний спосіб виконання завдань, враховуючи, що інші зміни протягом багатьох років означали остаточне припинення підтримки та видалення старіших утиліт. Цей посібник спробує ознайомити вас із використанням Network Manager та останніми змінами в Rocky Linux 9.

Передумови

  • Певний комфорт роботи з командного рядка
  • Підвищені або адміністративні привілеї в системі (наприклад, root, sudo тощо)
  • Додатково: знайомство з мережевими концепціями

Використання служби NetworkManager

На рівні користувача мережевим стеком керує NetworkManager. Цей інструмент працює як служба, і ви можете перевірити його стан за допомогою такої команди:

systemctl status NetworkManager

Файли конфігурації

Як зазначалося на початку, файли конфігурації за замовчуванням тепер життєво важливі. Ви можете побачити, як NetworkManager визначає пріоритет цих файлів, виконавши таку команду:

NetworkManager --print-config

Це дає результат, який виглядає так:

[main]
# plugins=keyfile,ifcfg-rh
# rc-manager=auto
# auth-polkit=true
# iwd-config-path=
dhcp=dhclient
configure-and-quit=no

[logging]
# backend=journal
# audit=false

[device]
# wifi.backend=wpa_supplicant

# no-auto-default file "/var/lib/NetworkManager/no-auto-default.state"

Зверніть увагу на те, що у верхній частині файлу конфігурації є посилання на keyfile, а потім ifcfg-rh. Це означає, що типовим є keyfile. Кожного разу, коли ви запускаєте будь-який із інструментів NetworkManager для налаштування інтерфейсу (приклад: nmcli або nmtui), він автоматично створюватиме або оновлюватиме ключові файли.

Місце зберігання конфігурації

У Rocky Linux 8 місце зберігання конфігурації мережі було в /etc/sysconfig/Network-Scripts/. У Rocky Linux 9 нове місце зберігання ключових файлів за умовчанням знаходиться в /etc/NetworkManager/system-connections.

Основною (але не єдиною) утилітою, яка використовується для налаштування мережевого інтерфейсу, є команда nmtui. Це також можна зробити за допомогою команди nmcli, але це набагато менш інтуїтивно зрозуміло. Ми можемо показати інтерфейс, як він наразі налаштований за допомогою nmcli за допомогою:

nmcli device show enp0s3
GENERAL.DEVICE:                         enp0s3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:BA:CE:88
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     enp0s3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.1.151/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4
IP4.DNS[3]:                             192.168.1.1
IP6.ADDRESS[1]:                         fe80::a00:27ff:feba:ce88/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024

Поради:

Існує кілька способів або механізмів, за допомогою яких системам можна призначити інформацію про конфігурацію IP. Два найпоширеніші методи: схема конфігурації статичної IP-адреси та схема конфігурації динамічної IP-адреси.

Схема конфігурації статичного IP є модною в системах або мережах серверного класу.

Динамічний IP-підхід популярний у домашніх і офісних мережах, робочих станціях і настільних системах у бізнес-середовищі. Динамічна схема зазвичай потребує щось додаткового, що є локально доступним і може надати правильну інформацію про конфігурацію IP для запитуючих робочих станцій і робочих столів. Це щось називається протоколом динамічної конфігурації хоста (DHCP). У домашній мережі та навіть у більшості бізнес-мереж ця послуга надається сервером DHCP, налаштованим для цієї мети. Це може бути окремий сервер або частина конфігурації маршрутизатора.

IP-адреса

У попередньому розділі показана конфігурація для інтерфейсу enp0s3 що генерується з файлу .ini /etc/NetworkManager/system-connections/enp0s3.nmconnection. Це показує, що IP4.ADDRESS[1] було налаштовано статично, а не динамічно через DHCP. Якщо ми хочемо перемкнути цей інтерфейс назад на динамічно виділену адресу, найпростішим способом є використання команди nmtui.

  1. Спочатку запустіть команду nmtui в командному рядку, яка має показати наступне

    nmtui

  2. Нам уже потрібне «Редагувати з’єднання» у виділеному пункті, тож натисніть клавішу TAB, щоб виділити «ОК», і натисніть ENTER

  3. Відкриється екран, на якому показано підключення Ethernet на машині, і ви зможете вибрати одне з них. У нашому випадку є ЛИШЕ один, тому він уже виділений, нам просто потрібно натиснути клавішу TAB, доки не буде виділено «Редагувати». а потім натисніть ENTER

    nmtui_edit

  4. Коли ми це зробимо, ми будемо на екрані, де буде показано нашу поточну конфігурацію. Що нам потрібно зробити, це перемкнутися з «Вручну» на «Автоматично», тому натисніть клавішу TAB кілька разів, доки не дійдете до місця, де буде виділено «Вручну», а потім натисніть ENTER.

    nmtui_manual

  5. Стрілка вгору, доки не буде виділено «Автоматично», а потім натисніть ENTER

    nmtui_automatic

  6. Після того, як ми перемкнули інтерфейс на «Автоматичний», нам потрібно видалити статично призначену IP-адресу, тому натискайте клавішу TAB, доки «Видалити» не буде виділено поруч із IP-адресою, і натисніть ENTER.

    nmtui_remove

  7. Нарешті натисніть клавішу TAB кілька разів, доки не дійдете до нижньої частини екрана nmtui і не буде виділено «OK», а потім натисніть ENTER

Ви також можете вимкнути та знову активувати свій інтерфейс за допомогою nmtui, але натомість зробимо це за допомогою nmcli. Таким чином ми можемо зв’язати деактивацію та повторну активацію інтерфейсу, щоб інтерфейс ніколи не був недоступним надовго:

nmcli con down enp0s3 && nmcli con up enp0s3

Подумайте про це як про еквівалент старого ifdown enp0s3 && ifup enp0s3 використовується в старих версіях ОС.

Щоб переконатися, що це спрацювало, перевірте за допомогою команди ip addr або команди nmcli device show enp0s3, яку ми використовували раніше.

ip addr

У разі успіху ви побачите, що статичну IP-адресу видалено та додано динамічно виділену адресу, подібну до цієї:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.137/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3
   valid_lft 6342sec preferred_lft 6342sec
inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

Зміна IP-адреси за допомогою nmcli

Користуватися nmtui добре, але якщо ви хочете швидко переналаштувати мережевий інтерфейс, не витрачаючи час між екранами, ви, ймовірно, захочете використовувати nmcli окремо. Давайте розглянемо наведений вище приклад статично призначеної IP-адреси та кроки для переналаштування інтерфейсу на DHCP лише за допомогою nmcli.

Перш ніж почати, майте на увазі, що для переналаштування інтерфейсу на DHCP нам потрібно:

  • Видаліть шлюз IPv4
  • Видаліть IPv4-адресу, яку ми статично призначили
  • Змініть метод IPv4 на автоматичний
  • Інтерфейс вниз і вгору

Зауважте, що ми не використовуємо приклади, які говорять вам про використання -ipv4.address тощо. Вони не змінюють повністю інтерфейс. Для цього ми повинні встановити порожній рядок для ipv4.address і ipv4.gateway. Знову ж таки, щоб заощадити якомога більше часу за допомогою нашої команди, ми збираємося об’єднати їх усі в один рядок:

nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3

Повторне виконання команди ip addr має показати ті самі результати, що й під час виконання змін за допомогою nmtui. Очевидно, ми могли б зробити все і навпаки (змінити адресу DHCP на статичну). Для цього ми б запустили команди у зворотному порядку, починаючи зі зміни ipv4.method на ручний, налаштувавши ipv4.gateway, а потім налаштувавши ipv4.address. Оскільки в усіх цих прикладах ми повністю змінюємо конфігурацію інтерфейсу, а не додаємо чи віднімаємо до нього значення, ми знову не будемо використовувати моделі, які говорять про використання +ipv4.method,+ipv4.gateway та +ipv4.address. Якщо ви використаєте ці команди замість тих, які ми використовували вище, ви отримаєте інтерфейс із ОБОДВА адресою, призначеною DHCP, і адресою, призначеною статично. Проте інколи це може бути дуже зручно. Якщо у вас є веб-служба, яка слухає одну IP-адресу, а SFTP-сервер – іншу IP-адресу. Наявність методу призначення кількох IP-адрес інтерфейсу є досить корисним.

Роздільна здатність DNS

Налаштувати DNS-сервери можна за допомогою nmtui або nmcli. Хоча інтерфейс nmtui простий у навігації та набагато більш інтуїтивно зрозумілий, процес набагато повільніший. Зробити це за допомогою nmcli набагато швидше. У випадку адреси, призначеної DHCP, зазвичай немає необхідності встановлювати DNS-сервери, оскільки вони зазвичай пересилаються з сервера DHCP. Проте ви можете статично додавати DNS-сервери до інтерфейсу DHCP. У випадку зі статично призначеним інтерфейсом ви МАЄТЕ це зробити, оскільки йому потрібно знати, як отримати дозвіл DNS, і не матимете автоматично призначеного методу.

Оскільки найкращим прикладом для всього цього є статично призначений IP, давайте повернемося до нашої вихідної статично призначеної адреси в нашому прикладі інтерфейсу (enp0s3). Перш ніж змінювати значення DNS, нам потрібно побачити, які вони зараз. Щоб отримати правильний дозвіл імен, видаліть уже налаштовані DNS-сервери та додайте інші. Наразі для ipv4.dns встановлено 8.8.8.8,8.8.4.4,192.168.1.1. У цьому випадку нам не потрібно встановлювати для ipv4.dns порожній рядок. Ми можемо використовувати таку команду, щоб замінити наші значення:

nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1'

Запуск nmcli con show enp0s3 | grep ipv4.dns має показати, що ми успішно змінили сервери DNS. Щоб активувати все, давайте перенесемо наш інтерфейс вниз і знову, щоб наші зміни були активними:

nmcli con down enp0s3 && nmcli con up enp0s3

Щоб перевірити, чи ми робимо розпізнавання імен, спробуйте перевірити ping на відомому хості. Ми будемо використовувати google.com як приклад:

ping google.com
PING google.com (172.217.4.46) 56(84) bytes of data.
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=14.6 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.4 ms
^C

Використання утиліти ip

Команда ip (надається пакетом iproute2) є потужним інструментом для отримання інформації та налаштування мережі сучасної системи Linux, такої як Rocky Linux.

У цьому прикладі ми припустимо такі параметри:

  • interface name: enp0s3
  • ip address: 192.168.1.151
  • subnet mask: 24
  • gateway: 192.168.1.1

Отримання загальної інформації

Щоб переглянути детальний стан усіх інтерфейсів, використовуйте

ip a

Професійні поради:

  • використовуйте прапорець -c, щоб отримати більш читабельний кольоровий вивід: ip -c a.
  • ip приймає абревіатуру, тому ip a, ip addr та ip address еквівалентні

Переміщення інтерфейсу вгору або вниз

Примітка

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

Щоб повернути enp0s3 вниз і знову, ми можемо просто використати:

ip link set enp0s3 down && ip link set enp0s3 up

Призначення інтерфейсу статичної адреси

Наразі наш інтерфейс enp0s3 має IP-адресу 192.168.1.151. Щоб перемкнути його на 192.168.1.152, ми видалимо старий IP-адресу за допомогою

ip addr delete 192.168.1.151/24 dev enp0s3 && ip addr add 192.168.1.152/24 dev enp0s3

Якби ми хотіли, щоб інтерфейсу було призначено другий IP замість видалення адреси 192.168.1.151, ми б просто додали другу адресу за допомогою:

ip addr add 192.168.1.152/24 dev enp0s3

Ми можемо перевірити, чи було додано IP-адресу за допомогою

ip a show dev enp0s3

виведе:

2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.151/24 brd 192.168.1.255 scope global noprefixroute enp0s3
   valid_lft forever preferred_lft forever
inet 192.168.1.152/24 scope global secondary enp0s3
   valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute 
   valid_lft forever preferred_lft forever

Хоча перемикання інтерфейсу за допомогою утиліти ip набагато повільніше, ніж nmcli, ip має явну перевагу під час встановлення нових або додаткових IP-адрес, як це відбувається в режимі реального часу, без переривання інтерфейсу.

Конфігурація шлюзу

Тепер, коли інтерфейс має адресу, ми повинні встановити його маршрут за замовчуванням. Це можна зробити за допомогою:

ip route add default via 192.168.1.1 dev enp0s3

Таблицю маршрутизації ядра можна відобразити за допомогою

ip route

або скорочено ip r.

Це має вивести щось на зразок цього:

default via 192.168.1.1 dev enp0s3 
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.151 metric 100

Перевірка підключення до мережі

У наведених вище прикладах ми провели певне тестування. Найкращий вибір для тестування — почати з перевірки ping шлюзу за замовчуванням. Це завжди має працювати:

ping -c3 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.437 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.879 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.633 ms

Далі перевірте, чи ваша маршрутизація локальної мережі працює повністю, виконавши ping до хосту у вашій локальній мережі:

ping -c3 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=0.684 ms
64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=0.676 ms

Перевірте, щоб переконатися, що ми можемо бачити доступний хост поза вашою мережею. Для наведеного нижче тесту ми використовуємо відкритий DNS-сервер Google:

ping -c3 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=19.8 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=20.2 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.1 ms

Останнім тестом є перевірка роботи роздільної здатності DNS. Для цього прикладу ми використовуємо google.com:

ping -c3 google.com
PING google.com (172.217.4.46) 56(84) bytes of data.
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=15.1 ms
64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.6 ms

Якщо ваша машина має кілька інтерфейсів і ви хочете протестувати з певного інтерфейсу, просто скористайтеся опцією -I з ping:

ping -I enp0s3 -c3 192.168.1.10

Висновки

У Rocky Linux 9 є багато змін у мережевому стеку. Серед них пріоритетність keyfile над раніше використовуваними файлами ifcfg, знайденими в Network-Scripts. Оскільки в наступних версіях Rocky Linux мережеві сценарії будуть застарілими та видаленими, краще зосередити увагу на таких методологіях, як nmcli, nmtui та в у деяких випадках ip, для налаштування мережі.

Конфігурація мережі - Rocky Linux 8

Використання служби NetworkManager

На рівні користувача мережевим стеком керує NetworkManager. Цей інструмент працює як служба, і ви можете перевірити його стан за допомогою такої команди:

systemctl status NetworkManager

Конфігураційні файли

NetworkManager просто застосовує конфігурацію, зчитану з файлів, знайдених у /etc/sysconfig/network-scripts/ifcfg-<IFACE_NAME>. Кожен мережевий інтерфейс має свій конфігураційний файл. Нижче показано приклад стандартної конфігурації сервера:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=enp1s0
UUID=74c5ccee-c1f4-4f45-883f-fc4f765a8477
DEVICE=enp1s0
ONBOOT=yes
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DNS1=10.0.0.1
DNS2=1.1.1.1
IPV6_DISABLED=yes

Ім’я інтерфейсу – enp1s0, тому ім’я цього файлу буде /etc/sysconfig/network-scripts/ifcfg-enp1s0.

Поради:

Існує кілька способів або механізмів, за допомогою яких системам можна призначити інформацію про конфігурацію IP. Два найпоширеніші методи: схема конфігурації статичної IP-адреси та схема конфігурації динамічної IP-адреси.

Схема конфігурації статичного IP є модною в системах або мережах серверного класу.

Динамічний IP-підхід популярний у домашніх і офісних мережах або в системах робочих станцій і настільних комп’ютерів. Динамічна схема зазвичай потребує щось додаткового, що є локально доступним, що може надати належну інформацію про конфігурацію IP для запитуючих робочих станцій і настільних комп’ютерів. Це щось називається протоколом динамічної конфігурації хоста (DHCP).

Домашнім/офісним користувачам часто не потрібно турбуватися або знати про DHCP. Це тому, що хтось інший автоматично піклується про це у фоновому режимі. Кінцевий користувач має фізично чи бездротово підключитися до правильної мережі (і, звичайно, переконатися, що його системи увімкнено)!

IP-адреса

У попередньому списку /etc/sysconfig/network-scripts/ifcfg-enp1s0 значення параметра або ключа BOOTPROTO має значення none. Налаштована система налаштована на схему статичної IP-адреси.

Якщо натомість ви хочете налаштувати систему на використання схеми динамічної IP-адреси, вам доведеться змінити значення параметра BOOTPROTO з none на dhcp, а також видалити IPADDR, PREFIX і рядки GATEWAY. Це необхідно, оскільки вся ця інформація буде автоматично отримана з будь-якого доступного сервера DHCP.

Щоб налаштувати атрибуцію статичної IP-адреси, установіть наступне:

  • IPADDR: IP-адреса для призначення інтерфейсу
  • PREFIX: маска підмережі в нотації CIDR
  • GATEWAY: шлюз за умовчанням

Параметр ONBOOT зі значенням yes вказує на те, що це підключення буде активовано під час завантаження.

Роздільна здатність DNS

Для правильного розпізнавання імен необхідно встановити наступні параметри:

  • DNS1: IP-адреса основного сервера імен
  • DNS2: IP-адреса вторинного сервера імен

Перевірка конфігурації

Перевірити правильність застосування конфігурації можна за допомогою такої команди nmcli:

[user@server ~]$ sudo nmcli device show enp1s0

який повинен дати вам наступний результат:

GENERAL.DEVICE:                         enp1s0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         6E:86:C0:4E:15:DB
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connecté)
GENERAL.CONNECTION:                     enp1s0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               marche
IP4.ADDRESS[1]:                         10.0.0.10/24
IP4.GATEWAY:                            10.0.0.1
IP4.ROUTE[1]:                           dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.0.0.1, mt = 100
IP4.DNS[1]:                             10.0.0.1
IP4.DNS[2]:                             1.1.1.1
IP6.GATEWAY:                            --

CLI

Основною функцією NetworkManager є керування «з’єднаннями», які відображають фізичний пристрій для більш логічних мережевих компонентів, таких як IP-адреса та налаштування DNS. Щоб переглянути наявні підключення, які підтримує NetworkManager, ви можете запустити nmcli connection show.

[user@server ~]$ sudo nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp1s0  625a8aef-175d-4692-934c-2c4a85f11b8c  ethernet  enp1s0

З результатів вище ми можемо визначити, що NetworkManager керує з’єднанням (NAME) під назвою enp1s0, яке відображається на фізичному пристрої (DEVICE) enp1s0.

Назва з'єднання

У цьому прикладі з’єднання та пристрій мають однакове ім’я, але це не завжди так. Зазвичай можна побачити підключення під назвою System eth0, яке, наприклад, відображається на пристрої під назвою eth0.

Тепер, коли ми знаємо назву нашого підключення, ми можемо переглянути його налаштування. Для цього скористайтеся командою nmcli connection show [connection], яка роздрукує всі параметри, зареєстровані NetworkManager для даного з’єднання.

[user@server ~]$ sudo nmcli connection show enp1s0
...
ipv4.method:                            auto
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
...

Унизу лівого стовпця ми бачимо назву параметра, а внизу праворуч – значення.

Наприклад, ми бачимо, що ipv4.method тут наразі встановлено на auto. Існує багато дозволених значень для параметра ipv4.method, але два основні, які ви, швидше за все, побачите:

  • auto: для інтерфейсу використовується відповідний автоматичний метод (DHCP, PPP тощо), більшість інших властивостей можна не налаштовувати.
  • manual: використовується статична IP-адреса, і принаймні одну IP-адресу потрібно вказати у властивості 'addresses'.

Якщо замість цього ви хочете налаштувати систему на використання схеми статичної IP-адреси, вам доведеться змінити значення ipv4.method на manual, а також вказати ipv4.gateway та ipv4.addresses.

Щоб змінити налаштування, ви можете скористатися командою nmcli nmcli connection modify [connection] [setting] [value].

# set 10.0.0.10 as the static ipv4 address
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.addresses 10.0.0.10

# set 10.0.0.1 as the ipv4 gateway
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.gateway 10.0.0.1

# change ipv4 method to use static assignments (set in the previous two commands)
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.method manual

Коли з’єднання оновлюється?

nmcli connection modify не змінюватиме конфігурацію runtime, але оновлюватиме конфігурацію /etc/sysconfig/network-scripts файли з відповідними значеннями на основі того, що ви сказали nmcli налаштувати.

Щоб налаштувати ваші DNS-сервери за допомогою NetworkManager через CLI, ви можете змінити параметр ipv4.dns.

# set 10.0.0.1 and 1.1.1.1 as the primary and secondary DNS servers
[user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.dns '10.0.0.1 1.1.1.1'

Застосування конфігурації

Щоб застосувати конфігурацію мережі, ви можете скористатися командою nmcli connection up [connection].

[user@server ~]$ sudo nmcli connection up enp1s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Щоб отримати стан підключення, просто використовуйте:

[user@server ~]$ sudo nmcli connection show
NAME    UUID                                  TYPE      DEVICE
enp1s0  625a8aef-175d-4692-934c-2c4a85f11b8c  ethernet  enp1s0

Ви також можете використати команди ifup та ifdown, щоб змінити інтерфейс (вони є простими обгортками навколо nmcli):

[user@server ~]$ sudo ifup enp1s0
[user@server ~]$ sudo ifdown enp1s0

Використання утиліти ip

Команда ip (надається пакетом iproute2) є потужним інструментом для отримання інформації та налаштування мережі сучасної системи Linux, такої як Rocky Linux.

У цьому прикладі ми припустимо такі параметри:

  • назва інтерфейсу: ens19
  • ip-адреса: 192.168.20.10
  • subnet mask: 24
  • шлюз: 192.168.20.254

Отримання загальної інформації

Щоб переглянути детальний стан усіх інтерфейсів, використовуйте

ip a

Професійні поради:

  • використовуйте прапорець -c, щоб отримати більш читабельний кольоровий вивід: ip -c a.
  • ip приймає абревіатуру, тому ip a, ip addr та ip address еквівалентні

Переміщення інтерфейсу вгору або вниз

Щоб активувати інтерфейс ens19, просто скористайтеся ip link set ens19 up, а щоб вивести його з ладу, використовуйте ip link set ens19 down.

Призначення інтерфейсу статичної адреси

Команда, яка буде використана, має вигляд:

ip addr add <IP ADDRESS/CIDR> dev <IFACE NAME>

Щоб призначити наведені вище приклади параметрів, ми використаємо:

ip a add 192.168.20.10/24 dev ens19

Потім перевірте результат за допомогою:

ip a show dev ens19

виведе:

3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 4a:f2:f5:b6:aa:9f brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.10/24 scope global ens19
    valid_lft forever preferred_lft forever

Наш інтерфейс працює та налаштований, але йому все ще чогось не вистачає!

Використання утиліти ifcfg

Щоб додати інтерфейс ens19 до нашої нової прикладної IP-адреси, скористайтеся такою командою:

ifcfg ens19 add 192.168.20.10/24

Щоб видалити адресу:

ifcfg ens19 del 192.168.20.10/24

Щоб повністю вимкнути IP-адресу в цьому інтерфейсі:

ifcfg ens19 stop

Зауважте, що це не призведе до роботи інтерфейсу; він просто скасовує всі IP-адреси з інтерфейсу.

Конфігурація шлюзу

Тепер, коли інтерфейс має адресу, ми повинні встановити його маршрут за замовчуванням; це можна зробити за допомогою наступного:

ip route add default via 192.168.20.254 dev ens19

Таблицю маршрутизації ядра можна відобразити за допомогою

ip route

або скорочено ip r.

Перевірка підключення до мережі

На цьому етапі ваш мережевий інтерфейс має бути належним чином налаштований. Є кілька способів перевірити підключення.

Шляхом pinging іншої IP-адреси в тій же мережі (ми використаємо 192.168.20.42 як приклад):

ping -c3 192.168.20.42

Ця команда надішле 3 пінги (відомі як запит ICMP) і чекає на відповідь. Якщо все пройшло добре, ви повинні отримати такий результат:

PING 192.168.20.42 (192.168.20.42) 56(84) bytes of data.
64 bytes from 192.168.20.42: icmp_seq=1 ttl=64 time=1.07 ms
64 bytes from 192.168.20.42: icmp_seq=2 ttl=64 time=0.915 ms
64 bytes from 192.168.20.42: icmp_seq=3 ttl=64 time=0.850 ms

--- 192.168.20.42 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.850/0.946/1.074/0.097 ms

Потім, щоб переконатися, що ваша конфігурація маршрутизації правильна, спробуйте ping зовнішнього хосту, наприклад, цього добре відомого загальнодоступного розпізнавача DNS:

ping -c3 8.8.8.8

Якщо ваша машина має кілька мережевих інтерфейсів і ви хочете зробити запит ICMP через певний інтерфейс, ви можете використати позначку -I:

ping -I ens19 -c3 192.168.20.42

Настав час переконатися, що роздільна здатність DNS працює правильно. Нагадуємо, що роздільна здатність DNS — це механізм, який використовується для перетворення зрозумілих для людини імен машин на їхні IP-адреси та навпаки (зворотний DNS).

Якщо файл /etc/resolv.conf вказує на доступний DNS-сервер, тоді має працювати наступне:

host rockylinux.org

Результат має бути:

rockylinux.org has address 76.76.21.21

Висновки

У Rocky Linux 8 є інструменти для налаштування мережі за допомогою командного рядка. Цей документ допоможе вам швидко почати роботу з цими інструментами.

Contributors: Steven Spencer, Hayden Young, Ganna Zhyrnova