W tym wydaniu Geek School przyjrzymy się, jak działa adresowanie IP. Omówione zostaną również zaawansowane tematy, takie jak sposób, w jaki komputer określa, czy urządzenie, z którym się komunikujesz, znajduje się w tej samej sieci, co Ty. Zakończymy następnie krótkim spojrzeniem na dwa protokoły rozpoznawania nazw: LLMNR i DNS.
Koniecznie zapoznaj się z poprzednimi artykułami z tej serii Geek School na Windows 7:
I pozostańcie nastawieni na resztę serii przez cały tydzień.
Kiedy wysyłasz list za pośrednictwem poczty elektronicznej, musisz podać adres osoby, do której chcesz otrzymywać pocztę. Podobnie, gdy jeden komputer wysyła wiadomość do innego komputera, musi podać adres, na który wiadomość ma zostać wysłana. Te adresy są nazywane adresami IP i zazwyczaj wyglądają mniej więcej tak:
192.168.0.1
Te adresy to adresy IPv4 (Internet Protocol Version 4) i jak większość rzeczy są prostą abstrakcją tego, co komputer faktycznie widzi. Adresy IPv4 są 32-bitowe, co oznacza, że zawierają kombinację 32 zer i jedynek. Komputer zobaczy adres wymieniony powyżej jako:
11000000 10101000 00000000 00000001
Uwaga: Każdy dziesiętny oktet ma maksymalną wartość (2 ^ 8) - 1, która wynosi 255. Jest to maksymalna liczba kombinacji, które można wyrazić za pomocą 8 bitów.
Jeśli chcesz przekonwertować adres IP na jego binarny odpowiednik, możesz utworzyć prostą tabelę, jak poniżej. Następnie weź jedną sekcję adresu IP (technicznie zwaną oktetem), na przykład 192, i przejdź od lewej do prawej, sprawdzając, czy możesz odjąć liczbę w nagłówku tabeli od liczby dziesiętnej. Istnieją dwie zasady:
Oto jak będzie wyglądał przy użyciu naszego przykładowego adresu 192.168.0.1
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
W powyższym przykładzie wziąłem nasz pierwszy oktet 192 i oznaczyłem kolumnę 128s na 1. Zostałem wtedy z 64, który jest taki sam jak numer drugiej kolumny, więc zaznaczyłem go również 1. Zostałem teraz z 0, ponieważ 64 - 64 = 0. Oznaczało to, że reszta rzędu była zerowa.
W drugim rzędzie wziąłem drugi oktet, 168. 128 jest mniejszy niż 168, więc zaznaczyłem go 1 i pozostało 40. 64 było wtedy większe niż 40, więc oznaczyłem je na 0. Kiedy wszedłem do trzecia kolumna, 32 było mniej niż 40, więc zaznaczyłem ją 1 i pozostało 8. 8 jest większe niż 8, więc oznaczałem ją jako 0. Gdy dotarłem do kolumny 8s, oznaczałem ją 1, co pozostawiło mnie 0, więc pozostałe kolumny zostały oznaczone jako 0.
Trzeci oktet miał wartość 0 i nic nie mogło przejść do zera, więc zaznaczyliśmy wszystkie kolumny zerem.
Ostatni oktet wynosił 1 i nic nie może przejść do 1 z wyjątkiem 1, więc zaznaczyłem wszystkie kolumny wartością 0, aż dotarliśmy do kolumny 1s, gdzie oznaczono ją 1.
Uwaga: Maskowanie podsieci może być bardzo skomplikowane, dlatego w ramach tego artykułu omówione zostaną tylko klasowe maski podsieci.
Adres IP składa się z dwóch komponentów, adresu sieciowego i adresu hosta. Maska podsieci jest używana przez komputer w celu oddzielenia adresu IP od adresu sieciowego i hosta. Maska podsieci zwykle wygląda mniej więcej tak.
255.255.255.0
Które w binarnie wygląda tak.
11111111.11111111.11111111.00000000
W masce podsieci bity sieciowe są oznaczone przez 1s, a bity hosta są oznaczone przez 0. Z powyższej reprezentacji binarnej można zobaczyć, że trzy pierwsze oktety adresu IP są używane do identyfikacji sieci, do której należy urządzenie, a ostatni oktet jest używany dla adresu hosta.
Biorąc pod uwagę adres IP i maskę podsieci, nasze komputery mogą stwierdzić, czy urządzenie znajduje się w tej samej sieci, wykonując operację bitową AND. Powiedz na przykład:
computerOne najpierw obliczy bitowe ORAZ własnego adresu IP i maski podsieci.
Uwaga: W przypadku użycia operacji bitowej AND, jeśli odpowiadające im bity są obiema 1, wynikiem jest 1, w przeciwnym razie jest to 0.
11000000 10101000 00000000 00000001
11111111 11111111 11111111 0000000011000000 10101000 00000000 00000000
Następnie obliczy bitowe ORAZ dla computerTwo.
11000000 10101000 00000000 00000010
11111111 11111111 11111111 0000000011000000 10101000 00000000 00000000
Jak widać, wyniki operacji bitowych są takie same, więc oznacza to, że urządzenia są w tej samej sieci.
Jak już zapewne zgadłeś, im więcej sieci (1s) masz w swojej podsieci, tym mniej hostów (0) możesz mieć. Liczba hostów i sieci, które możesz mieć, jest podzielona na 3 klasy.
Sieci | Maska podsieci | Sieci | Zastępy niebieskie | |
Klasa A | 1-126.0.0.0 | 255.0.0.0 | 126 | 16 777 214 |
Klasa B | 128-191.0.0.0 | 255.255.0.0 | 16 384 | 65 534 |
Klasa C | 192-223.0.0.0 | 255.255.255.0 | 2 097 152 | 254 |
Zauważysz, że zakres 127.x.x.x został pominięty. Dzieje się tak, ponieważ cały zakres jest zarezerwowany dla czegoś zwanego twoim adresem zwrotnym. Twój adres zwrotny zawsze wskazuje na twój własny komputer.
Zakres 169.254.0.x został również zarezerwowany dla czegoś o nazwie APIPA, które omówimy w dalszej części serii.
Jeszcze kilka lat temu każde urządzenie w Internecie miało unikalny adres IP. Gdy adresy IP zaczęły się wyczerpywać, wprowadzono koncepcję NAT, która dodała kolejną warstwę między naszymi sieciami a Internetem. IANA zdecydowała, że zarezerwuje zakres adresów z każdej klasy adresów IP:
Wtedy zamiast przypisywać każdemu urządzeniu na świecie adres IP, twój dostawca Internetu zapewnia ci urządzenie zwane routerem NAT, któremu przypisany jest pojedynczy adres IP. Następnie możesz przypisać adresy IP swoich urządzeń z najbardziej odpowiedniego prywatnego zakresu adresów IP. Router NAT utrzymuje tablicę NAT i pośredniczy w połączeniu z Internetem.
Uwaga: Adres IP twojego routera NAT jest zwykle przydzielany dynamicznie przez DHCP, więc zwykle zmienia się w zależności od ograniczeń, które posiada Twój ISP.
Łatwiej jest nam zapamiętać czytelne dla człowieka nazwy, takie jak FileServer1, niż zapamiętać adres IP taki jak 89.53.234.2. W małych sieciach, w których nie istnieją inne rozwiązania do rozpoznawania nazw, takie jak DNS, podczas próby otwarcia połączenia z serwerem plików1 komputer może wysyłać wiadomość multiemisji (co jest fantazyjnym sposobem powiedzenia, aby wysłać wiadomość do każdego urządzenia w sieci) pytając, kto jest FileServer1. Ta metoda rozpoznawania nazw nazywa się LLMNR (ang. Link-lock Multicast Name Resolution), i chociaż jest to idealne rozwiązanie dla sieci domowej lub małej firmy, nie jest skalowalna, po pierwsze dlatego, że emisja do tysięcy klientów będzie trwała zbyt długo, a po drugie ponieważ transmisje zazwyczaj nie przechodzą przez routery.
Najpopularniejszą metodą rozwiązania problemu skalowalności jest korzystanie z DNS. System nazw domenowych to książka telefoniczna danej sieci. Mapuje on czytelne dla człowieka nazwy maszyn na ich bazowe adresy IP za pomocą gigantycznej bazy danych. Podczas próby otwarcia połączenia z serwerem plików1 komputer pyta serwer DNS, który określasz, kto jest serwerem FileServer1. Serwer DNS będzie następnie odpowiadał adresem IP, z którego twój komputer może z kolei nawiązać połączenie. Jest to również metoda rozpoznawania nazw używana przez największą sieć na świecie: internet.
Kliknij prawym przyciskiem ikonę ustawień sieci i wybierz Otwórz centrum sieci i udostępniania z menu kontekstowego.
Teraz kliknij link Zmień ustawienia adaptera po lewej stronie.
Następnie kliknij prawym przyciskiem kartę sieciową i wybierz Właściwości z menu kontekstowego.
Teraz wybierz Protokół internetowy w wersji 4, a następnie kliknij przycisk Właściwości.
Tutaj możesz skonfigurować statyczny adres IP, wybierając przycisk opcji "Użyj następującego adresu IP". Uzbrojony w powyższe informacje, możesz wpisać adres IP i maskę podsieci. Domyślną bramą, dla wszystkich intencji i celów, jest adres IP routera.
W dolnej części okna możesz ustawić adres swojego serwera DNS. W domu prawdopodobnie nie masz serwera DNS, ale twój router często ma małą pamięć podręczną DNS i przekazuje zapytania do twojego dostawcy Internetu. Alternatywnie możesz użyć publicznego serwera DNS Google, 8.8.8.8.
Jeśli masz jakieś pytania, możesz tweetować mnie @taybgibb, lub po prostu zostaw komentarz.