SIECI KOMPUTEROWE – adresacja IP


 

Konfiguracja TCP/IP na Linuxie

 

Ponieważ TCP/IP jest niezależne od dolnej warstwy fizycznej, adresy IP nie są implementowane w sprzęcie, lecz w oprogramowaniu sieciowym. W odróżnieniu od adresów Ethernet, które są określone wewnątrz kart sieciowych, administrator przypisuje adresy TCP/IP do każdego interfejsu. Do przypisania adresu sieciowego do danego interfejsu służy polecenie ifconfig.

Dodatkowo należy każdy adres dodać do tablicy routingu, do tego celu służy komenda route.

 

ifconfig

 

Polecenie ifconfig przypisuje lub sprawdza konfiguracyjne wartości interfejsu sieciowego. Polecenie to jest używane do nadawania każdemu interfejsowi adresu IP, maski podsieci i adresu rozgłoszeniowego. Przypisanie adresu IP ma następującą postać:

            ifconfig eth0 172.16.121.5 netmask 255.255.255.0 broadcast 172.16.121.255

 

W powyższym wywołaniu występują następujące parametry:

interfejs

Nazwa sieciowego interfejsu, który chcemy skonfiguraować poleceniem ifconfig.

adres

Adres IP przypisywany do interfejsu. Należy wprowadzić adres IP w postaci dziesiętnej z kropkami lub podać nazwę komputera.

netmask

Maska podsieci dla danego interfejsu. Jeżeli sieć nie jest podzielona na podsieci to argument ten można ignorować.

broadcast

Używany w sieci adres rozgłoszeniowy. W większości systemów jest to adres w którym w części oznaczającej komputer występują same jedynki.

 

Dane określające adres, maskę oraz broadcast muszą zostać ustalone przez administratora sieci.

Po wywołaniu polecenia ifconfig bez podania parametrów otrzymamy opis bieżącej konfiguracji:

 

 

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0

          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1

          RX packets:2 errors:0 dropped:0 overruns:0

          TX packets:2 errors:0 dropped:0 overruns:0

 

eth0      Link encap:Local Ethernet

          inet addr:172.16.121.5  Bcast:129.1.255.255  Mask:255.255.255.0

          UP BROADCAST LOOPBACK RUNNING  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0

          TX packets:0 errors:0 dropped:0 overruns:0

 

sl0       Link encap:Serial line

          inet addr:172.16.228.5  Bcast:172.16.255.255  Mask:255.255.255.0

          UP BROADCAST LOOPBACK RUNNING  MTU:296  Metric:1

          RX packets:1 errors:0 dropped:0 overruns:0

          TX packets:0 errors:0 dropped:0 overruns:0

 

 

 

 

Występują tu następujące nazwy interfejsów:

lo - loopback

eth0 - pierwsza karta sieciowa

sl0 - pierwszy modem lub linia szeregowa

 

 

Routing statyczny

Routing statyczny używany jest wówczas, gdy mapa połączeń sieciowych jest programowana w routerze „ręcznie” przez administratora. W razie, gdy jakaś ścieka zostanie przerwana, administrator

musi przeprogramować router, aby odpowiednie pakiety mogły dotrze do celu. W systemach sieciowych o kluczowym znaczeniu taki sposób trasowania jest niemożliwy do zaakceptowania.

Stosuje się więc dynamiczne routery, które automatycznie diagnozują stan połączeń i wyznaczają połączenia alternatywne.

 

Polecenia route można używać do dodawania lub usuwania elementów w tablicy rutowania. Aby dodać host do tablicy rutowania należy wpisać następującą komendę:

            route add -host 172.16.121.1 network 255.255.255.0

pierwszy parametr add powoduje dodanie elementu, kolejny parametr mówi o rodzaju dodawanego interfejsu może to być -host tak ja w powyższym przykładzie, lub -net dla dodania rutingu dla określonej sieci. Dalej jest podany numer IP danego elementu oreaz jego maska sieciowa. Podawanie masek sieciowych nie jest konieczne, ale zalecane, ponieważ przy ich braku polecenie route samo wylicza maskę i często jest ona inna niż spodziewana.

 

Można również dodawać domyślne gateway'e aby uprościć trasy rutowania. Polecenie dodawania wartości domyślnej wygląda następująco:

            route add default gw technel

 

po wykonaniu tego polecenia serwer technel stanie się domyślnym ruterem w sieci. Trasa ta będzie używana w przypadku gdy nie jest wyspecyfikowana konkretna marszruta do miejsca przeznaczenia. W przypadku gdy w sieci istnieje tylko jeden gateway, kieruje się na niego wszystkie trasy domyślne.

 

 

 

Wywołanie polecenie route bez parametrów powoduje wyświetlenie tablicy rutingu podobnej do poniższej:

            Kernel IP routing table

            Destination     Gateway         Genmask            Flags Metric   Ref     Use Iface

            127.0.0.0         *                      255.0.0.0                    U         0          0          0           lo

            172.16.121.0   *                      255.255.255.0            U         0          0          0          eth0

            technel             *                      255.255.255.0            UH      0          0          0          eth0

            default               technel             255.255.255.255       U         0          0          0          eth0

w powyższej tablicy widać też adres sieci 127.0.0.0, jest to adres wewnętrznej pętli loopback używanej do wewnętrznej komunikacji serwera.

 

 

 

 

 

 

 

Adresy grupowe (multicast)

Niektóre adresy klasy D sa zarezerwowane dla dobrze znanych grup multicastowych

• 224.0.0.1 – grupa wszystkich hostów akceptujacych multicast; kazdy

host akceptujacy multicasty zapisuje sie do tej grupy przy uruchamianiu

• 224.0.0.2 – grupa wszystkich routerów multicastowych

• 224.0.0.4 – grupa routerów DVMRP (Distance Vector MulticastRouting

Protocol )

• 224.0.0.5 – grupa routerów OSPF

· · ·

• 224.0.0.0 - 224.0.0.255 sa zarezerwowane na potrzeby lokalne (administrowanie

i konserwowanie urzadzen i usług) i nie sa nigdy przekazywane

dalej przez routery multicastowe

• 239.0.0.0 - 239.255.255.255 zarezerwowane na potrzeby administrative

scoping

 

Adresowanie IP

Aby dwa systemy mogły się komunikować między sobą, muszą istnieć możliwość zidentyfikowania i odnalezienia siebie nawzajem. Każdy komputer pracujący w sieci TCP/IP winien mieć przypisany unikalny adres warstwy trzeciej modelu ISO/OSI (adres IP). Wszystkie komputery posiadają ponadto w unikatowy adres warstwy drugiej (adres MAC) przypisywany przez producenta danego urządzenia. Każda informacja (pakiet) wychodzący z komputera posiada w nagłówku dwa w/w adresy (Rys. 1).

