Wyszukiwanie w witrynie

Jak zarządzać siecią za pomocą NetworkManager w RHEL/CentOS 8


W RHEL i CentOS 8 usługą sieciową zarządza demon NetworkManager, który służy do dynamicznego konfigurowania i kontrolowania urządzeń sieciowych oraz utrzymywania połączeń i aktywne, gdy są dostępne.

NetworkManager oferuje wiele korzyści, takich jak obsługa łatwej konfiguracji sieci i zarządzania nią przy użyciu zarówno interfejsu wiersza poleceń, jak i narzędzi graficznego interfejsu użytkownika, zapewnia interfejs API poprzez D-Bus, który pozwala na wysyłanie zapytań i kontrolowanie konfiguracji sieci, wsparcie zapewnia elastyczność konfiguracji i wiele więcej.

Poza tym NetworkManager można również skonfigurować przy użyciu plików i konsoli internetowej Cockpit, a także obsługuje użycie niestandardowych skryptów do uruchamiania lub zatrzymywania innych usług na podstawie stanu połączenia.

Przeczytaj także: Jak konfigurować połączenia sieciowe i zarządzać nimi za pomocą narzędzia „nmcli”

Zanim przejdziemy dalej, oto kilka innych ważnych punktów, na które warto zwrócić uwagę na temat sieci w CentOS/RHEL 8:

  • Tradycyjne pliki konfiguracyjne typu ifcfg (np. ifcfg-eth0, ifcfg-enp0s3) są nadal obsługiwane.
  • Skrypty sieciowe są przestarzałe i nie są już dostarczane domyślnie.
  • Minimalna instalacja zapewnia nową wersję skryptów ifup i ifdown, które wywołują NetworkManager za pośrednictwem narzędzia nmcli.
  • Aby uruchomić skrypty ifup i ifdown, musi być uruchomiony NetworkManager.

Instalowanie NetworkManagera na CentOS/RHEL 8

Program NetworkManager powinien być preinstalowany w ramach podstawowej instalacji CentOS/RHEL 8. W przeciwnym razie można go zainstalować za pomocą menedżera pakietów DNF, jak pokazano.

dnf install NetworkManager

Globalny plik konfiguracyjny NetworkManager znajduje się w /etc/NetworkManager/NetworkManager.conf, a dodatkowe pliki konfiguracyjne można znaleźć w /etc/NetworkManager/ .

Zarządzanie NetworkManagerem za pomocą Systemctl na CentOS/RHEL 8

W CentOS/RHEL 8 i innych nowoczesnych systemach Linux, które przyjęły systemd (menedżer systemów i usług), usługami zarządza się za pomocą narzędzia systemctl.

Poniżej znajdują się przydatne polecenia systemctl do zarządzania usługą NetworkManager.

Sprawdzanie statusu NetworkManagera

Minimalna instalacja CentOS/RHEL 8 powinna mieć domyślnie uruchomiony NetworkManager i włączyć automatyczne uruchamianie podczas uruchamiania. Za pomocą poniższych poleceń można sprawdzić, czy menedżer sieci jest aktywny i włączony, a także wydrukować informacje o stanie środowiska wykonawczego menedżera sieci.

systemctl is-active NetworkManager
systemctl is-enabled NetworkManager
systemctl status NetworkManager 

Uruchamianie NetworkManagera

Jeśli NetworkManager nie jest uruchomiony, możesz go uruchomić, po prostu uruchamiając.

systemctl start NetworkManager

Zatrzymywanie NetworkManagera

Aby zatrzymać lub dezaktywować NetworkManager z tego czy innego powodu, wydaj następujące polecenie.

systemctl stop NetworkManager

Ponowne uruchamianie NetworkManagera

Jeśli dokonałeś jakichkolwiek zmian w plikach konfiguracyjnych interfejsu lub konfiguracji demona NetworkManager (zwykle znajduje się on w katalogu /etc/NetworkManager/), możesz zrestartować (zatrzymać, a następnie uruchomić) NetworkManager, aby zastosować zmiany pokazane.

systemctl restart NetworkManager

Ponowne ładowanie NetworkManagera

Aby ponownie załadować konfigurację demona NetworkManager (ale nie plik konfiguracyjny jednostki systemd) bez ponownego uruchamiania usługi, uruchom następujące polecenie.

