Dlaczego IETF wybrał 192.168 / 16 jako prywatną klasę adresów IP?

90

Dlaczego Grupa Robocza ds. Inżynierii Internetowej (IETF) wybrała 192.168/16prywatną klasę adresów IP, a nie coś innego?

Dlaczego konkretnie 192.168/16i 10/8a 172.16/12, a nie 145.243/16na przykład?

Czy istnieje powód, dla którego adresy IP zostały wybrane jako standard prywatnych adresów IP w porównaniu do wszystkich innych możliwości?

Chrząszcz
źródło
32
RFC 1918 nie zawiera wyjaśnienia, dlaczego właśnie te sieci zostały wybrane, Akash. Stąd pytanie pytającego.
JdeBP
1
Myliłem się co do tego, że nie da się odpowiedzieć. Byłem w stanie odpowiedzieć na twoje pytanie prawie całkowicie, czerpiąc z RFC. Ale rok 1918 nie jest najważniejszy dla udzielenia odpowiedzi na pytanie ...
Michael Hampton

Odpowiedzi:

89

Wiem, kto wybrał te zakresy adresów. Niestety, on nie żyje, więc nie mogę zapytać go dokładnie, dlaczego je wybrał, ale mogę zgadnąć.

Nie ma wielu randek internetowych przed połową lat 90., kiedy Internet naprawdę zaczął się rozwijać. Historia Internetu istnieje przede wszystkim w dokumentach RFC, które ją definiują i pochodzą z 1969 r. , Na początku ARPANET. Dzięki nim możesz obserwować postępy w Internecie od rozwijającej się sieci kilku prymitywnych komputerów mainframe, zaprojektowanych przez jedne z najbardziej błyskotliwych umysłów tamtych czasów, do sieci, w której trudno sobie wyobrazić życie bez dzisiaj.

Ta odpowiedź prawie w całości wywodzi się z tych RFC, a w niewielkiej części z mojego osobistego doświadczenia, jakie miałem w Internecie w tej erze.


Po pierwsze, IETF nie wybrał tych zakresów adresów IP ani żadnych innych. Przydzielanie adresów specjalnego zastosowania jest obecnie i zawsze było zadaniem Urzędu ds . Przydzielonych numerów internetowych .

IANA zawsze była rolą , a nie konkretną organizacją, i ta rola zmieniła ręce dokładnie raz. Obecnie jest w posiadaniu ICANN, ale od 1972 r. Do jego śmierci w 1998 r., Kiedy ta organizacja została utworzona w celu zastąpienia go, IANA była zasadniczo jednym człowiekiem, Jonem Postelem . Oczywiście po raz pierwszy nazwał rolę cara numerów gniazd , co było dla niego koniecznym zadaniem, ponieważ trzeba było to zrobić. Skończył z praktycznie każdą liczbą, którą można przypisać: adresami, numerami protokołów, portami, nazywacie to, głównie dlatego, że był gotów to zrobić, i zanim Internet otworzył się na handel publicznyrobił to od ponad 20 lat. Przypisał numery, a rejestr internetowy (wówczas SRI-NIC, który został rozszerzony do rozproszonej kolekcji rejestrów na całym świecie) opublikował je.

Ostatni RFC z SRI wykazujący listę przypisań adresów internetowych to RFC 1166 z 1990 roku. Jest to bardzo długa lista, więc nie powinno dziwić, że dane te zostały przeniesione do internetowych baz danych. Porównując go do swojego poprzednika RFC 1117 pokazuje tempo ekspansji Internetu nawet wtedy, na wiele lat przed otwarciem go dla publiczności.

Teraz jesteśmy w stanie nieco lepiej zrozumieć zakresy adresów w RFC 1918 . To właściwie druga wersja RFC; pierwszym był RFC 1597 , opublikowany prawie dwa lata wcześniej w marcu 1994 r. W jego mało znanym obaleniu, RFC 1627 , przedstawiono współczesne argumenty przeciwko prywatnym przestrzeniom adresowym. RFC 1627 wspomina także o tym, kto przypisał trzy przestrzenie adresowe.

Zostały one przydzielone przez IANA, czyli Jona Postela, na prośbę autorów RFC 1597, a jeśli wierzyć w skargę w RFC 1627, zrobił to raczej kanałami zwrotnymi niż zwykłymi otwartymi procesami. Widać, że sam RFC 1597 przeszedł bezpośrednio do statusu RFC bez zwykłych poprzednich wersji roboczych , dlatego też został zatwierdzony kanałami wstecznymi, ponownie przez Postela, który był wówczas także redaktorem RFC . Tak więc ostateczne udzielenie odpowiedzi na to pytanie może być niemożliwe.

