總覽與定位
IP 位址是網路層的「門牌號」;子網路遮罩決定哪些位元是「街道」、哪些是「房號」。
我們在分層模型篇建立了 TCP/IP 分層心智模型,知道網路層(Internet Layer)用 IP 位址回答「封包要送到哪一台主機」。但光有 32 位元的數字還不夠——你必須知道:
- 這台主機跟我是同一個子網路嗎?(同網段可在區網直接送達;跨網段要把封包交給 Gateway)
- 這個子網路從哪到哪?(網路位址、廣播位址、可用主機範圍)
- 拿到一塊大網段時,怎麼劃成多個較小的子網給不同機房/服務?
- 機房新上架一台伺服器,IP、遮罩、Gateway 該填什麼?填完怎麼驗?
本篇聚焦 IPv4 定址與子網路劃分(Subnetting)——這是後續「區域網路與設備」「NAT/Port Forwarding」的先備地基。貫穿情境:新機房上架一台伺服器,你要手動設定固定 IP、子網路遮罩與預設閘道;同時學會把網管給的大網段切成合用的小塊。
承接「TCP/IP 分層模型」的網路層(L3)細節。本篇回答「IP 怎麼解讀、遮罩怎麼算、大網段怎麼切」。讀本篇只需記住行為:同網段=本機直送、跨網段=交給 Gateway。文中若提到 ARP(用對方 IP 問出對方網卡 MAC 位址,才能在區網送達)或 L2,只需懂這一句;Switch/MAC/ARP 協定細節見後續「區域網路與設備」,不阻礙你手算遮罩。公私有 IP 與 NAT 留給「NAT、公私有 IP 與 Port Forwarding」。
IPv4 位址結構
32 位元、四組八位元、點分十進位——看懂這三件事就能讀懂任何 IP。
IPv4 位址是 32 位元(bit)的整數,慣例切成四段、每段 8 bit,用點分十進位(dotted decimal)書寫,例如 192.168.1.10。每一段範圍 0–255,因為 28 = 256。
| 表示法 | 範例 | 說明 |
|---|---|---|
| 點分十進位 | 192.168.1.10 | 人類可讀,設定檔最常見 |
| 二進位 | 11000000.10101000.00000001.00001010 | 子網路運算的本質形式 |
| 32 位元整數 | 3232235786 | 程式內部常用 inet_aton 轉換 |
| CIDR 前綴 | 192.168.1.10/24 | IP + 遮罩長度,路由表標準寫法 |
面試常考:把 10.0.0.0/8 翻成二進位,前 8 bit 是網路、後 24 bit 是主機——傳統可用主機數 224 − 2(扣網路位址與廣播位址;/31、/32 有例外,見後文)。
早期 IP 用類別定址(Classful):A/B/C 類分別固定前 8/16/24 bit 當網路。問題是粒度太粗——一個 Class C 永遠 254 台,小公司浪費、大公司不夠,中間沒有彈性。現代全面改用無類別定址(Classless),靠任意長度的前綴(CIDR)彈性切分。
| 面向 | Classful(已過時) | CIDR(現行) |
|---|---|---|
| 網路/主機切點 | 只能 8/16/24 | 任意 /0–/32 |
| 範例 | 一個 Class B = 整塊 /16 | 可把 /16 切成多個 /24、/26… |
| 面試態度 | 知道名詞、知道為何被淘汰 | 實際計算與規劃都用 CIDR |
0.0.0.0(介面還沒拿到正式 IP 時的占位)、127.0.0.0/8(本機迴環,例如 127.0.0.1 測本機服務)、以及每個子網路的網路位址(主機段全 0)與廣播位址(主機段全 1)都不可指派給一般主機。若伺服器出現 169.254.x.x,多半是 DHCP 失敗後的自動私有位址,不該當正式機房位址。
機房與家用常見 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16——這些是私有位址,不能直接在公網路由。本篇只要求你認得它們常出現在內網;「為什麼能上網、NAT 怎麼轉」留給後續「NAT、公私有 IP 與 Port Forwarding」。
子網路遮罩與 CIDR
遮罩是一面「篩子」;斜線後的數字就是「前面幾個 bit 是網路」。
子網路遮罩(Subnet Mask)跟 IP 等長(32 bit),由連續的 1(網路部分)與連續的 0(主機部分)組成。CIDR把同一件事寫成 IP/前綴長度:192.168.1.10/24 等於遮罩 255.255.255.0(前 24 個 bit 為 1)。
核心運算只有一個:網路位址 = IP AND Mask。下面用同一組數字把位元攤開(藍=網路位、橘=主機位):
192.168.1.10 → 11000000.10101000.00000001.00001010255.255.255.0 → 11111111.11111111.11111111.00000000192.168.1.0 → 11000000.10101000.00000001.00000000(網路位址)作業系統在送出每個封包之前都會做一次這種運算,本質是問:「對方跟我是同一條街道嗎?」
- 用自己的 Mask,把自己的 IP AND 出網路前綴。
- 用同一條 Mask,把目的 IP AND 出網路前綴。
- 兩個前綴相同 → 同子網路 → 在區網直接送達(需要時用 ARP:用對方 IP 問出對方 MAC)。
- 前綴不同 → 跨子網路 → 把封包交給預設閘道(Gateway),由路由器往外轉。
遮罩因此決定三件實務上最重要的事:
- 同網段判斷:上面的四步決策。
- 可用主機範圍:主機段全 0 是網路位址、全 1 是廣播位址,中間才是可指派給主機的位址(傳統規則)。
- 子網路大小:主機 bit 數 h,傳統可用主機數 = 2h − 2。
| 遮罩(點分) | CIDR | 主機 bit | 傳統可用主機 | 常見用途 |
|---|---|---|---|---|
255.255.255.0 | /24 | 8 | 254 | 典型辦公/機房區網 |
255.255.255.128 | /25 | 7 | 126 | 把 /24 對半切 |
255.255.255.192 | /26 | 6 | 62 | 機房小網段 |
255.255.255.252 | /30 | 2 | 2 | 兩台設備互連(點對點) |
255.255.255.255 | /32 | 0 | 1(特例) | 只指向單一主機的路由 |
255.255.0.0 | /16 | 16 | 65534 | 大內網塊 |
機房情境:若網管給你 10.20.30.0/26,整段只有 62 台可用主機——規劃 IP 時別超出範圍。上表可當「前綴 ↔ 點分遮罩」速查。
直覺版:把主機位全部設成 1,就是廣播位址。以 192.168.1.0/24 為例,最後 8 bit 全 1 → 192.168.1.255;往這裡送的封包,同子網路內所有主機都會收到。等價公式:廣播 = 網路位址 OR(遮罩的反碼)。
面試預設答 2h − 2;例外:/32 是單一主機(1 個位址);/31(RFC 3021)在「兩台路由器互連」可把兩個位址都當主機用。實務與面試仍以 /30(2 個可用)最常見——可當選讀加分項。
合法遮罩的二進位必須是 111…1100…00,例如 255.255.255.240(/28)合法,255.255.255.129 不合法——中間不能出現 0 夾在 1 之間。設定錯誤的遮罩會導致主機無法判斷同網段。雲端防火牆規則(例如 AWS Security Group:依 CIDR 允許/拒絕流量)與路由表幾乎都用 CIDR 書寫,比點分遮罩更不易寫錯長度。
子網路劃分:把大塊切成小網
Subnetting 的本質:加長前綴 → 主機空間變小 → 得到更多、更小的網段。
假設網管給整棟機房 10.20.30.0/24(256 個位址、傳統 254 可用),你需要拆成 4 個同等大小的網段給「Web/DB/管理/備援」。做法是再借用 2 個主機 bit 當「子網號」:前綴從 /24 變成 /26。
為什麼是 2 bit?因為 22 = 4 個子網。每個 /26 的主機 bit = 6,傳統可用 = 26 − 2 = 62。
對齊(alignment)很重要:子網路的起始位址必須是「區塊大小」的整數倍。每個 /26 的區塊大小 = 2h = 64(含網路與廣播),因此合法起點是 .0、.64、.128、.192——不能隨手從 .10 開一個 /26。起點每次加的是區塊大小 64,不是可用主機數 62。
快速驗算某一台機器落在哪一段:看最後一個八位元組(第四段,也叫 octet)落在哪個區間。例如 10.20.30.80 → 落在 .64–.127 → 10.20.30.64/26(DB 網段)。用運算驗證:10.20.30.80 AND 255.255.255.192 = 10.20.30.64。
| 步驟 | 做什麼 | 本例結果 |
|---|---|---|
| 1 | 確認母網段與需求份數 | /24 切 4 份 |
| 2 | 算子網 bit:2s ≥ 份數 | s = 2 |
| 3 | 新前綴 = 原前綴 + s;查表得點分遮罩 | /26 → 255.255.255.192 |
| 4 | 區塊大小 = 2h(含網路/廣播) | 64 |
| 5 | 列出對齊後的起點(每次 + 區塊大小) | .0 / .64 / .128 / .192 |
練習:把同一塊 10.20.30.0/24 切成 8 個等大子網 → 借 3 bit → /27,區塊大小 32,起點 .0/.32/.64/.96/.128/.160/.192/.224;每個傳統可用 30 台。遮罩心算即可:主機 bit=5 → 最後一段為 256 − 32 = 224,即 255.255.255.224。
寫 10.20.30.10/26 當「網段」不合法——正確寫法是該位址所屬區塊的網路位址,例如 10.20.30.0/26。許多雲端主控台會自動正規化;手算時請先 AND 出網路位址再書寫。
實務上各部門需要的主機數不同,可以切成大小不一的子網(Variable Length Subnet Mask)。原則相同:每個子網各自選足夠的主機 bit、且區塊彼此不重疊、各自對齊。面試先把「等大切 /24→/26」講清楚,再提 VLSM 即可。
Gateway 與預設閘道
同網段直送、跨網段交給 Gateway——它是子網路通往外界的「出口路由器」。
當主機要送封包給另一個 IP,作業系統先做同網段判斷(就是第 3 節那四步,這裡把前兩次 AND 併成一步):
- 目的 IP AND 子網路遮罩,跟自己的 IP AND 遮罩比較。
- 相同 → 目的在同子網路,必要時用 ARP 找對方 MAC,在區網直接送達。
- 不同 → 封包交給預設閘道(Default Gateway),通常是子網路內某台路由器的介面 IP。
同一對主機、遮罩不同,結論可能相反——這是面試最愛考的對照:
| 主機 A | 主機 B | 判斷 |
|---|---|---|
192.168.1.10/24 | 192.168.1.200/24 | 同網段(都落在 192.168.1.0) |
192.168.1.10/25 | 192.168.1.200/25 | 不同網段(.10→.0;.200→.128) |
標準題兩端用同一條遮罩來比。若兩台遮罩設得不一致,每台會用自己的遮罩獨立判斷——可能出現「A 認為同網段直送,B 認為要走 Gateway」的單向不通。
機房上架伺服器時,網管通常會給你三個值(完整設定還常有 DNS,本篇聚焦這三件套):
| 設定項 | 範例(落在第 4 節切出的 DB /26) | 角色 |
|---|---|---|
| IP Address | 10.20.30.80 | 這台主機在子網路內的門牌 |
| Subnet Mask | 255.255.255.192(/26) | 界定同網段範圍 |
| Default Gateway | 10.20.30.65 | 子網路出口,須與主機同網段 |
Gateway 必須跟主機在同一子網路內——你把 Gateway 設成不同網段的 IP,主機永遠找不到它。
- 確認 Gateway 落在該網段的可用主機範圍(本例 .65–.126),且不是網路/廣播位址。
- 寫入 OS 網路設定(或 cloud-init/網卡設定檔)並套用。
- 先
pingGateway;通了再 ping 外網 IP 或內網其他服務。 - 若 Gateway 不通:多半是 IP/遮罩/Gateway 三者不在同一網段,或網路線/VLAN 接錯(後者見設備篇)。
Gateway 常是網段內第一個可用位址(本例 .65、家用常是 .1)——這是慣例不是協定;重點是它必須在可用範圍內且確實有路由器在聽。
網管給的完整設定常還有 DNS Server。本篇聚焦 IP/Mask/Gateway 三件套與子網路運算;名稱解析細節見後續 DNS 專篇。
靜態 IP 與 DHCP(上架取捨)
伺服器要位址固定;筆電與訪客用自動分配——依角色取捨,並防衝突。
DHCP讓主機開機時自動取得 IP/遮罩/Gateway/DNS;靜態 IP則手動寫死,或用 DHCP Reservation(依 MAC 保留同一 IP)。伺服器、DB、路由器通常要可預測的位址;筆電、訪客走 DHCP 即可。本篇上架三件套仍是 IP/Mask/Gateway;DNS 是常見的第四個值,細節不在本篇範圍。
| 面向 | 靜態/Reservation | DHCP 動態 |
|---|---|---|
| 適用 | 伺服器、基礎設施 | 終端、訪客 |
| 風險 | 人工填錯 → IP 衝突 | DHCP 掛掉 → 新主機無位址 |
兩台主機設了相同 IP,後開機者常偵測到衝突而通訊異常。機房應維護 IP 清冊,或改用 Reservation 降低手填錯誤。
互動 · 子網路計算器
輸入 IP 與遮罩,看位元切分、網段範圍,並用第二個 IP 驗證同網段判斷。
對齊本篇三個核心動作:算出網段、看懂位元、判斷是否同網段。可先點情境預設,再改數字觀察變化。
預設模式:A、B 用同一遮罩(面試標準題)。若故意填不同遮罩,會分別顯示「A 視角/B 視角」——用來理解誤設定,不是標準答法。
| 網路位址 | — |
| 廣播位址 | — |
| 第一個可用主機 | — |
| 最後一個可用主機 | — |
| 可用主機數 | — |
| CIDR 表示 | — |
| A 位址合法性 | — |
| 同網段判斷(A vs B) | — |
255.255.255.0 或 /24。建議操作:先看「家用 /24」A 與 B 同網段;再切「/25 切開」——同一對 IP 會變成不同網段。這就是遮罩長度改變路由行為的具體感覺。
面試與常見誤區速查
高頻子網路題、易混清單、一句話收尾。
高頻問答(點擊展開)
Q1 /24 子網路有幾個可用 IP?▸
主機 bit = 32 − 24 = 8,理論 28 = 256 個位址,扣掉網路位址與廣播位址,可用 254 個。面試記公式:2h − 2(再記得 /31、/32 例外)。
Q2 怎麼判斷兩台主機是否同網段?▸
兩台 IP 分別與同一子網路遮罩做 AND,結果相同即同網段。例如 192.168.1.10/24 與 192.168.1.200/24 同網段;若雙方都是 /25,則 .10 與 .200 分屬 .0 與 .128,不同網段。
Q3 Gateway 可以設成網路位址或廣播位址嗎?▸
不行。Gateway 必須是可用主機範圍內的一個合法單播位址。設成網路位址或廣播位址會導致無法正常轉發。
Q4 /30 和 /31 有什麼差別?▸
/30 有 4 個位址、扣掉網路與廣播剩 2 個可用——剛好點對點兩端。 /31(RFC 3021)允許點對點鏈路把兩個位址都當主機用;面試與多數實務題仍以 /30 作答最穩。
Q5 怎麼把 /24 切成 4 個等大子網?▸
需要 4 個子網 → 借 2 bit → 新前綴 /26;區塊大小 64,起點 .0/.64/.128/.192。每個子網傳統可用 62 台。
Q6 靜態 IP 和 DHCP Reservation 有什麼不同?▸
效果都是固定 IP。靜態在主機本機填;Reservation在 DHCP Server 依 MAC 保留。伺服器兩者皆可,Reservation 較利於集中管理。
易混與陷阱清單
255.255.255.129 這類不合法。