Konfiguracja interfejsów sieciowych: IPv4 via nmcli

  1. Zaloguj się na maszynę wirtualną i skontroluj ustawienia interfejsów sieciowych. Porównaj wyniki komend:

    # ip address show
    # nmcli c[onnection] s[how]
    

    Czy w katalogu /etc/sysconfig/network-scripts znajduje się plik powiązany z interfejsem eth0?

    Porównaj wynik działania komend:

    # nmcli [-p|t] c s 'System eth0'
    # nmcli [-p|t] -f ipv4 device show eth0
    

    Jaki serwer DNS jest zdefiniowany dla tego interfejsu?

    Zdefiniuj dodatkowy serwer DNS:

    # nmcli con mod 'System eth0' ipv4.dns 8.8.8.8
    

    Czy w katalogu /etc/sysconfig/network-scripts pojawił się plik powiązany z interfejsem eth0? Sprawdź jego zawartość.

    Jaka jest zawartość pliku /etc/resolv.conf? Jak się zmienia zawartość tego pliku po wykonaniu komendy systemctl restart NetworkManager?

  2. Utwórz połączenie oparte o interfejs eth1 nadając mu statyczne adresy z sieci 10.111.0.0/24 i 20.111.0.0/24:

    # nmcli con add type ethernet con-name labul ifname eth1 ip4 10.111.1.i/24 ip4 20.111.1.i/24 gw4 10.111.1.254
    

    gdzie i jest numerem maszyny wirtualnej.

    W katalogu /etc/sysconfig/network-scripts pojawił się plik powiązany z interfejsem eth1. Sprawdź jego zawartość.

  3. Obserwuj skutki działania komend nmcli con up|down labul oraz nmcli [-p] d[evice] s[how].

  4. Czy poniższe komendy pozwalają na przypisanie dwóch adresów do jednego interfejsu:

    # nmcli con add type ethernet con-name labul10 ifname eth1 ip4 10.111.10.i/24 gw4 10.111.10.254
    # nmcli con add type ethernet con-name labul20 ifname eth1 ip4 20.111.10.i/24 gw4 20.111.10.254
    

    Obserwuj skutki działania komend:

    # nmcli c up labul10; nmcli c; nmcli dev s
    # nmcli c up labul20; nmcli c; nmcli dev s
    
  5. Dodaj do pliku definiującego interfejs labul10 zmienną NM_CONTROLLED i porównaj działanie komend ifup|down eth1 oraz nmcli c s przy zmiennej ustawionej na “yes|no”. (Po każdej zmianie pliku konfiguracyjnego wymuś ponowne wczytanie pliku konfiguracyjnego!)

  6. Sprawdzić, czym różni się działanie komend

    # nmcli con up|down [id] name
    # nmcli con up|down [uuid] uuid
    

    od

    # nmcli dev [dis]connect eth1
    
  7. Wypróbuj edycję połączeń i ich własności używając komendy nmcli con edit. Jakie połączenie domyślnie podlega edycji?

  8. Przy pomocy nmcli con edit zmień adres IP przypisany do interfejsu eth1.

  9. Maszyna wirtualna wyposażona jest w dodatkowe interfejsy eth1 i eth2, które mogą zostać wykorzystane do utworzenia połączenia typu team. W tym celu należy wykonać następujące komendy:

    # nmcli con add con-name "team-team0" ifname team0 type team ip4 10.10.10.1/24 gw4 10.10.10.254
    # nmcli con add type ethernet con-name "team0-port1" ifname eth1 master team0
    # nmcli con add type ethernet con-name "team0-port2" ifname eth2 master team0
    

    Jakie pliki zostały utworzone w /etc/sysconfig/network-scripts? Co pokazują komendy

    # nmcli -p con show team-team0
    # nmcli -p con show team0-port1|2
    

    Czy działa komenda nmcli con up team-team0? Czy można użyć tego interfejsu do połączenia się z innymi hostami w lokalnej sieci? Monitoruj połączenie między hostami przy pomocy komendy ping i sprawdź, co się dzieje, jeśli jeden z interfejsów team-u zmienia status z up na down (ip link set down|up dev eth1).

    Interfejs tego typu może być zarządzany i monitorowany przy pomocy komendy teamdctl, np. teamdctl team0 state. W szczególności można zmienić domyślną metodę sterowania ruchem. Zob. man teamdctl, man teamnl, a także np. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-network-teaming_configuring-and-managing-networking.

  10. Korzystając z drugiego z interfejsów ethernetowych, eth1, utwórz dodatkowe dwa interfejsy do komunikacji w ramach dwóch VLAN-ów: 10 i 20:

    # nmcli con add type vlan con-name vlan10 dev eth1 id 10
    # nmcli con add type vlan con-name vlan20 dev eth1 id 20 ip4 10.10.10.i/24 gw4 10.10.10.254
    

    W przypadku drugiej z komend trzeba zadbać, żeby dla każdej używanej maszyny wirtualnej adres IP interfejsu eth1.20@eth1 był inny. Czy istnieje połączenie między maszynami w ramach sieci 10.10.10.0/24?

  11. Sprawdź zawartość plików /etc/sysconfig/network-manager/ifcfg-vlan10|20. Jeśli interfejsy VLAN nie są potrzebne, to można je łatwo usunąć przy pomocy komendy nmcli con delete vlan10 vlan20.

  12. Mosty (przełączniki) można tworzyć i nimi zarządzać przy pomocy komendy brctl, co ilustruje skrypt brctl (wget http://jkob.fizyka.umk.pl/labul/scripts/brctl. Można to także robić przy pomocy komendy nmcli, co ilustruje skrypt brnmctl (wget http://jkob.fizyka.umk.pl/labul/scripts/brcnmtl, który do tego wykorzystuje drugi, wolny interfejs eth1 dostępny na maszynach wirtualnych. Zapoznaj się z działaniem obu skryptów.

  13. NetworkManager pozwala na tworzenie połączeń typu vxlan. Pobierz skrypt vxlanctl (wget http://jkob.fizyka.umk.pl/labul/scripts/vxlanctl) i przeanalizuj jego działanie. Następnie wykorzystaj go do zestawienia połączenia typu vxlan pomiędzy dwiema maszynami pracującymi w oddzielnych logicznych sieciach, pomiędzy ktorymi nie ma routingu.

  14. NetworkManager, dzięki wtyczce dnsmasq, może być wykorzystany jako lokalny, buforujący serwer DNS (local caching nameserver, zob. man NetworkManager.conf).

    Jaka jest zawartość pliku konfiguracyjnego rezolwera (/etc/resolv.conf)?

    Utwórz plik /etc/NetworkManager/conf.d/00-use-dnsmasq.conf zawierający następujące wiersze:

    [main]
    dns=dnsmasq
    

    i zrestartuj usługę NetworkManager.

    Czy zawartość pliku konfiguracyjnego rezolwera uległa zmianie? Sprawdź, czy lokalny serwer buforujący działa poprawnie wykonując komendy typu dig [@localhost] www.umk.pl a lub host fizyka.umk.pl.

    Jaki jest wynik działania komendy dig 247media.com a?

    Działanie lokalnego serwera buforującego można modyfikować. Np. można spowodować, żeby nie rozwiązywał wskazanych nazw domenowych, w szczególności serwerów odpowiedzialnych za wyświetlanie reklam na stronach www (zob. https://pgl.yoyo.org/adservers/serverlist.php?hostformat=dnsmasq-server). W tym celu należy w katalogu /etc/NetworkManager/dnsmasq.d umieść pliki 00-add-hosts.conf oraz 10-add-servers.conf (zob. http://jkob.fizyka.umk.pl/labul/dns/00-add-hosts.conf, http://jkob.fizyka.umk.pl/labul/dns/00-add-servers.conf).

    Jaki jest teraz – oczywiście po zrestartowaniu usługi NetworkManager – wynik działania komendy dig 247media.com a lub host 247media.com?