幫一間辦公室規劃網路,手上拿到 192.168.0.0 這一段,要接的裝置三百多台。路由器後台那一欄寫著子網路遮罩,多數人只會填 255.255.255.0,因為它順眼。但 /24 這個網段實際能連的機器比 256 少,換成 /22 之後數量又跳了一大截——中間這筆帳只需要兩次減法。
前綴那個數字在數什麼
IPv4 位址一共 32 位。/24 說的是前 24 位用來標網路,剩下 8 位用來標主機。能編出的位址數量就是 2 的「剩餘位數」次方:/24 是 2 的 8 次方共 256 個,/22 剩下 10 位是 1024 個,/27 剩下 5 位是 32 個。反過來寫遮罩,就是把前面那麼多個 1 攤成四段十進位:/24 得到 255.255.255.0,/22 得到 255.255.252.0。
256 個位址為什麼只能連 254 台
因為每個位址區塊的頭一個和最後一個被留作他用:主機位全 0 的那個是網路位址,用來指代這一段本身;主機位全 1 的那個是廣播位址,發給它就等於發給整段。這兩個都不能分配給網路卡,於是可用數公式是「2 的主機位次方再減 2」。
| 前綴 | 主機位 | 位址區塊 | 可用主機 | 點分遮罩 |
|---|---|---|---|---|
| /16 | 16 | 65536 | 65534 | 255.255.0.0 |
| /22 | 10 | 1024 | 1022 | 255.255.252.0 |
| /24 | 8 | 256 | 254 | 255.255.255.0 |
| /27 | 5 | 32 | 30 | 255.255.255.224 |
| /30 | 2 | 4 | 2 | 255.255.255.252 |
減掉的那 2 在 /24 上無關痛癢,在 /30 上就是四個位址裡的兩個——專線兩端各佔一個,正好用完,所以點對點鏈路習慣分 /30,一點也不浪費。
反過來查:要接 N 台裝置該分多大
真正規劃時順序通常是反的:先有裝置數量,再倒推前綴。取最小的主機位數 h,讓 2 的 h 次方減 2 不小於裝置數就行。30 台正好落在 /27 的 30 上,一個餘量也不剩;60 台要 /26 的 62;100 台要 /25 的 126;200 台要 /24 的 254;300 台就得上 /23 的 510;600 台和 1000 台都還能塞進 /22 的 1022。前面那個「三百多台裝置」的需求,本身就決定了 255.255.255.0 不能用。
餘量要往上取一檔而不是剛好卡住:/27 分給 30 台在冊裝置,添兩台印表機就撞上廣播位址;DHCP 池還會替已經下線的裝置繼續佔著位址,實際消耗通常高於台帳數量。
/22 是四個 /24,不是兩個
前綴每多一位,位址區塊就對半分;從 /22 走到 /24 多了 2 位,也就是 /22 等於 4 個 /24。展開更直觀:192.168.0.0/22 涵蓋 192.168.0.0 到 192.168.3.255,可用的從 192.168.0.1 一直排到 192.168.3.254,第三段那 8 位被 0 到 3 全吃進去;而 192.168.0.0/24 只到 192.168.0.255。三百台裝置塞進一個 /24 是裝不下的,/22 的 1022 才留得出餘量。
一段 /22 拆成三塊來用
拿到 192.168.0.0/22 之後,未必要讓它作為一個大廣播域跑到底。按 /24、/24、/23 切開會得到三塊:192.168.0.0/24 涵蓋 0.0 到 0.255,可用 254;192.168.1.0/24 涵蓋 1.0 到 1.255,可用 254;192.168.2.0/23 涵蓋 2.0 到 3.255,可用 510。三塊互不重疊,合起來正好是父段的 0.0 到 3.255,一個位址都不落到外面。
切開有一個必須認下來的代價:塊與塊之間不再第二層互通,跨塊存取都得經三層裝置轉發。廣播域變小是好事,但路由設定從「可以省」變成「必需」,交換器上那些沒配 Vlan 埠的位址就會突然不通。
怕算錯的時候怎麼複核
位數換算這種事,心算錯一位就是半個網段不能用,而後果要等到裝置接進去、發現位址衝突才暴露。我的做法是拿 子網路遮罩計算器 把位址和遮罩丟進去,讓它把網路位址、廣播位址、可用範圍一起列出來當複核,確認第三段真的跨到 3,再往路由裡填。順帶想確認某個對外位址落在哪座城市、哪家電信業者,IP 歸屬地查詢 解決的是同一類「我眼前這個位址到底是誰」的問題。
Q:寫成 255.255.255.0 和 /24 有區別嗎
同一件事的兩種寫法。前者把 32 位攤成四段十進位,後者直接說網路位有幾位。設定介面只收點分格式時,用 32 減前綴長度換算主機位即可。
Q:閘道要佔掉一個可用位址嗎
佔。閘道本身是段內一個真實位址,通常取最小的那個可用位址。它連同網路位址、廣播位址一起,讓 /24 裡實際能分給終端的比 254 還要再少一個。
Q:為什麼有的網段第一個可用位址不是 .1
只要區塊的起點沒有正好落在整段邊界上,網路位址就不是 .0。前綴對不齊時,區塊的起始與結束都由主機位歸零和置一來決定,逐段看範圍比記規律可靠。
Q:遮罩填寬、填窄分別是什麼現象
填窄(規劃本是 /24,卻寫成 255.255.254.0)會把相鄰網段吞進同一個廣播域,兩台本該隔離的裝置開始直接收到彼此的廣播。填寬(規劃是 /23,卻寫成 255.255.255.0)會讓同一網段裡後半段的裝置認定對方在段外,把封包交給閘道,而閘道若沒開代理 ARP,表現就是「能 ping 通閘道卻 ping 不通隔壁座位」。
Q:/29、/30 這類小區塊有什麼用
主機位 3 位是 8 個位址、可用 6 個,夠放一組固定裝置加幾台管理埠;主機位 2 位是 4 個位址、可用 2 個,正好留給點對點鏈路的兩端。給鏈路分區塊時按可用數倒著取最省的那一檔,剩下的位址再劃給別的網段,整體就不容易留下誰也裝不下的碎片。