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 位址是由 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 及防火牆」一章的說明。
|
留言列表