CIDR dla manekinów

46

Rozumiem, czym jest CIDR i do czego służy, ale wciąż nie mogę wymyślić, jak go obliczyć w mojej głowie. Czy ktoś może podać wyjaśnienie typu „dla manekinów” z przykładami?

Kok
źródło
3
Zobacz także to pytanie, aby uzyskać wyczerpujące pytanie dotyczące podsieci.
Zoredache

Odpowiedzi:

78

CIDR (Classless Inter-Domain Routing, wymawiane jako „kidder” lub „cydr” - dodaj swój własny lokalny wariant do komentarzy!) To system definiujący część sieciową adresu IP (zwykle ludzie myślą o tym jak o masce podsieci) . Powodem, dla którego jest „bezklasowy”, jest to, że pozwala on na bardziej elastyczne łamanie sieci IP niż ich klasa podstawowa.

Kiedy sieci IP zostały po raz pierwszy zdefiniowane, adresy IP miały klasy oparte na ich binarnym prefiksie:

Class    Binary Prefix    Range                       Network Bits
A        0*               0.0.0.0-127.255.255.255     8
B        10*              128.0.0.0-191.255.255.255   16
C        110*             192.0.0.0-223.255.255.255   24
D        1110*            224.0.0.0-239.255.255.255
E        1111*            240.0.0.0-255.255.255.255

(Zauważ, że jest to źródło osób określających a / 24 jako „klasę C”, chociaż nie jest to ściśle prawdziwe porównanie, ponieważ klasa C musiała mieć określony prefiks)

Te binarne prefiksy były używane do routingu dużych fragmentów przestrzeni IP wokół. Było to nieefektywne, ponieważ skutkowało przydzielaniem dużych bloków organizacjom, które niekoniecznie ich potrzebowały, a także dlatego, że klasy C można przypisywać tylko w przyrostach 24-bitowych, co oznacza, że ​​tabele routingu mogą być niepotrzebnie duże, ponieważ wiele klas C jest kierowanych do ta sama lokalizacja.

Zdefiniowano CIDR, aby umożliwić stosowanie masek podsieci o zmiennej długości (VLSM) do sieci. Jak nazwa ma zastosowanie, grupy adresów lub sieci można podzielić na grupy, które nie mają bezpośredniego związku z naturalną „klasą”, do której należą.

Podstawowym założeniem VLSM jest podanie liczby bitów sieci w sieci. Ponieważ adres IPv4 jest 32-bitową liczbą całkowitą, VLSM zawsze będzie mieć wartość od 0 do 32 (chociaż nie jestem pewien, w którym przypadku możesz mieć maskę o długości 0).

Najprostszym sposobem na rozpoczęcie obliczania VLSM / CIDR w twojej głowie jest zrozumienie „naturalnych” 8-bitowych granic:

CIDR    Dotted Quad
/8      255.0.0.0
/16     255.255.0.0
/24     255.255.255.0
/32     255.255.255.255

(Nawiasem mówiąc, korzystanie z maski / 32 jest całkowicie legalne i dość powszechne w listach ACL. Oznacza to po prostu, że masz na myśli pojedynczy adres IP)

Po ich uchwyceniu, prosta arytmetyka binarna przesuwa się w górę lub w dół, aby uzyskać liczbę hostów. Na przykład, jeśli a / 24 ma 256 adresów IP (na razie pomińmy adresy sieciowe i rozgłoszeniowe, to inne pytanie teorii sieci), zwiększenie podsieci o jeden bit (do / 25) zmniejszy przestrzeń hosta o jeden bit (do 7), co oznacza, że ​​będzie 128 adresów IP.

Oto tabela z ostatniego oktetu. Tę tabelę można przesunąć na dowolny oktet, aby uzyskać ekwiwalent kwadratu kropkowanego.

CIDR    Dotted Quad
/24     255.255.255.0
/25     255.255.255.128
/26     255.255.255.192
/27     255.255.255.224
/28     255.255.255.240
/29     255.255.255.248
/30     255.255.255.252
/31     255.255.255.254
/32     255.255.255.255

Jako przykład przeniesienia ich do innego oktetu, / 18 (czyli / 26 minus 8 bitów, więc przesunięty oktet) to 255.255.192.0.

