Interfejsy sieciowe

W starszych wersjach RHEL karty sieciowe nazywane były automatycznie przez system eth (ethernet), em (embedded), wlan (wireless lan) i numeracja zaczynała się od 0 i zwiększana była o 1 wraz z wykrywaniem przez system nowych interfejsów w czasie startu systemu. Jeżeli w serwerze było zainstalowanych kilka kart to istniało prawdopodobieństwo zmiany numeru karty co mogło skutkować problemami. Począwszy od RHEL 7.0 domyślny schemat nazewnictwa interfejsów sieciowych oparty jest o wiele reguł określanych przez systemd i udev, które to przypisują kartom numery na podstawie informacji z BIOSu, topologii i położenia karty.

Zasady wg, których nazywane są karty sieciowe:

  • zintegrowane z płytą główną przypisywane mają nazwy np. eno1
  • podłączone do magistrali PCI Express przypisywane mają nazwy np. ens2
  • podłączone do magistrali PCI przypisywane mają nazwy np. enp3s0
  • jeżeli powyższa zasady są wyłączone lub informacje dostarczane przez firmware/BIOS są nieprawidłowe system przydziela karcie standardową nazwę: ethX.

 

Pliki z konfiguracją sieci – /etc/sysconfig/network-scripts.

Każda karta sieciowa ma w katalogu /etc/sysconfig/network-scripts swój plik konfiguracyjny, który zawiera konfigurację IP i inne parametry. Ustawienia z tego pliku są przypisywane karcie w momencie jej aktywacji.

Przykład pliku /etc/sysconfig/network-scripts/ifcfg-eth0:

DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="0764d665-dd86-4001-bdc5-3b280d32a11d"
IPV6INIT=yes
BOOTPROTO=none
TYPE=Ethernet
NAME="eth0"
HWADDR=52:54:00:17:91:8D
IPADDR0=192.168.0.110
PREFIX0=24
GATEWAY0=192.168.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

Dyrektywa Opis
BOOTPROTO Sposób uzyskania konfiguracji IP: dhcp – z serwera dhcp, bootp – bootowanie przez sieć, none lub static – statyczna konfiguracja IP.
BRIDGE Nazwa bridga, który ma zostać użyty.
BROADCAST0 Adres rozgłoszeniowy dla pierwszego adresu IP na konfigurowanym interfejsie.
DEFROUTE Czy interfejs ma być użyty jako trasa domyślna.
DEVICE Nazwa konfigurowanego interfejsu.
DNS1 Jeżeli dyrektywa PEERDNS ustawiona jest na yes to można tutaj ustawić adres serwera DNS, który będzie wpisany do pliku /etc/resolv.conf.
GATEWAY0  Adres bramy dla pierwszego adresu IP na tym interfejsie.
HWADDR Adres sprzętowy (MAC) dla interfejsu.
IPADDR0  Adres IP dla interfejsu.
IPV6INIT Czy włączyć obsługę IPv6 na tym interfejsie.
NAME Opis interfejsu.
NETMASK0 Maska podsieci.
NM_CONTROLLED Czy NetworkManager może modyfikować ten plik konfiguracyjny.
ONBOOT Czy interfejs ma być aktywowany w trakcie uruchamiania systemu.
PEERDNS Jeżeli BOOTPROTO=dhcp to czy można modyfikować plik /etc/resolv.conf. Domyślnie yes.
USERCTL Czy zwykli użytkownicy mogą aktywować ten interfejs.
UUID UUID powiązany z tym interfejsem.
TYPE Typ interfejsu.

 

Zarządzanie interfejsami sieciowymi.

Domyślnym narzędziem do zarządzania interfejsami sieciowymi w RHEL 7.0 jest NetworkManager. Demon ten dba aby skonfigurowane interfejsy były podniesione i aktywne. Posiada takie programy klienckie jak nmcli i nmtui. Pozostałe narzędzia do administrowania interfejsami sieciowymi przedstawia tabela poniżej.

Komenda Opis
ifconfig Stara komenda do zarządzania interfejsami sieciowymi.
ifup / ifdown  Aktywuje / deaktywuje interfejs.
 ip Komenda do zarządzania interfejsami i routingiem. Zastępuje przestarzałe ifconfig.
nm-connection-editor  Graficzne narzędzie do zarządzania interfejsami.
Network Settings Graficzne narzędzie do obserwowania statusu połączenia i zarządzania interfejsami.
  Narzędzia NetworkManager
nmcli Komenda do zarządzania interfejsami.
nmtiu Komenda tekstowa do zarządzania interfejsami

 

Narzędzia nmcli operuje na pięciu obiektach: connection, device, general, networking, radio. Używane wraz z komendą nmcli nazwy obiektów mogą być skracane, np. obiekt connection może być skrócony do  ‘c‘, a obiekt device do ‘d‘. Tabela poniżej przedstawia opcje dwóch najważniejszych dla nas  obiektów.