Adres IP zawiera pełną informację odnośnie sieci oraz hosta i pozwala jednoznacznie zlokalizować komputer w sieci podczas komunikacji międzysegmentowej. Adres IP nie ulega modyfikacji podczas przemieszczania się pakietu poprzez sieć (z wyłączeniem mechanizmów NAT).

Rys. 2. Informacje zawarte w adresie logicznym

Enlarge

Rys. 2. Informacje zawarte w adresie logicznym

Każdy adres logiczny zawiera podstawowe informacje dotyczące lokalizacji sieci oraz komputera wewnątrz sieci docelowej. Informacje te nazywane są: adresem sieci oraz adresem hosta. Adres sieci jest wykorzystywany przez elementy routujące w celu określenia trasy do hosta docelowego:

[Adres IP] AND [Maska podsieci][Adres sieci]. 

Adres hosta jest wykorzystywany w obrębie właściwej sieci do odnalezienia właściwego odbiorcy:

[Adres IP] AND NOT [Maska podsieci][Adres hosta w sieci].

Definicja 1

Komputery nazywamy lokalnymi (potrafiącymi komunikować się bez pośrednictwa elementów routujących), jeżeli identyfikator sieci obydwu hostów jest identyczny oraz zakres adresowy maski pozwala na wzajemną komunikację (adresowanie). Komputery nazywamy zdalnymi, jeśli posiadają one różne adresy sieciowe.


Przykłady:

  • Komputer A został podłączony do sieci i nadano mu adres 192.168.79.51 z maską 255.255.128.0. Komputer B podłączono do tej samej sieci i nadano mu adres 192.168.27.1 oraz maskę 255.255.128.0. Czy komputery są zdalne czy lokalne względem siebie?

Identyfikator sieci A: 192.168.79.51 AND 255.255.128.0 → 192.168.0.0
Identyfikator sieci B: 192.168.27.1 AND 255.255.128.0 → 192.168.0.0
Komputery są lokalne względem siebie.

  • Komputer A został podłączony do sieci i nadano mu adres 195.10.156.1. Komputer B został podłączony do sieci i nadano mu adres 195.10.197.1. Jak należy dobrać optymalnie maskę aby komputery się widziały?

Adresy komputerów posiadają identyczne dwa pierwsze oktety, stąd pierwsze dwa oktety maski będą wynosić 255.
3. oktet adresu A: 156 → 10011100 B
3. oktet adresu B: 197 → 11000101B
Optymalna maska: 255.255.128.0.


Protokół IP w wersji 4 wykorzystuje 32-bitowy schemat adresowania w celu identyfikowania sieci, urządzeń sieciowych i komputerów przyłączonych do sieci. Jest to sekwencją zer i jedynek. Aby ułatwić posługiwanie się adresami IP zwykle zapisuje się je w postaci czterech liczb dziesiętnych oddzielonych kropkami.

Adresy IP podzielone są na klasy (schemat adresowania klasego) i każdy adres IP należy do określonej klasy adresowej:

  • klasa A - zakres adresowy od 1.0.0.0 - 126.0.0.0, domyślna maska 255.0.0.0, 8 bitów na identyfikację sieci (pierwszy bit tej klasy jest zawsze równy 0B) oraz 24 na identyfikację hosta (mała ilość sieci bardzo rozległych - w każdej 224-2 urządzeń),
  • klasa B - zakres adresowy od 128.1.0.0 - 191.254.0.0, domyślna maska 255.255.0.0, 16 bitów na identyfikację sieci (pierwsze bity tej klasy są równe 10B) oraz 16 na identyfikację hosta (sieci średniej wielkości - w każdej 216-2 urządzeń),
  • klasa C - zakres adresowy od 192.0.1.0 - 223.255.254.0, domyślna maska 255.255.255.0, 24 bitów na identyfikację sieci (pierwsze bity tej klasy są równe 110B) oraz 8 na identyfikację hosta (sieci małej wielkości - w każdej 28-2 urządzeń),
  • klasa D - adresy wykorzystywane do transmisji multicastowej (jeden do wielu), początkowa sekwencja bitów w adresie tej klasy to 1110B,
  • klasa E - zarezerwowana dla celów testowych.


W obrębie każdej klasy sieci możemy utworzyć maksymalnie tyle adresów urządzeń, na ile pozwala część hosta adresu. Ilość użytecznych adresów wewnątrz każdej klasy jest jednak pomniejszana o dwa szczególne adresy - jeden będący identyfikatorem sieci (część hosta wypełniona zerami) oraz drugi będący adresem rozgłoszeniowym (część hosta wypełniona jedynkami) przeznaczonym do rozsyłania wiadomości do wszystkich urządzeń w sieci. Ogólnie liczba urządzeń możliwych do zaadresowania określona jest zależnością:

2ilosc_bitow_hosta − 2


Polityka adresowania klasowego posiada wiele mankamentów wśród których najwięszym jest duża rozbieżność pomiędzy rozmiarami klas: 28-2 (klasa A), 216-2 (klasa B), 224-2 (klasa C) urządzeń, powodująca nieefektywne zarządzanie przydzielaniem adresów dla poszczególnych nabywców. Sytuacja ta spowodowała szybkie wyczerpanie pól adresowych.
Przykładowo chcąc zaadresować 300 urządzeń w sieci musielibyśmy skorzystać z adresu klasy B (w klasie C możemy zaadresować tylko 254 urządzenia). To spowodowałoby, że ponad 65000 adresów pozostałoby niewykorzystanych.

Adresy prywatne

Wśród adresów poszczególnych klas wyszczególniono specjalną grupę adresów, tzw. adresów prywatnych, które nie powinny być routowane na zewnątrz. Są to odpowiednio:

  • w obrębie klasy A: 10.0.0.0 - 10.255.255.255,
  • w obrębie klasy B: 172.16.0.0 - 172.31.255.255,
  • w obrębie klasy C: 192.168.0.0 - 192.168.255.255.

W oparciu o w/w adresy zaleca się projektowanie lokalnych sieci wewnętrznych.

Dodatkowo wyszczególnia się adres specjalny będący adresem lokalnego komputera (adresem pętli zwrotnej, ang. loop back) postaci 127.0.0.1. Pakiety z takimi adresami nie wydostają się na zewnątrz wysyłającej maszyny. Adres ten pozwala zweryfikować poprawność działania interfesju sieciowego na danym komputerze.

Maska podsieci

