Rozumiem podstawową przesłankę masek podsieci, takich jak 255.255.255.0
. Ale wszystkie przykłady podsieci, które widziałem, to (od lewej do prawej) ciągłe 1s (bity HI). Na przykład 255.255.0.0
( /16
) tłumaczy następujące oktety:
11111111 . 11111111 . 00000000 . 00000000
Uważam , że te bity muszą być ciągłe, ponieważ sednem podsieci jest uzyskanie identyfikatora hosta i zakresów dostępnych identyfikatorów urządzeń. Ale zastanawiam się, czy możesz mieć maskę podsieci, powiedzmy 255.17.255.0
, lub:
11111111 . 00010001 . 11111111 . 00000000
- Czy to się kiedykolwiek stanie? A może podsieci nie mogą istnieć bez ciągłych 1? Jeśli tak, dlaczego?
- W przeciwnym razie, jeśli można to zrobić, dlaczego miałbyś (niektóre konkretne przykłady)?
networking
ip
subnet
DirtyMikeAndTheBoys
źródło
źródło
Odpowiedzi:
Sekcja 3.1 w dokumencie RFC pokazuje dozwolone maski w bezklasowym routingu między domenami. Bity muszą być ciągłe, aby routing działał poprawnie.
Również logiczne myślenie nie miałoby sensu mieć dziwnych losowych masek sieciowych.
źródło
Tak, najłatwiejszym sposobem na przemyślenie tego jest to, że maski podsieci są zawsze na początku 1. Jeśli wskaźnik rozmiaru podsieci nie ma 1 na początku reprezentacji binarnej, powiedziałbym, że wskaźnik rozmiaru podsieci nie jest właściwą „maską podsieci”, przy zastosowaniu nowoczesnych standardów.
RFC 1219 stwierdza, że wcześniejszy RFC 950 dopuszcza niesąsiadujące bity. W rzeczywistości RFC 950 strona 15 (sekcja 3) wyraźnie ma przykład, który „ilustruje nieciągłe bity podsieci”. Jednak nie ma sposobu na konwersję takich podsieci w notację CIDR. Notacja w stylu CIDR jest tym, czego używał IPv6 (w przynajmniej od RFC 1884 strona 7 , pierwsze zdanie w sekcji 2.4), więc niesąsiadujące bity nigdy nie były szeroko obsługiwane dla sieci IPv6. Metoda RFC 1219 określa, że „bity podsieci (maska = 1) są przypisywane z najbardziej znaczącego działającego bitu w kierunku najmniejszym ”. ( RFC 4632 sekcja 3.1 , wspomniana w odpowiedzi Sami, wskazuje na oficjalny standard omawiający notację CIDR.)
RFC 1878 strona 2 pokazuje standardową notację „maski podsieci” dla wszystkich podsieci IPv4 z wyjątkiem
/0
.Zamierzam jednak nieco rozwinąć odpowiedź Sami, analizując „dlaczego” (z konkretnym przykładem, o który pytało pytanie) ...
Niektóre profesjonalne urządzenia Cisco obsługują coś, co nazywa się „maską wieloznaczną”, która odwraca bity. Tak więc normalna podsieć może być reprezentowana przez coś o nazwie
00000000.00000000.00000000.11111111
.W przypadku masek wieloznacznych Cisco nie istniała reguła, że wszystkie zera muszą być pierwsze. Więc możesz użyć
00000000.00000000.00000000.11111110
.W ten sposób powstanie grupa zawierająca wszystkie parzyste adresy IP.
To było naprawdę ważne, aby wiedzieć, ponieważ obejmowało to szkolenie Cisco, więc proces sprawdzania profesjonalnych certyfikatów Cisco może zapytać o coś takiego.
Myślę jednak, że było to w większości bezużyteczne. Zamiast dzielić sieć na pół przy użyciu adresów parzystych lub nieparzystych, można po prostu podzielić sieć na pół przy użyciu adresów o niskim numerze i adresów o wysokim numerze, tworząc normalne podsieci, które są o połowę mniejsze.
Maski wieloznaczne z niesąsiadującymi bitami nie były zbyt przydatne i mogą być trudniejsze w pracy. Celem bitu maski podsieci ustawionej na 1 jest stwierdzenie, że bit pomaga zidentyfikować podsieć, w której znajduje się urządzenie. Nie ma istotnego powodu, aby te bity były rozmieszczone w całym adresie, zamiast po prostu ładnie grupować je na początku adresu . W rezultacie obsługa tego rodzaju masek była dodatkową złożonością bez większych korzyści.
Wydaje mi się, że Cisco ostatecznie zgodziło się, że takie nietradycyjne maski podsieci nie mają sensu, ponieważ ostatecznie zrezygnowały z obsługi „masek wieloznacznych”. Starsze zapory Pix obsługują „maski wieloznaczne”, ale nowsze jednostki ASA używają zamiast tego standardowych „masek podsieci” .
Nie próbowałbym nawet tworzyć sieci z nieciągłymi „bitami podsieci” w masce, ponieważ wiele programów podąża za nowszymi trendami / standardami i odrzuca taki projekt sieci. Nawet gdybym korzystał ze starszego oprogramowania, prawdopodobnie chciałbym, aby moja sieć mogła być łatwo modyfikowana, aby móc korzystać z nowszego oprogramowania bez konieczności przeprojektowywania sieci. Zatem ciągłe „bity podsieci” to jedyna droga.
Jeśli zadane zostanie pytanie w teście, z pewnością powiem, że wszystkie 1 muszą znajdować się na początku adresu. Właśnie tego każdy rozsądny tester chciałby, aby większość uczniów uczyła się w dzisiejszych czasach.
źródło
RFC 950 mówi w rozdziale 2.2:
dlatego propozycja dotyczyła prostej operacji bitowej, która nie przejmuje się ciągłymi bitami.
W 1985 r. Procesor i pamięć były znacznie bardziej ograniczone, więc wszelkie bardziej złożone operacje po prostu nie pasowałyby do czasu.
Staje się to jeszcze bardziej wyraźne w rozdziale 3:
Te RFC wydają się jednak przestarzałe. Na przykład w systemie Windows 7 z dodatkiem SP1 nie można ustawić takiej maski podsieci:
Nawet w systemie Windows XP SP2 nie było to już możliwe:
Klonowany ReactOS systemu Windows 98 umożliwia jednak ustawienie „dziwnej” maski sieci:
źródło
Zgadzam się z odpowiedzią @Sami Kuhmonen:
Jednak nawet jeśli nie jest to pożądane lub dozwolone, nadal można zdefiniować maskę podsieci nieciągłych 1. Powód tego:
identyfikator sieci i hosta są obliczane na podstawie adresu IP i maski podsieci przy użyciu operacji binarnych AND i XOR. Cała reszta jest nieistotna.
Testowałem to lata temu na Win 2000, działa. Oba komputery miały maskę 255.160.0.0. Były w sieci LAN bez routera, więc nie mogę powiedzieć o zachowaniu routera (zwykle maskę routera można ustawić tylko w interfejsie internetowym, który ją odrzuci).
Nie można również wprowadzić takiej „niepoprawnej” maski podsieci w odpowiednim polu ustawień sieciowych; GUI nie chce tego wziąć. Ale możesz oszukiwać, zmieniając go bezpośrednio w rejestrze. Następnie uruchom ponownie lub wyłącz + włącz kartę sieciową, aby zmiany stały się aktywne.
Cel tego wszystkiego: uhm, prawdopodobnie żaden.
źródło
255.160.0.0
sieciami?