簡介
本文說明設定路由器所需的基本資訊,例如位址劃分方式和子網路的運作方式。
必要條件
需求
思科建議您對二進位制和十進位制應擁有基本的瞭解。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
其他資訊
如果定義對您有所幫助,請使用以下詞彙協助自己進入狀況:
位址:指派給網路中某一主機或介面的專屬 ID 號碼。
子網路:網路的一部份,共用特定的子網路位址。
子網路遮罩:32 位元組合,可說明位址的哪個部分是指子網路,以及哪個部分是指主機。
介面:網路連線。
如果您已從網際網路資訊中心 (InterNIC) 取得合法位址,隨時都能開始設定。如果您不打算連上網際網路,思科強烈建議您使用 RFC 1918 的保留位址。
瞭解如何為路由器上的每個介面,指派具有唯一子網路的 IP 位址。本文提供範例,以協助您整合所有內容。
認識 IP 位址
IP 位址是用來識別 IP 網路裝置的位址,各裝置的位址不會重複。位址由 32 個二進位位元組成,可透過子網路遮罩分成網路部分和主機部分。該 32 個二進位位元可分成四個八位元組(1 個八位元組 = 8 個位元)。每個八位元組都會轉換為十進位,並以英文句點(點)區隔。因此,IP 位址通常是以加上英文句點的十進位格式表示(例如 172.16.81.100)。每個八位元組中,值的範圍介於十進位的 0 到 255,或是二進位的 00000000 到 11111111。
以下說明二進位的八位元組如何轉換為十進位:八位元組中最右側的位元是最不重要的位元,值為 20。該數值正左側的位元具有數值 21。如此會持續到最左側位元或最重要位元具有數值 27。因此,如果所有二進位位元均為 1,則十進位等效值會是 255,如下所示:
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1 (128+64+32+16+8+4+2+1=255)
以下八位元組轉換範例中,並非所有位元都設為 1。
0 1 0 0 0 0 0 1
0 64 0 0 0 0 0 1 (0+64+0+0+0+0+0+1=65)
以下範例顯示分別以二進位和十進位表示的 IP 位址。
10. 1. 23. 19 (decimal)
00001010.00000001.00010111.00010011 (binary)
這些八位元組可進一步拆解,提供足夠大型網路和小型網路使用的定址配置。網路可分為五種不同類別,劃分為 A 類到 E 類。本文僅介紹 A 類至 C 類網路,因為 D 類和 E 類一般保留為特殊用途使用,這兩種網路已超出本文探討範圍。
備註:另請注意,本文會使用「A 類」、「B 類」等指稱方式,協助您瞭解 IP 定址和子網路劃分。由於業界已導入無類別域間路由 (CIDR),因此幾乎已不再使用這些說法。
假設今天拿到一組 IP 位址,您可以從三個高階位元(第一個八位元組最左側的三個位元)來判斷其類別。圖 1 顯示三個高階位元的重要性,以及各類別涵蓋的位址範圍。圖中也顯示 D 類和 E 類位址,以供參考。
圖 1
在 A 級位址中,第一個八位元為網路部分,因此圖 1 中的 A 級範例具有主要的網路位址 1.0.0.x - 127.255.255.x(其中 x 可能介於 0 和 255 之間)。八位元 2、3、4(下個 24 位元)均適用於網路管理員,可依其觀察適合與否劃分為子網路和主機。A 類位址可用於具有超過 65,536 個主機(其實最多可達 16,777,214 個主機!)的網路。
在 B 級位址中,前兩個八位元為網路部分,因此圖 1 中的 B 級範例具有主要的網路位址 128.0.0.x - 191.255.255.x。八位元 3 和 4(16 位元)適用於本機子網路和主機。B 類位址可用於具有 256 到 65,534 個主機的網路。
在 C 類位址中,前三個八位元組為網路部分。圖 1 中的 C 級範例具有主要網路地址 192.0.0.x - 223.255.255.x.八位元 4(8 位元)適用於本機子網路和主機 - 適用於具有 254 個主機以內的網路。
網路遮罩
網路遮罩可協助您瞭解位址的哪個部分是指網路,以及哪個部分是指節點。A 類、B 類及 C 類網路具有預設遮罩(也稱為自然遮罩),如下所示:
Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0
如果 A 類網路尚未經過子網路劃分,IP 位址會具有類似以下的位址/遮罩配對:10.20.15.1 255.0.0.0。若要瞭解遮罩如何協助您識別地址的網路和節點部分,請將地址和遮罩轉換為二進位數字。
10.20.15.1 = 00001010.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
有了以二進位表示的位址和遮罩,識別網路和主機 ID 就能更加輕鬆。相對應遮罩位元設為 1 的任何位址位元均代表網路 ID。相對應遮罩位元設為 0 的任何位址位元均代表節點 ID。
10.20.15.1 = 00001010.00010100.00001111.00000001
255.0.0.0 = 11111111.00000000.00000000.00000000
-----------------------------------
net id | host id
netid = 00001010 = 10
hostid = 00010100.00001111.00000001 = 20.15.1
認識子網路劃分
子網路劃分可讓您在單一 A 類、B 類或 C 類網路中建立多個邏輯網路。如果未執行子網路劃分,就只能在 A 類、B 類或 C 類網路中使用單個網路,相當不切實際。
網路上的每個資料連結都必須具有唯一的網路 ID,且該連結上的每個節點都是相同網路的成員。如果將主要網路(A 類、B 類或 C 類)拆分成較小的子網路,子網路之間可以相互連線,藉此構成網路。網路中的每個資料連結都會具備不重複的網路/子網路 ID。任何連接 n 個網路/子網路的裝置或閘道具有 n 個獨特的 IP 位址,每個互連的網路/子網路都具有一個位址。
若要為網路劃分子網路,請從地址的主機 ID 部分延伸具有部分位元的自然遮罩。舉例來說,如果類別 C 網路 192.168.5.0 具有自然遮罩 255.255.255.0,您可以此方式建立子網路:
192.168.5.0 - 11000000.10101000.00000101.00000000
255.255.255.224 - 11111111.11111111.11111111.11100000
--------------------------|sub|----
透過將遮罩延伸為 255.255.255.224,您已從位址的原始主機部分取得三個位元(由 sub 表示),並使用這些位元建立子網路。這三個位元可以建立八個子網路,使用其他五個主機 ID 位元,每個子網路最多可以有 32 個主機位址,實際上其中 30 個可以指派給一部裝置,因為不允許使用全零或全一的主機 ID(請務必記住這一點)。因此您得以建立以下這些子網路。
192.168.5.0 255.255.255.224 host address range 1 to 30
192.168.5.32 255.255.255.224 host address range 33 to 62
192.168.5.64 255.255.255.224 host address range 65 to 94
192.168.5.96 255.255.255.224 host address range 97 to 126
192.168.5.128 255.255.255.224 host address range 129 to 158
192.168.5.160 255.255.255.224 host address range 161 to 190
192.168.5.192 255.255.255.224 host address range 193 to 222
192.168.5.224 255.255.255.224 host address range 225 to 254
備註:有兩種方法可以表示這些遮罩。首先,由於您比原本的 C 類遮罩多使用三個位元,因此可使用 3 位元子網路遮罩來表示這些位址。或者,您也可以使用 /27 來表示 255.255.255.224 的遮罩,因為該遮罩中設定了 27 個位元。上述第二個方法可與 CIDR 搭配使用。透過此方法,您可以使用首碼/長度表示法來描述上述任何一個網路。例如,192.168.5.32/27 表示網路 192.168.5.32 255.255.255.224。如適用,首碼/長度表示法用於表示本文件其餘部分的遮罩。
本節中的網路子網路劃分配置允許八個子網路,網路可顯示如下:
圖 2
請注意,圖 2 中的兩個路由器均連接四個子網路,其中一個子網路由兩者同時連接。此外,兩個路由器連接的每個子網路都有一個 IP 位址,而每個子網路最多可支援 30 個主機位址。
這形成很有趣的現象。子網路遮罩使用的主機位元越多,您可以使用的子網路越多。然而,隨著可使用的子網路越多,每個子網路提供的主機位址就越少。例如,C 級網路 192.168.5.0 和遮罩 255.255.255.224 (/27),允許您擁有八個子網路,每個子網路有 32 個主機位址(其中 30 個可以指派給裝置)。若使用 255.255.255.240 (/28) 的遮罩,細項將如下所示:
192.168.5.0 - 11000000.10101000.00000101.00000000
255.255.255.240 - 11111111.11111111.11111111.11110000
--------------------------|sub |---
由於您已使用四個位元來建立子網路,因此只剩下四個位元可供主機位址使用。在此情況下,您最多可以有 16 個子網路,每個子網路最多可以有 16 個主機位址(其中 14 個位址可指派給裝置)。
看看如何對 B 級網路進行子網路劃分。如果您具有網路 172.16.0.0,會知道其自然遮罩為 255.255.0.0 或 172.16.0.0/16。將遮罩延伸至 255.255.0.0 以外的位址,表示您正在劃分子網路。您很快就會發現,您可以建立比 C 類網路更多的子網路。如果您使用的遮罩為 255.255.248.0 (/21),每個子網路可以有幾個子網路和主機?
172.16.0.0 - 10101100.00010000.00000000.00000000
255.255.248.0 - 11111111.11111111.11111000.00000000
-----------------| sub |-----------
原始主機位元中有五個位元可供子網路使用。如此可讓您具有 32 個子網路 (25)。使用 5 位元進行子網路劃分時,賸下 11 位元用於主機位址。如此可讓每個子網路具有 2048 個主機位址 (211),其中的 2046 個位址可指派至裝置。
備註:過去,使用子網路 0(所有子網路位元均設為 0)和全 1 子網路(所有子網路位元均設為 1)有所限制。部分裝置不允許使用這些子網路。Cisco Systems 裝置允許在設定 指令的情況下使用這些子網路。ip subnet-zero
範例
練習範例 1
既然您已瞭解子網路劃分,可以開始實際運用這些知識。在此範例中,您會有兩組位址/遮罩(以首碼/長度表示法呈現),而這兩組位址已指派給兩台裝置。您的工作是判斷這些裝置位於相同或不同子網路。您可以使用每台裝置的位址和遮罩來判斷每個位址屬於哪個子網路。
DeviceA: 172.16.17.30/20
DeviceB: 172.16.28.15/20
判斷 DeviceA 的子網路:
172.16.17.30 - 10101100.00010000.00010001.00011110
255.255.240.0 - 11111111.11111111.11110000.00000000
-----------------| sub|------------
subnet = 10101100.00010000.00010000.00000000 = 172.16.16.0
查看相對應遮罩位元已設為 1 的位址位元,並將其他所有位址位元設為 0(相當於在遮罩和位址之間執行邏輯「AND」),這樣就能顯示此位址所屬的子網路。在此情況下,裝置 A 屬於子網路 172.16.16.0。
判斷 DeviceB 的子網路:
172.16.28.15 - 10101100.00010000.00011100.00001111
255.255.240.0 - 11111111.11111111.11110000.00000000
-----------------| sub|------------
subnet = 10101100.00010000.00010000.00000000 = 172.16.16.0
根據這些判斷,裝置 A 和裝置 B 具有屬於同一子網路的位址。
練習範例 2
假設 C 級網路為 192.168.5.0/24,對網路進行子網路劃分以建立圖 3 中所顯示符合主機要求的網路。
圖 3
查看圖 3 顯示的網路時,您會發現您需要建立五個子網路。最大的子網路必須支援 28 個主機位址。C 類網路有辦法達成此目標嗎?如果可以,該怎麼做?
首先,請查看子網路的使用需求。為了建立五個所需的子網路,您需要使用 C 級主機位元中的三個位元。兩個位元僅可讓您擁有四個子網路 (22)。
由於您需要三個子網路位元,因此剩下五個位元可用於位址的主機部分。這些位元可以支援幾個主機?25 = 32(30 個可供使用)。這樣可以符合需求。
因此,您已確定可以使用 C 級網路建立此網路。如何指派子網路的範例如下:
netA: 192.168.5.0/27 host address range 1 to 30
netB: 192.168.5.32/27 host address range 33 to 62
netC: 192.168.5.64/27 host address range 65 to 94
netD: 192.168.5.96/27 host address range 97 to 126
netE: 192.168.5.128/27 host address range 129 to 158
VLSM
請注意,在先前的所有子網路劃分範例中,所有子網路均套用了相同的子網路遮罩。也就是說,每個子網路都具有相同數量的可用主機位址。某些情況下,您或許需要這麼做,但在大多數情況下,當所有子網路都使用相同的子網路遮罩,就會浪費位址空間。舉例來說,在練習範例 2 中,C 類網路可分為八個大小相等的子網路,但每個子網路均未用完所有主機位址,進而浪費了位址空間。從圖 4 即可清楚看出浪費位址空間的現象。
圖 4
圖 4 說明使用了哪些子網路。NetA、NetC 及 NetD 還有許多未使用的主機位址空間。這可能是為了將來擴展而故意設計,但在許多情況下,因為所有子網路都使用了相同的子網路遮罩,這種作法只會浪費位址空間。
可變長度子網路遮罩 (VLSM) 可讓每個子網路使用不同遮罩,促使這些子網路有效率地使用位址空間。
VLSM 範例
如果網路和使用需求與練習範例 2 相同,在以下條件成立的情況下,請使用 VLSM 擬定子網路劃分配置:
netA: must support 14 hosts
netB: must support 28 hosts
netC: must support 2 hosts
netD: must support 7 hosts
netE: must support 28 host
判斷哪個遮罩適用於所需的主機數量。
netA: requires a /28 (255.255.255.240) mask to support 14 hosts
netB: requires a /27 (255.255.255.224) mask to support 28 hosts
netC: requires a /30 (255.255.255.252) mask to support 2 hosts
netD*: requires a /28 (255.255.255.240) mask to support 7 hosts
netE: requires a /27 (255.255.255.224) mask to support 28 hosts
* a /29 (255.255.255.248) would only allow 6 usable host addresses
therefore netD requires a /28 mask.
若要指派子網路,先指派最大的子網路是最簡單的方式。舉例來說,您可以透過以下方式指派:
netB: 192.168.5.0/27 host address range 1 to 30
netE: 192.168.5.32/27 host address range 33 to 62
netA: 192.168.5.64/28 host address range 65 to 78
netD: 192.168.5.80/28 host address range 81 to 94
netC: 192.168.5.96/30 host address range 97 to 98
這能以圖形表示,如圖 5 所示:
圖 5
圖 5 說明 VLSM 如何協助您節省一半以上的位址空間。
CIDR
無類別域間路由 (CIDR) 問世,網際網路的位址空間使用率和路由擴充能力因而獲得提升。隨著網際網路快速發展,加上網際網路路由器的 IP 路由表不斷擴充,這個方法於是成了不可或缺的一環。
CIDR 擺脫了傳統的 IP 類別(A 類、B 類、C 類等)。在 CIDR 中,IP 網路會以首碼表示,該首碼代表 IP 位址和遮罩長度的相關指示。長度表示最左側設為 1 的連續遮罩位元數。因此,網路 172.16.0.0 255.255.0.0 可以表示為 172.16.0.0/16。CIDR(無類別網域間路由)亦描繪更加階層式的網際網路結構,其中每個網域皆會從更高層級取得其 IP 位址。正因如此,網域摘要作業才得以在更高層級完成。舉例來說,如果某個 ISP 擁有網路 172.16.0.0/16,則該 ISP 可以向客戶提供 172.16.1.0/24、172.16.2.0/24 等位址。然而,向其他供應商通告時,該 ISP 只需通告 172.16.0.0/16 即可。
如需 CIDR 的詳細資訊,請參閱 RFC 1518 和 RFC 1519。
特殊子網路
31 位元子網路
30 位元子網路遮罩可允許四個 IPv4 位址:兩個主機位址、一個全 0 網路,以及一個全 1 廣播位址。點對點連結只能有兩個主機位址。點對點連結不一定需要廣播和全零位址。31 位元的子網路遮罩只允許兩個主機位址,並消除了廣播位址和全零位址,因此節省使用 IP 位址,只使用最低限度的點對點連結。
請參閱 RFC 3021 - 在 IPv4 點對點連結使用 31 位元首碼。
遮罩為 255.255.255.254 或 /31。
/31 子網路可用於真正的點對點連結,例如序列或 POS 介面。然而,此類子網路也能用於廣播介面類型,例如乙太網路介面。在此類情況下,請確保該乙太網路區段只需要兩個 IPv4 位址。
範例
192.168.1.0 和 192.168.1.1 在子網路 192.168.1.0/31 上。
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 192.168.1.0 255.255.255.254
% Warning: use /31 mask on non point-to-point interface cautiously
由於 GigabitEthernet 屬於廣播區段,因此列印警告。
32 位元子網路
255.255.255.255 的子網路遮罩(/32 子網路)描述只有一個 IPv4 主機位址的子網路。這些子網路的每個連結經常需要多個位址,因此您無法使用這些子網路為網路連結指派位址。/32 必須嚴格限制用於只能擁有一個位址的連結。思科路由器的範例為回送介面。此類介面屬於內部介面,無法連結到其他裝置。因此此類介面可使用 /32 子網路。
範例
interface Loopback0
ip address 192.168.2.1 255.255.255.255
附錄
組態範例
路由器 A 和路由器 B 透過序列介面連線。
路由器 A
hostname routera
!
ip routing
!
int e 0
ip address 172.16.50.1 255.255.255.0
!(subnet 50)
int e 1 ip address 172.16.55.1 255.255.255.0
!(subnet 55)
int s 0 ip address 172.16.60.1 255.255.255.0
!(subnet 60) int s 0
ip address 172.16.65.1 255.255.255.0 (subnet 65)
!S 0 connects to router B
router rip
network 172.16.0.0
路由器 B
hostname routerb
!
ip routing
!
int e 0
ip address 192.168.10.200 255.255.255.240
!(subnet 192)
int e 1
ip address 192.168.10.66 255.255.255.240
!(subnet 64)
int s 0
ip address 172.16.65.2 (same subnet as router A's s 0)
!Int s 0 connects to router A
router rip
network 192.168.10.0
network 172.16.0.0
主機/子網路數量表
Class B Effective Effective
# bits Mask Subnets Hosts
------- --------------- --------- ---------
1 255.255.128.0 2 32766
2 255.255.192.0 4 16382
3 255.255.224.0 8 8190
4 255.255.240.0 16 4094
5 255.255.248.0 32 2046
6 255.255.252.0 64 1022
7 255.255.254.0 128 510
8 255.255.255.0 256 254
9 255.255.255.128 512 126
10 255.255.255.192 1024 62
11 255.255.255.224 2048 30
12 255.255.255.240 4096 14
13 255.255.255.248 8192 6
14 255.255.255.252 16384 2
Class C Effective Effective
# bits Mask Subnets Hosts
------- --------------- --------- ---------
1 255.255.255.128 2 126
2 255.255.255.192 4 62
3 255.255.255.224 8 30
4 255.255.255.240 16 14
5 255.255.255.248 32 6
6 255.255.255.252 64 2
*Subnet all zeroes and all ones included. These
may not be supported on some legacy systems.
*Host all zeroes and all ones excluded.
相關資訊