systemctl reload NetworkManager

Korzystanie z narzędzi NetworkManager i praca z plikami ifcfg

NetworkManager obsługuje niektóre narzędzia umożliwiające użytkownikom interakcję z nim, którymi są:

  1. nmcli – narzędzie wiersza poleceń służące do konfiguracji sieci.
  2. nmtui – prosty tekstowy interfejs użytkownika oparty na przekleństwach, który służy również do konfigurowania i zarządzania połączeniami interfejsu newtwork.
  3. Inne narzędzia obejmują edytor połączeń nm, centrum sterowania i ikonę połączenia sieciowego (wszystko w interfejsie GUI).

Aby wyświetlić listę urządzeń wykrytych przez NetworkManager, uruchom polecenie nmcli.

 
nmcli device 
OR
nmcli device status

Aby wyświetlić wszystkie aktywne połączenia, uruchom następujące polecenie (zwróć uwagę, że bez -a wyświetla listę dostępnych profili połączeń).

nmcli connection show -a

Ustaw statyczny adres IP w CentOS/RHEL 8

Pliki konfiguracyjne specyficzne dla interfejsu sieciowego znajdują się w katalogu /etc/sysconfig/network-scripts/. Możesz edytować dowolny z tych plików, na przykład, aby ustawić statyczny adres IP dla serwera CentOS/RHEL 8.

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Oto przykładowa konfiguracja ustawienia statycznego adresu IP.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=e81c46b7-441a-4a63-b695-75d8fe633511
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.0.110
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
PEERDNS=no

Po zapisaniu zmian musisz ponownie załadować wszystkie profile połączeń lub ponownie uruchomić NetworkManager, aby nowe zmiany zostały zastosowane.

nmcli connection reload
OR
systemctl restart NetworkManager

Uruchamianie lub zatrzymywanie usług sieciowych/skryptów w oparciu o łączność sieciową

NetworkManager posiada przydatną opcję, która pozwala użytkownikom uruchamiać usługi (takie jak NFS, SMB itp.) lub proste skrypty oparte na łączności sieciowej.

Na przykład, jeśli chcesz automatycznie zamontować lokalnie zdalny katalog za pomocą sshfs, zamontować udziały SMB lub zamontować udziały NFS po przełączaniu między sieciami. Możesz chcieć, aby takie usługi sieciowe były uruchamiane dopiero po uruchomieniu NetworkManager (wszystkie połączenia są aktywne).

Ta funkcja jest udostępniana przez usługę NetworkManager-dispatcher (która musi zostać uruchomiona i włączona, aby uruchamiała się automatycznie przy starcie systemu). Po uruchomieniu usługi możesz dodać swoje skrypty do katalogu /etc/NetworkManager/dispatcher.d.

Wszystkie skrypty muszą być wykonywalne i zapisywalne oraz muszą być własnością roota, na przykład:

chown root:root /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh
chmod 755 /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh

Ważne: Skrypty dyspozytora będą wykonywane w kolejności alfabetycznej w momencie połączenia i w odwrotnej kolejności alfabetycznej w momencie rozłączenia.

Korzystanie ze starszych skryptów sieciowych

Jak wspomnieliśmy wcześniej, skrypty sieciowe są przestarzałe w CentOS/RHEL 8 i nie są instalowane domyślnie. Jeśli nadal chcesz używać nskryptów sieciowych, musisz zainstalować pakiet skrypty sieciowe.

yum install network-scripts

Po zainstalowaniu ten pakiet zawiera nową wersję skryptów ifup i ifdown, które wywołują NetworkManager za pomocą narzędzia nmcli przyjrzeliśmy się powyżej. Pamiętaj, że aby można było uruchomić te skrypty, powinien być uruchomiony program NetworkManager.

Więcej informacji znajdziesz na stronach podręcznika systemctl i NetworkManager.

man systemctl
man NetworkManager

To wszystko, co przygotowaliśmy w tym artykule. Możesz uzyskać wyjaśnienia dotyczące dowolnego punktu, zadać pytania lub wprowadzić jakieś uzupełnienia do tego przewodnika, korzystając z poniższego formularza opinii.