Teraz, dlaczego wybrał te trzy zakresy adresów, pozwolę sobie zwrócić uwagę na RFC 1166 i 1117 z SRI, które miały dotychczasowe przypisania zakresu adresów IP. W obu z nich zauważysz, że sieć 10 była nadal przydzielona do nieistniejącego ARPANET, który został zamknięty w 1990 roku . Postel, w swojej roli IANA, wiedziałby, że ten zakres nie był już używany i można go ponownie przypisać. Zakładam, że Postel wybrał sieć 10, ponieważ wiedział, że będzie ona dostępna i nieużywana.

Podobnie oczekuję, że Postel wybrał 192.168, ponieważ w momencie dokonywania wyboru była to kolejna dostępna lub prawie następna dostępna sieć, którą można przypisać z poprzedniej przestrzeni klasy C. Prawdopodobnie nie da się tego udowodnić w ten czy inny sposób, ale tempo przypisywania adresów pokazane w RFC zdecydowanie sugeruje, że byłyby w tym ogólnym sąsiedztwie około 1993-1994, kiedy zadania zostały wykonane. (Adresy z 192.159 zostały przypisane w 1992 roku . Brak dostępnych dat dla zadań w 192.160-192.167, ponieważ zostały one w pewnym momencie przeniesione do RIPE.)

Odpowiedź na to pytanie dla 172.16-172.31 jest trudniejsza. Nic, co nie znalazłem, sugeruje, dlaczego wybrano ten zakres. Zadania w dawnej przestrzeni klasy B nie osiągnęły jeszcze tak wysokiego poziomu, o ile się orientuję. Mogę jedynie spekulować, że IANA rzuciła rzutką w tarczę, rzuciła kostką lub w inny sposób wyciągnęła numer ze swoich dolnych regionów.


Wreszcie uwaga na temat Jona Postela. Pomimo pozornego sposobu, w jaki ten RFC został w pełni ukształtowany bez (początkowego) wkładu ze strony społeczności, nie mam na myśli sugerowania tego i nie należy tego interpretować, ponieważ Jon Postel w jakiś sposób spełnił rolę IANA słabo lub niesprawiedliwie. Był jednym z najsilniejszych wpływów na wczesny Internet i nadal odczuwasz ten wpływ dzisiaj, za każdym razem, gdy dostrzegasz za kulisami maszynerię internetową, ale zawsze był zainteresowany prawidłowym wykonaniem tej pracy. Cytat z jednego wspomnienia :

Administracja i operacje nie mają chwały. Wręcz przeciwnie. Ludzie zauważają, kiedy robi się to źle, ale rzadko oferują pochwałę, gdy robi się to dobrze. Ludzie na stanowiskach administracyjnych często stają się drobnymi biurokratami. Ponieważ praca jest tak niewielka, dlatego sztucznie stanowią podstawę władzy. Zdezorientowało to niektórych, którzy słyszeli, że Jon nazywany jest cyframi internetowymi „car”. Nie zdawali sobie sprawy, że społeczność przyznała Jonowi tytuł z miłości i głębokiego uznania za to, że uporządkował niezbędne usługi infrastrukturalne. W szczególności społeczność użyła tego terminu z pełną świadomością, że Jon przyjął swoją pozycję raczej jako zaufanie, niż jako okazję do osobistej władzy. Zawsze wiedzieliśmy, że jego poglądy pochodzą z uzasadnionych przekonań i nigdy nie musieliśmy się martwić, że w jakiś sposób rozważa korzyści polityczne lub osobiste. Możemy się z nim nie zgodzić, ale zawsze wiedzieliśmy, że kierował nim troska o właściwe postępowanie.

Michael Hampton
źródło
6
To musiał być trudny koncert dla Jona. Czy tutaj właśnie pojawia się wyrażenie „Going Postel”? :-p
tudor
5
Jon Postel jest jednym z moich wieloletnich bohaterów. Zawsze był w zapleczu, dzięki czemu bardziej znani naukowcy pracowali razem nad wspólnym celem. Ojciec zarządzania Internetem.
Frank Thomas
4
„Przed połową lat dziewięćdziesiątych nie ma wielu randek online” - Żartowałem, match.com nie został zarejestrowany do 1998 roku. Nie? ... wezmę płaszcz.
Anonimowy
1
Świeży post NANOG potwierdza, że ​​były to zwykłe „następne dostępne” przydziały.
grawity
30

Bo to wtedy miało sens? :-RE

