Co to jest interfejs sieciowy ? Konfigurowanie
Transkrypt
Co to jest interfejs sieciowy ? Konfigurowanie
Co to jest interfejs sieciowy ? – – – Najogólniej interfejsem sieciowym w systemach linux nazywamy urządzenia logiczne pozwalające na nawiązywanie połączeń różnego typu. Należy jednak pamiętać iż mówiąc interfejs sieciowy nie mamy zawsze na myśli karty sieciowej. Interfejsem sieciowym jest np. pętla zwrotna (lo). Mogą nim być też tunele VPN lub inne programy i urządzenia pozwalające na komunikację z lokalnym lub zdalnym hostem. Tak więc interfejs często jest reprezentacją sterownika karty sieciowej w systemie ale może też być urządzeniem "wirtualnym" które realizuje programowo pewne zadania. Konfigurowanie interfejsu sieciowego może być wykonane na wiele sposobów. – – – – Podstawowym jest polecenie inconfig za pomocą którego możemy ręcznie skonfigurować karty sieciowe bez konieczności instalowania dodatkowego oprogramowania ani edytowania plików konfiguracyjnych. Jest to polecenie standardowe systemów linuxowych i powinniśmy je zawsze znaleźć w naszym systemie. Bardzo często korzysta się z plików konfiguracyjnych (zależnie od systemu operacyjnego mogą znajdować się w różnych miejscach i mieć różną postać). W przypadku systemów bazujących na dystrybucji Debian dostępne są skrypty uruchamiające oraz zatrzymujące karty sieciowe ifup / ifdown używające plików: /etc/network/interfaces Narzędzia do konfigurowania kart sieciowych w środowisku tekstowym lub graficznym. Przykładem może być netcardconfig. Automatyczne pobranie ustawień sieci od serwera DHCP za pomocą polecenia pump lub innego klienta dhcp. Ponadto konieczne może być skonfigurowanie serwera DNS oraz określenie bramy domyślnej za pomocą pliku /etc/resolv.conf oraz polecenia route. Ręczne ustawienie sieci Abu skonfigurować kartę sieciową należy wykonać polecenie ifconfig z odpowiednimi parametrami. Składnia polecenia : ifconfig interfejs opcje np. ifconfig eth0 down ifconfig eth0 up POZOSTAŁE_OPCJE Należy pamiętać aby podać odpowiednie adres ip oraz maskę wynikające z konfiguracji naszej sieci. Wykonanie polecenia ifconfig bez parametrów pokaże informacje o aktywnych interfejsach sieciowych (bardzo użyteczne !!!). Więcej szczegółów w podręczniku do polecenia man ifconfig Zadanie: – zatrzymaj program pump jeśli jest włączony (poleceniem killall pump lub pump -k) – znajdź w dokumentacji polecenia ifconfig odpowiednie parametry by skonfigurować kartę sieciową eth0 w następujący sposób: – adres IP 192.168.1.(numer komputera przylepiony na monitorze) – maska 255.255.255.0 – adres sieci 192.168.1.0 – adres rozgłoszeniowy 192.168.1.255 – sprawdź działanie karty poleceniem ping (wpisz adres IP sąsiada który skończył już to zadanie) – jeśli coś się nie uda zatrzymaj kartę i spróbuj ponownie Ręczne określenie używanego serwera DNS Powyższe czynności spowodują poprawne skonfigurowanie sieci aby można w pełni korzystać z zasobów sieci konieczne jest uruchomienie usługi rozwiązywania nazw domen (DNS). Aby tego dokonać dokonujemy wpisów w pliku /etc/resolv.conf (man resolv.conf) Plik powinien zawierać wpis podobny do poniższego nameserver 192.168.1.200 Oczywiście adres należy zastąpić właściwym adresem serwera DNS. Plik może zawierać również domeny przeszukiwania. Jeżeli mamy np. domenę domowa.pl to możemy dodać wpis search domowa.pl który spowoduje że będzie można używać samych nazw hostów zamiast pełnej nazwy domenowej. Zamiast pisać w przeglądarce komputer3.domowa.pl albo ftp.domowa.pl będzie można używać samego ftp lub komputer3. To udogodnienie będzie dostępne w każdym programie. Jeżeli nazwa domenowa nie zostanie znaleziona w DNS to komputer będzie starał się znaleźć adres poprzez doklejenie domeny wyszukiwania (w naszym wypadku domowa.pl). Ręczne określenie bramy Po skonfigurowaniu interfejsu możliwa jest komunikacja jedynie w obrębie lokalnego fragmentu sieci. Aby możliwa była komunikacja z innymi sieciami konieczne jest ustawienie domyślnej bramy, tj. routera który odpowiada za przekazywanie naszych pakietów do odległych sieci. Najczęściej w małych sieciach dostępny jest jeden router. Do ustawiania routingu (zasad przekazywania pakietów) korzysta się z polecenia route. przykład: route Takie wykonanie pokazuje aktualną tablicę routingu. Tablica zawiera kolejno adres sieci docelowej, adres routera do którego przekazywać pakiety, maskę sieci, flagi informacyjne, kosz trasy oraz interfejs sieciowy do którego przekazać pakiet. Aby zdefiniować domyślną bramę wpisujemy polecenie route add default gw 192.168.0.1 Podajemy oczywiście adres faktycznej bramy nie podany w przykładzie. Takie ustawienie spowoduje że wszystkie połączenia z komputerami z poza lokalnej sieci będą wykonywane za pośrednictwem bramy domyślnej. W takiej sieci komputery z podsieci 192.168.3.0 ustawią adres swojej domyślnej bramy na 192.168.3.1, komputery z podsieci 192.168.2.0 ustawią adres 192.168.2.1. Na powyższym rysunku widzimy że router posiada 3 karty sieciowe po jednej w obsługiwanych podsieciach oraz jedną łączącą go z internetem za pośrednictwem jego routera dostępowego. Tak więc router posiadał by wpisy przekierowujące pakiety pomiędzy dwoma podsieciami oraz domyślną bramę pod adresem 212.191.65.1 Więcej szczegółów w podręczniku man route Zadanie: – ustaw domyślną bramę na adres 196.168.1.200 (jeśli trzeba sprawdź w dokumentacji potrzebne parametry by usunąć zbędne wpisy) Konfiguracja za pomocą skryptów ifup/ifdown W pliku /etc/networking/interfaces znajdują się wpisy konfiguracyjne interfejsów sieciowych. Żeby nie trzeba każdorazowo wpisywać wszystkich parametrów polecenia ifconfig można skorzystać z tego pliku. Gdy interfejs posiada wpis w /etc/networking/interfaces możemy go aktywować za pomocą polecenia ifup NAZWA_INTERFEJSU oraz wyłączyć ifdown NAZWA_INTERFEJSU czyli np. ifup eth0 Zadanie: – zapoznaj się ze składnią pliku (szczególnie sekcja INET INTERFACES FAMILY oraz jej podsekcją Static Metod) – dokumentacja dostępna jest poprzez wykonanie polecenia man interfaces – dodaj odpowiedni wpis do pliku interfaces by polecenie ifup eth0 powodowało – podniesienie interfejsu eth0 z adresem 192.168.1.(numer komputera + 100) – maska sieciowa 255.255.255.0 – sieć oraz broadcast jak w poprzednim zadaniu – Przetestuj konfigurację włączając interfejs poleceniem ifup eth0 a następnie wykonując polecenie ping do komputera sąsiada – sprawdź też poleceniem ifconfig czy wszystko się udało Konfiguracja za pomocą DHCP – – – DHCP (dynamic host configuration protocol) jest protokołem automatycznego wykrywania ustawień sieci lokalnej oraz pobierania adresu ip, maski, konfiguracji DNS oraz domyślnej bramy. DHCP pozwala więc na automatyczne konfigurowanie wszystkich hostów sieci lokalnej z jednego punktu centralnego którym jest server dhcp. Zamiast konfigurować stacje ręcznie i każdorazowo dokonywać zmian możemy ustawienia przechowywać na serwerze. Każdy klient DHCP musi co ustalony czas (np. 30 min) odnowić swój adres IP w przeciwnym razie zostanie uznany za niedostępny a adres może być nadany innemy hostowi. Aby automatycznie pobrać ustawienia (w knoppixie) należy uruchomić polecenie pump. Spowoduje to nadanie adresu ip, maski sieciowej, domyślnej bramy (sprawdź poleceniem route), ustawień pliku / etc/resolv.conf Knoppix po starcie automatycznie uruchamia polecenie pump by wykryć sieć. Dwa sposoby dostarczania pakietów. W sieciach IP każdy komputer działa niejako jak router. Nawet nasz windows posiada tablice routingu na podstawie której określa jak dostarczyć konkretne pakiety. Istnieją dwa sposoby dostarczenia pakietów. 1.Jeśli komputer z jakim chcemy się połączyć znajduje się poza naszą siecią system wysyła pakiety do swojej bramy domyślnej. 2.Jeśli komputer znajduje się w tej samej sieci pakiety dostarczane są bezpośrednio. Pakiety IP dostarczane są poprzez internet na podstawie adresu sieci IP. W chwili osiągnięcia sieci docelowej są dostarczane bezpośrednio. Do takiego bezpośredniego dostarczania używany jest protokół ARP oraz adresy fizyczne MAC (z warstwy łącza danych). Adres fizyczny MAC jest podobny do adresy IP z tą różnicą że posiada 6 oktetów i zapisuje się je szesnastkowo, np. 00:03:AD:0B:12:4E – Adres fizyczny jest na stałe wpisany w każdej karcie sieciowej. (można go zmieniać programowo i przykrywać czasowo) – Początkowe oktety adresu sieciowego zarezerwowane są dla poszczególnych producentów kart, pozostałe nadawane są kolejno przez każdego z producentów. Adresy MAC są unikalne. Na całym świecie nie powinny znaleźć się karty o tych samych adresach. – Każdy pakiet IP podróżujący w sieci ethernet posiada nagłówek ramki z adresem MAC nadawcy oraz odbiorcy. – Karta sieciowa pomija wszystkie komunikaty które nie są adresowane do niej (nie zawierają jej adresu MAC). Pozwala to na zmniejszenie obciążenia systemu. – Wszystkie karty sieciowe w naszym segmencie sieci odbierają ten komunikat, przetwarza go jednak tylko karta adresata. Dostarczanie bezpośrednie: – Jeżeli adres IP z którym chcemy się połączyć jest w tej samej sieci co my oprogramowanie IP tłumaczy adres IP na odpowiedni adres MAC. Tworzy ramkę ethernetową wpisując swój adres MAC, adres odbiorcy oraz dane i wysyła komunikat w sieć. Dostarczanie pośrednie: – Jeżeli chcemy wysłać pakiet IP do komputera spoza naszej sieci, system operacyjny utworzy ramkę ethernet dodając nasz adres MAC oraz adres MAC naszej bramy domyślnej a następnie wyśle siecią. Brama odbierze komunikat ponieważ będzie do jej karty sieciowej i na podstawie adresu IP adresata określi dalszą drogę pakietu. Skąd nasz komputer zna adresy MAC ? – – – Jeżeli nasz komputer nie komunikował się jeszcze z komputerem o podanym IP system nie zna jego adresu MAC i nie wie do jakiej karty zaadresować ramkę ethernet. Aby uzyskać adres MAC komputera docelowego system wysyła rozgłoszenie z zapytaniem "jaki adres MAC odpowiada temu adresowi IP". Komputer posiadający ten adres IP odpowiada przez co nasz system może od tej pory komunikować się bezpośrednio. Protokół służący do wykrywania adresów MAC nazwany jest ARP (address resolution protocos). System operacyjny buforuje skojarzenia MAC <-> IP by nie trzeba było za każdym razem rozgłaszać zapytania. Bufor ten nazywany jest też arp cache (keszem arp). To poco nam IP skoro już mamy adresowanie MAC ? – – – Jak widać adresowanie tego typu możliwe jest tylko w małych szybkich sieciach Nie można przecież rozgłosić zapytania o adres MAC na cały świat !! Nie było by też możliwe dostarczenie tego pakietu ponieważ każdy router musiał by pamiętać wszystkie adresy MAC by wiedzieć w jakim kierunku wysłać pakiet. Możemy łatwo sprawdzić zawartość naszego arp cache poleceniem arp Pokazuje ono znane obecnie powiązania MAC <-> IP. Wpisy trafiają do cache dopiero gdy będziemy starali się nawiązać połączenie z konkretnym komputerem albo on z nami. Zadanie: 1.za pomocą polecenia ifconfig sprawdź swój adres ip 2.poproś sąsiada o jego adres IP 3.wykonaj polecenie arp by zobaczyć listę buforowanych skojarzeń. 4.wykonaj polecenie ping na adres komputera kolegi 5.ponownie wykonaj polecenie arp Co się stało: – Przed połączeniem oprogramowanie nie potrafiło nawiązać komunikacji z komputerem kolegi. Nie znało jego adresu MAC i nie potrafiło skonstruować odpowiedniej ramki ethernetowej. – W chwili wykonania polecenia ping system stwierdził że adres IP należy do naszej podsieci i srawdził skojarzenie arp chace. – Nie posiadając wpisu wysłał zapytanie "kto ma taki adres IP" – Odebrał odpowiedź od komputera kolegi i umieścił ją w arp cache. – Kontynuował normalną pracę polecenia ping. – Do czasu wygaśnięcia wpisu każda kolejna próba połączenia z komputerem kolegi będzie wykonywana na podstawie buforowanego adresu MAC. Dla ciekawskich: – Zaraz po wykonaniu ćwiczenia mamy w arp cache skojarzenie dla adresu kolegi – Zobaczmy co się stanie jeśli kolega zmieni adres MAC w swojej karcie za pomocą polecenia ifconfig z odpowiednimi parametrami – Zobaczmy ci się stanie gdy kolega przywróci poprzedni adres – Zobaczmy co się stanie gdy kolega zmieni adres IP pozostawiając oryginalny adres MAC – Zobaczmy też co się stanie gdy po kolejnej zmianie adresu IP u kolegi to on wykona polecenie ping do nas. Podczas sprawdzania używaj polecenia ping do wysyłania komunikatów oraz polecenia arp do podglądania aktualnej tablicy arp cache.