Narzędzia użytkownika

Narzędzia witryny


Pasek boczny


O mnie


Dydaktyka:

Feedback


bio-psiec:podstawowa_konf_i_l1_l2

Poruszanie się w konsoli i czytanie pomocy

Powłoka systemowa – szybkie przypomnienie

(Tekstowa) powłoka systemowa (shell), terminal, konsola.
Programy np. xfce4-terminal, konsole

Zmiana użytkownika – su
Wykonania programu na prawach innego użytkownika – sudo polecenie
Użycie sudo do uruchomienia shella z prawami roota: sudo -s (lub sudo -i lub sudo su)

Historia w konsoli: strzałki góra/dół, history, ctrl+r, fc

Obsługa polecenia less (wykonaj dla przykładu: convert -h | less albo man less):

  • przewianie: strzałki, page up / page down
  • / – wyszukuje:
    • n – następne wystąpienie
    • N – poprzednie
  • g – początek dokumentu; G – koniec
  • q – wyjście

Zapis poleceń

Wzór polecenia (zwięzłe wyjaśnienie):
polecenie {jeden|z|wielu} <argument1> [-opcja1 <argument2>] --długa_opcja=<argument3> [opcja2]

Przykład polecenia:
polecenie jeden 42 [-opcja1 foo] --długa_opcja=x

Co trzeba wpisać w konsolę:
polecenie jeden 44 -oja1 baz --długa_opcja=x

Pomoc systemowa

Pomoc wbudowana w polecenia zwykle jest wyświetlana po podaniu opcji -h (lub --help), np:

  • tracepath -h
  • netstat -h
  • ip a h
  • ifconfig -h

Podręcznik systemowy – komenda man i towarzyszące, np:

  • man tracepath
  • man ip / man 7 ip / man 8 ip
  • apropos – lista stron które w tytule mają podane słowo, np. apropos network
  • whatis – tytuły stron pod podaną nazwą, np. whatis write

Programy używane do konfiguracji i diagnostyki sieci w Linuksie

Uwaga: informacje o narzędziach są podane dla wyjaśnienia dlaczego kilka komend realizuje to samo zadanie i dla uporządkowania wiedzy. Treści z tej sekcji (listy komend, nazwy paczek narzędzi, etc.) nie będą w żaden sposób wymagane na wejściówkach/teście.

Narzędzia: omawiane | ważne albo popularne | mocno przestarzałe, mało znane albo zbędne.

Narzędzia do konfiguracji sieci

Pakiet narzędzi net-tools powstał w 1983 roku, początkowo w systemie BSD. Od tego czasu jest utrzymywany, jednak większość jego składników jest uznawana za przestarzałe.
W skład wchodzą:
arp dnsdomainname domainname hostname ifconfig ipmaddr iptunnel mii-tool nameif netstat nisdomainname plipconfig rarp route slattach ypdomainname

Około roku 2000 stworzono pakiet iproute2, mający zastąpić net-tools (i kilka innych, napisanych by udostępnić nowe możliwości jądra systemu Linux).
Pakiet iproute2 zawiera następujące polecenia:
arpd ctstat genl ifcfg ifstat ip lnstat nstat routef routel rtacct rtmon rtpr rtstat ss tc
Pomoc do komendy ip jest rozbia na wiele stron podręcznika, np. man ip-link, man ip-address

Narzędzia do diagostyki


Interfejsy sieciowe – włączanie i konfiguracja IP

Karta sieciowa (NIC – network interface card) – fizyczne urządzenie do komunikacji sieciowej.
Interfejs sieciowy (network interface) – logiczne urządzenie do komunikacji sieciowej.

Interface'y można podzielić na fizyczne (reprezentują fizyczne urządzenia sieciowe) i wirtualne (reszta).

Wyświetlanie listy urządzeń i adresów

Lista aktywnych urządzeń ifconfig ip link show up
Lista wszystkich urządzeń ifconfig -a ip link [show]
Lista adresów sieciowych ifconfig [-a] ip address [show [up]]

Wszystkie argumenty polecenia ip można dowolnie skracać, ale jeśli skróty kolidują, narzędzie wybiera jedno rozwinięcie zamiast wyświetlić komunikat o błędzie (sic!).
Np. ip link show można zapisać jako ip l sh, ale ip l s jest już traktowane jako ip link set

Polecenie ip przyjmuje też opcje (podawane bezpośrednio po ip), wśród których warto znać opcję --brief (i --json).
Porównaj: ip link i ip --brief link

