National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 80 24°C PM2.5 21
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 06

子網路遮罩與 CIDR

網路位址、廣播位址與可用主機數
Interaction 25 minute(s)

Learning Objectives

  • 說明子網路遮罩的作用,並在點分十進位遮罩與 CIDR 前綴長度之間轉換
  • 用位址 AND 遮罩算出網路位址,並算出廣播位址與可用的主機位址範圍
  • 用 2^n − 2 算出可用主機數,並說明 /31 與 /32 的例外
  • 判斷兩個位址在某個遮罩下是否屬於同一個網段
  • 從症狀找出遮罩設錯的主機

電腦怎麼知道網路部分有多長

上一課說,位址的前面是網路部分、後面是主機部分;可是 192.168.1.200 本身看不出分界在第幾個位元。 無類別(CIDR)之後,分界可以在任何位置,所以設定位址時一定要同時告訴電腦分界,這就是子網路遮罩(subnet mask)。

遮罩也是 32 位元:網路部分寫 1,主機部分寫 0,而且 1 一定連續排在前面。有兩種寫法:

點分十進位遮罩 二進位 CIDR 寫法(前綴長度)
255.0.0.0 11111111.00000000.00000000.00000000 /8
255.255.0.0 11111111.11111111.00000000.00000000 /16
255.255.255.0 11111111.11111111.11111111.00000000 /24
255.255.255.192 11111111.11111111.11111111.11000000 /26
255.255.255.252 11111111.11111111.11111111.11111100 /30

CIDR 寫法只寫「前面有幾個 1」,192.168.1.200/24 就等於「位址 192.168.1.200、遮罩 255.255.255.0」。 Windows 的網路設定欄位寫「子網路遮罩」、Linux 與路由器多半用 /24,兩者是同一件事。

遮罩裡的十進位只會是這幾個值:0、128、192、224、240、248、252、254、255(分別是 0~8 個連續的 1)。 看到 255.255.0.255 這種 1 不連續的遮罩,就是寫錯了。

用 AND 算出網路位址與廣播位址

電腦判斷「網段」的方法很機械:把位址和遮罩逐位元 AND(兩個都是 1 才得 1),結果就是網路位址。 遮罩是 1 的地方保留原值,是 0 的地方一律變成 0,等於把主機部分清掉。以 192.168.1.200/26 為例,只看最後一段:

位址   200 = 11001000
遮罩   192 = 11000000
AND        = 11000000 = 192    → 網路位址 192.168.1.192
主機部分全 1 = 11111111 = 255    → 廣播位址 192.168.1.255
項目 怎麼得到 192.168.1.200/26
網路位址 主機部分全部變 0 192.168.1.192
廣播位址 主機部分全部變 1 192.168.1.255
可用的主機位址 兩者之間 192.168.1.193~192.168.1.254
可用主機數 主機部分 n 位元:2^n − 2 2^6 − 2 = 62

減 2 是因為網路位址代表網段本身(寫在路由表裡),廣播位址用來送給網段內的所有主機,這兩個都不能設定給主機。

兩個例外:/31 只有 2 個位址,RFC 3021 允許用在點對點連線上,兩個都當主機位址(沒有廣播位址); /32 只有 1 個位址,用來在路由表或防火牆規則裡指定單一主機。

一個快速心算:主機部分剩幾個位元,網段就是 2 的幾次方個位址,而網路位址一定是這個大小的整數倍。 /26 每 64 個一段,所以網段從 .0、.64、.128、.192 開始;200 落在 192 那一段。

互動練習:拖曳前綴長度

表格逐位元列出位址、遮罩與 AND 的結果;下方算出網路位址、廣播位址與可用主機數。 「另一台主機」那一列會告訴你,在目前的遮罩下它和第一個位址是不是同一個網段。

互動練習:分界不在一段的邊上

前綴長度不是 8 的倍數時,分界會落在某一段的中間,那一段要換成二進位來看。這裡的位址是 172.16.45.200/20。

小測驗:網路位址與主機數

1.

10.1.1.77/27 的網路位址與廣播位址是?

2.

遮罩 255.255.255.240 等於哪個前綴長度?可用主機數是?

3.

一個網段要放 100 台主機,容得下的最長前綴是?

4.

下列哪一個不是合法的子網路遮罩?

第 1 次作答

兩台主機的遮罩不一樣會怎樣

主機送出封包前,會用自己的遮罩判斷對方在不在同一個網段:

  • 在:用 ARP 問對方的 MAC,直接送。
  • 不在:交給預設閘道。

如果同一條線上的兩台主機遮罩設得不一樣,它們對「同不同網段」的判斷就會不一致。例如:

主機 設定 它認為的網段 判斷對方
PC1 192.168.1.10/24 192.168.1.0~.255 192.168.1.200 在同一網段,直接送
PC2 192.168.1.200/25 192.168.1.128~.255 192.168.1.10 不在同一網段,要交給閘道

PC1 的 ping 可以送到 PC2,但 PC2 回覆時要交給閘道 192.168.1.1,而這個閘道根本不在 PC2 以為的網段裡,所以回覆送不出去。 結果是單向的:封包過得去、回不來。這類問題光看「ping 不通」很難判斷,要看封包紀錄裡封包停在哪一台。

互動練習:找出遮罩設錯的主機

PC1 和 PC2 接在同一台交換器上,R1 是兩台共用的閘道,後面有一台伺服器 SRV。 點拓撲圖上的設備可以切換命令列;每次 ping 之後看下方的封包紀錄。設備指令是本課程自訂的教學用指令,各廠牌與作業系統實際的指令以手冊為準。

小測驗:同不同網段

1.

在 /26 之下,哪一對位址屬於同一個網段?

2.

主機設定 192.168.1.200/25、預設閘道 192.168.1.1。它能把封包送到其他網段嗎?

3.

A 是 10.0.0.5/24,B 是 10.0.0.130/25,兩台接在同一台交換器上、都沒有設定閘道。從 A ping B 的結果是?

第 1 次作答

重點整理

  • 子網路遮罩用連續的 1 標出網路部分;CIDR 寫法 /n 就是「前面有 n 個 1」。
  • 位址 AND 遮罩=網路位址(主機部分全 0);主機部分全 1 是廣播位址;兩者之間是可用的主機位址。
  • 可用主機數=2^n − 2(n 是主機部分的位元數);/31 用在點對點連線,兩個位址都可以用;/32 代表單一主機。
  • 網段一定從自己大小的整數倍開始,心算時先找出「每幾個一段」。
  • 主機用自己的遮罩判斷對方在不在同一個網段;同一條線上的遮罩不一致,會造成封包過得去、回不來的單向問題。閘道也必須在主機自己的網段裡。

下一課把一段位址切成好幾個子網路:等分切割、依需求切出大小不同的網段(VLSM),以及反過來把連續的網段合成一條路由。

這一課完成了!
Next lesson:子網路切割與 VLSM
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。