close

I P 位 址

IP (Internet Protocol) 位址就好像是電腦的地址一樣,在網際網路世界中,電腦必須使用 IP 做為通訊識別。當電腦要傳送資訊給另一台電腦時,必須指定 IP 位址才能正確地將資訊送達。IP 位址在系統中是一個 32 位元的數字,但我們一般看到的格式大多是以 4 個 8 位元 (8-bit, 又稱位元組) 所組成的數字。為了方便人類讀寫,這 4 個位元組中,每一個位元組會被轉換成一個十進位的數字,轉換之後,它的範圍是 0 到 255。下表中即是一個我們常見的 IP 位址轉換成 32 位元數字的範例:

以十進位加 . 的方式表示 二進位表示
140.115.75.5 10001100  01110011  01001011  00000101

可以看到,140 這個數字的二進位是 10001100,115 的二進位是 01110011。電腦是 0 與 1 的世界,所以電腦中存放的都是 0 和 1,一個 bit 只能存一個 0 或 1。在表示數字時,電腦其實是將數字存成二進位,而 32 bits 表示電腦使用 32 個 0/1 來存放數字。十進位的數字 2 會被表示成 10、數字 3 是 11、十進位的 4 是 100、5 是 101。我們以 115 這個數字為例,十進位的 115 以二進位來表示是 01110011,二進位轉換的方式是:

圖 5-1

小提示

以上的 IP 位址是使用 IPv4,因此只有 4 個位元組的長度。但由於 IP 漸漸不足,所以目前有新的標準是 IPv6,IPv6 有 16 個位元組。雖然大多數的作業系統都已支援 IPv6,但 IPv6 還不普及,目前網際網路還是使用 IPv4。

