如何在 Linux 上使用 ipcalc 計算子網掩碼

已發表: 2022-08-28
藍色背景上的筆記本電腦,顯示 Linux 命令提示符。
fatmawati achmad zaenuri/Shutterstock.com

對大型網絡進行子網劃分可提高安全性、提高性能並以合乎邏輯的方式組織您的網絡。 但有些計算很困難。 Linux ipcalc命令使計劃階段變得容易。

什麼是子網?

子網劃分是一種將大型網絡分解為較小的連接部分的方法。 每個部分稱為一個子網。 您可以選擇組織您的網絡,以便您的銷售團隊使用一個子網,HR 使用另一個子網,客戶支持使用另一個子網,等等。

什麼是子網,它們如何影響我的網絡?
相關什麼是子網,它們如何影響我的網絡?

這有很大的好處。 第一個與安全和控制有關。 沒有子網,一切都是一個大的“平面”網絡。 通過子網劃分,您可以決定哪些子網可以與其他子網通信。 不同的子網有不同的 IP 地址範圍並使用不同的子網掩碼,我們稍後會談到。

您的路由器必須配置為允許來自一個子網的流量到達另一個子網。 而且,由於路由器是受管設備,因此您可以控制不同子網之間允許的流量類型和交互。

子網劃分還可以防止未經授權的用戶和惡意軟件未經檢查地在您的網絡中漫遊。 或者至少,它會減慢他們的速度。 把它想像成一艘潛艇。 如果您在某個部分出現船體破裂,您可以關閉艙壁門,這樣船的其餘部分就不會被淹。 子網就像那些隔板門。

通常,純粹從對大型網絡進行子網劃分的行為會帶來性能優勢。 如果您的網絡足夠大且足夠繁忙,那麼性能提升將來自每個子網內網絡流量的減少。 僅 ARP 流量的下降可能會使事情看起來更具響應性。

當然,一旦您的網絡被劃分,您的 IT 人員就更容易理解、維護和支持您的基礎架構。

IP 地址和子網掩碼

這一切聽起來都很棒,而且確實如此。 但這意味著我們在 IP 尋址方面需要非常特別。 我們需要使用部分 IP 地址作為網絡 ID,部分 IP 地址作為設備尋址。 對於子網,我們還需要為子網使用部分 IP 地址。

如何在 Linux 上使用 ip 命令
相關如何在 Linux 上使用 ip 命令

IPv4 IP 地址使用四個由句點分隔的三位數字。 它被稱為點十進製表示法。 這些數字的範圍是 0 到 255。前兩個數字是網絡 ID。 第三個用於保存子網 ID,第四個數字用於保存設備地址。 這是在簡單的情況下。

數字在計算機內部表示為二進制值序列。 如果子網中的設備太少以至於設備地址編號範圍內有未使用的高位,則這些“備用”二進制位可以由子網 ID 使用。

路由器或任何其他網絡設備如何知道 IP 地址的組成? 什麼表明子網 ID 是否完全包含在第三個數字中,或者它是否偷走了第四個數字的一些高位? 答案是子網掩碼。

子網掩碼看起來像一個 IP 地址。 它是四個三位數字,數字的範圍是從 0 到 255。但它們確實需要以二進制形式考慮。

子網掩碼中的每個二進制位為 1 表示 IP 地址中的相應位指的是網絡 ID 或子網 ID。 子網掩碼中的所有內容均為零表示 IP 地址中的相應位指的是設備地址。

讓我們取一個典型的 IP 地址並為其應用子網掩碼。 子網掩碼的前三個數字分別為 255,第四個數字為 0。

  • IP地址:192.168.1.0
  • 子網掩碼:255.255.255.0 = 11111111.11111111.11111111.00000000

二進制 255 為 11111111。如果子網掩碼位設置為 1,則 IP 地址中對應的位指的是網絡 ID 和子網 ID。 子網掩碼中的255表示IP地址中對應數字中的所有位都是指網絡ID或子網ID。

第四個數字為零,這意味著沒有位被設置為 1。 所以這個數字是指網絡設備地址。 所以我們的子網掩碼 255.255.255.0 表示 IP 地址的前三個數字是網絡 ID 和子網 ID,最後一個數字是為網絡設備地址保留的。

這意味著所有這些的副作用是子網掩碼還決定了 IP 地址中有多少位可用於識別單個設備。 換句話說,子網掩碼確定 IP 地址中的哪些位標識子網以及該子網可以包含多少設備。

更改子網掩碼會對網絡產生巨大影響。 這就是為什麼我們需要把它做好。

ipcalc 命令

ipcalc可以輕鬆計算出正確子網劃分網絡所需的子網掩碼和 IP 地址。 ipcalc已經安裝在 Fedora 36 上。我們必須在 Ubuntu 22.04 和 Manjaro 21 上安裝它。

Ubuntu的命令是:

 sudo apt install ipcalc 

在 Ubuntu 上安裝 ipcalc

要在 Manjaro 上安裝ipcalc ,請使用:

 sudo pacman -Sy ipcalc 

在 Manjaro 上安裝 ipcalc

至少,我們需要將 IP 地址傳遞給ipcalc 。 如果這就是我們通過的所有內容, ipcalc假定子網掩碼為 255.255.255.0。 它提供有關網絡和 IP 地址的信息的讀數。

 ipcalc 192.168.1.0 

ipcalc 檢查 IP 地址的輸出