Maska podsieci oddziela część adresową hosta od części sieci. Miejsca, gdzie maska przyjmuje wartość 1 zakładają stałość adresu, natomiast miejsca, w których posiada wartość 0 umożliwiają jego zmianę. Maska może ulegać modyfikacjom, jednakże nie może posiadać wartości 1 po pierwszym wystąpieniu wartości 0, stąd standardowe wartości maski to 128, 192, 224, 240, 248, 252, 254, 255. Częstym zapisem maski jest zapis skrócony określający ilość bitów ustawionych na jeden w masce, tzn. zapis 192.168.1.1 255.255.255.0 oraz 192.168.1.1/24 są równoważne.

Wydzielanie nad- i podsieci

W związku z gwałtownym rozwojem Internetu publiczne adresy IP zaczęły się wyczerpywać. W celu rozwiązania tego problemu, wprowadzono technikę o nazwie bezklasowy routing międzydomenowy CIDR (classless interdomain routing). Jest to jedna z metod mająca na celu poprawienie wykorzystania adresów IP. W technice tej długość maski podsieci zależy od potrzeb danej podsieci lub wpisu w tablicy routingu. Zastosowanie CIDR pozwala na efektywniejsze wykorzystanie dostępnej puli adresowej poprzez jej podział na odpowiednie podsieci. Technika CIDR zmniejsza problem adresacji, ale go nie likwiduje. Wydzielanie podsieci jest zabiegiem umożliwiającym podział adresu sieciowego odpowiedniej klasy na mniejsze rozdzielne części. Technika CIDR eliminuje koncepcję podziału adresów na klasy i stosowania masek tylko o długości 8-, 16- 24-bitowych. Fizycznie operacja wydzielania podsieci sprowadza się do zabrania odpowiedniej ilości bitów z części hosta i przypisanie ich do części sieci adresu IP. Wynikiem takiej operacji jest powstanie nowych podsieci o ilości hostów mniejszej niż sieć, z której wyszczególniamy podsieci.
Mechanizm nadsieci polega na łączeniu kilku adresów sieciowych (następujących po sobie) w większe struktury. Fizycznie operacja wydzielania nadsieci sprowadza się do zabrania odpowiedniej ilości bitów z części sieci i przypisanie ich do części hosta. Wynikiem takiej operacji jest powstanie mniejszej ilości sieci o większej ilości urządzeń.


Przykład:

  • Adres sieciowy 212.51.216.0 należy do klasy C – oznacza to, że w danej klasie adresowej istnieje możliwość zaadresowania 254 urządzeń. Załóżmy, że adres 212.51.216.0 otrzymał administrator zarządzający trzema przedsiębiorstwami, w każdym po około 30 komputerów.
    30 urządzeń jest możliwych do zaadresowania na 5 bitach.
    Adres sieciowy jesteśmy więc w stanie rozszerzyć o 3 bity, a maska podsieci przyjmie wówczas postać 255.255.255.224. Oznacza to powstanie kilku podsieci o adresach
    :


00000000 → 212.51.216.0,
00100000 → 212.51.216.32,
01000000 → 212.51.216.64,
01100000 → 212.51.216.96,
10000000 → 212.51.216.128,
10100000 → 212.51.216.160,
11000000 → 212.51.216.192,
11100000 → 212.51.216.224.

Pierwszy z adresów utworzonej podsieci nie jest funkcjonalnie poprawny, gdyż pokrywa się z adresem sieci, z której podsieć została wydzielona. Ostatni z adresów nie jest również poprawny i nie może być wykorzystywany, gdyż adres rozgłoszeniowy tej podsieci pokryłby się z adresem rozgłoszeniowym sieci, z której podsieć wydzielono.

 

 

 

Komputery w sieci są identyfikowane na podstawie adresów IP (Internet Protocol adress). Każdy z nich jest kombinacją czterech liczb od 0 do 255. Cóż, przynajmniej my tak to widzimy. W rzeczywistości jest to ciąg 32 bitów (zer i jedynek). Pokażemy to na przykładzie:

 

 

Adres IP (liczby):   192.168.0.2

Adres IP (bity):     11000000 10101000 00000000 00000010

                     -------- -------- -------- --------

                        192      168       0        2

 

 

 

Adres IP musi być unikalny dla każdego komputera, przynajmniej w obrębie jednej sieci. Aby oddzielić maszyny w sieci i poza nią IP podzielono na dwie części: część sieci oraz część hosta.

 

Podział zapisany jest za pomocą maski sieciowej, czyli zbioru zer poprzedzonego zbiorem jedynek. Ta część adresu, którą można odwzorować w jedynkach jest częścią sieci, reszta to część hosta. Zazwyczaj maskę zapisujemy jak zwykły adres IP.

 

Przykład oddzielenia sieci/hosta

Adres IP:     192      168      0         2

                   11000000 10101000 00000000 00000010

Maska:      11111111 11111111 11111111 00000000

               255      255     255        0

           +--------------------------+--------+

                       Sieć              Host

 

 

 

Innymi słowy, 192.168.0.14 wciąż jest częścią naszej przykładowej sieci, ale 192.168.1.2 już nie.

 

Adres broadcast składa się z części sieci takiej samej jak reszta komputerów oraz samych jedynek w części hosta. Każdy komputer nasłuchuje jego adresu IP, gdyż służy on do nadawania pakietów rozgłaszających.

 

Adres broadcast

Adres IP:      192      168      0         2

                    11000000 10101000 00000000 00000010

Broadcast:  11000000 10101000 00000000 11111111

               192      168      0        255

           +--------------------------+--------+

                      Sieć               Host

 

 

 

Podczas połączenia z Internetem, konieczne jest określenie, który komputer udostępnia z nim połączenie. Komputer ten nazywamy bramą. To zwyczajna maszyna, ze zwyczajnym adresem IP (np. 172.168.0.1).

 

Wskazanie serwerów DNS jest obowiązkową pozycją konfiguracji resolvera nazw. Operacja ta następuje automatycznie, o ile korzystamy z serwera DHCP, w przeciwnym wypadku musimy podać ich adresy samodzielnie. Serwery nazw ustawiamy edytując plik: /etc/resolv.conf. Jeśli go nie ma, to możemy go utworzyć za pomocą dowolnego edytora lub poleceniem touch. Podajemy od jednego do trzech serwerów nazw za pomocą słowa kluczowego nameserver np.:

 

nameserver 192.168.0.1

 

Jeśli często odwołujemy się do maszyn w naszej domenie to możemy ułatwić sobie życie i ustawić domenę domyślną. Od tej pory podanie samej nazwy hosta (bez części domenowej), będzie uważane za podanie pełnego adresu. Przykładowe ustawienie domyślnej domeny (np. jakasdomena.cos) podano poniżej:

 

domain nazwa.dm

 

 

 

Monitorowanie ruchu sieciowego drugiej warstwy modelu ISO/OSI w sieci Ethernet

 

 

