網絡小故事 11 · 進階

切蛋糕的學問Subnetting(子網絡劃分)

只有一組位址,卻要分給三個網絡,怎樣切得剛剛好?

主角:路路、阿麥閱讀時間約 10 分鐘

建議先讀:第 4 課、小故事 9「Router 與 Default Gateway」

1. 故事

按「下一步」一步一步看。每一步都有一位角色出場,解釋自己正在做什麼。

序幕:溫習一下

第 1 步/共 10 步

/24 是什麼意思?

我在家的位址是 192.168.1.10/24。/24 表示前 24 個位元,即前三組數字,是網絡部分;最後一組是裝置部分,可以有 256 個位址。

動畫文字版(全部步驟)
  1. 序幕:溫習一下
  2. /24 是什麼意思? 阿麥:我在家的位址是 192.168.1.10/24。/24 表示前 24 個位元,即前三組數字,是網絡部分;最後一組是裝置部分,可以有 256 個位址。
    • IPv4 共 32 個位元
    • /24 = Subnet Mask(子網絡遮罩)255.255.255.0
    • 256 個位址中,.0 是網段位址、.255 是 Broadcast 位址,可用 254 個
  3. 第一幕:一個蛋糕,三位客人
  4. 工作室要三個網絡 路路:樓上的工作室有自己的 Router,需要三個獨立的網絡:辦公室、閉路電視和伺服器。可是我只預留了一組位址給工作室:192.168.40.0/24。
    • 辦公室:約 30 部裝置
    • 閉路電視:約 10 部鏡頭
    • 伺服器:約 5 部
  5. 每區一整組?太浪費了 路路:如果每區都用一整組 /24,閉路電視只用 10 個位址,其餘 240 多個就白白浪費。我們要把這一組位址切開,這叫 Subnetting(子網絡劃分)。
  6. 第二幕:路路切蛋糕
  7. 向裝置部分借位元 路路:我把 Subnet Mask 由 /24 變長到 /26:向裝置部分借 2 個位元。2 個位元有 4 種組合(00、01、10、11),所以可以切成 4 件,每件 64 個位址。
    • /24 = …11111111.00000000
    • /26 = …11111111.11000000 = 255.255.255.192
    • /26 這種寫法叫 CIDR(無類別域間路由)表示法
  8. 第一件:辦公室 路路:第一件是 192.168.40.0/26,給辦公室。位址由 .0 到 .63:.0 是網段位址,.63 是 Broadcast 位址,中間 .1 至 .62 共 62 個可以用。
    • Default Gateway 習慣用第一個可用位址:192.168.40.1
  9. 第二件、第三件 路路:第二件 192.168.40.64/26 給閉路電視(可用 .65 至 .126);第三件 192.168.40.128/26 給伺服器(可用 .129 至 .190)。第四件 .192/26 先預留。
    • 公式:裝置部分 6 個位元 → 2⁶ − 2 = 62 個可用位址
    • 每件 64 個,所以 Subnet 由 0、64、128、192 開始
  10. 第三幕:誰是鄰居?
  11. 前三組一樣,就是鄰居? 阿麥:辦公室電腦 192.168.40.10 要找錄影機 192.168.40.70。前三組數字都是 192.168.40,所以在同一個網絡,可以直接送……對嗎?
  12. 不對!要看 /26 路路:用 /26 時,第四組的首 2 個位元也是網絡部分。10 落在 0 至 63,屬於辦公室;70 落在 64 至 127,屬於閉路電視。兩者是不同的網絡,要經我轉送!
    • 10 = 00001010 → 首 2 位元 00 → .0/26
    • 70 = 01000110 → 首 2 位元 01 → .64/26
  13. 同一件蛋糕,才直接送 阿麥:明白了!192.168.40.10 和 192.168.40.20 都在 .0/26 這一件,才是鄰居,可以直接送。判斷的方法,要看前綴長度,不是只看前三組數字。
  14. 總結:切得剛剛好 路路:Subnetting 把一組位址切成大小合適的幾件,每件都是獨立的網絡,由 Router 連接。可是家中的路路怎樣知道 192.168.40.x 要交給工作室 Router?下一個故事,看看我的地圖!
    • 可用位址 = 2ⁿ − 2(n = 裝置部分的位元數)
    • /26 = 255.255.255.192,每件 64 個位址
    • 不同 Subnet 之間要經 Router

2. 問題在哪裡

樓上的工作室有自己的 Router(路由器),需要三個獨立的網絡:

網絡 大約裝置數目
辦公室 30
閉路電視 10
伺服器 5

可是路路只預留了一組位址給工作室:192.168.40.0/24。

如果每區都用一整組 /24(254 個可用位址),閉路電視只用 10 個,其餘 240 多個就白白浪費。而且工作室只有一組,根本不夠分三區。

3. 網絡怎樣解決

一組位址好像一個蛋糕。與其每位客人都給一整個蛋糕,不如把它切成幾件,每件大小剛好。

把一組 IP Address(網絡位址)切成幾個較細小的網絡,叫 Subnetting(子網絡劃分)。每一件就是一個 Subnet(子網絡)。

方法是把 Subnet Mask(子網絡遮罩)變長:向裝置部分「借」幾個位元,撥給網絡部分。借 2 個位元,就可以切成 4 件。每件都是獨立的網絡,彼此之間要經 Router 轉送。

4. 看深一點

先溫習:/24 是什麼意思?

