題 為什麼IETF專門選擇192.168 / 16作為私有IP地址類?


為什麼這樣呢 互聯網工程任務組 (IETF)選擇 192.168/16 成為私有IP地址類而不是別的什麼?

為何具體 192.168/16 和 10/8 和 172.16/12 並不是 145.243/16 例如?

是否有理由選擇這些IP地址作為私有IP地址的標準而不是其他所有可能性?


86
2017-07-18 20:30


起源


tools.ietf.org/html/rfc1918 - Akash
RFC 1918不包含任何解釋 為什麼具體這些  網絡被選中,阿卡什。因此提問者的問題。 - JdeBP
我錯了,這是無法回答的。我幾乎完全回答了你的問題,從RFC中提取。但是1918年並不是回答這個問題最重要的一個...... - Michael Hampton


答案:


我知道誰選擇了這些地址範圍。不幸的是,他已經死了,所以我不能完全問他 為什麼 他選擇了他們,但我可以做出一些明智的猜測。

在20世紀90年代中期,當互聯網真正開始起飛時,網上約會並不多。互聯網的歷史主要存在於 RFC文檔 它定義了它,它可以追溯到 1969年,在ARPANET的開頭。通過它們,您可以觀察互聯網的進展,從一些初級大型機的初出茅廬的網絡,由當時一些最傑出的大腦設計,到我們難以想像的網絡,沒有今天。

這個答案幾乎完全來自那些RFC,而且很大程度上來自我個人的經歷,就像我在這個時代的互聯網上一樣。


首先,IETF沒有選擇這些IP地址範圍或其他任何IP地址範圍。特殊用途地址的分配 目前 和 一直以來 工作的 互聯網號碼分配機構

IANA一直都是 角色而不是一個特定的組織,該角色只有一次易手。目前由ICANN持有,但是 從1972年 直到 他於1998年去世 當該組織被創建以取代他時,IANA基本上是一個人, 喬恩波斯特爾。當然,他首先稱之為角色 套接字號碼的沙皇, 一個 他接受了自己的必要任務 因為它需要完成。他最終得到了幾乎可以分配的每個號碼的沙皇:地址,協議號碼,端口,你的名字,很大程度上是因為他願意這樣做,並且到了互聯網時 向公共商業開放 他已經做了20多年了。他分配了數字和 互聯網註冊 (然後是SRI-NIC,這是 擴大 到了 分佈式的註冊管理機構 全世界)發表他們。

來自SRI的最後一個RFC顯示了Internet地址分配列表 RFC 1166 從1990年開始。這是一個非常冗長的清單,所以將這些數據轉移到在線數據庫也就不足為奇了。將其與其前身進行比較 RFC 1117 顯示互聯網的擴張速度,即使在它向公眾開放的前幾年。

所以,現在我們可以了解地址範圍了 RFC 1918 好一點。這實際上是RFC的第二次修訂;第一個是 RFC 1597,差不多兩年前於1994年3月出版。在其鮮為人知的反駁中, RFC 1627,當代反對私人地址空間的論點被提出來了。 RFC 1627也恰好提到了誰分配了三個地址空間。

它們是由IANA分配的,即Jon Postel,應RFC 1597的作者的要求,如果要相信RFC 1627中的投訴,他是通過反向渠道而不是通常的開放流程來實現的。您可以看到RFC 1597本身直接進入RFC狀態而沒有 通常 前 Internet草案,所以它也是通過反向渠道批准,再次由Postel批准, 誰也是當時的RFC編輯。所以永遠不可能最終回答這個問題。

現在,為什麼他選擇這三個地址範圍,讓我再次關注來自SRI的RFC 1166和1117,它們具有當時的IP地址範圍分配。在這兩個中你都會注意到網絡10仍然分配給了 停業 ARPANET,有 1990年關閉。 Postel以IANA的身份知道該系列產品已不再使用,可以重新分配。我認為Postel選擇了網絡10,因為他知道它可用而且沒有使用。

