Możliwe (bitowe) wzorce maski sieci

13

Biorąc pod uwagę prefiks Y, łatwo jest obliczyć odpowiednią maskę sieci: wstaw Yczasy ustawionego bitu, a następnie wypełnij „w prawo” zerami, aż w sumie będzie 32 bity (IPv4).

Przykład:

Prefiks 24, a zatem maska ​​sieci 11111111 11111111 11111111 00000000lub 255.255.255.0.

Czy może istnieć maska ​​sieci o innym wzorze bitowym , np

  • 00000000 11111111 00000000 11111111( 0.255.0.255)
  • 00000000 11111111 11111111 11111111( 0.255.255.255)
  • 11111111 11111111 11111111 00000001( 255.255.255.1)

Określenie „prefiksu” oczywiście nie zadziałałoby w tych przypadkach.

(Jestem prawie pewien, że odpowiedź brzmi „NIE”, ale piszę trochę kodu sieciowego, który musi działać we wszystkich możliwych przypadkach, więc chcę mieć 101% pewności).

Daniel Jour
źródło

Odpowiedzi:

11

RFC950 stwierdza, że

Ponieważ bity identyfikujące podsieć są określone przez maskę bitów, nie muszą one przylegać do adresu. Zalecamy jednak, aby bity podsieci były ciągłe i zlokalizowane jako najbardziej znaczące bity adresu lokalnego.

Większość urządzeń stosuje się do tego zalecenia, aby je egzekwować. W 2012 r. Udało mi się używać niesąsiadujących masek podsieci w sieciach tylko dla systemu Linux; testowane urządzenia Windows, OSX, Cisco i HP nie obsługiwały / nie pozwalały na to.

Filip Haglund
źródło
2
Wierzę, że zostało to zastąpione przez RFC1519 , który wyraźnie wymaga ciągłej maski.
user1686,
@grawity Może tak być. Znaleziono „Jedynym wyjątkowym ograniczeniem jest to, że maska ​​musi pozostać ciągła”. gdy mówimy o CIDR, ale nie przeczytałem wystarczająco dużo, aby uzyskać kontekst.
Filip Haglund,
6

Jeśli używasz prefiksów i sieci, odpowiedź brzmi: nie, bity muszą być ciągłe. Są przypadki, w których można użyć maski wieloznacznej (odwrotnej do maski), np. Listy ACL Cisco, i mogą to być dowolne wzory bitowe. Na przykład możesz zablokować ruch ze wszystkich hostów nieparzystych w sieci. Wydaje się, że wciąż się tego uczy, ale nie widziałem, aby był używany bardzo często (chociaż widziałem go) w prawdziwym świecie.

Ron Maupin
źródło
4

Nie. Maska sieci to ciągła seria jednych.

(Pozostałe to wzory „wieloznaczne”).

Ricky Beam
źródło
1
To nie jest prawda. 30 lat temu było wiele. Wciąż mogą być jakieś działające.
MAP
2
Bardzo w to wątpię. Żaden nowoczesny sprzęt do routingu na to nie pozwoli. A routery z lat 80. będą miały wiele problemów ze sposobem, w jaki dziś działa IP. (Byłem tam. Powiedziałem, że nie korzystaj z podsieci o zerowym zeru - nawet pod koniec lat 90. to był problem). Jedyne dwa urządzenia, które wciąż mam z tamtej epoki , nie zaakceptują nieciągłej maski sieci. (WTI pdus, wciąż w okolicy, ponieważ mają porty 10bT. Nic do nich nie mówi, przede wszystkim Internet .)
Ricky Beam
3

Gdy protokół TCP / IP po raz pierwszy pojawił się i stał się powszechny, faktycznie było wiele podsieci z niesąsiadującymi maskami. Ale w miarę jak adresy stały się rzadkie, narzut na resztę sieci pozwalał na globalne trasowanie tych prefiksów, zamiast zmuszać wszystko do tego, aby opierały się wyłącznie na prefiksach; było za dużo, a globalna sieć zmieniła się na obsługę tylko prefiksów. W rzeczywistości nadal mogą istnieć starsze sieci, które wewnętrznie używają nieciągłych masek (wiele IGP wciąż to obsługuje). Ale kiedy taka sieć łączy się z Internetem, ma jeden prefiks, który obejmuje wszystkie z nich, i reklamuje się w BGP. I oczywiście EGP (poprzednik BGP) obsługiwał tylko adresowanie klasowe.

Znam kilku graczy z oryginalnymi sieciami klasy A, które wykorzystywały niesąsiadujące maski sieciowe wewnętrznie z tego czy innego powodu. Po prostu nie wiem, czy któryś z nich nadal to robi. Wiele z nich nawet nie wychodzi. ARPAnet miał wewnętrzną maskę sieci 255.0.0.255 (IIRC).

MAPA
źródło
2
NONSENS. Nie ma to nic wspólnego z CIDR, klasami ani agregacją. Maska sieci ZAWSZE była ciągła.
Ricky Beam
6
Patrz na przykład RFC 950 . Strona 15 podaje przykład z maską sieci 255.255.255.88.
Ross Presser,
4
Myślę, że strona 12 RFC 1519 w rzeczywistości boli twoją sprawę, ponieważ jedynym istotnym zdaniem jest: „ Jedynym wyjątkowym ograniczeniem jest to, że maska ​​musi pozostać ciągła ”. (Podkreślenie moje) Ponieważ maska ​​jest implikowana / przyjmowana przez klasę w routingu klasowym i zastosowano tylko trzy ciągłe maski, a RFC na CIDR określa ciągłe maski, wygląda na to, że twoja odpowiedź jest błędna. Post na liście FreeBSD jest dla mnie zagadką.
Todd Wilcox
3
Zamienny kod RFC to 4632: tools.ietf.org/html/rfc4632 Należy zauważyć, że notacja ukośnika jest omawiana i używana, a termin „ długość prefiksu ” pojawia się kilka razy, z których żaden nie miałby żadnego sensu, gdyby niesąsiadujące maski były utrzymany. Z RFC 950 jasno wynika, że ​​na początku mogły istnieć systemy, które używały nieciągłych masek, ale przywołanie tego nie pomoże pytającemu zrozumieć, jak obecnie działa TCP / IP, i może być bardzo mylące.
Todd Wilcox,
3
Ponieważ bity identyfikujące podsieć są określone przez maskę bitów, nie muszą one przylegać do adresu. Zalecamy jednak, aby bity podsieci były ciągłe i zlokalizowane jako najbardziej znaczące bity adresu lokalnego . Chociaż nie ma w nim dziś sformułowania POWINNY / MUSISZ, tak właśnie wszyscy zbudowali nowoczesne możliwości podsieci. Przez ponad trzy dekady pracy w sieci nigdy nie spotkałem technologii, która pozwala na nieciągłe podsieci.
Ricky Beam