Obiekt Opis
connection    aktywuje, deaktywuje i administruje połączeniami sieciowymi.
show Listuje profile połączenia.
up / down Aktywuje / deaktywuje połączenie.
add Dodaje połączenie.
edit Edytuje istniejące połączenie lub dodaje nowe.
modify Modyfikuje jedno lub więcej właściwości w profilu połączenia.
delete Kasuje połączenie.
reload Czyta ponownie pliki konfiguracyjne wszystkich interfejsów.
load Czyta ponownie plik konfiguracyjny konkretnego interfejsu.
device   –   wyświetla informacje  i administruje interfejsem sieciowym
status Wyświetla status urządzenia.
show Wyświetla dokładne informacje o wszystkich lub o wybranych interfejsach.

 

Ćwiczenie 1. Ręczna konfiguracja i aktywacja interfejsu sieciowego.

Szukamy nowego interfejsu sieciowego, który nie ma przypisanego adresu IP:
# ip addr
…… . .
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:39:16:9a brd ff:ff:ff:ff:ff:ff
The output indicates the presence ofa new interface by the name eth1.

Karcie sieciowej eth1 przypisujemy addres IP 192.168.0.111/24:
# ip addr add 192.168.0.111/24 broadcast 192.168.0.255 dev eth1

Sprawdzamy czy adres IP został przypisany:
# ip addr
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:39:16:9a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.111/24 brd 192.168.0.255 scope global eth1
valid_lft forever preferred_lft forever
At this point, ifyou reboot server1, this IP information will be lost. You need to configure the
settings in a file for persistence.

Kopiujemy plik ifcfg-eth0 jako plik ifcfg-eth1 w katalogu /etc/sysconfig/network-scripts:
# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1

Otwieramy i edytujemy plik ifcfg-eth1:

# vi ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=yes
BOOTPROTO=none
TYPE=Ethernet
NAME="eth1"
IPADDR0=192.168.0.111
PREFIX0=24
GATEWAY0=192.168.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
HWADDR=52:54:00:39:16:9A
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

Deaktywujemy i aktywujemy interfejs:
# ifdown eth1
# ifup eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

Restartujemy system:
# reboot

Weryfikujemy konfigurację:
# ip addr
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:39:16:9a brd ff:ff:ff:ff:ff:ff
inet 192.168.0.111/24 brd 192.168.0.255 scope global eth1
valid_lft forever preferred_lft forever

Do pliku /etc/host dodajemy nazwę domenową naszego nowo skonfigurowanego hosta:
# vi /etc/hosts
192.168.0.111 server1ipv4.example.com server1ipv4

 

Ćwiczenie 2. Konfiguracja i aktywacja karty sieciowej przy pomocy NetworkManagera.

Sprawdzamy status NetworkManagera:
# systemctl status NetworkManager
NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled)
Active: active (running) since Mon 2014-11-17 11:00:52 EST; 28min ago
…… . .

Szukamy nowego interfejsu bez adresu IP:
# ip addr
…… . .
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:96:13:58 brd ff:ff:ff:ff:ff:ff
The output indicates the presence ofa new interface by the name eth1.

Listujemy wszystkie skonfigurowane interfejsy na serwerze:
# nmcli con show

Sprawdzamy status wszystkich dostępnych interfejsów na serwerze:
# nmcli dev show

Konfigurujemy kartę eth1, addres IP 192.168.0.121/24, brama 192.168.0.1:
# nmcli con add type Ethernet ifname eth1 con-name eth1 ip4 192.168.0.121/24 \ gw4 192.168.0.1
Connection 'eth1' (7f365451-fd33-44f0-bffb-45de70d06fe0) successfully added.
The nmcli command has added the new interface and has activated it. In addition, it has created
the ifcfg-eth1 file in the /etc/sysconfig/network-scripts directory with all necessary directives.

Sprawdzamy nowe połączenie i konfigurację IP:
# ip addr
…… . .
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:96:13:58 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.121/24 brd 192.168.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe96:1358/64 scope link
valid_lft forever preferred_lft forever

Sprawdzamy zawartość pliku ifcfg-eth1:
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=none
IPADDR0=192.168.0.121
PREFIX0=24
GATEWAY0=192.168.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth1
UUID=7f365451-fd33-44f0-bffb-45de70d06fe0
DEVICE=eth1
ONBOOT=yes

Informacje o  połączeniu dla karty eth1:
# nmcli con show | grep eth1
eth1 7f365451-fd33-44f0-bffb-45de70d06fe0 802-3-ethernet eth1

Wyświetlamy status połączenia eth1:
# nmcli dev status | grep eth1
eth1 ethernet connected eth1

Deaktywujemy i ponownie aktywujemy eth1:
# nmcli con down id eth1
# nmcli con up id eth1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

restartujemy system
# reboot

Spradzamy po restarcie konfigurację IP:
# ip addr
…… . .
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:96:13:58 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.121/24 brd 192.168.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe96:1358/64 scope link
valid_lft forever preferred_lft forever

Edytujemy plik /etc/hosts
# vi /etc/hosts
192.168.0.121 server2-eth1.example.com server2-eth1

Leave a Reply

Your email address will not be published. Required fields are marked *