為什麼 IP 位址顯示為 172.18.0.150/24?

為什麼 IP 位址顯示為 172.18.0.150/24?

為什麼列出的 IP 位址帶有此符號 172.18.0.150/24?我的意思是IP是172.18.0.150只是為什麼它有/24?那麼無論哪個子網路都應該是其他人擔心的,不是嗎?

3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether f8:b1:56:ba:ae:ee brd ff:ff:ff:ff:ff:ff
inet 172.18.0.150/24 brd 172.18.0.255 scope global eth0

如果我想在另一台電腦上的某個介面 (ethX) 上存取 172.18.0.150,我可以在該電腦的路由表中新增:

ip 路由新增 172.18.0.150/25 dev ethX
或者
ip 路由新增 172.18.0.150/24 dev ethX
或者
ip 路由新增 172.18.0.150/23 dev ethX
或者
ip 路由新增 172.18.0.150/8 dev ethX

正確的?那麼 /24 與我的 NIC 位址有什麼關係呢?看起來它只與路由有關,不是嗎?那麼為什麼要在 ip addr 中列出它呢?

172.18.0.150/24 與 172.18.0.150/8 在同一個「網路」上還是這兩個完全不同的 IP 位址?

答案1

一些 IP 位址基礎知識

IP 位址在內部表示為 32 位元值。最上方的 N 位元標識網絡,其餘數字標識網絡中的主機。

讓我們來看兩個範例IP,首先看32位元:

10101100000100100000000010010110
10101100000100100000000110010110

您可以透過將 IP 分成 8 位元組(位元組)並以十進制格式寫入每個二進制,以更易於閱讀的方式重寫 IP:

分組:
10101100 00010010 00000000 10010110
10101100 00010010 00000001 10010110
分組與十進位: 1072.18.001 10010110分組與十進位:
1772.18.00150
10.150 .

現在的問題是「這些IP位址是否在同一網路上」?這取決於網路配置。我們以網路遮罩為例

11111111 11111111 11111111 00000000

(那些用於網絡,零用於主機。)

將其放在兩個 IP 上,您會發現兩個 IP 位址都位於不同的網路上。如果遮罩為 255.255.0.0,則它們將位於同一網路上。

不同網路: 11111111
11111111 11111111 00000000 10101100
00010010 00000000 10010110 10101100 0001000 10010110
10101100 0010000 101010 1 11111111 00000000 00000000 10101100 00010010 00000000 10010110 10101100 00010010 00100011



與 IP 位址一樣,網路遮罩也可以用十進位點分格式書寫:255.255.255.0 或 255.255.0.0。如果您現在需要編寫完整的 IP 和網路掩碼,例如 172.18.0.150/255.255.255.0 或 172.18.0.150/255.255.240.0,則需要編寫很多內容。較短的寫法是不給網路掩碼,而是給網路遮罩中1的數量:172.18.0.150/24或172.18.0.150/20。如您所知,1 始終是最高位,因此“/24”或“/20”的含義很清楚。

一些路由基礎知識

如果你還沒讀過我的關於MAC位址使用的回答您可能現在就想這樣做。

簡而言之:如果電腦發送IP封包,他先檢查目標IP位址是否與電腦本身(來源IP)在同一網路上。如果是這樣,電腦可以將資料包直接發送到網絡,並且目標電腦可以接收它。如果目標IP不在同一網路上,則電腦無法直接到達目標,而是需要將封包傳送到下一個路由器。路由表告訴路由器應連接哪個網路的路由器(例如「如果網路 172.18.0.0/24,則路由器 1.1.1.1」)。該路由器將再次檢查是否可以直接到達目標 IP,或者是否需要將封包轉送到下一個路由器。

如果您想查看計算機的路由表,可以使用ip route

請記住,在接收方,網路遮罩不相關。 172.18.0.150/24 或 172.18.0.150/8 都是 172.18.0.150,如果電腦收到 172.18.0.150 的資料包,他將消耗它。網路遮罩僅在傳送方使用。如果電腦A 將位址為aaaa/n 的封包傳送到位址為bbbb/m 的電腦B,則傳送者A 將比較來源位址aaaa 的最高n 位元和bbbb 的最高n 位,如果兩者相等,則aaaa和bbbb位於同一網路(且n必須等於m)且封包可以直接傳送。如果不相等,則網路不相等(不介意 n 可能不等於 m),且封包必須傳送到將轉送封包的路由器。

了解“ip 路由”輸出

我們以一台有兩台網路卡的計算機為例:

預設透過 192.168.178.3 dev eth1 原型靜態指標 1024
10.0.0.0/8 透過 172.16.1.1 dev eth0
169.254.0.0/16 dev eth1 範圍連結指標 1006
1707.0.0735 原型指標 1006170735017357505035 30575.
。 178.0/24 dev eth1 proto 核心範圍連結src 192.168.178.21

第 3 行到第 5 行源自 NIC ( ip addr) 上設定的 IP 位址。它們告訴計算機,如果要發送的資料包與網路 172.16.0.0/16 匹配,則應在 eth0 上發送(在我的例子中,該資料包配置為 IP 位址 172.16.126.31)。第二行是我新增的具體路線。它表示發送到 10.0.0.0/8 的資料包應發送到 eth0 上的 172.16.1.1。第一行給出了預設網關/路由器,用於與任何其他給定網路不匹配的資料包。

誰決定什麼是網路?

