Którym poleceniem systemu Linux poprawnie skonfigurowano kartę sieciową, podając adres IP i maskę sieci dla interfejsu eth1?
A. ifconfig eth1 192.168.1.0 netmask 0.255.255.255
B. ifconfig eth1 192.168.1.0 netmask 255.255.255.0
C. ifconfig eth1 192.168.1.255 netmask 255.255.255.0
D. ifconfig eth1 192.168.1.1 netmask 255.255.255.0
Pytanie z egzaminu CKE, czerwiec 2016 (arkusz E.13-X-16.05).
Polecenie ifconfig eth1 192.168.1.1 netmask 255.255.255.0 poprawnie przypisuje interfejsowi eth1 adres IPv4 192.168.1.1 oraz maskę 255.255.255.0, czyli typową maskę sieci /24. W takiej konfiguracji sieć ma adres 192.168.1.0, adres rozgłoszeniowy to 192.168.1.255, a hosty mogą używać adresów od 192.168.1.1 do 192.168.1.254. Dlatego 192.168.1.1 jest poprawnym adresem hosta, o ile oczywiście nie jest już zajęty przez bramę, serwer albo inne urządzenie. Moim zdaniem to bardzo klasyczny przykład z administracji Linuksem: trzeba odróżniać adres hosta od adresu sieci i broadcastu, bo inaczej interfejs niby się konfiguruje, ale komunikacja w LAN potrafi działać dziwnie albo wcale. W praktyce po takim ustawieniu warto sprawdzić konfigurację poleceniem ifconfig eth1 albo ip addr show eth1, a łączność testować przez ping, np. do bramy domyślnej. Dobra praktyka branżowa mówi też, żeby unikać konfliktów IP i prowadzić prostą dokumentację adresacji. W nowszych systemach Linux częściej używa się polecenia ip, np. ip addr add 192.168.1.1/24 dev eth1, bo ifconfig jest już narzędziem starszym, ale w wielu materiałach egzaminacyjnych nadal się pojawia.
W tym zadaniu najważniejsze jest rozpoznanie, który adres z podsieci może być adresem hosta, a który pełni specjalną funkcję. Dla maski 255.255.255.0, czyli /24, podsieć 192.168.1.0 obejmuje zakres od 192.168.1.0 do 192.168.1.255. Nie każdy adres z tego zakresu można jednak wpisać na karcie sieciowej jako normalny adres urządzenia. Adres 192.168.1.0 oznacza identyfikator sieci, więc opisuje całą podsieć, a nie konkretny komputer. Częsty błąd polega na tym, że ktoś widzi początek zakresu i myśli: skoro jest w sieci, to można go przypisać do interfejsu. No niestety, w adresacji IPv4 tak to nie działa. Z kolei 192.168.1.255 przy masce /24 jest adresem rozgłoszeniowym, czyli broadcastem. Pakiety wysłane na ten adres trafiają logicznie do wszystkich hostów w tej podsieci, więc użycie go jako adresu karty sieciowej byłoby sprzeczne z zasadami działania IP. Maska 0.255.255.255 też pokazuje nieporozumienie. Poprawna maska podsieci składa się z ciągłych bitów jedynek od lewej strony, a potem zer, na przykład 255.255.255.0. Wartości zaczynające się od 0.255 wyglądają bardziej jak maska odwrotna, spotykana np. w ACL-ach Cisco jako wildcard mask, a nie jak klasyczna maska interfejsu w Linuksie. Z mojego doświadczenia uczniowie często mieszają właśnie maskę sieci z wildcard maską, bo obie mają podobny zapis kropkowo-dziesiętny. Poprawne podejście to najpierw ustalić adres sieci, broadcast i zakres hostów, a dopiero potem konfigurować interfejs poleceniem ifconfig lub współcześnie poleceniem ip.