輸出包含點十進制值及其等效的二進制值。 這就是每一位信息的含義。

  • 地址:192.168.1.0。 我們提供的 IP 地址。
  • 網絡掩碼:255.255.255.0 = 24。子網掩碼。 如果命令行上沒有提供子網掩碼,則使用 255.255.255.0。 24 表示子網掩碼中有 24 位設置為 1。 這些用於網絡 ID 和子網 ID。 這些是從左邊開始計算的。 設置為 1 的位將是一個完整的 1 序列。 其中不能有任何 0 位。 我們知道在二進制中設置為 1 的 8 位給我們十進制中的 255。 所以 24 意味著三組 8 位都設置為 1。在點十進制中,這給了我們 255.255.255。 其餘的位將為 0,給我們 255.255.255.0。 因此,通過計算設置為 1 的位並將其表示為像 24 這樣的十進制數,我們可以傳達整個子網掩碼。 這稱為無類域間路由表示法。
  • 通配符:0.0.0.255。 這在 Cisco 網絡設備中用作允許列表/阻止列表設置的一部分。
  • 網絡:192.168.1.0/24。 這是以 CIDR 表示法描述的網絡 IP 地址和子網。 如果有一個路由器連接到這個子網,它通常會被分配到允許範圍內的最低 IP 地址。
  • 主機最小值:192.168.1.1。 連接到此子網的設備可以擁有的最低 IP 地址。
  • 主機最大值:192.168.1.254。 連接到此子網的設備可以擁有的最高 IP 地址。
  • 廣播:192.168.1.255。 這是廣播地址。 發送到此 IP 地址的網絡數據包會回顯到子網中的所有設備。
  • 主機/網絡:254。您可以連接到此子網的最大設備數。 在這個例子中,我們的設備 IP 地址範圍是 0 到 255,這意味著我們可以識別 256 個不同的 IP 地址(0 到 255)。 但是我們丟失了一個用於網絡 IP 地址(“.0”地址)的 IP 地址,並且我們丟失了一個用於廣播 IP 地址(“.255”地址)的 IP 地址。
  • C 類,專用互聯網:網絡的類別

網絡的類別由用於網絡 ID 和子網 ID 的位數以及一些用於包含網絡類別的位(稱為前導位)表示。

  • A 類:前導位 0。IP 地址以 0 開頭。默認子網:255.0.0.0。 CIDR 表示法是 /8。
  • B 類:前導位 10。IP 地址以 128 開頭。默認子網:255.255.0.0。 CIDR 表示法是 /16。
  • C 類:前導位 110。IP 地址以 192 開頭。默認子網:255.255.255.0。 CIDR 表示法是 /24。
  • D 類:前導位 1110。IP 地址以 224 開頭。默認子網:未定義。 CIDR 表示法是 /4。

更改子網掩碼

ipcalc命令不能更改任何設置,因此我們可以嘗試任何我們想要的東西,而不必擔心影響任何東西。 讓我們看看更改子網掩碼對我們的網絡有什麼影響。

您可以使用 CIDR 或點十進製表示法。 對於 CIDR,空格是可選的。 這些命令都是等效的。

 ipcalc 192.168.1.0/16
 ipcalc 192.168.1.0 /16
 ipcalc 192.168.1.0 255.255.0.0 

要求 ipcalc 將新的子網掩碼應用於 IP 地址的輸出

這大大增加了您可以連接到該網絡的設備數量。 此網絡的網絡設備尋址從 192.168.0.0 開始,到 192.168.255.254 結束。

和以前一樣,我們丟失了一個網絡地址和一個廣播地址。 但這仍然為我們提供了 65,534 種可能的設備。

但它們仍然在一個子網中。

將 ipcalc 與子網一起使用

假設我們要向我們的網絡添加三個子網,容量分別為 20、15 和 80 台主機。 我們可以使用-s (split) 選項,並在其後面加上我們想要的子網大小。

 ipcalc 192.168.1.0 -s 20 15 80 

使 ipcalc 將網絡分成三個子網的命令

第一部分與我們之前看到的相同,其中ipcalc對包含我們在命令行中提供的 IP 地址的網絡進行了分析。 我們的子網將在以下三個部分中進行描述。

ipcalc 關於將網絡分成三個子網的建議

總之,我們得到的信息是:

第一個子網:

  • 子網掩碼:255.255.255.224
  • 第一個設備地址:192.168.0.129
  • 最後設備地址:192.168.0.158
  • 子網容量:30台設備

第二個子網:

  • 子網掩碼:255.255.255.224
  • 第一個設備地址:192.168.0.161
  • 最後設備地址:192.168.0.190
  • 子網容量:30台設備

第三個子網:

  • 子網掩碼:255.255.255.128
  • 第一個設備地址:192.168.0.1
  • 最後設備地址:192.168.0.126
  • 子網容量:126台設備

注意二進制值中的綠色條目。 這些是為子網保留的位。

另外,請注意,由於第一個和第二個子網具有相同的子網掩碼 27,因此硬件字段中的三個位已用於子網指示符。 在第一個子網中,位為 100,在第二個子網中為 101。這種差異允許路由器正確引導網絡流量。

它可以迅速升級

很明顯,在更大或更複雜的網絡中,很容易出現錯誤。使用ipcalc ,您可以確定您的值是正確的。 您仍然需要配置您的網絡,但至少您知道您使用的值是正確的。