在頂層RFC3330定義並非所有 IP 位址都可廣泛使用,但某些範圍保留用於特殊目的。網路 127.0.0.0/8 就是一個例子。此範圍中最突出的位址是 127.0.0.1(名稱:localhost),它標識您自己的電腦。當然,這個 IP 僅在您自己的電腦上有用,因為發送到該網路的每個資料包都不會離開您的電腦。取得所有可能的 IP 位址並刪除保留的範圍,您仍然擁有可用的網路池。這個大池由 ICANN 管理。下一個層級是五個區域網路註冊管理機構(如 RIPE NCC)。他們從 ICANN 獲取 IP 位址範圍並將其出售給自己的客戶 - 本地互聯網註冊管理機構。這些將它們出售給最終客戶(例如公司)。

如何分割完整的 IP 位址範圍由池中的每個管理員決定。假設您是 ICANN,管理範圍 50.0.0.0/8-100.0.0.0/8。如果現在 RIPE NCC 要求提供一些 IP 位址,您可以給他們 50.0.0.0/16 或 50.0.0.0/8 或 50.0.0.0/8 到 60.0.0.0/8。 RIPE NCC 和本地網路註冊管理機構也是如此。他們可以提供大型或小型網路。在過去的美好時光,註冊機構非常不情願,因此仍然存在擁有廣泛地址範圍的大型大學或公司,而他們從未完全需要這些地址範圍。一些大學有 /8 網絡,因此它們有 24 位元用於主機。這意味著它們可以對超過 1600 萬台電腦進行尋址。如果他們只有幾千台計算機,則意味著為該客戶保留了數百萬個 IP 位址但從未使用過 - 多麼浪費。所以最近你不再獲得大範圍了,你必須爭論是否真的需要大範圍。

無論如何,無論您決定如何出售 IP 位址範圍(網路),您都必須記住,互聯網中的大型路由器需要知道如何存取幾乎所有現有網路。如果您出售非常小的網絡,則最終可能會發現 10.0.0.0/24 和 10.1.0.0/24 位於歐洲,10.0.1.0/24 和 10.1.1.0/24 位於亞洲,10.0.2.0/24 和 10.1.2.0 /24 在非洲。這意味著路由器的路由表中最終會出現許多小型網路條目。如果您將 10.0.0.0/16 分配給歐洲,10.1.0.0/16 分配給亞洲,10.2.0.0/16 分配給非洲,則路由表中將只有 3 個較大網路的條目。

但這不是我們的問題,而是網路註冊管理機構的問題。不完全是,因為...

我何時以及如何需要設定網路?

如果您執行公司的路由器,您可能會得到一個範圍 40.41.0.0/16,並根據需要將這些 IP 位址提供給您的電腦。但在這種情況下,所有電腦應該位於同一實體網路上(之間沒有路由器)。這可能會為大型網路帶來糟糕的效能,因此您可能需要拆分網路。例如,如果您有兩棟建築物,則可以將 40.41.0.0/17 分配給一號樓,將 40.41.128.0/17 分配給二號樓。

私有IP位址

如果您使用的是寬頻路由器或公司的路由器,您可能會看到專用網路 IP 位址,例如 172.16.0.0/12。你給的IP位址(172.18.0.150)就是這樣一個私有IP位址(你可以很容易地用你關於網路遮罩的新知識來檢查)。如果您從本機 Internet 註冊表取得了 N 個公用 IP 位址(對於正常 ISP N=1),但有 M>N 台裝置需要 IP 位址,則可以使用這些位址。在這種情況下,路由器有一個公用 IP 位址(用於進出網際網路的所有流量)以及一個具有私人 IP 位址的私人網路。在您的情況下,路由器僅取得專用網路 172.18.0.0/24 並將該網路的 IP 位址提供給您的每台 PC。

但如果其他人的路由器也佔用 172.18.0.0/24 怎麼辦?令人驚訝的是這不是問題。這是因為 172.16.0.0/12 是私有位址範圍。您永遠不會在公共互聯網中看到該範圍的 IP 位址。如果您向網際網路傳送封包,並指定 172.18.0.150 作為來源位址,則路由器會將 172.18.0.150 替換為 ISP 為您提供的公用 IP 位址。如果路由器收到發送到公用 IP 位址的封包,它會確定應將封包傳送到您的哪台計算機,並將目標 IP 位址變更為您電腦的專用網路 IP 位址。

答案2

當然,您可以讓每台主機與路由器建立點對點連線。然而,這樣一來,所有流量都必須通過路由器。顯然,這是非常低效率的。

如果您告訴您的電腦「從192.168.0.1 到192.168.0.254 的所有IP 位址都可以透過此連結直接存取」(192.168.0.X/24),它可以使用更有效率的本地網路傳輸直接與網路上的目標進行通訊。

答案3

這從來不是別人的擔憂。

了解 IP 位址所屬的子網路是一件好事。

假設您正在使用以下方式劃分子網/25。在這種情況下172.18.0.127,並且172.18.0.128似乎位於同一子網上,因為它們是連續的,但它們位於不同的子網

有必要將地址指定為172.18.0.127/25172.18.0.128/25。所以你知道他們每個人在哪裡。

這是一個簡單的範例,但如果再次對範圍172.18.0.128 to 172.18.0.255進行子網劃分,情況可能會變得更糟,例如使用/26

答案4

斜線後面的部分是要使用的子網路遮罩位數。例子:

192.168.1.1/24 is 192.168.1.1 255.255.255.0

255.255.255.0正在使用24建立32 bits子網路。

在二進制中它看起來像這樣:

11111111.11111111.11111111.00000000

所以,如果你想知道你是誰,你是 172.180.0.150 下的某個人,但又是哪一個,以及如何找到你......等等。

相關內容