Interfejsy sieciowe





Połączenia sieciowe w systemie Linux są dostępne administratorowi pod postacią interfejsów. Każdy interfejs posiada nazwę oraz jeden lub więcej adresów przypisanych do tego interfejsu. Najczęściej spotykane interfejsy sieciowe to:
lo - loopback
ethX - połączenia z siecią LAN w standardzie Ethernet
pppX - połączenia ppp, takie jak połączenia modemowe

Interfejs loopback pozwala na połączenie się z samym sobą za pośrednictwem protokołów IP. Zgodnie ze standardem, przypisany jest mu adres 127.0.0.1. Adres ten wskazuje zawsze na lokalną maszynę oraz nie jest dostępny z innych zsieciowanych maszyn.
Interfejsy ethX są połączeniami z siecią w standardzie Ethernet, obecnie najpopularniejszym standardem budowy sieci LAN - tak popularnym, że mniej obeznani z tematem uważają pojęcia Ethernet i LAN za synonimy. Interfejsów ethernetowych może być w systemie dowolna ilość; numerowane są one w kolejności wykrycia. Do obsługi ethernetu potrzebny jest sterownik do zainstalowanej karty sieciowej obecny w jądrze. W dystrybucyjnych kernelach wystarczy załadować moduł sterownika. Moduły do najpopularniejszych kart sieciowych to: 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.
Interfejsy ppp działają przez współdziałanie sterownika ppp w jądrze systemu oraz demona ppp w przestrzeni użytkownika. Urządzenia ppp zazwyczaj wykorzystują do komunikacji złącza szeregowe RS232, choć możliwe jest uruchomienie połączenia PPP przez Ethernet (PPPoE, wykorzystywane przez Neostradę) lub nawet przez połączenie TCP/IP, co pozwala na stworzenie prostej wirtualnej sieci prywatnej.


Ifconfig
Najpopularniejszym narzędziem do zarządzania interfejsami sieciowymi jest z pewnością ifconfig. Pozwala on na sprawdzenie stanu, podnoszenie, wyłączanie oraz ustawianie adresu interfejsu. Wywołany bez parametrów listuje wszystkie zarejestrowane w systemie interfejsy sieciowe:
lucifer:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:01:02:C2:6D:25
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::201:2ff:fec2:6d25/10 Scope:Link
inet6 addr: 3ffe:8010:45:148:201:2ff:fec2:6d25/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5414859 errors:0 dropped:0 overruns:69 frame:0
TX packets:11178369 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:550594179 (525.0 MiB) TX bytes:1890715910 (1.7 GiB)
Interrupt:11 Base address:0xec00
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3236359 errors:0 dropped:0 overruns:0 frame:0
TX packets:3236359 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:657966378 (627.4 MiB) TX bytes:657966378 (627.4 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:123.45.67.89 P-t-P:123.45.67.89 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1656 Metric:1
RX packets:32809 errors:58 dropped:0 overruns:0 frame:0
TX packets:31243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:24141964 (23.0 MiB) TX bytes:3616664 (3.4 MiB)
lucifer:~#

Ifconfig wywołany z nazwą interfejsu jako parametr, drukuje informacje tylko o tym interfejsie.
Aby użyć ifconfig do konfiguracji interfejsu, należy wywołać ifconfig z nazwą interfejsu jako pierwszy parametr i poleceniem jako drugi. Najważniejsze polecenia to:
up - uaktywnienie interfejsu.
down - wyłączenie interfejsu.
netmask adres - ustawienie maski podsieci.
address adres - ustawienie adresu sieciowego interfejsu.
Zazwyczaj nie używa się ifconfig bezpośrednio, częściej wykorzystuje się zależne od dystrybucji programy zarządzające. W większości dystrybucji występują programy ifup i ifdown, które odpowiednio uaktywniają lub wyłączają interfejs sieciowy zgodnie z konfiguracją. W systemie Debian konfiguracja ta zawarta jest w katalogu /etc/network.

Routing
Routing w ogólności to kierowanie ruchem pakietów. Mechanizmy routingu decydują na podstawie rozmaitych czynników, które pakiety powędrują do których interfejsów sieciowych. Najpopularniejszą metodą routingu jest routowanie statyczne, polegające na kierowaniu pakietów do interfejsów sieciowych na podstawie adresu przeznaczenia pakietu. Do zarządzania routingiem statycznym służy polecenie route. Wywołanie go bez parametrów spowoduje wylistowanie aktualnej zawartości tabeli routingu:
lucifer:~# 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
default 123.45.67.89 0.0.0.0 UG 0 0 0 ppp0
lucifer:~#
Kiedy pierwszym parametrem route jest add bądź del, zmienia on działanie na dodawanie bądź usuwanie ścieżek routowania. Drugim parametrem powinien być -net, jeśli punktem docelowym jest sieć, bądź -host, jeśli punktem docelowym jest pojedynczy komputer. Trzecim parametrem powinien być adres komputera bądź sieci, do którego ścieżka jest dodawana bądź usuwana. Dodatkowe parametry, precyzujące ścieżkę routowania, to m.in.:
netmask NM - należy użyć maski podsieci NM.
gw GW - pakiety mają być kierowane poprzez bramkę GW. Wykorzystywane do połączenia z odległymi sieciami, np. Internetem.
dev IF - ścieżka ma zostać przywiązana do konkretnego interfejsu IF.