Pamiętaj, że kiedy przydzielono zakresy prywatnych adresów IP, inżynierowie sieci musieli zmierzyć się z kilkoma problemami: niektóre z najmocniejszych routerów w tym czasie miały mniej więcej mocy procesora i pamięci RAM niż dzisiejsze kalkulatory grafów kieszonkowych - i niektóre z tych, które dziś nadal krążą wokół routerów z ubiegłych lat (pamiętam, kiedy szybkość procesora była mierzona w kilohercach, a pamięć RAM była mierzona w kilobajtach, a nie tak jak w dzisiejszych gigach!). Internet szybko się rozwijał, IPv4przestrzeń adresowa była ograniczona i wyglądało na to, że zabraknie jej do 2000 roku, i tak dalej. Tak więc wiele zakresów adresów IP zostało już przypisanych i nie chcieli oni prosić firm o zwrócenie zakresów adresów IP tylko po to, aby mogli ponownie przypisać je do zakresów prywatnych. Chcieli również ułatwić firmom współpracę z prywatnymi zasięgami - niewiele firm współpracowałoby, gdyby musiały zainwestować dużo pieniędzy, aby ich sieci mogły poradzić sobie z jednym lub dwoma tuzinami adresów IP adresy tu i tam.

Ta część jest wprawdzie zgadywana z mojej strony, ale w dużej mierze oparta zarówno na logice, jak i doświadczeniu w konfigurowaniu sieci. Prawdopodobnie zebrali oni listę wszystkich nieprzypisanych numerów sieci i szukali wyróżniającego się wzoru, który spełniałby pożądane kryteria: Jedna pojedyncza klasa A (numery sieci, które mają wysoki bit binarny 0xxxxxxx w numerze sieci, to klasa A), 16 adresów klasy B (numery sieci 10xxxxxx binarne) i 256 adresów klasy C (numery binarne 110xxxx). Adresy klasy B i C również powinny być następujące po sobie. (Wybór dla 16 i 256 był prawdopodobnie częściowo arbitralny - po zrobieniu tego przez pewien czas zaczynasz myśleć w potęgach 2 - i prawdopodobnie częściowo dlatego, że to, co można znaleźć, było dostępne do rezerwacji.)

Z tego prawdopodobnie wybrali końcowe zakresy spośród dostępnych adresów, które pozwoliłyby producentom routerów przeprowadzić prosty bitowy test adresu, aby ustalić, czy należy skierować / przekazać / upuścić pakiet. Są też pewne właściwości wzorców bitów, które widzę, pomagając w tworzeniu zwartych tabel NAT. Adres 10.xyz jest oczywisty, ponieważ musi pasować tylko do jednego numeru sieci. 172.16.yz do 172.32.yz ma wzór, że jeśli zbudujesz tabelę z czterema bitami niższego rzędu, odwołującymi się do czterech bitów wyższego rzędu, cały zakres zostanie wypełniony w jednym rzędzie tabeli, bez podziału na dwa rzędy - to znaczy, drugi oktet to zawsze 0001xxxx (binarnie). W 192.168.yz wartością binarną dla 168 jest 10101000 - to znaczy, że trzy niższe bity mają zawsze wartość 0, a wyższe 5 bitów na przemian 1 i 0.

Chociaż mogą się wydawać arbitralne, jeśli kiedykolwiek wykonałeś programowanie w języku maszynowym lub dekodowanie mikrokodu, tego rodzaju wzorce pozwalają przetestować tylko kilka bitów w celu ustalenia wartości prywatnej / publicznej bez konieczności najpierw dekodowania całego adresu IP. Umożliwiłoby to routerom szybkie przetwarzanie takich adresów bez konieczności utrzymywania obszernych tabel odnośników w pamięci. W ten sposób router może wypchnąć pakiet sieci prywatnej z powrotem do sieci prywatnej bez pełnego pełnego dekodowania go, goląc cenne cykle zegara od prędkości routera i sieci.

Jeśli jesteś ciekawy, sprawdź, w jaki sposób szeregowa transmisja danych (jak UART) obsługuje każdy bajt danych: może wysyłać / odbierać tylko jeden bit na raz, z prędkością zegara sterującego, i zwykle ramkuje dane w dodatkowe bity, takie jak bity parzystości i „synchronizacji”. Byłoby zbyt czasochłonne, aby spróbować obliczyć rzeczy takie jak parzystość na cały bajt jednocześnie, więc zamiast tego zachowuje specjalny bit, który ma każdy cykl zegara. Ten bit jest modyfikowany przez następny bit, który zostaje przesunięty do / z rejestru wysyłania / odbierania. Gdy tylko cały bajt zostanie wysłany / odebrany, wartość pozostająca w bicie parzystości jest już poprawna bez konieczności jej ponownego obliczania. Koncepcja polega mniej więcej na tym, że „wykonuj pracę w tym samym czasie, co robisz coś innego”, w przypadku układu szeregowego oblicza parzystość w tym samym czasie, gdy wysyła / odbiera. W przypadku routera / przełącznika