IPv4 位址共 32 個位元,分成四組,每組 8 個位元。/24 的「24」叫 Prefix Length(前綴長度),表示前 24 個位元是網絡部分,餘下 8 個位元是裝置部分。

  • 8 個位元有 2⁸ = 256 個位址(.0 至 .255)。
  • .0 是 Network Address(網段位址),代表整個網絡本身。
  • .255 是 Broadcast Address(廣播位址),寄給網絡內所有裝置。
  • 所以可以分給裝置的有 256 − 2 = 254 個。

借 2 個位元:/24 變 /26

/24  11111111.11111111.11111111.00000000  = 255.255.255.0
/26  11111111.11111111.11111111.11000000  = 255.255.255.192

最後一組的首 2 個位元變成網絡部分。2 個位元有 4 種組合(00、01、10、11),所以切成 4 件。裝置部分剩 6 個位元:每件 2⁶ = 64 個位址,可用 64 − 2 = 62 個。

/26 這種「斜線加數字」的寫法,叫 CIDR(無類別域間路由)表示法。它讓前綴長度可以是 0 至 32 之間任何一個數字,不一定剛好落在「.」上。

四件蛋糕

Subnet 用途 網段位址 可用範圍 Broadcast 位址
192.168.40.0/26 辦公室 .0 .1 至 .62 .63
192.168.40.64/26 閉路電視 .64 .65 至 .126 .127
192.168.40.128/26 伺服器 .128 .129 至 .190 .191
192.168.40.192/26 預留 .192 .193 至 .254 .255

每件 64 個位址,所以 Subnet 由 0、64、128、192 開始。Default Gateway(預設閘道)習慣用每件第一個可用位址,例如辦公室是 192.168.40.1。

誰是鄰居?要看前綴,不是看前三組

用 /26 時,第四組的首 2 個位元也屬於網絡部分:

10   = 00001010  → 首 2 位元 00 → 192.168.40.0/26   (辦公室)
70   = 01000110  → 首 2 位元 01 → 192.168.40.64/26  (閉路電視)
130  = 10000010  → 首 2 位元 10 → 192.168.40.128/26 (伺服器)

所以 192.168.40.10 和 192.168.40.70 雖然前三組一樣,卻是不同的網絡,要經工作室 Router 轉送。192.168.40.10 和 192.168.40.20 都在 .0/26,才可以直接送。

不想換算二進制?看第四組數字落在哪一段就可以:0–63、64–127、128–191、192–255。

常見前綴一覽

前綴 Subnet Mask 每件位址數目 可用位址(2ⁿ − 2)
/24 255.255.255.0 256 254
/25 255.255.255.128 128 126
/26 255.255.255.192 64 62
/27 255.255.255.224 32 30
/28 255.255.255.240 16 14
/29 255.255.255.248 8 6
/30 255.255.255.252 4 2

n 是裝置部分的位元數,即 32 減去前綴長度。前綴每長 1,每件的大小就減半。

辦公室約 30 部裝置,再加上 Default Gateway 一共要 31 個位址;/27 只有 30 個可用位址,不夠用,所以這裡選 /26(62 個),還留有餘地。

5. 動手試試

任務:找出你家的 Subnet Mask

  1. 在手機的 Wi-Fi(無線網絡)設定中,點選已連接的網絡,找出「子網絡遮罩」或「Subnet Mask」一欄。
  2. 大部分家庭會看到 255.255.255.0,即 /24。
  3. 用上面的表,算一算你家的網絡最多可以有多少部裝置。

小互動

這個位址在哪個 Subnet?

以下每個位址,屬於工作室哪一件蛋糕?

  1. 1192.168.40.10

  2. 2192.168.40.70

  3. 3192.168.40.130

  4. 4192.168.40.62

  5. 5192.168.40.65

  6. 6192.168.40.200

6. 比喻的極限

  • 蛋糕切了就不能還原,Subnet 可以重新規劃。 只要更改設定,就可以把幾件合併或切得更細;不過正在使用的裝置都要跟著改位址。
  • 每件蛋糕不一定一樣大。 這個故事每件都是 /26;真實網絡可以按需要切出大小不同的 Subnet,例如一件 /26、兩件 /27,但各件不可以重疊。
  • 每件都有兩個位址不能「吃」。 網段位址和 Broadcast 位址不能分給裝置,所以切得越細,浪費的比例越高。(特別的 /31 和 /32 另有規則,這裡不詳談。)
  • 切蛋糕不會令網絡變快。 Subnetting 主要是為了分配位址、把 Broadcast 限制在較小範圍,以及方便設定保安規則。
  • 位址夠多也可以切。 家中的 Private IP(私人位址)幾乎用不完,但公司仍然會切 Subnet,好讓不同部門分開管理。

7. 小測驗

第 1 題,共 3 題/26 的 Subnet 有多少個可以分給裝置的位址?
第 2 題,共 3 題192.168.40.10/26 和 192.168.40.70/26 是否在同一個網絡?
第 3 題,共 3 題255.255.255.192 等於哪一個前綴?

8. 重點筆記

  • Subnetting(子網絡劃分)把一組位址切成幾個較細小的網絡,每件都是獨立的 Subnet,彼此之間要經 Router 轉送。
  • 把前綴變長,就是向裝置部分借位元:借 m 個位元,可以切成 2ᵐ 件。
  • 每件的可用位址 = 2ⁿ − 2(n = 裝置部分的位元數);減去的是網段位址和 Broadcast 位址。
  • /26 = 255.255.255.192,每件 64 個位址,由 0、64、128、192 開始。
  • 判斷兩部裝置是否鄰居,要看前綴長度,不是只看前三組數字。

延伸閱讀

工作室的三個網絡切好了,都接在工作室 Router 身上。可是家中的路路怎樣知道 192.168.40.x 要交給工作室 Router?下一個故事,打開路路的地圖:Routing Table(路由表)與 Static Route(靜態路由)。