[ekstra] Tradycyjne nazwy urządzeń

Tradycyjne nazwy urządzeń (zwykle zakończone kolejnym numerem, jak np. eth0) to m. inn.:

  • loopback lo
  • przewodowe karty sieciowe eth
  • bezprzewodowe karty sieciowe wlan, ath, wifi, radio
  • firewire, infiniband ib
  • urządzenia wirtualne: wirtualne karty sieciowe veth, dummy, mostki br, urządzenia programowe tun, tap, tunele sit, tnl, ppp, vpn, gre

Około 2015 roku w systemie Linux zmieniono sposób nadawania nazw urządzeniom.
Stąd dla fizycznych interfejsów można spotkać nazwy: eno1, sls1, wwp2s0, wlx78e7d1ea46da

Wcześniej to, która karta sieciowa dostanie który numer (eth0, eth1) było trudne do przewidzenia (ale stałe dla danej konfiguracji sprzętowej).
Co gorsza, kolejność po dodaniu nowej karty sieciowej lub awarii jednej z kart mogła ulec zmianie.
Więcej szczegółów: [1] [2]

Włączanie / wyłączanie interfejsu

Włączenie interfejsu ifconfig eth0 up ip link set dev eth0 up
Wyłączenie interfejsu ifconfig eth0 down ip link set dev eth0 down

Ustawianie / dodawanie / usuwanie adresów IP

ip address

Dodanie nowego adresu do interfejsu ip addr add 10.0.0.1/25 dev eth0
ip addr add fd00::1/64 dev eth0
Usunięcie adresu z interfejsu ip addr del 10.0.0.1/25 dev eth0
ip addr del fd00::1/64 dev eth0
Wyczyszczenie adresów interfejsu (groźne) ip addr flush dev eth0

Uwaga! Każdy adres bez maski polecenie ip interpretuje jako adres z maską /32 (IPv4) lub /128 (IPv6)

ifconfig

Zmiana bieżącego adresu IPv4 i/lub maski ifconfig eth0 [10.0.0.1] [netmask 255.255.255.128]
Dodanie nowego adresu IPv4 do urządzenia
(tworząc alias urządzenia)
ifconfig eth0:something 10.0.0.1
'Usunięcie' dodatkowego adresu IPv4 z urządzenia
(usunięcie aliasu)
ifconfig eth0:something down
'Usunięcie' podstawowego adresu IPv4 z urządzenia ifconfig eth0 0
Dodanie nowego adresu IPv6 ifconfig eth0 add fd00::1/64
Usunięcie adresu IPv6 ifconfig eth0 del fd00::1/64

Zauważ: w poleceniu ifconfig adres IPv4 i adresy IPv6 konfiguruje się inaczej.
ifconfig umie ustawić wiele adresów IPv6 na interfejsie, ale tylko jeden adres IPv4.
ifconfig domyślnie dla IPv4 dobiera maskę pasującą do historycznej klasy adresu, a dla IPv6 /128.

Polecenie ifconfig pozwala na zmianę wielu ustawień naraz, dla przykładu poniższe polecenie ustawi adres i włączy interfejs:
ifconfig dummy0 192.168.0.1 netmask 255.255.255.0 up

Sprawdzanie łączności IP

  • ping <cel>
  • traceroute {-I|-T} <cel>
    Z uwagi na firewall Politechniki proszę używać opcji -I lub -T, która go skutecznie omija
  • mtr <cel>

Jako cel można podać adres IP (np. ping 150.254.30.29) lub nazwę słowną (przykładowo: ping cs.put.poznan.pl, ping lab-net-1)

Podane programy przyjmują też opcje -4 i -6 to użycia odpowiednio protokołu IPv4 i IPv6, np: traceroute -4 -T nic.cl

Używając adresów IPv6 ze specjalnych bloków oznaczonych jako link-local należy jeszcze dodać na jakim interfejsie znajduje się cel, używając składni adres%interfejs, np. ping fe80::d8a8:fbff:fe92:2ddf%eth0.

Przykładowe wyniki poleceń

ifconfig / ip address

/ # ip a
10: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether da:a8:fb:92:2d:df brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.5.2/30 brd 192.168.5.3 scope link eth0
       valid_lft forever preferred_lft forever
    inet 172.19.67.0/19 brd 172.19.95.255 scope global eth0:1
       valid_lft forever preferred_lft forever
    inet 10.42.0.238/24 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::d8a8:fbff:fe92:2ddf/64 scope link 
       valid_lft forever preferred_lft forever