所有的 IP 位址是由 IANA (Internet Assigned Numbers Authority) 組織授權給各地區的單位分派,在台灣則是由 TWNIC (http://www.twnic.net.tw) 所管理。IP 位址可以區分為 A、B、C 三個等級,分別說明如下:

  • Class A:理論上A級的範圍是從 0.0.0.0 到 127.255.255.255。它的第一個位元組由 IANA 所分派,後面的三個位元組可以自行運用。例如,18.x.x.x,每一個 x 的範圍為 0 到 255,所以一個 Class A 可以有 256 x 256 x 256 = 16777216 個 IP。像麻省理工學院的 WWW 主機 web.mit.edu,它的IP位址是 18.69.0.27,很明顯的,是屬於A級的。
  • Class B:理論上B級的範圍是從 128.0.0.0 到 191.255.255.255。它的前二個位元組是由 IANA 所指派,而後面二個位元組可以自行運用。例如,140.115.x.x,每一個 x 的範圍為 0 到 255,所以一個 Class B 可以有 256 x 256 = 65536 個 IP。像中央大學的 DNS 伺服器是 140.115.1.31,就是隸屬於中大所分配到的B級網路之中。
  • C Class:理論上C級的範圍是從 192.0.0.0 到 223.255.255.255。它的最後一個位元組可以自行運用,例如 210.202.102.x。一個 Class C 最多可以有 256 個 IP 位址。

為什麼我要說是「理論上」呢?因為有些 IP 位址另有特殊用途。譬如說,A級範圍內,127.x.x.x 是用來做 loopback 的(習慣上,大部份系統都指定 127.0.0.1 為 loopback 位址,如果您打指令 ifconfig lo0,您也會看到 127.0.0.1 這個 IP),所以實際上能用的A級位址就減少了。另外,以 Class C 為例,如果有一個 Class C 是 210.202.102.x,則 210.202.102.0 是 Network ID,代表網路本身,而 210.202.102.255 是用來做為網路廣播,這些 IP 都不可以用在電腦的 IP 上。

可想而知,如果每世界上每一台電腦都需要一個 IP,IPv4 的 IP 一定不夠用。所以除了一般可以在 Internet 上使用的 IP 之外,還有所謂的 Private IP Address (私有 IP),這些 IP 不得出現在公眾網路上,但卻可以用在私有的 Intranet 中。RFC 1597 所定義的私有 IP 範圍如下:

  • Class A 的私有 IP:10.0.0.0 到 10.255.255.255,也就是說可以使用 10.x.x.x 這範圍的 IP。
  • Class B 的私有 IP:172.16.0.0 到 172.31.255.255,也就是從 172.16.x.x 到 172.31.x.x,共有 16 個 Class B 的 IP。
  • Class C 的私有 IP:192.168.0.0 到 192.168.255.255,也就是 192.168.0.x 到 192.168.255.x,共有 256 個 Class C 的 IP。

上述這些 IP 就是我們可以在自行拿來在 Intranet 中使用的 IP。如果您沒有分配到足夠的 IP 位址,您可以在公司或家中使用這些 IP,再透過 NAT (Network Address Transation) 讓家中使用私有 IP 的電腦透過一台擁有真實 IP 的電腦連上 Internet。關於 NAT 的設定及說明,我們會在「NAT 及防火牆」一章中說明。

子網路遮罩

IP 位址可以分為二個部份,一個是由 IANA 或 TWNIC 或 ISP 所分派的固定部份,稱之為 Network ID,以及可以自行運用的部份,稱之為 Host ID。例如,以 140.115.x.x 為例,140.115 就是 Network ID。然而,為了讓電腦可以判斷出 IP 位址的 Network ID 及 Host ID,必須靠子網路遮罩 (Subnet Mask) 的幫忙。

因為每個網路都可以再切割為更小的子網路,例如,中央大學的網路是 140.115.x.x,而中央企管可以使用 140.115.75.x 這個子網路。以整個中央大學而言,它的 Network ID 是 140.115,而中央企管的 Network ID 是 140.115.75。因為中大的前二個位元組是 Network ID,所以子網路遮罩的前二個位元組要設成 255,而最後二個位元組為 Host ID,則子網路遮罩設為 0。因此,IP 位址為 140.115.x.x 的子網路遮罩為 255.255.0.0,而 140.115.75.x 的子網路遮罩為 255.255.255.0。

簡而言之,子網路遮罩就是將所有和 Network ID 同一個欄位的位元都設成 1,所有和 Host ID 同欄位的位元都設成 0。

Class 二進位的子網路遮罩 子網路遮罩
Class A 11111111 00000000 00000000 00000000 255.0.0.0
Class B 11111111 11111111 00000000 00000000 255.255.0.0
Class C 11111111 11111111 11111111 00000000 255.255.255.0

當我們在表示一個子網路時,我們可以使用 140.115.0.0/255.255.0.0 來表示。然而,我們也常看到另一種表示方式:140.115.0.0/16。16 的意思是子網路遮罩中,高位元的部份有 16 個 1。以上表中各個子網路遮罩為例,我們可以表示為:

Class 二進位的子網路遮罩 子網路遮罩
Class A 11111111 00000000 00000000 00000000 /8
Class B 11111111 11111111 00000000 00000000 /16
Class C 11111111 11111111 11111111 00000000 /24

那麼電腦又是如何從一個 IP 及子網路遮罩判斷出 Network ID 的呢?電腦會將 IP 和 Netmask 做 AND 運算,運算結果就是 Network ID,如下表中所示:

IP (140.115.75.5) 10001100 01110011 01001011 00000101
Netmask (255.255.255.0) 11111111 11111111 00000000 00000000
Network ID (140.115.0.0) 10001100 01110011 00000000 00000000

切割網路

我們可以利用子網路遮罩將 Class A、B、C 再細切為更小的子網路。例如,台灣的 ISP 會將網路切割成每個子網路 8 個 IP,再分派給客戶。以筆者的公司為例,我所得到的 IP 範圍是 210.202.102.128 ~ 210.202.102.135,這就是將一個 Class C 切割成 32 個子網路。在這個例子中,Network ID 就是整個網路範圍的第一個 IP,也就是 210.202.102.128,由下表得知,因為這個 Network ID 中,前 29 個 bits 都是固定的,所以子網路遮罩是 255.255.255.248。我們可以使用 210.202.102.128/255.255.255.248 或是 210.202.102.128/29 來表示這個子網路。

Network ID (210.202.102.128) 11010010 11001010 01100110 10000000
Max IP (210.202.102.135) 11010010 11001010 01100110 10000111
Netmask (255.255.255.248) 11111111 11111111 11111111 11111000

雖然筆者被分配到 8 個 IP,但是第一個 IP 210.202.102.128 是用來表示整個網路,而 210.202.102.135 則是用來做此子網路廣播使用。因此,實際可用 IP 只有 6 個,也就是 210.202.102.129 ~ 210.202.102.134。不過 210.202.102.134 會被拿來做 ADSL router 使用,所以真正可以用的 IP 只有 5 個。

如果我們來看一個被切割成 8 個子網路的 Class C 192.168.5.x,每個子網路會有 32 個 IP,Netmask 是 255.255.255.224 或 /27:

IP 範圍 Network ID Host ID
192.168.5.0 ~ 192.168.5.31 192.168.5.0 0~31
192.168.5.32 ~ 192.168.5.63 192.168.5.32 32~63
192.168.5.64 ~ 192.168.5.95 192.168.5.64 64~95
192.168.5.96 ~ 192.168.5.127 192.168.5.96 96~127
192.168.5.128 ~ 192.168.5.159 192.168.5.128 128~159
192.168.5.160 ~ 192.168.5.191 192.168.5.160 160~191
192.168.5.192 ~ 192.168.5.223 192.168.5.192 192~223
192.168.5.224 ~ 192.168.5.255 192.168.5.224 224~255

私有 IP 範圍

一般 ISP 所分配的 IP 都可以讓我們在網際網路上使用,但如果您沒有要在網際網路上使用,只是要在公司或家中架設內部區域網路,我們可以使用私有 IP (Private IP)。私有 IP 是 RFC 1981 所定義的私人 IP,這些 IP 不能夠直接在網際網路中出現,只能在區域網路中使用。如果您想在公司或家中架設內部使用的伺服器,您可以區網中的電腦 IP 設為下列範圍之一:

Class 範圍 子網路遮罩 網域
Class A 10.0.0.0 ~ 10.255.255.255 255.0.0.0 10/8
Class B 172.16.0.0 ~ 172.31.255.255 255.255.0.0 172.16/12
Class C 192.168.0.0 ~ 192.168.255.255 255.255.255.0 192.168/16

例如,你家中有三台電腦,可以分別設定 IP 為 192.168.0.1、192.168.0.2、192.168.0.3。

私有 IP 不可以在網際網路中使用,如果這些設定為私有 IP 的電腦有連上網際網路的需求,則必需經由 NAT 伺服器的轉換,將它們偽裝成是由 NAT 伺服器連向外部網路。詳細 NAT 伺服器的設定請參考本書「NAT 及防火牆」一章的說明。

小提示

看得頭暈眼花了嗎?沒關係,本節的重點在於了解 IP 位址和子網路的關係。您只要了解子網路遮罩 255.255.255.0 也可以使用 /24 表示 (因為一個 255 有 8 個 1,三個 255 就是 24)。其它的細節等您有需要時再來參考即可。

arrow
arrow
    文章標籤
    CISCO IP 位址 IPv4 IPv6
    全站熱搜

    那個先生 發表在 痞客邦 留言(0) 人氣()