Istnieją podsieci IP, które pozwalają routerom wybrać odpowiednie miejsca docelowe dla pakietów. Za pomocą podsieci IP można rozbijać większe sieci z przyczyn logicznych (zapora ogniowa itp.) Lub ze względów fizycznych (mniejsze domeny rozgłoszeniowe itp.).
Mówiąc najprościej, routery IP używają podsieci IP do podejmowania decyzji o routingu. Dowiedz się, jak działają te decyzje, i dowiedz się, jak planować podsieci IP.
Licząc do 1
Jeśli biegle posługujesz się notacją binarną (podstawa 2), możesz pominąć tę sekcję.
Dla tych z was, którzy zostali: wstydźcie się, że nie mówicie płynnie w notacji binarnej!
Tak, to może być trochę trudne. Naprawdę, bardzo łatwo jest nauczyć się liczyć w systemie binarnym i nauczyć się skrótów do konwersji binarnej na dziesiętną i wstecz. Naprawdę powinieneś wiedzieć, jak to zrobić.
Liczenie w systemie binarnym jest tak proste, ponieważ musisz tylko wiedzieć, jak liczyć do 1!
Pomyśl o „drogomierzu” samochodu, z tą różnicą, że w przeciwieństwie do tradycyjnego licznika kilometrów każda cyfra może liczyć tylko do 1 od zera. Gdy samochód jest fabrycznie świeży, licznik kilometrów pokazuje „00000000”.
Po przejechaniu pierwszej mili licznik kilometrów pokazuje „00000001”. Na razie w porządku.
Po przejechaniu drugiej mili pierwsza cyfra licznika zmienia się na „0” (ponieważ jego maksymalna wartość to „1”), a druga cyfra licznika zmienia się na „1”, co powoduje, że licznik kilometrów pokazuje „ 00000010 ”. Wygląda to jak liczba 10 w zapisie dziesiętnym, ale w rzeczywistości jest to 2 (liczba przejechanych przez ciebie samochodów do tej pory) w zapisie binarnym.
Po przejechaniu trzeciej mili licznik kilometrów pokazuje „00000011”, ponieważ pierwsza cyfra licznika zmienia się ponownie. Liczba „11” w zapisie binarnym jest taka sama jak liczba dziesiętna 3.
W końcu, kiedy przejechałeś czwartą milę, obie cyfry (które na końcu trzeciej mili czytały „1”) przechodzą z powrotem do pozycji zerowej, a trzecia cyfra zjeżdża do pozycji „1”, dając nam „ 00000100 ”. To binarna reprezentacja liczby dziesiętnej 4.
Możesz zapamiętać to wszystko, jeśli chcesz, ale naprawdę musisz tylko zrozumieć, jak mały licznik „przewraca się”, gdy liczba, którą liczy, staje się większa. Jest to dokładnie to samo, co tradycyjna operacja dziesiętnego licznika kilometrów, z tą różnicą, że każda cyfra może być tylko „0” lub „1” na naszym fikcyjnym „liczniku binarnym”.
Aby przekonwertować liczbę dziesiętną na dwójkową, możesz przesunąć licznik kilometrów do przodu, tykać po tyknięciu, licząc na głos, aż rzucisz liczbę razy równą liczbie dziesiętnej, którą chcesz przekonwertować na dwójkową. Cokolwiek zostanie wyświetlone na liczniku, po tym całym wykreśleniu i przewróceniu, będzie binarną reprezentacją liczby dziesiętnej, którą policzyłeś.
Ponieważ rozumiesz, w jaki sposób licznik potoczy się do przodu, zrozumiesz również, jak potoczy się on do tyłu. Aby przekonwertować liczbę binarną wyświetlaną na liczniku z powrotem na liczbę dziesiętną, można cofać licznik z powrotem o jeden tik na raz, odliczając głośno, aż licznik wyświetli „00000000”. Po zakończeniu liczenia i zwijania ostatnią wypowiedzianą na głos liczbą będzie dziesiętna reprezentacja liczby binarnej, od której licznik zaczyna się.
Konwersja wartości między binarną i dziesiętną w ten sposób byłaby bardzo uciążliwa. Możesz to zrobić, ale nie byłoby to zbyt wydajne. Łatwiej jest nauczyć się małego algorytmu, aby zrobić to szybciej.
Krótko na bok: każda cyfra w liczbie binarnej jest znana jako „bit”. To jest „b” z „binarnego” i „to” z „cyfry”. Bit jest cyfrą binarną.
Konwersja liczby binarnej, na przykład „1101011” na dziesiętną, jest prostym procesem z przydatnym małym algorytmem.
Zacznij od zliczenia liczby bitów w liczbie binarnej. W tym przypadku jest 7. Wykonaj 7 podziałów na kartce papieru (w twoim umyśle, w pliku tekstowym itp.) I zacznij wypełniać je od prawej do lewej. W prawym polu wpisz cyfrę „1”, ponieważ zawsze zaczynamy od „1”. W następnym polu po lewej stronie wprowadź podwójną wartość w polu po prawej stronie (więc „2” w następnym, „4” w następnym) i kontynuuj, aż wszystkie miejsca będą pełne. (W końcu będziesz zapamiętywał te liczby, które są potęgami 2, ponieważ robisz to coraz bardziej. W porządku do 131072 w mojej głowie, ale zwykle potrzebuję potem kalkulatora lub papieru).
Tak więc powinieneś mieć następujące dokumenty na papierze w swoich małych gniazdach.
64 | 32 | 16 | 8 | 4 | 2 | 1 |
Transkrybuj bity z liczby binarnej pod gniazdami w następujący sposób:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 0 1 1
Teraz dodaj kilka symboli i oblicz odpowiedź na problem:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
+ + + + + + =
Robiąc całą matematykę, powinieneś wymyślić:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
64 + 32 + 0 + 8 + 0 + 2 + 1 = 107
Mam to. „1101011” w systemie dziesiętnym to 107. To tylko proste kroki i prosta matematyka.
Konwersja dziesiętnej na binarną jest równie łatwa i jest tym samym podstawowym algorytmem, działającym w odwrotnej kolejności.
Powiedzmy, że chcemy przekonwertować liczbę 218 na binarną. Zaczynając po prawej stronie kartki papieru, napisz cyfrę „1”. Po lewej stronie podwoj tę wartość (czyli „2”) i kontynuuj przesuwanie w kierunku lewej strony papieru, podwajając ostatnią wartość. Jeśli liczba, którą zamierzasz zapisać, jest większa niż konwertowana liczba, przestań pisać. w przeciwnym razie nadal podwajaj poprzedni numer i pisz. (Konwersja dużej liczby, np. 34 157 216 092, na binarną przy użyciu tego algorytmu może być nieco uciążliwa, ale z pewnością jest możliwa).
Powinieneś więc mieć na papierze:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Przestałeś pisać liczby na 128, ponieważ podwojenie 128, co dałoby 256, byłoby większe niż liczba, która jest konwertowana (218).
Zaczynając od lewej cyfry, napisz „218” nad nią (128) i zadaj sobie pytanie: „Czy 218 jest większe lub równe 128?” Jeśli odpowiedź brzmi „tak”, podrap „1” poniżej „128”. Powyżej „64” wpisz wynik 218 minus 128 (90).
Patrząc na „64”, zadaj sobie pytanie: „Czy 90 jest większe lub równe 64?” Jest tak, więc zapisujesz „1” poniżej „64”, a następnie odejmujesz 64 od 90 i piszesz powyżej „32” (26).
Gdy dojdziesz do „32”, zauważysz, że 32 nie jest większe lub równe 26. W tym przypadku wpisz „0” poniżej „32”, skopiuj liczbę (26) z powyżej 32 „na powyżej” 16 ", a następnie zadaj sobie to samo pytanie z resztą liczb.
Kiedy skończysz, powinieneś mieć:
218 90 26 26 10 2 2 0
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 1 0 1 0
Liczby na górze to tylko nuty używane w obliczeniach i niewiele dla nas znaczą. Na dole natomiast widać liczbę binarną „11011010”. Z pewnością 218, przekonwertowany na binarny, to „11011010”.
Postępując zgodnie z tymi bardzo prostymi procedurami, możesz przekonwertować dane binarne na dziesiętne i ponownie bez kalkulatora. Matematyka jest bardzo prosta, a zasady można zapamiętać przy odrobinie praktyki.
Rozdzielanie adresów
Pomyśl o routingu IP jak o dostarczaniu pizzy.
Kiedy zostaniesz poproszony o dostarczenie pizzy na „Main Street 123”, dla ciebie, jako człowieka, jest bardzo jasne, że chcesz iść do budynku o numerze „123” na ulicy o nazwie „Main Street”. Łatwo jest wiedzieć, że musisz przejść do 100-bloku Main Street, ponieważ liczba budynków wynosi od 100 do 199, a większość bloków miejskich jest liczona w setkach. „Po prostu wiesz”, jak podzielić adres.
Routery dostarczają paczki, a nie pizzę. Ich praca jest taka sama jak kierowcy pizzy: aby ładunek (paczki) był jak najbliżej miejsca docelowego. Router jest podłączony do dwóch lub więcej podsieci IP (aby były w ogóle przydatne). Router musi zbadać docelowe adresy IP pakietów i podzielić te adresy docelowe na składniki „nazwy ulicy” i „numeru budynku”, podobnie jak sterownik pizzy, aby podjąć decyzję o dostawie.
Każdy komputer (lub „host”) w sieci IP jest skonfigurowany z unikalnym adresem IP i maską podsieci. Ten adres IP można podzielić na „numer budynku” (np. „123” w powyższym przykładzie) o nazwie „identyfikator hosta” i „nazwę ulicy” (np. „Main Street” w powyższym przykładzie) o nazwie "adres identyfikacyjny sieci". Dla naszych ludzkich oczu łatwiej jest zobaczyć numer budynku i nazwę ulicy w „123 Main Street”, ale trudniej jest zobaczyć ten podział w „10.13.216.41 z maską podsieci 255.255.192.0”.
Routery IP „po prostu wiedzą”, jak podzielić adresy IP na te części składowe, aby podjąć decyzję o routingu. Ponieważ zrozumienie, w jaki sposób pakiety IP są kierowane, zależy od zrozumienia tego procesu, musimy również wiedzieć, jak rozbić adresy IP. Na szczęście wyodrębnienie identyfikatora hosta i identyfikatora sieci z adresu IP i maski podsieci jest w rzeczywistości dość łatwe.
Zacznij od zapisania adresu IP w formacie binarnym (użyj kalkulatora, jeśli jeszcze nie nauczyłeś się tego robić w głowie, ale zanotuj, jak to zrobić - to naprawdę, bardzo łatwe i robi wrażenie na płci przeciwnej w imprezy):
10. 13. 216. 41
00001010.00001101.11011000.00101001
Wypisz również maskę podsieci binarnie:
255. 255. 192. 0
11111111.11111111.11000000.00000000
Napisane obok siebie, widać, że punkt w masce podsieci, w którym „stop” „1” wyrównuje się do punktu w adresie IP. To jest punkt, w którym ID sieci i ID hosta dzielą się. Więc w tym przypadku:
10. 13. 216. 41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
Routery używają maski podsieci, aby „zamaskować” bity objęte 1 w adresie IP (zamieniając bity, które nie są „zamaskowane” na 0), aby wyodrębnić identyfikator sieci:
10. 13. 192. 0
00001010.00001101.11000000.00000000 - Network ID
Podobnie, używając maski podsieci do „maskowania” bitów pokrytych zerami w adresie IP (zastępując bity, które nie są „maskowane” na 0), router może wyodrębnić identyfikator hosta:
0. 0. 24. 41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
Dla naszych ludzkich oczu nie jest tak łatwo dostrzec „przerwę” między identyfikatorem sieci a identyfikatorem hosta, jak między „numerem budynku” a „nazwą ulicy” w adresach fizycznych podczas dostawy pizzy, ale ostatecznym efektem jest podobnie.
Teraz, gdy możesz podzielić adresy IP i maski podsieci na identyfikatory hosta i identyfikatory sieci, możesz trasować adresy IP tak jak router.
Więcej terminologii
Zobaczysz maski podsieci napisane w całym Internecie i w pozostałej części tej odpowiedzi jako (adres IP / numer). Notacja ta znana jest jako notacja „Classless Inter-Domain Routing” (CIDR). „255.255.255.0” składa się z 24 bitów 1 na początku i szybsze jest zapisywanie go jako „/ 24” niż jako „255.255.255.0”. Aby przekonwertować liczbę CIDR (np. „/ 16”) na maskę podsieci z kropkami dziesiętnymi, po prostu wypisz tę liczbę 1, podziel ją na grupy 8 bitów i przekonwertuj na dziesiętne. (Na przykład „A / 16” to „255.255.0.0”).
W „dawnych czasach” maski podsieci nie były określane, ale zostały wyprowadzone na podstawie określonych bitów adresu IP. Na przykład adres IP zaczynający się od 0 do 127 miał domyślną maskę podsieci 255.0.0.0 (zwaną adresem IP „klasy A”).
Te domniemane maski podsieci nie są dziś używane i nie polecam ich więcej, chyba że masz nieszczęście z bardzo starym sprzętem lub starymi protokołami (jak RIPv1), które nie obsługują bezklasowego adresowania IP. Nie będę więcej wspominał o tych „klasach” adresów, ponieważ dzisiaj nie ma to zastosowania i może być mylące.
Niektóre urządzenia używają notacji zwanej „maskami wieloznacznymi”. „Maska ze znakiem wieloznacznym” jest niczym więcej niż maską podsieci ze wszystkimi zerami, w których byłyby 1, i 1, w których byłyby 0. „Maska wieloznaczna” w a / 26 to:
11111111.11111111.11111111.11000000 - /26 subnet mask
00000000.00000000.00000000.00111111 - /26 "wildcard mask"
Zazwyczaj widać „maski wieloznaczne” używane do dopasowania identyfikatorów hostów na listach kontroli dostępu lub regułach zapory. Nie będziemy ich tutaj więcej omawiać.
Jak działa router
Jak powiedziałem wcześniej, routery IP mają podobną pracę jak kierowca pizzy, ponieważ muszą dostarczyć swój ładunek (paczki) do miejsca przeznaczenia. Po przedstawieniu pakietu związanego z adresem 192.168.10.2 router IP musi określić, który z interfejsów sieciowych najlepiej zbliży ten pakiet do miejsca docelowego.
Powiedzmy, że jesteś routerem IP i masz podłączone interfejsy ponumerowane:
- Ethernet0 - 192.168.20.1, maska podsieci / 24
- Ethernet1 - 192.168.10.1, maska podsieci / 24
Jeśli otrzymasz pakiet do dostarczenia z adresem docelowym „192.168.10.2”, dość łatwo jest powiedzieć (ludzkimi oczami), że pakiet powinien zostać wysłany przez interfejs Ethernet1, ponieważ adres interfejsu Ethernet1 odpowiada adresowi docelowemu pakietu adres. Wszystkie komputery podłączone do interfejsu Ethernet1 będą miały adresy IP zaczynające się od „192.168.10.”, Ponieważ identyfikator sieciowy adresu IP przypisanego do interfejsu Ethernet1 to „192.168.10.0”.
W przypadku routera proces wyboru trasy odbywa się przez zbudowanie tablicy routingu i sprawdzenie tabeli za każdym razem, gdy pakiet ma być dostarczony. Tabela routingu zawiera identyfikator sieci i nazwy interfejsów docelowych. Wiesz już, jak uzyskać identyfikator sieci z adresu IP i maski podsieci, więc jesteś na najlepszej drodze do zbudowania tablicy routingu. Oto nasza tabela routingu dla tego routera:
- Identyfikator sieci: 192.168.20.0 (11000000.10101000.00010100.00000000) - 24-bitowa maska podsieci - Interfejs Ethernet0
- Identyfikator sieci: 192.168.10.0 (11000000.10101000.00001010.00000000) - 24-bitowa maska podsieci - Interfejs Ethernet1
W przypadku naszego pakietu przychodzącego powiązanego z „192.168.10.2” potrzebujemy tylko przekonwertować adres tego pakietu na binarny (jako ludzie - router na początku pobiera go jako plik binarny) i spróbować dopasować go do każdego adresu w naszym routingu tabela (do liczby bitów w masce podsieci), dopóki nie dopasujemy wpisu.
- Miejsce docelowe pakietu przychodzącego: 11000000.10101000.00001010.00000010
Porównując to do wpisów w naszej tabeli routingu:
11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)
11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)
Wpis dla Ethernet0 pasuje do pierwszych 19 bitów w porządku, ale potem przestaje pasować. Oznacza to, że nie jest to właściwy interfejs docelowy. Widać, że interfejs Ethernet1 odpowiada 24 bitom adresu docelowego. Ach, ha! Pakiet jest powiązany z interfejsem Ethernet1.
W prawdziwym routerze tabela routingu jest sortowana w taki sposób, że najdłuższe maski podsieci są najpierw sprawdzane pod kątem zgodności (tj. Najbardziej specyficznych tras) i numerycznie, aby po znalezieniu dopasowania pakiet mógł zostać trasowany i żadne dalsze próby dopasowania nie są konieczne (co oznacza, że 192.168.10.0 byłby wymieniony jako pierwszy, a 192.168.20.0 nigdy nie zostałby sprawdzony). Tutaj trochę to upraszczamy. Fantazyjne struktury danych i algorytmy tworzą szybsze routery IP, ale proste algorytmy przyniosą takie same wyniki.
Trasy statyczne
Do tego momentu mówiliśmy o naszym hipotetycznym routerze jako o bezpośrednio połączonych sieciach. Oczywiście tak nie działa świat. W analogii do pizzy czasami kierowca nie wpuszcza się dalej do budynku niż w recepcji i musi przekazać pizzę komuś innemu w celu dostarczenia jej do ostatecznego odbiorcy (zawiesić swoje niedowierzanie i znieść ze mną, póki Rozciągam moją analogię, proszę).
Zacznijmy od wywołania naszego routera z wcześniejszych przykładów „Router A”. Znasz już tabelę routingu RouterA jako:
- Identyfikator sieci: 192.168.20.0 (11000000.10101000.00010100.00000000) - maska podsieci / 24 - Interfejs routera A-Ethernet0
- Identyfikator sieci: 192.168.10.0 (11000000.10101000.00001010.00000000) - maska podsieci / 24 - Interfejs routera A-Ethernet1
Załóżmy, że istnieje inny router, „Router B”, z adresami IP 192.168.10.254/24 i 192.168.30.1/24 przypisanymi do interfejsów Ethernet0 i Ethernet1. Ma następującą tabelę routingu:
- Identyfikator sieci: 192.168.10.0 (11000000.10101000.00001010.00000000) - maska podsieci / 24 - Interfejs Router B-Ethernet0
- Identyfikator sieci: 192.168.30.0 (11000000.10101000.00011110.00000000) - maska podsieci / 24 - Interfejs Router B-Ethernet1
W ładnej sztuce ASCII sieć wygląda następująco:
Interface Interface
Ethernet1 Ethernet1
192.168.10.1/24 192.168.30.254/24
__________ V __________ V
| | V | | V
----| ROUTER A |------- /// -------| ROUTER B |----
^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
192.168.20.1/24 192.168.10.254/24
Widać, że router B wie, jak „dostać się” do sieci 192.168.30.0/24, o której router A nic nie wie.
Załóżmy, że komputer z adresem IP 192.168.20.13 podłączony do sieci podłączonej do interfejsu Ethernet0 routera A wysyła pakiet do routera A w celu dostarczenia. Nasz hipotetyczny pakiet jest przeznaczony na adres IP 192.168.30.46, który jest urządzeniem podłączonym do sieci podłączonej do interfejsu Ethernet1 routera B.
W powyższej tabeli routingu żaden wpis w tabeli routingu A routera nie jest zgodny z miejscem docelowym 192.168.30.46, więc router A zwróci pakiet do wysyłającego komputera z komunikatem „Sieć docelowa nieosiągalna”.
Aby router był „świadomy” istnienia sieci 192.168.30.0/24, dodajemy następujący wpis do tabeli routingu na routerze A:
- Identyfikator sieci: 192.168.30.0 (11000000.10101000.00011110.00000000) - maska podsieci / 24 - Dostępne przez 192.168.10.254
W ten sposób router A ma pozycję tablicy routingu pasującą do adresu 192.168.30.46 naszego przykładowego pakietu. Ten wpis w tablicy routingu skutecznie mówi: „Jeśli otrzymujesz pakiet związany z 192.168.30.0/24, wyślij go na adres 192.168.10.254, ponieważ on wie, jak sobie z tym poradzić”. Jest to analogiczna akcja „przekazanie pizzy w recepcji”, o której wspominałem wcześniej - przekazanie pakietu komuś innemu, kto wie, jak zbliżyć go do celu.
Ręczne dodanie pozycji do tabeli routingu jest znane jako dodanie „trasy statycznej”.
Jeśli router B chce dostarczać pakiety do sieci podsieci 192.168.20.0 255.255.255.0, będzie również potrzebował wpisu w swojej tabeli routingu:
- Identyfikator sieci: 192.168.20.0 (11000000.10101000.00010100.00000000) - maska podsieci / 24 - Dostępne przez: 192.168.10.1 (adres IP routera A w sieci 192.168.10.0)
Stworzyłoby to ścieżkę dostarczania między siecią 192.168.30.0/24 a siecią 192.168.20.0/24 w sieci 192.168.10.0/24 między tymi routerami.
Zawsze chcesz mieć pewność, że routery po obu stronach takiej „sieci śródmiąższowej” mają pozycję tablicy routingu dla sieci „odległej”. Jeśli ruter B w naszym przykładzie nie ma wpisu w tabeli routingu dla „far end” sieci 192.168.20.0/24 dołączonej do routera A nasz hipotetyczny pakiet z komputera na 192.168.20.13 by dostać się do urządzenia docelowego na 192.168.30.46, ale każda odpowiedź, którą 192.168.30.46 próbowała odesłać, zostanie zwrócona przez router B jako „Sieć docelowa nieosiągalna”. Komunikacja jednokierunkowa jest na ogół niepożądana. Zawsze myśl o ruchu płynącym w obu kierunkach, gdy myślisz o komunikacji w sieciach komputerowych.
Możesz uzyskać duży przebieg ze statycznych tras. Dynamiczne protokoły routingu, takie jak EIGRP, RIP itp., Są tak naprawdę niczym więcej niż sposobem dla routerów na wymianę informacji o routingu między sobą, które w rzeczywistości można skonfigurować za pomocą tras statycznych. Jedną dużą zaletą korzystania z dynamicznych protokołów routingu zamiast tras statycznych jest to, że dynamiczne protokoły routingu mogą dynamicznie zmieniać tabelę routingu w zależności od warunków sieciowych (wykorzystanie przepustowości, „zejście” interfejsu itp.) I, jako takie, za pomocą dynamicznego protokół routingu może spowodować konfigurację, która „trasuje” awarie lub wąskie gardła w infrastrukturze sieci. (Protokoły routingu dynamicznego są jednak DROGĄ poza zakresem tej odpowiedzi.)
Nie możesz się stąd dostać
W przypadku naszego przykładowego routera A, co się stanie, gdy pojawi się pakiet powiązany z „172.16.31.92”?
Patrząc na tablicę routingu routera A, ani docelowy interfejs, ani statyczna trasa nie pasują do pierwszych 24 bitów 172.18.31.92 (czyli 10101100.00010000.00011111.01011100, BTW).
Jak już wiemy, router A zwróci pakiet do nadawcy za pomocą komunikatu „Sieć docelowa nieosiągalna”.
Powiedz, że pod adresem „192.168.20.254” jest inny router (Router C). Router C ma połączenie z Internetem!
Interface Interface Interface
Ethernet1 Ethernet1 Ethernet1
192.168.20.254/24 192.168.10.1/24 192.168.30.254/24
__________ V __________ V __________ V
(( heap o )) | | V | | V | | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
(( w00t! )) ^ |__________| ^ |__________| ^ |__________|
^ ^ ^
Interface Interface Interface
Ethernet0 Ethernet0 Ethernet0
10.35.1.1/30 192.168.20.1/24 192.168.10.254/24
Byłoby miło, gdyby Router A mógł kierować pakiety, które nie pasują do żadnego lokalnego interfejsu do Routera C, tak aby Router C mógł wysłać je do Internetu. Wprowadź trasę „domyślnej bramy”.
Dodaj wpis na końcu naszej tabeli routingu w następujący sposób:
- Identyfikator sieci: 0.0.0.0 (00000000.00000000.00000000.00000000) - maska podsieci / 0 - Router docelowy: 192.168.20.254
Kiedy próbujemy dopasować „172.16.31.92” do każdego wpisu w tabeli routingu, w końcu trafiamy na ten nowy wpis. Na początku to trochę kłopotliwe. Chcemy dopasować zero bitów adresu docelowego do ... poczekaj ... co? Dopasowujesz zero bitów? Więc w ogóle nie szukamy dopasowania. Ten wpis w tablicy routingu mówi w zasadzie: „Jeśli się tu dostaniesz, zamiast rezygnować z dostawy, wyślij pakiet do routera o numerze 192.168.20.254 i pozwól mu się tym zająć”.
192.168.20.254 jest miejscem my NIE wie jak dostarczyć paczkę do. Po skonfrontowaniu z pakietem powiązanym z miejscem docelowym, dla którego nie mamy określonego wpisu w tablicy routingu, ten wpis „domyślnej bramy” zawsze będzie pasował (ponieważ dopasowuje zero bitów adresu docelowego) i daje nam miejsce „w ostateczności”, które możemy wysłać paczki do dostarczenia. Czasami usłyszysz domyślną bramę zwaną „bramą ostateczności”.
Aby domyślna trasa bramy była skuteczna, musi odnosić się do routera, który jest osiągalny przy użyciu innych wpisów w tabeli routingu. Jeśli na przykład próbujesz określić domyślną bramę 192.168.50.254 w routerze A, dostarczenie do takiej domyślnej bramy nie powiedzie się. 192.168.50.254 nie jest adresem, który Router A wie, jak dostarczyć pakiety do korzystania z innych tras w swojej tabeli routingu, więc taki adres byłby nieskuteczny jako brama domyślna. Można to stwierdzić zwięźle: Domyślna brama musi być ustawiona na adres, który jest już osiągalny przy użyciu innej trasy w tabeli routingu.
Prawdziwe routery zazwyczaj przechowują domyślną bramę jako ostatnią trasę w tabeli routingu, tak aby pasowała ona do pakietów po tym, jak nie dopasowały wszystkich innych pozycji w tabeli.
Urbanistyka i routing IP
Podział podsieci IP na mniejsze podsieci IP jest podobny do planowania urbanistycznego. W planowaniu urbanistycznym podział na strefy stosuje się w celu dostosowania do naturalnych cech krajobrazu (rzek, jezior itp.), Aby wpłynąć na przepływy ruchu między różnymi częściami miasta i segregować różne rodzaje użytkowania gruntów (przemysłowe, mieszkaniowe itp.) . Podsieci IP są w zasadzie takie same.
Istnieją trzy główne powody, dla których chcesz podsieć sieć:
Możesz komunikować się za pośrednictwem różnych środków komunikacji. Jeśli masz połączenie WAN T1 między dwoma budynkami, routery IP można umieścić na końcach tych połączeń, aby ułatwić komunikację przez T1. Sieci na każdym końcu (i być może „sieć śródmiąższowa” na samym T1) byłyby przypisane do unikalnych podsieci IP, aby routery mogły podejmować decyzje o tym, który ruch powinien być przesyłany przez linię T1.
W sieci Ethernet możesz użyć podsieci, aby ograniczyć ilość ruchu rozgłoszeniowego w danej części sieci. Protokoły warstwy aplikacji wykorzystują możliwości rozgłaszania Ethernet do bardzo użytecznych celów. Ponieważ coraz więcej hostów jest pakowanych w tę samą sieć Ethernet, procent ruchu rozgłoszeniowego w sieci przewodowej (lub lotniczej w bezprzewodowej sieci Ethernet) może wzrosnąć do takiego poziomu, że może powodować problemy z dostarczaniem ruchu nierozgłoszeniowego. (W dawnych czasach ruch rozgłoszeniowy mógł przytłoczyć procesor hostów, zmuszając ich do zbadania każdego pakietu rozgłoszeniowego. Jest to dziś mniej prawdopodobne.) Nadmierny ruch w przełączanym Ethernecie może również przybrać formę „zalewania ramek do nieznanych miejsc docelowych”. Jest to spowodowane tym, że przełącznik Ethernet nie jest w stanie śledzić każdego miejsca docelowego w sieci i jest przyczyną, dla której przełączane sieci Ethernet nie mogą skalować się do nieskończonej liczby hostów. Skutek zalania ramek do nieznanych miejsc docelowych jest podobny do efektu nadmiernego ruchu rozgłoszeniowego do celów podsieci.
Możesz „nadzorować” rodzaje ruchu przepływającego między różnymi grupami hostów. Być może masz urządzenia serwera druku i chcesz, aby tylko autoryzowane komputery serwera kolejkowania wydruku wysyłały do nich zadania. Ograniczając ruch, który może przepływać do podsieci urządzenia serwera druku, użytkownicy nie mogą skonfigurować swoich komputerów PC, aby komunikowały się bezpośrednio z urządzeniami serwera druku w celu ominięcia rozliczania drukowania. Możesz umieścić urządzenia serwera druku w podsieci i stworzyć regułę w routerze lub zaporze sieciowej podłączonej do tej podsieci, aby kontrolować listę hostów, które mogą wysyłać ruch do urządzeń serwera druku. (Zarówno routery, jak i zapory ogniowe zazwyczaj mogą podejmować decyzje o tym, w jaki sposób lub czy dostarczyć pakiet na podstawie adresu źródłowego i docelowego pakietu. Zapory ogniowe są zazwyczaj podgatunkiem routera o obsesyjnej osobowości. Mogą być bardzo, bardzo zaniepokojeni ładunkiem pakietów, podczas gdy routery zwykle ignorują ładunki i po prostu dostarczają pakiety.)
Planując miasto, możesz zaplanować, w jaki sposób ulice się przecinają, i użyć ulic tylko zakrętowych, jednokierunkowych i ślepych ulic, aby wpłynąć na ruch uliczny. Możesz chcieć, aby Main Street miała 30 bloków, z których każdy zawiera do 99 budynków. Bardzo łatwo jest zaplanować numerację ulic, tak aby każdy blok na Main Street miał zakres numerów ulic rosnących o 100 dla każdego bloku. Bardzo łatwo jest ustalić, jaka powinna być „liczba początkowa” w każdym kolejnym bloku.
Planując podsieci IP, zależy ci na zbudowaniu odpowiedniej liczby podsieci (ulic) z odpowiednią liczbą dostępnych identyfikatorów hosta (numerów budynków) i użyciu routerów do łączenia ze sobą podsieci (skrzyżowania). Reguły dotyczące dozwolonych adresów źródłowych i docelowych określonych w routerach mogą dodatkowo kontrolować przepływ ruchu. Zapory ogniowe mogą działać jak obsesyjni policjanci.
Na potrzeby tej odpowiedzi głównym problemem jest budowanie naszych podsieci. Zamiast pracy dziesiętnej, podobnie jak w przypadku planowania urbanistycznego, pracujesz w trybie binarnym, aby opisać granice każdej podsieci.
Ciąg dalszy: Jak działa podsieć IPv4?
(Tak ... osiągnęliśmy maksymalny rozmiar odpowiedzi (30000 znaków).)