/ # ifconfig
eth0      Link encap:Ethernet  HWaddr DA:A8:FB:92:2D:DF  
          inet addr:192.168.5.2  Bcast:192.168.5.3  Mask:255.255.255.252
          inet6 addr: fe80::d8a8:fbff:fe92:2ddf/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1326 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1063 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2681637 (2.5 MiB)  TX bytes:123670 (120.7 KiB)

eth0:1    Link encap:Ethernet  HWaddr DA:A8:FB:92:2D:DF  
          inet addr:172.19.67.0  Bcast:172.19.95.255  Mask:255.255.224.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Uwaga: ifconfig w różnych dystrybucjach może mieć nieznacznie inny format wyjścia.

[Ekstra] Windows

Do wyświetlenia listy interfejsów i adresów IP można użyć m. inn. komendy ipconfig, domyślnie pokazującej tylko aktywne interfejsy; ipconfig /all pokaże wszystkie

Adresy IP można ustawić z "okienek" https://support.microsoft.com/en-us/windows/change-tcp-ip-settings-bd0a07af-15f5-cd6a-363f-ca2b6f391ace
Z linii poleceń należy użyć komendy netsh, kontekstu netsh interface ip https://learn.microsoft.com/…
Z PowerShella należy użyć cmdletów modułu NetTCPIP: https://learn.microsoft.com/en-us/powershell/module/nettcpip/?view=windowsserver2025-ps

Windows dostarcza z systemem programy ping (przełączniki nie są zgodne; patrz ping /?) i tracert.


Warstwa fizyczna Ethernetu

Warstwa fizyczna – ogólnie

Zwykle w całości realizowana przez sprzęt.
Główne zadanie – pozwala wysyłać i odbierać bity
Protokoły opisują wszystko potrzebne do przesłania bitów (m. in. medium, synchronizację, kodowanie, detekcję błędów, korekcję)
Całkowity brak interpretacji przesyłanych danych
Udostępnia informacje o stanie i pozwala zmieniać niektóre ustawienia (np. prędkość, dupleks, kanał radiowy)

Wybrane aspekty warstwy fizycznej

Na warstwie fizycznej odbywa się autonegocjacja (http://en.wikipedia.org/wiki/Autonegotiation) która wybiera najlepszy standard wspierany przez obie strony.
Pozwala to też na wykrywanie łącza – określenie czy coś w ogóle jest po drugiej stronie.

Wake on Lan jest funkcją kart sieciowych pozwalającą im włączyć komputer po otrzymaniu odpowiedniego pakietu.

Kabel sieciowy można też wykorzystać do zasilania podłączonych urządzeń. Takie rozwiązanie nazywa się PoE i jest popularne np. przy kamerach czy punktach dostępu do sieci bezprzewodowej.

Narzędzia

Diody LED przy porcie ethernetowym przynajmniej wskazują czy nawiązano połączenie. Producent decyduje jakie funkcje pełnią dodatkowo (np. wskazywanie kolorem z jaką prędkością działa karta, czy mruganie w trakcie wysyłania danych).

Narzędzia do zarządzania warstwą fizyczną Ethernetu w Linuksie: mii-tool / ethtool
ethtool <ifname> – wyświetla podstawowe informacje
ethtool --identify <ifname> – prosi kartę o to, by zamrugała diodami tak żeby można było ją odróżnić od innych1)

Informacje o tym, czy połączenie na warstwie fizycznej zostało nawiązane można sprawdzić przez:

ip link / ip address brak pozostałych karta jest wyłączona
<…,NO-CARRIER,…,UP,…> state DOWN brak połączenia na warstwie fizycznej
<…,UP,…,LOWER_UP,…> state UP jest połączenie na warstwie fizycznej (i łącza danych)
ifconfig brak pozostałych karta jest wyłączona
<…,UP,…> brak połączenia na warstwie fizycznej
<…,UP,…,RUNNING,…> jest połączenie na warstwie fizycznej (i łącza danych)
ethtool Link detected: no karta jest wyłączona lub
brak połączenia na warstwie fizycznej
Link detected: yes jest połączenie na warstwie fizycznej
lampka przy porcie nie świeci karta jest wyłączona lub
brak połączenia na warstwie fizycznej
zapalona jest połączenie na warstwie fizycznej