同樣,我希望Postel選擇192.168,因為在他做出選擇的時候,它是下一個可用的,或幾乎是下一個可用的網絡,從前C類空間分配。這可能無法以某種方式證明,但RFC中顯示的地址分配速度強烈表明,在作出任務時,它們將在1993 - 1994年左右在這個大致附近。 (正在分配192.159中的地址 在1992年。 192.160-192.167中沒有可用於分配的日期,因為這些日期在某些時候重新分配給RIPE。)

回答172.16-172.31這個問題比較困難。我無法找到為什麼選擇這個範圍。據我所知,前B級空間的作業還沒有達到那麼高的水平。我只能推測IANA在飛鏢上擲鏢,擲骰子,或以其他方式將數字從他的幽冥地區拉出來。


最後,關於Jon Postel的說明。儘管這種RFC在沒有(初始)來自社區的情況下完全形成的明顯方式,但我並不是要暗示這一點,並且這不應被解釋為,Jon Postel以某種方式執行了IANA角色的不當或不公平。他是早期互聯網上最強大的影響力之一,每當你瞥見互聯網的幕後機制時,你仍然會感受到今天的影響,但他總是關心做正確的工作。引用 一個紀念

在管理和運營方面沒有榮耀。恰恰相反。人們注意到它做得很糟糕但很少在表現良好時提供讚美。行政職位的人經常成為小官僚。由於工作中獎勵很少,他們人為地將其作為權力的基礎。因此,有些人聽到喬恩稱之為互聯網號碼“沙皇”。他們沒有意識到社區將Jon的名稱歸功於對他為基本的基礎設施服務帶來秩序的感情和深刻的感謝。特別是社區充分利用該術語,Jon充當了信任的角色,而不是個人權力的機會。我們總是知道他的觀點來自合法的信仰,我們從來不必擔心他在某種程度上考慮政治或個人的優勢。我們可能不同意他的觀點,但我們始終知道,首先是關注正確的事情。


86
2017-07-21 02:00



這肯定是喬恩的艱難演出。這是我們得到“Going Postel”這個詞的地方嗎? :-P - tudor
Jon Postel是我長期以來的英雄之一。他總是在後端,讓更著名的科學家們共同努力實現共同的目標。互聯網治理之父。 - Frank Thomas
“在20世紀90年代中期之前沒有太多的在線約會” - 沒有開玩笑,match.com直到1998年才註冊。不是嗎? ......我會得到我的外套。 - Anonymous
一個新鮮的 NANOG帖子 確認它們是普通的“下一個可用”分配。 - grawity


因為它當時有意義嗎? :-D

請記住,當分配私有IP地址範圍時,網絡工程師必須應對幾個問題:當時一些最強大的路由器擁有與今天的袖珍圖形計算器一樣多的CPU功率和RAM存儲 - 以及一些今天的那些仍然繞著yester-years路由器運行(我記得當CPU速度以千赫為單位測量時,RAM存儲以千字節為單位測量,而不是像今天這樣的千兆*!)。互聯網正在快速增長 IPv4的 地址空間是有限的,看起來它將在2000年左右用完,等等。因此,已經分配了許多IP地址範圍,並且他們不希望要求公司回饋IP地址範圍,以便他們可以將它們重新分配給私有範圍。他們還想盡量讓公司盡可能輕鬆地與私人公司合作 - 如果他們不得不投入大量資金來使他們的網絡應對一兩個範圍/ IP,那麼很少有公司會合作。這里和那裡的地址。

這部分無疑是我的猜測,但主要基於建立網絡的邏輯和經驗。他們可能收集了所有未分配的網絡號碼的列表,並尋找符合所需標準的區別模式:一個單一的類A(網絡號中具有高位0xxxxxxx二進制的網絡號是A類),16類B(網絡號10xxxxxx二進制)和256類C(網絡號110xxxx二進制)地址。 B類和C類地址都應該是 連續,以及。 (16和256的選擇可能是部分任意的 - 在做了這些東西一段時間之後,你傾向於開始考慮2的冪 - 可能部分是因為它是可以找到的 可得到 預訂。)