Poza tym jest to po prostu logika / zgadywanie z mojej strony, oparte na 25 latach wykonywania tego rodzaju pracy. Nie wiem, czy kiedykolwiek poznamy dokładne przyczyny ostatecznych liczb wybranych, ponieważ nie pamiętam żadnych dokumentów / RFC / itp. zawsze podając pełne uzasadnienie. Najbliższe, jakie widziałem, to tylko kilka uwag sugerujących, że wybrane zakresy powinny sprawić, że firmy będą stosunkowo łatwe i wydajne w użyciu przy minimalnym wysiłku / inwestycji / przebudowie.

CM
źródło
6
To nie wydaje się tłumaczyć wyboru 168. Nie widzę żadnego powodu, dla którego dekodowanie 10101000 byłoby łatwiejsze niż 10101010 lub 10101001 - w obu przypadkach trzeba dopasować wszystkie 8 bitów, zanim się zorientuje, że adres należy do sieci prywatnej. Intuicyjnie wydaje się bardziej prawdopodobne, że 192.168 był po prostu pierwszym blokiem o odpowiedniej wielkości, który był dostępny, gdy dokonano alokacji, niż szczególny wzór bitowy 10101000 jest w jakiś sposób łatwiejszy do odkodowania niż inne wzorce o tej samej długości.
Henning Makholm
@HenningMakholm, nowoczesny sprzęt sieciowy wykorzystuje wiele układów scalonych ASIC, specyficznych dla aplikacji, które przetwarzają dane wejściowe w sprzęcie. prosty sprzęt może być zaimplementowany w sprzęcie, aby sprawdzić wspólny wzorzec bitów, tak że do jego analizy potrzebna jest tylko jedna instrukcja montażu. Nie twierdzę, że myśli CM są tym, co myśleli projektanci rfc1918 (nie możemy wiedzieć, ponieważ nie umieścili tych informacji), ale jest to intrygująca możliwość.
Frank Thomas
2
@FrankThomas: Czy mówisz, że dopasowanie dla 168 byłoby łatwiejsze do wytworzenia układu ASIC niż dla dopasowania dla innej stałej 8-bitowej? Nie jestem projektantem sprzętu, ale trudno mi w to uwierzyć.
Henning Makholm
2
W protokole nie ma wymogu, aby routery przetwarzały te sieci w jakikolwiek specjalny sposób, więc prawie cała ta odpowiedź jest nieistotna. Pamiętaj, że RFC 1918 nie określił NAT i przewidywał, że adresy te będą czysto wewnętrzne, bez możliwości uzyskania dostępu do Internetu. NAT pojawił się nieco później i nie został tak naprawdę określony aż do RFC 2663.
Michael Hampton
2
@Frank Nie robiłem wiele z Verilog lub VHDL przez długi czas, ale nie sądzę, że twoja logika jest prawdziwa. Przynajmniej oczywisty (i wydajny) sposób, w jaki zaimplementuję równość w sprzęcie, nie dba o żadne wzorce. Istnieje kilka ISA, które mogą generować tylko określone wzorce dla logicznych natychmiastowych nazw (ARMv8, żeby nazwać naprawdę nowy), ale o to chodzi.
Voo,
21

W pierwotnym Internecie sieć oznaczona teraz 10.0.0.0/8 została przydzielona do ARPANET . Zanim IETF i IANA zaczęły przypisywać prywatne zakresy adresów, ARPANET był nieczynny, a jego poprzednia przestrzeń adresowa była dostępna do prywatnego użytku.

Pozostałe dwa zakresy udostępniły sieci klasy B i klasy C dla prywatnych adresów IP, oprócz wyżej wymienionej klasy A.

użytkownik46971
źródło
15

Ponieważ 192 zaczyna się od 11xxxxxx w systemie binarnym, co oznacza sieć klasy C. Jest to najniższa liczba rozpoczynająca się od dwóch kolejnych 1. Klasa A ma 0 jako bity najwyższego rzędu, a klasa B ma 10.