Przykładowe wyniki poleceń

Wynik ethtool

Stan interfejsu


Warstwa łącza danych na przykładzie Ethernetu

Warstwa łącza danych – ogólnie

Pozwala wysłać ramki do konkretnego urządzenia (lub urządzeń) do których nadawca jest połączony bezpośrednio (na warstwie fizycznej) lub za pośrednictwem urządzeń tej warstwy (np. switchy).

Ostatnia warstwa zależna od sprzętu. Zarządza kto kiedy może wysyłać dane, wprowadza adresy (adresy MAC), porządkuje bajty w ramki, sprawdza czy ramki zostały przesłane bez zniekształceń, umieszcza w ramce informację jaką treść zawierają jej dane.

Urządzenia warstwy łącza danych to mostki (bridge) i przełączniki (switch).

Adres MAC

Adres MAC (adres fizyczny) ma 48 bitów i jest zapisywany szesnastkowo, w 6 grupach po 8 bajtów oddzielonych dwukropkiem.
Przykład adresu: 5c:f9:dd:78:3d:88.

Unikalne adresy MAC

Domyślnie używany przez karty ethernetowe (i Wi-Fi) adres MAC jest ustawiany w nienadpisywalnej pamięci karty.
Taki adres MAC jest podzielony na dwie części: pierwsza połowa to identyfikator producenta (OUI), druga połowa to numer karty.
Producenci sprzętu muszą wykupić pulę adresów. Lista zajętych początków adresów jest dostępna publicznie, razem z informacją kto ma który OUI.

System operacyjny musi sam wpisać adres MAC do ramki sieciowej, adres MAC używany przez kartę można zmienić na inny.

Pozostałe adresy MAC

Adresy MAC z ustawionym bitem 0x01 w pierwszym bloku to adresy multicastowe (i adres rozgłoszeniowy, ff:ff:ff:ff:ff:ff).
Adresy użyte przez IPv4 do multicastu zaczynają się od 01:00:5e:…, a IPv6 od 33:33:…

Adresy MAC z ustawionym bitem 0x02 w pierwszym bloku to adresy lokalnie administrowane (nieunikalne). Można je nadawać np. urządzeniom wirtualnym.

Wyświetlanie / zmiana adresów MAC

W Linuksie do zarządzania warstwą łącza danych (data link layer) służy komenda ifconfig (i inne) / ip link.

odczyt adr. MAC ifconfig [eth0] ip link [show dev eth0]
zmiana adr. MAC ifconfig eth0 hw ether 12:34:56:78:90:ab ip link set dev eth0 address 12:34:56:78:90:ab

Większość sterowników kart pozwala zmieniać MAC tylko na wyłączonych kartach.

Przykłady poleceń wyświetlających adres MAC:

Ethernet

Ethernet opisuje2) jak stworzyć lokalną (kablową) sieć komputerową. Określa jak ma wyglądać warstwa fizyczna i warstwa łącza danych.

Na warstwie łącza danych określa m. inn. jak ma wyglądać pojedyncza wiadomość (ramka) wysłana przez sieć.
Ramka ethernetowa zawiera adres MAC nadawcy i odbiorcy, oraz może mieć rozmiar między 64B a 1500B. Górna granica na wielkość ramki ma nazwę MTU.

Unicast, multicast, broadcast

Unicast to wysłanie pakietu do jednego, wskazanego odbiorcy.
Multicast to wysłanie pakietu do grupy zainteresowanych odbiorców.
Broadcast to wysłanie pakietu do wszystkich (w zasięgu).
Anycast to wysłanie do najbliższego z grupy odbiorców.

[Ekstra] Testowanie łączności uni-/multi-/broad-cast

Domyślnie Linuksy ignorują zapytania generowane przez ping wysłane na adresy multicastowe/rozgłoszeniowe IPv4.
Aby to zmienić, wykonaj z uprawnieniami roota komendę:   sysctl net.ipv4.icmp_echo_ignore_broadcasts=0

Aby wybrany interfejs dołączył do grupy multicastowej, jakiś program musi tego zażądać. Na potrzeby ćwiczeń użyj komend:
socat -u udp4-recv:0,ip-add-membership=239.1.2.3:br0 stdio
socat -u udp6-recv:0,ipv6-join-group=[ff05::fedc:ba98]:br0 stdio
Listę grup do których należą interfejsy można sprawdzić komendą ip maddr lub netstat -ng