a) Sposoby odwzorowywania adresów logicznych na adresy fizyczne (m. in. ARP).

Aby zobaczyć listę odwzorawań adresów logicznych na adresy fizyczne, z którymi nasz komputer miał do czynienia,

wydajemy komendę 'arp'.

# arp

Address                  HWtype  HWaddress           Flags Mask            Iface

192.168.0.102            ether   00-0D-60-CD-5F-5D   C                     eth0

192.168.0.1              ether   00:0B:6A:32:CA:5D   C                     eth0

 

Jest to zawartość cache'u ARP. Aby dowiedzieć się jaki adres fizyczny ma komputer o danym daresie IP, możemy     

wykorzystać program 'arping'.

$ sudo arping 192.168.0.102

ARPING 192.168.0.2 from 192.168.0.1 eth0

Unicast reply from 192.168.0.102 [00-0D-60-CD-5F-5D]  0.886ms

Unicast reply from 192.168.0.102 [00-0D-60-CD-5F-5D]  0.804ms

Sent 2 probes (1 broadcast(s))

Received 2 response(s)

 

 

Ruting statyczny

a) Tablice rutingu i pamięć cache rutingu.

Aby wyświetlić tablicę routingu wydajemy komendę:

# ip route show

192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.102

10.22.0.0/24 dev eth1  proto kernel  scope link  src 10.22.0.2

default via 10.22.0.1 dev eth1

 

Pamięć podręczną (cache) tablicy routingu uzyskujemy wydając komendę:

# ip route show cache

 

Aby wyczyścić tablicę routingu wydajemy komendę:

# ip route flush cache

 

 

 

b) Znajomość poszczególnych pól tablicy rutingu (m.in. MSS, metryka, brama) w odniesieniu do decyzji podejmowanej przez ruter przy trasowaniu pakietu IP. Standardowy algorytm dopasowania pakietu do wpisów tablicy rutingu i sposób podjęcia decyzji przy określaniu dalszej trasy pakietu (zasada najlepszego dopasowania).

 

Komenda 'route' jest kolejnym sposobem na odczytanie tablicy routingu:

# route -e

Kernel IP routing table

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface

192.168.0.0     *               255.255.255.0   U         0 0          0 eth0

10.22.0.0       *               255.255.255.0   U         0 0          0 eth1

default         10.22.0.1       0.0.0.0         UG        0 0          0 eth1

 

 

 

Każdy wpis opisywany jest następującymi atrybutami:

         cel

         brama

         maska

         flagi

         MSS - Maximum Segment Size – czyli maksymalna wielkość segmentu. Wykorzystywana często do wymuszania mniejszej wielkości pakietów IP, przechodzących daną drogą

         jest to wielkość okna protokołu TCP (u nas 0 – brak ograniczeń)

         interfejs

         metryka

         arp

 

Bardzo rozpowszechnionym protokołem trasowania jest RIP. Protokół RIP (Routing Information Protocol) stosuje metryki zliczania ilości skoków w celu pomiaru odległości do przeznaczenia. W metryce RIP, router rozgłasza sieci przyłączone bezpośrednio z metryką „1” . Sieci, które są osiągalne przez inny router mają metrykę „2”, a sieci osiągalne przez dwa routery mają metrykę „3” (trzy skoki), itd. Wykorzystanie ilości skoków w celu skalkulowania najkrótszej ścieżki, nie zawsze daje optymalny rezultat. Biorąc za przykład: ścieżka z metryką „3”, która przechodzi przez trzy sieci Ethernet, może się okazać znacząco szybsza od ścieżki z metryką „2”, przechodzącej przez dwie linie szeregowe, małej szybkości.

 

Oto lista flag jakie mogą być ustawione pojedynczemu wpisowi w tablicy routingu (pochodzi ze strony http://linux.die.net/man/8/route):

Possible flags include
U (route is up)
H (target is a host)
G (use gateway)
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
!
(reject route)

 

c) Definiowanie nowych/usuwanie istniejących wpisów z tablicy rutingu. Trasa do hosta, sieci, sieci dostępnej przez bramę. Znaczenie trasy domyślnej.

 

Dodajemy nowy wpis do tablicy routingu:

# route add 127.0.0.0 lo

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

127.0.0.0       *               255.255.255.255 UH    0      0        0 lo

192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

10.22.0.0       *               255.255.255.0   U     0      0        0 eth1

 

Usuwamy wpis do tablicy routingu:

# route del 127.0.0.0 lo

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

10.22.0.0       *               255.255.255.0   U     0      0        0 eth1

 

Ustawiamy bramę domyślną:

# route add default gw 10.22.0.1

# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.0.0     *               255.255.255.0   U     0      0        0 eth0

10.22.0.0       *               255.255.255.0   U     0      0        0 eth1

default         10.22.0.1       0.0.0.0         UG    0      0        0 et

 

 

 

 

 

/etc/networks

/etc/sysconfig/network/config

/etc/sysconfig/network/ifcfg.template

/etc/sysconfig/network/ifcfg-eth0

/etc/sysconfig/network/routes

/etc/sysconfig/network/ifroute-config

 

/etc/networks

Zawiera nazwy sieci

Przydatne przy starcie systemu, gdy nie ma jeszcze

dostępnych serwerów nazw

Przykładowe wpisy:

loopback 127.0.0.0

lokalna 192.168.0.0

 

/etc/sysconfig/network/config

Zawiera ogólne informacje

Wpisy są postaci zmienna=wartość

Przykładowe zmienne:

USE_SYSLOG="yes" | "no" (czy używać sysloga, czy na

stderr)

MODIFY_RESOLV_CONF_DYNAMICALLY="yes" | "no"

(czy pozwalać np. ppp0 na dynamiczną modyfikację pliku /

etc/resolv.conf)

FIREWALL="yes" | "no"

 

/etc/sysconfig/network/ifcfg-ethX

Konfiguracja interfejsu sieciowego

Można się spotkać z plikiem postaci

ifcfg-eth-id-adres-MAC

Konfiguracja polega na ustawieniu szeregu

zmiennych

Szablon konfiguracji interfejsu znajduje się w

/etc/sysconfig/network/ifcfg.template

 

/etc/sysconfig/network/ifcfg-ethX

Przykładowe zmienne:

STARTMODE="onboot"|"manual"|"hotplug"|"off"

BOOTPROTO="static"|"dhcp"

IPADDR=adres-ip/bity-maski

NETMASK=maska

PREFIXLEN=ilość-bitów-maski

BROADCAST=adres-rozgłoszenia

MTU=rozmiar

 

Ścieżki sieciowe – pliki:

/etc/sysconfig/network/routes

– ustala ścieżki dla wszystkich interfejsów

/etc/sysconfig/network/ifroute-eth0

