我發現很難理解 IP 子網路劃分。
我已經知道如何做的事情:給定 IP 位址和子網路遮罩,我能夠找到子網路中的所有 IP 位址。給定像 145.244.0.0/14 這樣的 IP 位址,我能夠找到子網路遮罩。
我不知道該怎麼做是這樣的練習:將網路(例如 192.168.0/24)分成子網路。每個子網路必須至少包含 10 台主機。前七個子網路是哪幾個?
我該如何尋找此類練習的解決方案?我應該找到子網路位址、子網路遮罩、第一個主機IP、最後一個主機IP 和廣播位址。
請注意,這不是某種家庭作業,我的書中有解決方案,但我不知道它來自哪裡。
謝謝你幫助我。
答案1
對於這樣的問題,您首先要計算出需要多少位元才能覆蓋這麼多主機:
10 個主機2^4 = 16
(減去 2 個用於 ID 和廣播)。32-4 = 28
,因此您將使用 /28 子網路。
利用您對如何在子網路中找到 IP 的了解,您可以從這裡開始向後工作。您也可以透過新增 16 或再次從 IP 向後推算來列出所有子網路:
192.168.0/24 (given supernet)
192.168.0/28
192.168.16/28
192.168.32/28
192.168.48/28
192.168.64/28
...
注意:大多數訓練練習都認為第一個和最後一個子網以及每個子網中的第一個和最後一個 IP 不可用。然而,有一點非標準方法允許他們使用。
答案2
將網路(例如 192.168.0/24)劃分為子網路。每個子網路必須至少包含 10 台主機。前七個子網路是哪幾個?
首先,選擇子網路大小,該大小將導致子網路足夠大以容納 12 個位址(網路 + 10 個主機 + 廣播),但又足夠小以容納當前 /24 前綴內的 7 個子網路。
- 對於 12 個主機位址,至少需要 4 位元(2 3 = 8 < 12,但 2 4 = 16 > 12)。
- 對於 7 個子網,您至少需要 3 位元(2 2 = 4 < 7,但 2 3 = 8 > 7)。
由於您有 /24,即剩餘 8 位元(共 32 位元),因此您只有兩個選擇:
- 3 個子網路位元 + 5 個主機位
- 4 個子網路位 + 4 個主機位
這些選項分別表示 /(24 + 3) = /27 和 /(24 + 4) = /28 子網路。
一般來說,我會選擇/28輕微地計算更容易,因為它將最後一個八位元組精確地分成兩半。 (這在 IPv4 中並不重要,但在 IPv6 中卻變得更容易,因為 IPv6 中的位址以 4 位元十六進位數字書寫。)
現在列出給定 /24 網路內的所有 /27(或 /28)子網路。如果您有 3 個子網路位元和 5 個主機位,請繼續將位址增加 2 5,以便第 4 個八位元位元組為:
- 000x xxxx → 0000 0000 → 0 → 192.168.0.0/27
- 001x xxxx → 0010 0000 → 32 → 192.168.0.32/27
- 010x xxxx → 0100 0000 → 64 → 192.168.0.64/27
- ……
- 111x xxxx → 1110 0000 → 224 → 192.168.0.224/27
這些是(子)網路位址。
答案3
雖然前面的答案都是正確的,但我認為有必要指出我們在這裡所做的隱含假設。 grawity 和 BowlesCR 的答案都假設固定長度的子網路遮罩,但這不一定是真的。例如,以下子網路佈置也可以滿足您的要求:
192.168.0.0/28 <-- NOT /27
192.168.0.16/27
192.168.0.48/27
192.168.0.80/27
192.168.0.112/27
192.168.0.144/27
192.168.0.176/27
這是另一個:
192.168.0.0/28
192.168.0.16/28
192.168.0.32/28
192.168.0.48/26 <-- Oops, /26?!
192.168.0.112/27 <-- How about 27 instead...
192.168.0.144/28
192.168.0.160/28
這些計算往往更加混亂和棘手,因此我們更喜歡在任何地方使用相同的子網路掩碼,這是可以理解的。為了讓我們自己更輕鬆,我們可能會堅持八位元組的界限,然後就到此為止了。例如,將 10.0.0.0/8 分成 7 個子網路:
10.0.1.0/24
10.0.2.0/24
10.0.3.0/24
10.0.4.0/24
10.0.5.0/24
10.0.6.0/24
10.0.7.0/24
最後,另一個需要考慮的因素是我們是否正在尋找包含指定主機數量的最小或最大子網路遮罩。 grawity 的回答暗示了這一點(/27 vs /28)。