RFC 1918, która definiuje prywatne zakresy adresów IP, nie wyjaśnia tego, więc nie ma ostatecznej odpowiedzi na pytanie, dlaczego wybrali .168 dla 16-bitowego bloku, ale sądzę, że było tak, ponieważ RFC został wydany dopiero w 1996 roku, po dokonaniu już ogromnej liczby rejestracji. ponieważ 192 jest pierwszym 8-bitowym blokiem w przydziałach klasy C, prawdopodobne jest, że wiele adresów zostało już zajętych. 168 mógł być pierwszym dostępnym.

Pamiętaj również, że niektóre z tych wyborów są arbitralne. Zauważ, że zakres rfc1918 klasy B to 172.16 - 172.31? Nie mogę wymyślić przyczyny 172, ale jestem pewien, że wybrali 16 klas B, więc mieli blok 1 miliona sąsiadujących adresów (1048576).

Czasami protokoły są właśnie w ten sposób. ktoś musiał dokonać wyboru i dokonali tego. przez pewien czas jądro Linuksa było ograniczone do maksymalnie 1024 procesorów na system, i ostatecznie musieli wydać łatkę, po tym, jak niektóre superkomputery miały problemy. ktokolwiek zdecydował się użyć 1024, prawdopodobnie nie miał dobrego powodu, aby to zrobić, poza tym, że potrzebował wartości, a 1024 jest ładny i okrągły.

Frank Thomas
źródło
1
Dobra uwaga. Szczególnie w połączeniu z tłem z posta Dartha Androidów i być może dodatkowymi informacjami na temat pierwszych fragmentów innych klas.
Hennes,
9
Ale dlaczego 192.168?
user20574,
14

Jest to pozostałość po Classful Networking , w której zakres adresów IPv4 został podzielony na klasy:

  • Klasa A: 0,0,0,0 - 127.255.255.255 / 255.0.0.0
  • Klasa B: 128.0.0.0 - 191.255.255.255 / 255.255.0.0
  • Klasa C: 192.0.0.0 - 223.255.255.255 / 255.255.255.0
  • Klasa D: 224.0.0.0 - 239.255.255.255 (multicast)
  • Klasa E: 240.0.0.0 - 255.255.255.255 (zarezerwowana)

Od tego czasu przeszliśmy (w 1993 r.) Na bezklasowe routing międzydomenowy , jednak klasy nadal mają swoje dziedzictwo w różnych miejscach (sieć 127 to „home / loopback” - 127.0.0.1 ktoś ?, 192.168.X jest wspólne dla domu routery, sieć 10 jest powszechna na bardziej sprzętowym sprzęcie sieciowym, a multiemisja jest nadal multiemisją.

Darth Android
źródło
16
Pytający wydaje się jednak pytać, dlaczego wybrano te poszczególne sieci w każdej klasie, tak jak ta osoba zrobiła na innej stronie WWW, a ta osoba zrobiła to na innej StackExchange , na którą twoja odpowiedź nie dotyczy. user46971 uderzył w gwóźdź.
JdeBP
1
Ta odpowiedź SE jest tak dobra, że ​​myślę, że może to pytanie powinno zostać zmigrowane, a następnie oznaczone jako duplikat. Naprawdę chodzi bardziej o pracę w sieci niż o ogólne korzystanie z komputera.
trlkly
3

RFC wyjaśnia powód, dla którego wybraliśmy trzy zakresy odpowiednio z „klasy A, B i C”: CIDR został określony, ale nie został szeroko wdrożony. Istniała znaczna ilość sprzętu, który wciąż był „elegancki”.

O ile pamiętam, wybór poszczególnych zakresów przebiegał następująco:

10/8: ARPANET właśnie został wyłączony. Jeden z nas to zasugerował, a Jon uznał to za dobre ponowne wykorzystanie tego „historycznego” bloku adresu. Podejrzewaliśmy również, że „sieć 10” mogła być w niektórych miejscach zakodowana na stałe, więc ponowne użycie jej w prywatnej przestrzeni adresowej zamiast w routingu między AS może mieć niewielką zaletę utrzymania takiej głupoty na poziomie lokalnym.

172.16 / 12: najniższe nieprzydzielone / 12 w obszarze klasy B.

192.168 / 16: najniższy nieprzydzielony / 16 w klasie C blok 192/8.

Podsumowując: IANA przydzieliła to miejsce tak, jak by to miało miejsce w jakimkolwiek innym celu. Jako IANA Jon był bardzo konsekwentny, chyba że istniał naprawdę dobry powód do kreatywności.

Daniel (współautor RFC1918)

Daniel Karrenberg
źródło