由此,他們可能從那些可用地址中選擇最終範圍,這將允許路由器製造商對地址進行簡單的逐位測試,以確定是否路由/轉發/丟棄數據包。我也可以看到有些屬性的位模式有助於構建緊湊的NAT表。 10.x.y.z地址很明顯,因為它只需匹配一個網絡號。 172.16.yz到172.32.yz的模式是,如果構建一個低四位交叉引用高位四位的表,整個範圍將填充表的一行,而不會分成兩行 - 也就是說,第二個八位字節總是0001xxxx(二進制)。在192.168.y.z中,168的二進制是10101000 - 也就是說,低三位始終為0,高五位交替為1和0。

雖然這些可能看起來是隨意的,但如果您曾經進行過任何機器語言編程或微代碼解碼,這些模式允許您只測試幾個位來進行私有/公共確定,而無需先解碼整個IP地址。這將允許路由器快速處理此類地址,而無需在內存中維護大量查找表。因此,路由器可以將專用網絡數據包推回到專用網絡,而無需首先對其進行完全解碼,從而削弱了路由器和網絡速度的寶貴時鐘週期。

如果你很好奇,請查看串行數據傳輸的方式(如a UART處理數據的每個字節:它只能以控制時鐘的速度一次發送/接收一個比特,並且通常將數據用於奇偶校驗和“同步”比特等附加比特。嘗試一次計算整個字節上的奇偶校驗這樣的事情太費時了,所以相反,它會在每個時鐘週期內保持一個特殊的位。該位被發送/接收寄存器移入/移出的下一位修改。一旦發送/接收整個字節,奇偶校驗位中剩餘的值就已經正確,無需重新計算。這個概念或多或少是“在你做其他事情的同時完成工作”,在串行芯片的情況下,它在發送/接收的同時計算奇偶校驗。對於路由器/交換機,如果它已經解碼了IP地址,你可以獲得更高的性能,因為地址的每一位都來自線路,並且可能已經知道在它從網絡讀入之前接下來要發送數據包的位置電纜!

此外,基於25年的這種工作,這只是我的邏輯/猜測。我不知道我們是否會知道所選最終數字背後的確切原因,因為我不記得任何論文/ RFC /等。永遠給出完整的理由。我所看到的最接近的只是一些評論,表明所選擇的範圍應該使公司能夠以最小的努力/投資/重新設計使用它們相對容易和有效。


29
2017-07-19 09:37



這似乎並不能解釋168的選擇。我看不出有什麼理由為什麼10101000比10101010或10101001更容易解碼 - 無論哪種情況都需要匹配 全部8 在一個人知道該地址屬於專用網絡之前的位。直觀地,似乎更有可能192.168只是在進行分配時可用的第一個適當大小的塊,而不是特定位模式10101000以某種方式比相同長度的其他模式更容易解碼。 - Henning Makholm
@HenningMakholm,現代網絡設備使用許多ASIC,專用集成電路,在硬件輸入上執行處理。可以在硬件中實現簡單的寄存器以檢查公共位模式,使得僅需要一個彙編指令來分析它。我不是說CMs的想法是rfc1918的設計者所想的(我們不知道因為他們沒有包含那些信息),但這是一個有趣的可能性。 - Frank Thomas
@FrankThomas:你是說匹配168更容易產生ASIC電路比匹配其他8位常數會更容易嗎?我不是硬件設計師,但我覺得很難相信。 - Henning Makholm
路由器中沒有要求路由器以任何特殊方式處理這些網絡,因此幾乎所有這些答案都是無關緊要的。請記住,RFC 1918確實如此 不 指定NAT,並設想這些地址純粹是內部的,根本無法訪問互聯網。 NAT稍後出現,直到RFC 2663才真正指定。 - Michael Hampton
@Frank我沒有用verilog或VHDL做太多時間,但我不認為你的邏輯是真的。至少關於如何在硬件中實現相等性的明顯(和有效)方式並不關心任何模式。有些ISA只能為邏輯中介生成特定的模式(ARMv8可以命名一個非常新的模式),但這就是它。 - Voo


在裡面 原始的互聯網,現在表示為10.0.0.0/8的網絡被分配給了 ARPANET。當IETF和IANA開始分配私有地址範圍時,ARPANET已經不存在,其以前的地址空間可供私人使用。

除了上述A類之外,另外兩個範圍使得B類和C類網絡可用於私有IP。


20
2017-07-18 23:33





因為192以二進制11xxxxxx開頭,表示a C級 網絡。它是從連續兩個1開始的最小數字。 A類的最高位為0,B類為10。

RFC 1918 定義私有IP範圍,在這一點上沒有說明,因此沒有明確的答案為什麼他們為16位塊選擇.168,但我認為這是因為RFC直到1996年才發布已經發生了大量的註冊。因為192是C類分配中的第一個8位塊,所以很可能已經採用了許多地址。 168可能是第一個可用的。

還要記住,其中一些選擇是任意的。請注意,rfc1918 B類範圍是172.16 - 172.31?我想不出172的原因,但我很確定他們選擇使用16個B類,所以他們有一個100萬個連續地址的塊(1048576)。

有時協議就是這樣。有人必須做出選擇,他們就做到了。有一段時間,linux內核被限制為每個系統最多1024個CPU,最終他們不得不在一些超級計算機出現問題後發布補丁。誰決定使用1024可能沒有充分的理由這樣做,除了他需要一個值,而1024是好的和圓的。


14
2017-07-18 20:33



好點。特別是結合Darth Androids帖子的背景,以及其他類別的第一部分的一些額外信息。 - Hennes
但為什麼192.168? - user20574


這是一個殘餘 有類網絡,其中IPv4地址範圍被細分為類:

  • A類:0.0.0.0 - 127.255.255.255 / 255.0.0.0
  • B類:128.0.0.0 - 191.255.255.255 / 255.255.0.0
  • C類:192.0.0.0 - 223.255.255.255 / 255.255.255.0
  • D類:224.0.0.0 - 239.255.255.255(多播)
  • E級:240.0.0.0 - 255.255.255.255(保留)

我們已經(1993年)繼續前進 無類別域間路由但是這些課程仍然在各個地方都有他們的遺產(127網絡是“家庭/環回” - 127.0.0.1任何人?,192.168.X是家庭路由器常見的,10網絡在更“企業”的網絡硬件中很常見,並且多播仍然是多播的。


13
2017-07-18 20:41



然而,提問者似乎在問,為什麼 這些特別的 選擇每個班級的網絡,如 這個人在另一個WWW網站上做過 和 這個人在另一個StackExchange上做了,你的答案沒有解決。 user46971擊中了頭部。 - JdeBP
SE的答案非常好,我想也許這個問題應該遷移,然後標記為重複。它實際上更多的是關於網絡而不是一般的計算機使用。 - trlkly


RFC解釋了為什麼我們選擇“A,B&A”三個範圍的原因 C“分別為:CIDR已被指定但尚未廣泛使用 實現。那裡有大量的設備 仍然是“有階級的”。

據我所知,特定範圍的選擇如下:

10/8:ARPANET剛剛關閉。我們其中一個人建議和 Jon認為這是對這個“歷史”地址塊的良好再利用。我們 還懷疑“網10”可能在某些地方被硬編碼, 所以重新使用它來用於私有地址空間而不是在AS間路由中 可能具有保持這種愚蠢局部的輕微優勢。

172.16 / 12:B級空間中未分配的最低/ 12。

192.168 / 16:C類塊192/8中未分配的最低/ 16。

總結:IANA分配這個空間就像它對任何空間一樣 其他目的。作為IANA,Jon非常一致,除非有一個 真正有創意的理由。

Daniel(RFC1918的合著者)


2
2017-10-07 13:50