jj33
źródło
2
Dziwne, zwykle słyszę, jak wymawia się „cydr”
sclarson
Jestem pewien, że ma charakter regionalny / organizacyjny. Nie jestem pewien, czy słyszałem, jak ktoś nazywał CIDR „kidder”, ale wiem, kiedy wiele lat temu wziąłem programowanie LISP, funkcja CDR została nazwana przez mojego
profesora
Podobnie jak dodatkowe punkty danych: słyszałem tylko „cydr” i nauczono mnie, że CDR jest „cudder”. Chyba każdemu z nich. :-)
Łukasz
Dzięki SaveTheRbtz zmieniłem końcowy zakres klasy B na 191.255.255.255, a klasę C na 192.255.255.255. Dziwne, mam poprawny prefiks binarny i pamiętam, że robiłem matematykę. Dziękuję bardzo za wykrycie tego!
jj33
2
Dałbym to +10, gdybym mógł. To świetne wyjaśnienie CIDR / VLSM.
JamesBarnett,
8

Każdy oktet jest wart 8.

  • 255.0.0.0 / 8
  • 255.255.0.0 / 16
  • 255.255.255.0 / 24
  • 255.255.255.255 / 32

Możesz więc szybko zawęzić swoją podsieć, a wtedy martwisz się o ostatnie 8 bitów.

128, 192, 224, 240, 248, 252, 254, 255

+1  , +2 , +3 , +4 , +5 , +6 , +7 , +8
  • 255.128.0.0 = / 9
  • 255.192.0.0 = / 10
  • 255,224.0.0 = / 11
  • 255,240,0,0 = / 12
  • 255.248.0.0 = / 13
  • 255.252.0.0 = / 14
  • 255.254.0.0 = / 15

Mam nadzieję, że to wystarczająco jasne

szkarłat
źródło
6

Dzień (sic) spóźniony, miejmy nadzieję, że nie za krótki dolar. CIDR to liczba ciągłych jeden bitów w masce IPv4 (32 bity), zaczynając od najbardziej znaczącego bitu.

10000000 00000000 00000000 00000000 gdzie 1 = najbardziej znaczący bit

Typowe maski to / 8, / 16, / 24, które wszystkie leżą na granicy 8 bitów (oktetów).

11111111 00000000 00000000 00000000 = / 8 = 255.0.0.0

11111111 11111111 00000000 00000000 = / 16 = 255.255.0.0

11111111 11111111 11111111 00000000 = / 24 = 255.255.255.0

To nie jest naprawdę trudne, gdy nie jest wyrównane oktetem, ale wymaga prostej matematyki i zrozumienia, czym jest oktet.

11111111 11111111 11100000 00000000 = / 19

Pierwsze dwa oktety maski to 255.255 (/ 16 to mniej niż / 19). Ostatni oktet to 0 (/ 19 to mniej niż / 24). Jak dotąd wiemy

11111111 11111111 11100000 00000000 = / 19 = 255,255. 0,0

Patrząc na każdy oktet pamiętaj, że jest to wartość 8-bitowa, 0–255.

0 0 0 0 0 0 0 0 
1
2 6 3 1
8 4 2 6 8 4 2 1

Zatem trzeci oktet (?) 11100000 to 128 + 64 + 32 = 224. To znaczy

11111111 11111111 11100000 00000000 = / 19 = 255.255.224.0

dbasnett
źródło
4

Bardzo podatne na błędy jest ręczne obliczanie nietrywialnych sieci. Zamiast tego wypróbuj kalkulator CIDR .

Hayalci
źródło
2
Kto to zagłosował ?! Całkowicie się zgadzam, bardzo łatwo przeliczyć zakresy CIDR w twojej głowie, szczególnie podczas konwersji, np. / 23 do postaci 255.255.254.0. Korzystam z pakietu „ipcalc” w Debianie, aby mi pomóc.
Mike Pountney
2
Myślę ipcalci sipcalclepiej wybieram, ale w każdym razie +1
SaveTheRbtz
2

Wręcz przeciwnie, uważam, że dobrze jest w pełni zrozumieć CIDR i być w stanie wykonywać obliczenia w mózgu ... ale czasami chcesz dwukrotnie sprawdzić swoje obliczenia. Lubię korzystać z kalkulatora podsieci PHP : http://share-foo.com/SubnetCalc.php

alternatywny tekst

l0c0b0x
źródło