Do przetestowania sposobów adresowania możesz użyć komend:

  • unicast: ping <adres IP innego komputera>
  • multicast: ping <adres IP grupy multicastowej>
  • broadcast: ping -b <adresu IPv4 rozgłoszeniowy sieci> lub ping -b 255.255.255.255

W tym ćwiczeniu warto dodać do Linuksowego programu ping jeszcze opcje -c2 -w1
Opcja -c count ograniczy ilość zapytań co count, a opcja -w limit przerwie w momencie wysłania kolejnego zapytania, jeśli była już odpowiedź na limit zapytań.

W IPv6 nie ma adresów rozgłoszeniowych. Zastąpił je m. inn. adres multicastowy wszystkie węzły – ff02::1, którego użycie, podobnie jak adresów z sieci fe80::/64, wymaga podania interfejsu który ma zostać użyty, np. ping ff02::1%br0

[Ekstra] Domena rozgłoszeniowa

Domena rozgłoszeniowa i kolizyjna [1] [2] to zbiór urządzeń do których dotrze ramka wysłana jako rozgłoszeniowa (domena rozgłoszeniowa) bądź dowolna (domena kolizyjna).


Tłumaczenie IP na MAC

Do wysłania pakietu do wybranego urządzenia podaje się jego adres IP.
System operacyjny wysyłając ramkę sieciową (z tym pakietem w środku) musi ustawić właściwy adres docelowy MAC.

Jeżeli urządzenie S ma wysłać pakiet do urządzenia R o podanym adresie IP i ten adres IP znajduje się w tej samej sieci co adres IP urządzenia S, to urządzenie S musi najpierw dowiedzieć się jaki adres MAC ma urządzenie R.

Do znajdowania adresów MAC dla podanego adresu IPv4 służy protokół ARP.
Do znajdowania adresów MAC dla podanego adresu IPv6 służy protokół NDP.

Wyświetlanie mapowań IP→MAC: ip neighbour (działa też pisownia ip neighbor).
Do wyświetlenia mapowań IPv4→MAC można użyć starszej komendy arp.

Listę znanych mapowań można wyczyścić komendą ip neighbour flush {all|dev <ifname>}.

Komenda arping pozwala wysłać żądanie protokołu ARP:
arping -I <nazwa interfejsu> <adres IPv4>
np. arping -I br0 150.254.32.129

Komenda ndisc6 pozwala wysłać wiadomość Neighbor Solicitation protokołu NDP:
ndisc6 <adres IPv6> <nazwa interfejsu>
np. ndisc6 fd00::5 br0


Przełącznik (switch)

Przełącznik na podstawie adresów źródłowych ramek buduje tablicę adresów MAC (określającą na którym porcie jest dany adres).
Jeżeli adres docelowy ramki jest w tej tablicy, to wiadomość wysłana jest tylko przez port przez który osiągalny jest docelowy adres.

Wiadomości rozgłoszeniowe i wiadomości do nieznanych adresów MAC wysyłane są na wszystkie porty poza tym z którego zostały otrzymane.

Adresy MAC multicastowe są obsługiwane inaczej – każdy komputer musi ogłosić że chce dołączyć do wybranej grupy (bądź ją opuścić) wysyłając odpowiednią wiadomości. Switch z tych wiadomości uczy się przez które porty należy wysłać wiadomości kierowane do konkretnej grupy.

Jeżeli w domenie rozgłoszeniowej (czyli w połączeniach między switchem / switchami) powstanie pętla, to każdy pakiet rozgłoszeniowy zacznie krążyć w tej pętli w nieskończoność, powodując powielanie go na pozostałych portach (czym skutecznie popsuje całą domenę rozgłoszeniową). Jedynym sposobem na zaradzenie jest zlikwidowanie pętli (np. przez wypięcie kabla).
Takim sytuacjom mają zapobiegać protokoły drzewa rozpinającego (STP, RSTP, PVSTP (cisco), MSTP).

Przełączniki zarządzalne to przełączniki które można w jakikolwiek sposób konfigurować.

Przełączniki wielowarstwowe to przełączniki które umieją wykonywać niektóre zadania z warstw wyższych niż łącza danych.

1) Twórca sterownika lub producent sprzętu określa jak to mruganie wygląda
2) tzn. jest zbiorem standardów / szczegółów technicznych
bio-psiec/podstawowa_konf_i_l1_l2.txt · ostatnio zmienione: 2025/10/07 21:08 przez jkonczak