– ustala ścieżkę dla wybranego interfejsu

Czytane przez polecenie ifup-route, które jest

uruchamiane przez polecenie ifup

 

Ścieżki sieciowe – pliki

Konfiguracja plików

Pierwsza kolumna – określa adres docelowy; słowo

default określa ścieżkę domyślną

Druga kolumna – określa bramę; jeśli nie chcemy

podawać bramy, piszemy 0.0.0.0

Trzecia kolumna – określa maskę dla adresu

Czwarta kolumna – określa interfejs, przez który będą

szły pakiety

 

Ścieżki sieciowe – pliki

Przykład konfiguracji pliku routes

127.0.0.0                0.0.0.0                    255.255.0               lo

204.12.35.0            0.0.0.0    255.255.255.0 eth0

default 204.12.35.1               0.0.0.0                    eth0

192.168.0.0            10.2.0.254              255.255.0.0            eth1

 

Karty i interfejsy sieciowe w systemie Linux

Sprawdzenie dostępnych interfejsów sieciowych

Konfiguracja sprzętowa kart sieciowych następuje w większości przypadków automatycznie. Aby sprawdzić aktualnie dostępne interfejsy sieciowe należy wydać polecenie (znak ,,#'' to prompt - nie stanowi części polecenia; poniżej rezultat):

 # ifconfig -a
 eth0      Link encap:Ethernet  HWaddr 00:00:B4:58:D1:06
           inet addr:172.16.0.123  Bcast:172.16.255.255  Mask:255.255.0.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:481864 errors:0 dropped:0 overruns:0 frame:32
           TX packets:27106 errors:0 dropped:0 overruns:0 carrier:0
           collisions:5621 txqueuelen:1000
           RX bytes:92434865 (88.1 Mb)  TX bytes:3207795 (3.0 Mb)
           Interrupt:21 Base address:0x9400
 
 eth1      Link encap:Ethernet  HWaddr 00:04:61:4A:1C:3D
           inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
           BROADCAST MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000
           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
           Interrupt:21 Base address:0x4000
 
 lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:136 errors:0 dropped:0 overruns:0 frame:0
           TX packets:136 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:9351 (9.1 Kb)  TX bytes:9351 (9.1 Kb)
 

W systemie Linux połączenia sieciowe są udostępniane pod postacią interfejsów. Każdej działającej karcie sieciowej przypisywany jest jeden lub więcej logicznych interfejsów. Poniższe przykłady pokazują typowe konwencje nazewnictwa interfejsów:

lo

(loopback) pętla zwrotna pozwalająca na połączenie z samym sobą za pośrednictwem protokołów IP. Interfejs ten ma przypisany adres 127.0.0.1. Adres ten wskazuje na lokalną maszynę i jest dostępny tylko na niej.

eth0

Pierwsza karta ethernetowa w systemie. Interfejs odpowiedzialny za połączenia z siecią LAN z wykorzystaniem protokołu Ethernet. Każdy z nich odpowiada pojedynczej karcie sieciowej. Takich interfejsów może być dowolna ilość, przy czym numerowane są one zgodnie z ich kolejnością wykrycia przez system. W systemie musi znajdować się również odpowiedni sterownik do karty sieciowej.

eth1

Druga karta ethernetowa w systemie

eth0:1

Interfejs pierwszej karty ethernetowej, wykorzystujący drugi z przypisanych adresów (dostępne jedynie po przypisaniu kilku adresów)

ppp0

(point-to-point protocol) interfejs realizujący połączenie ppp, na przykład połączenia modemowe i DSL. Protokół ten pozwala na przesyłanie pakietów IP poprzez łącza szeregowe. Do poprawnego działania wymagają one demona ppp oraz sterownika ppp, znajdującego się w jądrze systemu

wlan0

Interfejs połączenia bezprzewodowego WiFi.

Diagnostyka karty sieciowej

Poprawna konfiguracja karty sieciowej powinna znaleźć swoje odzwierciedlenie w logu systemowym. Bieżący stan logu można odczytać wydając polecenie

 # dmesg
 

Pośród innych komunikatów komunikatów powinny się w nim znaleźć linie podobne do poniższych:

 

Mar  3 21:07:51 angband ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker
Mar  3 21:07:51 angband eth0: RealTek RTL-8029 found at 0x9400, IRQ 21,
                                                             00:00:B4:58:D1:06.
Mar  3 21:07:51 angband 8139too Fast Ethernet driver 0.9.27
Mar  3 21:07:51 angband eth1: RealTek RTL8139 at 0xe1474000, 00:04:61:4a:1c:3d,
                                                                         IRQ 21
Mar  3 21:07:51 angband eth1:  Identified 8139 chip type 'RTL-8101'
Mar  3 21:07:54 angband eth1: link down

Jeśli podczas uruchamiania karty pojawią sie jakiekolwiek problemy w logu powinny znaleźć się stosowne informacje. Przykładowo: ostania linia wskazuje na brak kabla sieciowego w interfejsie eth1.

Ponadto powinny zostać załadowane odpowiednie moduły, obsługujące odnalezione karty. Aktulana listę modułów można odczytać poleceniem:

 # lsmod
 Module                  Size  Used by
 ipt_limit                832  0
 ipt_LOG                 3776  5
 ipt_state                576  2
 iptable_filter           832  1
 ipt_MASQUERADE           960  1
 iptable_nat             3460  1
 ip_nat                  9012  2 ipt_MASQUERADE,iptable_nat
 ip_conntrack           25392  6 ipt_state,ipt_MASQUERADE,iptable_nat,ip_nat
 nfnetlink               2264  2 ip_nat
 ip_tables              12352  6 ipt_limit,ipt_LOG,ipt_state,
                            iptable_filter,ipt_MASQUERADE,iptable_nat
 8139too                13888  0
 mii                     2560  1 8139too
 ne2k_pci                4640  0
 8390                    5056  1 ne2k_pci
 ip_queue                4448  1
 

Lista modułów zazwyczaj jest dość długa, gdyż zawiera ,,sterowniki'' wszystkich urządzeń znajdujących się w systemie. W przykładzie zostały usunięte moduły nie związane z siecią. Na liście można a odleźć moduły oraz które obsługują dostępne karty ethernetowe.

Odszukanie zainstalowanej karty sieciowej

W większości przypadków automatyczna konfiguracja kart sieciowych realizowana jest bezproblemowo przez skrypty startowe systemu. Jednakże, w przypadku gdy automatyczne mechanizmy zawiodą nie pozostajemy bezradni. Jeśli w logu systemowym nie pojawiły się stosowne wpisy, pierwszym etapem konfiguracji sieci jest określenie jakimi urządzeniami dysponuje komputer. Zazwyczaj wiemy iloma kartami sieciowymi dysponujemy. W typowych komputerach stacjonarnych podłączone są one poprzez magistralę PCI. Niestety często nie mamy pewności, kto jest producentem danej karty lub jakiego typu układ został na niej zastosowany. Aby wyświetlić informację o wszystkich urządzeniach PCI w danym komputerze należy użyć polecenia:

 # lspci
 00:00.0 Host bridge: nVidia Corporation nForce2 AGP(different version?)
                                                                    (rev c1)
 00:00.1 RAM memory: nVidia Corporation nForce2 Memory Controller 1 (rev c1)
 00:00.3 RAM memory: nVidia Corporation nForce2 Memory Controller 3 (rev c1)
 00:00.4 RAM memory: nVidia Corporation nForce2 Memory Controller 2 (rev c1)
 00:01.0 ISA bridge: nVidia Corporation nForce2 ISA Bridge (rev a4)
 00:01.1 SMBus: nVidia Corporation nForce2 SMBus (MCP) (rev a2)
 00:08.0 PCI bridge: nVidia Corporation nForce2 External PCI Bridge (rev a3)
 00:09.0 IDE interface: nVidia Corporation nForce2 IDE (rev a2)
 00:1e.0 PCI bridge: nVidia Corporation nForce2 AGP (rev c1)
 01:06.0 Communication controller: Conexant HSF 56k HSFi Modem (rev 01)
 01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
 01:0b.0 Ethernet controller: Realtek Semiconductor Co.,
                                         Ltd. RTL-8139/8139C/8139C+ (rev 10)
 02:00.0 VGA compatible controller: ATI Technologies Inc RV350 AS [Radeon
                                                                       9550]
 

W odpowiedzi uzyskujemy listę wszystkich urządzeń znajdujących sie w komputerze. Rozpoznanie kart sieciowych nie powinno być trudne. W powyższym przykładzie komputer posiada dwie karty ethernetowe oraz modem.

Odszukanie odpowiedniego modułu jądra

Kolejnym krokiem jest określenie modułu, który powinien być uruchomiany aby dana karta sieciowa pracowała poprawnie. W celu sprawdzenia jakie moduły dla kart sieciowych są dostępne należy wylistować katalog: ls /lib/modules/`uname -r`/kernel/drivers/net, gdzie uname -r mozna zastapic aktualna wersja jadra systemu (proszę zwrócić uwagę, że w tym poleceniu użyty jest znak ` a nie ' ). Często przyczyna problemu może być brak odpowiedniego modułu (np. po dodaniu nowej karty do skonfigurowanego systemu). Jeśli moduł jest dostarczany wraz z jądrem systemu, problem powinna rozwiązać ponowna kompilacja. Jeśli system został zainstalowany od nowa, powinien zawierać wszystkie dostępne moduły.

Informacje o poszczególnych modułach można uzyskać czytając dokumentację znajdująca się w katalogu: /usr/src/linux/Documentation/networking/. Znakomita większość kart sieciowych dostępnych na rynku wykorzystuje jeden z poniższych modułów:

  • 8139too (lub starszy rtl8139) - karty oparte na popularnych, tanich układach Realtek rtl8129, rtl8130 i rtl8139.
  • ne2k-pci - karty PCI zgodne z NE2000, oparte m.in. na układach Realtek rtl8029, Winbond 89C940, Compex RL2000 czy SureCom NE34.
  • ne - karty ISA zgodne z NE2000, w tym karty oparte na starych układach Realteka.
  • 3c59x - karty 3com o oznaczeniach 3c59x, 3c900, 3c905, 3c575, 3c656, 3c540, 3c980 i 3c555.
  • e100, eepro100 - karty Intel EtherExpressPro/100.

Jeśli Linux nie obsługuje znalezionej karty sieciowej, jedynym rozwiązaniem jest skorzystanie z oprogramowania dostarczanego przez producenta sprzętu. Taki sposób postępowania, do niedawna, dotyczył popularnych kart sieciowych wchodzących w skład chipsetów firmy NVidia. Obecnie można skorzystać także z eksperymentalnego modułu dołączonego do najnowszych Linuksów.

Uruchomienie i konfiguracja modułu

Aby uruchomić dany moduł najlepiej skorzystać z polecenie:

 # modprobe <nazwa_modulu>
 

Natomiast aby usunąć załadowany moduł możemy posłużyć się poleceniem:

 # rmmod <nazwa_modulu>
 

Częstym problemem w przypadku starszych kar sieciowych są niepoprawnie rozpoznawane parametry. Uruchomienie bez parametrów (jak w powyższym przykładzie) pozwala na automatyczny dobór parametrów karty. Jeśli nie są one poprawnie rozpoznawane, a znamy poprawne ustawienia można wykonać polecenie wymuszając ustawienia. Np.:

 #  modprobe 3c59x irq=5 io=0x200
 

Informacje o dostępnych parametrach można znaleźć w pliku

/usr/src/linux/Documentation/networking/net-modules.txt

Automatyczna konfiguracja adresu przez DHCP - polecenie dhcpcd

Protokół DHCP to pozwala na automatyczne przypisanie adresu oraz przekazanie dodatkowych informacji niezbędnych do poprawnej konfiguracji sieci. Jeżeli w naszej sieci znajduje się serwer DHCP to jedyną rzeczą, o którą musimy się zatroszczyć jest prawidłowe skonfigurowanie okablowania oraz wymuszenia automatycznego przydzielania adresu na komputerze. Służą do tego polecenia dhcpcd, dhclient, pump lub udhcpc. W systemie Gentoo Linux domyślnym narzędziem jest dhcpcd. Aby automatycznie pobrać konfiguracje dla interfejsu eth0 należy wydać polecenie:

# dhcpcd eth0

Ręczna konfiguracja interfejsu - polecenie ifconfig

Podstawowym narzędziem do zarządzania interfejsami sieciowymi jest polecenie ifconfig. Pozwala on na sprawdzenie stanu, podnoszenie, wyłączanie oraz ustawianie adresu interfejsu. Wywołany bez parametrów wyświetla wszystkie aktywne interfejsy sieciowe. Uruchomiony z parametrem -a wyświetla wszystkie dostępne interfejsy niezależnie czy zostały skonfigurowane. Polecenie ifconfig wywołane z nazwą interfejsu jako parametr, wyświetli informacje o tym interfejsie.

Składnia polecenia ifconfig jest następująca:

ifconfig <if> <IP> <parametry>

gdzie:

if

rodzaj interfejsu (np.: eth0)

IP

adres IP dla urządzenia

parametry

dodatkowe opcje polecenia ifconfig. Najważniejsze z nich to:

up

włączenie (podniesienie) interfejs (domyślne).

down

wyłączenie interfejsu.

mtu N

pozwala ustawić MTU (Maximum Transfer Unit) urządzenia.

netmask <addr>

określa maskę podsieci do której należy urządzenie.

[-]broadcast [addr]

włącza/wyłącza akceptowanie datagramów przeznaczonych dla adresu broadcastowego.

[-]pointopoint [addr]

pozwala ustawić adres maszyny na drugim końcu połączenia point-to-point (jak SLIP albo PPP).

hw <type> <addr>

ustawia adres sprzętowy (możliwe dla niektórych urządzeń sprzętowych). Wspierane obecnie typy sprzętowe to ether (Ethernet), ax25 (AMPR AX.25), ARCnet i netrom (AMPR NET/ROM).

Aby skonfigurować interfejs sieciowy najczęściej stosuje się następującą składnię:

 # ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
 

W przedstawionym przykładzie konfigurujemy interfejs eth0. Jego parametry ustawiamy na następujące wartości:

  • adres IP będzie miał wartość 192.168.1.1,
  • maska podsieci 255.255.255.0.

Parametr up na końcu polecenia uruchamia interfejs. Parametr ten można pominąć, gdyż jest to wartość domyślna. Aby zatrzymać interfejs wystarczy wywołać polecenie:

 # ifconfig eth0 down
 

Jak widać nie zawsze trzeba podawać wszystkich parametry interfejsu sieciowego. Część parametrów może zostać automatycznie określona przez system operacyjny na podstawie maski podsieci. Jeśli maska nie została podana, wówczas zostanie obliczona na podstawie klasy, do której należy podany adres. W przykładzie powyżej brakujące parametry, system określiłby przy założeniu, że adres należy do klasy C:

  • adres sieci miałby wartość 192.168.1.0
  • adres rozgłoszeniowy 192.168.1.255

W przypadku, gdy stosujemy adresowanie bezklasowe należy pamiętać o podaniu maski podsieci, w przeciwym wypadku system wyliczy maskę na podstawie przynależności danego adresu do konkretnej klasy adresowej.

Konfiguracja bramy domyślnej - polecenie route

Aby umożliwić komputerowi korzystanie z bramy internetowej niezbędnym jest skonfigurowanie podstawowej tablicy routingu. Narzędziem zapewniającym pełną kontrolę nad tą tablicą jest route. Polecenie uruchomione bez parametru wyświetla aktualną tablice routingu.

Składnia polecenia jest następująca (skrócona):

  route  [komenda] [-net|-host] cel [gw Gw] [netmask Nm] [[dev] If]
 

komenda

aby zmodyfikować stan tablicy należy użyć komendy add, aby dodać nowy wpis lub del, aby usunąć istniejący

[-net|-host] cel

określa sieć (-net) lub host (-host), którego dotyczy dany wpis do tablicy. Jeśli adres docelowy pakietu jest zgodny z powyższym adresem z dokładnością określoną przez maskę, zostanie skierowany zgodnie z tą regułą. Zamiast adresu sieci lub hosta można zastosować parametr default, który definiuje regułę dla wszystkich pakietów nie objętych pozostałymi regułami (domyślną).

[netmask Nm]

określa które bity adresu muszą być zgodne z adresem pakietu, aby zastosowana została dana reguła.

[gw Gw]

wpis określający, iż pakiety obsługiwane przez daną regułę zostaną przesłane do bramy o adresie Gw.

[[dev] If]

nakazuje, aby pakiet zgodny z regułą został wysłany przez interfejs

W najprostszej konfiguracji chcemy, aby pakiety przeznaczone do sieci lokalnej były kierowane bezpośrednio do odbiorcy, zaś pozostałe pakiety przesyłane do bramy internetowej. Najpierw określamy pakiety przeznaczone dla sieci lokalnej:

 # route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
 

Określenie interfejsu jest konieczne, jeśli posiadamy kilka interfejsów sieciowych.

Następnie nakazujemy przesłanie pozostałych pakietów do bramy internetowej (np. 192.168.0.254):

 # route add default gw 192.168.0.254
 

Nowa tablica routingu z uwzględnieniem wprowadzonych komend wygląda następująco:

 # route
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 192.168.0.0     *               255.255.0.0     U     0      0        0 eth0
 loopback        localhost       255.0.0.0       UG    0      0        0 lo
 default         192.168.0.254   0.0.0.0         UG    0      0        0 eth0
 

Konfiguracja serwerów nazw

Aby skonfigurować obsługę nazw domenowych w Linuksie należy wprowadzić odpowiednie wpisy do pliku /etc/host.conf. W pliku tym zawarte są informacje o kolejności, w jakiej system powinien odpytywać różne systemy tłumaczeń nazw (DNS, NIS) przy rozwiązywaniu nazwy sieciowej. Plik ten może składać się z następujących poleceń:

order

polecenie to określa kolejność w jakiej będą odpytywane systemy tłumaczeń nazw. Dostępne opcje: bind (DNS), hosts (plik /etc/hosts), nis (NIS)

multi

pozwala określić ile wyników może zwrócić system rozwiązania nazw. Jeśli polecenie to ustawione jest na off, wówczas zwracany jest tylko jeden wynik, a jeśli na on wówczas zwracane jest kilka wyników od systemu.

Drugim plikiem pozwalającym na konfigurację mechanizmu rozwiązywania nazw jest /etc/resolv.conf. Określa on kolejność przeszukiwania domen i zawiera adresy serwerów nazw. Najczęściej przy konfiguracji tego pliku stosuje się dwa słowa kluczowe:

nameserver

określa adres serwera DNS

domain

określa nazwę domeny, do której należy komputer. Większość zapytań o nazwy wewnątrz tej domeny może odbywać się z zastosowaniem krótkich nazw, podanych względem lokalnej domeny.

Konfiguracja nazwy komputera i nazw lokalnych

Każdy użytkownik powinien nadać swojemu komputerowi jakąś nazwę. Oczywiście nazwę tę mozna zawsze zmienić.

W celu przypisania nazwy danemu komputerowi na NET należy w pliku /etc/conf.d/hostname polecenie:

HOSTNAME="NET"

Aby zmienić nazwę domeny należy w pliku /etc/conf.d/domainname wpisać:

DNSDOMAIN="siec_kis"

Następnie, aby nazwa była ustawiana po każdym uruchomieniu komputera, dodajemy skrypt domainname do domyślnego poziomu uruchamiania poleceniem:

 # rc-update add domainname default
 

W celu sprawdzenie aktualnie ustawionej nazwy komputera należy użyć polecenia:

 # hostname
 

nazwę domeny można natomiast sprawdzić poleceniem:

 # hostname -d
 

W innych dystrybucjach Linuksa, często pliki określające nazwę komputera znajdują się bezpośrednio w katalogu /etc.

Kolejnym krokiem w trakcie konfiguracji sieci jest przypisanie nazw i adresów komputerów, które znajdują się w naszej sieci lokalnej. Wpisy te umieszcza się w pliku /etc/hosts. Dzięki temu do komputerów, które zostały umieszczone w tym pliku nie musimy odwoływać się po adresie IP, ale po nadanej im nazwie. Wadą tego rozwiązania jest konieczność ręcznej aktualizacji tego pliku, jeśli któryś z komputerów w sieci lokalnej zmieni adres IP.

Każdy wiersz tego pliku powinien składać się z następujących rekordów:

adres_IP nazwa_hosta

Danemu adresowi IP można przypisać więcej niż jedną nazwę, co przedstawia przykład:

127.0.0.1 localhost loopback
192.168.0.1 nazwa_komputera

Należy zaznaczyć, iż adres do którego została przypisana nazwa komputera będzie jego domyślnym adresem (zwracanym przez komendę hostname -i).

Narzędzia do diagnozowania sieci w systemie Linux

Polecenie ping

Polecenie ping jest podstawowym narzędziem diagnostyki sieci. Wysyła ono pakiety ICMP ECHO_REQUEST do hostów sieciowych i wyświetla odpowiedź. W Linuksie program ping dysponuje bardzo szerokim zakresem opcji.

Składnia polecenia:

ping [opcje] [-c liczba] [-i oczekiwanie] [-l preload] [-s rozmiarpakietu] adres

gdzie:

-c liczba

Określa liczbę wysłanych pakietów

-i oczekiwanie

Określa czas oczekiwania w sekundach między wysłaniem kolejnych pakietów. Domyślnie czeka się jedną sekundę.

-s rozmiarpakietu

Określa liczbę wysyłanych bajtów danych. Domyślną wartością jest 56, co tłumaczy się na 64 bajty ICMP po połączeniu z 8 bajtami nagłówka ICMP.

-f

Produkuje pakiety tak szybko, jak powracają, lub 100 razy na sekundę, zależnie od tego, czego jest więcej. Dla każdego wysłanego ECHO_REQUEST drukowana jest kropka ``., a dla każdego odebranego ECHO_REPLY drukowane jest backspace. Daje to dynamiczny obraz zmian ilości opuszczonych pakietów.

Przedstawione opcje stanowią jedynie cześć możliwości narzędzia ping.

Polecenie traceroute

Narzędzie to drukuje trasę, którą przebiegają pakiety do hosta sieciowego. Internet jest wielką i skomplikowaną agregacją sprzętu sieciowego, połączonego ze sobą poprzez bramki (gateways). Śledzenie trasy, którą podążają pakiety danej osoby (lub znajdowanie paskudnej bramki, odrzucającej pakiety) może być trudne. Polecenie traceroute wykorzystuje pole `time to live (TTL)' protokołu IP i próbuje wydobyć odpowiedź ICMP TIME_EXCEEDED od każdej bramki na drodze do określonego hosta.

Składnia (wybrane opcje):

traceroute [-m max_ttl] [-n] [-p port] [-q nqueries] [-w waittime] host

Jedynym wymaganym parametrem jest nazwa hosta docelowego lub jego IP. Domyślny próbny datagram ma długość 38 bajtów, lecz może to być zwiększone przez podanie rozmiaru pakietu za nazwą hosta docelowego.
Inne opcje to:

-m max_ttl

Ustaw maksymalny time-to-live (ttl - ,,czas życia'' maksymalna liczba skoków - hops) używany w wychodzących pakietach próbnych.

-n

Drukuj adresy skoków (hops) numerycznie zamiast symbolicznie i numerycznie

-w waittime

Ustaw czas (w sekundach) oczekiwania na odpowiedź na próbkę (domyślnie 3 sekundy).

nc (netcat)

Jedno z najbardziej uniwersalnych narzędzi sieciowych w systemach uniksowych. Stosowane jest zarówno przez administratorów jak i programistów. Działanie programu sprowadza się do przekierowania standardowego wejścia na wybrany port zdalnego hosta. Odpowiedź hosta przekierowywana jest na standardowe wyjście (czyli domyślnie ekran). Pełne możliwości tego programy uzyskuje się poprzez współprace z uniksowymi narzędziami przetwarzania strumieniowego. Oto przykład zastosowania:

 # echo -e "GET /\n" | nc www.wp.pl 80

 

Polecenie tcpdump

Jest to jedno z najpopularniejszych i najbardziej natywnych, konsolowych narzędzi sieciowych w systemie Linux. Narzędzie to pozwala na przechwytywanie ruchu sieciowego według zadanych kryteriów. Program pozwala na zrzucenie ruchu sieciowego do pliku i podgląd w zewnętrznej aplikacji. Jedną z ważniejszych cech tego programu, są zaawansowane narzędzia do filtracji przechwytywanego ruchu sieciowego. Składnia polecenia:

tcpdump [ -deflnNOpqStvx ] [ -c count ] [ -F file ][ -i interface ] [ -r file ] 
        [ -s snaplen ][ -T type ] [ -w file ] [ expression ]

gdzie:

-i interface

Wymuszenie interfejsu, z którego program będzie zbierał pakiety

-l

Wyłączenie buforowania pakietów (powodującego opóźnienia w stosunku do fizycznego odbioru pakietów)

–w file

Wymuszenie zapisu wyników do określonego pliku (zamiast wysłania ich na standardowe wyjscie)

–r file 

Pobranie wyników zapisanych w określonym pliku, proces odwrotny do flagi –w

– v | – vv | –vvv

Wymuszenie trybów dokładności prezentacji pakietów

– t | – tt | –ttt | –tttt

Wymuszenie trybów dokładności określenia czasu

–x | –X

Wymuszenie prezentacji pakietów w postaci heksadecymalnej (–x) bądź ASCII (–X)

expression

Określenie kryteriów filtracji pakietów

Przykładowo:

tcpdump –i eth0 src 192.168.1.1 and tcp dst port 22

Polecenie telnet

Polecenie telnet umożliwia nawiązanie połączenia ze zdalnym serwerem na określonym porcie. Składnia polecenia telnet jest następująca:

telnet [-cE][-e escape char][-l user][host [port]]

-c

omija odczyt pliku konfiguracyjnego telnet.rc

-e

ustala znak ucieczki (escape character), pozwalający na przejście do symbolu zachęty aplikacji telnet

-E

blokuje rozpoznawanie znaku ucieczki

-l

wymuszenie nazwy użytkownika logującego sie do zdalnego systemu

host

nazwa lub adres IP zdalnego hosta

port

określenie numeru portu (nazwy usługi)

 

Opracowanie na podstwie Wikipedii, mat. laboratoryjnych: