網路門牌也會用完?從 IPv4 將用盡談網路的 IP 與 MAC 位址

作者 | 發布日期 2015 年 09 月 29 日 19:55 | 分類 精選 , 網路 , 軟體、系統 line share follow us in feedly line share
網路門牌也會用完?從 IPv4 將用盡談網路的 IP 與 MAC 位址


IPv4 位址耗盡的問題愈來愈嚴重,繼亞太區、歐洲、拉丁美洲等地區的 IP 位址相繼用盡後,從北美地區的 IPv4 用盡倒數計畫中,也看到 IPv4 地址即將用盡,由於 IPv4 轉換到 IPv6 位址過渡需要時間,因此所有單位應該提早準備部署 IPv6 位址。到底什麼是 IPv4 和 IPv6 位址?它和另一個常會聽到的 MAC 位址又有什麼不同?IPv4 位址會用盡,那 MAC 位址會不會用盡呢?

什麼是 IP 位址(Internet Protocol)?

IP 位址又稱為「軟體位址(Software address)」或「邏輯位址(Logical address)」,是由網路號碼分配機構(Internet Assigned Numbers Authority,IANA)制定。

全世界所有能夠連接網際網路的「節點(Node)」都需要 IP 位址,資料封包傳送到網際網路必須指定 IP 位址才能夠協助電腦查詢 MAC 位址,最後才能夠順利傳送到接收端。這裡所謂的節點(Node)包括路由器(Router)、閘道器(Gateway)等網路電信設備,甚至各種用戶設備,不論是有線或無線,只要想連結網路就需要 IP 位址。

目前使用的 IP 版本為第四版(IPv4:IP version 4),IP 位址使用十進位其格式為「140.112.66.88」,如圖一所示,轉換成二進位總共有32位元(bit),相當於 4 位元組(Byte),總共可以提供 232(大約 43 億)個位址。

IPV4 1

▲ IPv4 位址的格式。

由於能夠連接網際網路的節點(Node)都需要 IP 位址,顯然 43 億個位址是不夠用的,更何況這 43 億個位址有許多是保留做為測試、廣播等特別用途,一般裝置不能拿來做為傳送資料封包使用。

IP 位址就好像傳統郵件寄件人與收件人的「公司名稱」,大家回想一下,假設寄件人與收件人都是公司,全世界每間公司的名稱理論上應該是唯一的,否則郵差一不小心就會送錯地方囉!咦~看到這裡有沒有覺得怪怪的,以前不是都聽人家說 IP 位址是「門牌地址」嗎?怎麼變成「公司名稱」了呢?別急別急,繼續看下去吧!

 

另一個 MAC 位址又是什麼?

這個 MAC 可不是時下流行的蘋果電腦(Mac),而是媒體存取控制位址(Media Access Control,MAC )又稱為「硬體位址(Hardware address)」或「實體位址(Physical address)」,是由美國電子電機工程師學會(Institute of Electronic and Electrical Engineer,IEEE)制定。

電腦所使用的每張網路卡在出廠時都會在唯讀記憶體(Read Only Memory,ROM)中燒錄唯一的 MAC 位址,MAC 位址總共 6 位元組(Byte),前面位元組是生產網路卡的廠商代碼,後面 3 位元組是這張網路卡的編號,所以全世界所使用的每一張網路卡的 MAC 位址都不同,也因為這個特性,許多金融業的線上交易為了確保網路安全,可以讀取使用者電腦的 MAC 位址註冊,這樣至少可以確定用戶端的電腦是那一台,減少怪客(Cracker)入侵的機會。

圖二為智慧型手機內建 Wi-Fi 與藍牙網卡的 MAC 位址,大家可以到電腦網路卡資訊中找到所屬裝置的 MAC 位址,在 iPhone 下則可以透過「設定→一般→關於本機」查詢自己手機的 MAC 位址。

MAC 位址使用十六進位(0123456789ABCDEF)其格式為「00:F8:B9:0B:A1:FB」,轉換成二進位總共有 48 位元(bit),相當於 6 位元組(Byte),總共可以提供248(大約281兆)個位址。

IPV4 2

▲ 智慧型手機的 Wi-Fi 與藍牙網卡的 MAC 位址。

由於每張網路卡在出廠時都會燒錄唯一的 MAC 位址,因此 MAC 位址的用量比 IP 位址還大,所幸 281 兆個位址暫時足夠目前所有的有線與無線通訊設備網路卡使用,包括:乙太網路(Ethernet)、無線區域網路(Wi-Fi)、藍牙(Bluetooth)、射頻識別元件(RFID)、近場通訊元件(NFC)等,IEEE 期待 MAC 位址被用盡的時間不會早於 2100 年,但是隨著愈來愈多連網裝置普及,這個時間可能會提前。

在網路的世界裡,為了要將封包傳送到正確的位置,必須在資料封包的表頭(Header)(類似傳統郵件的信封)填入接收端網路卡的 MAC 位址(Destination MAC)與傳送端網路卡的 MAC 位址(Source MAC),大家會不會覺得奇怪,平常在寫 Email 的時候都是填寫收件人的 Email 位址(例如:hightechtw@gmail.com),好像從來沒有填過接收端網路卡的 MAC 位址,別說使用者根本不知道接收端網路卡的 MAC 位址,甚至連自己電腦網路卡的 MAC 位址都太清楚,怎麼填呢?

其實這一切在寄 Email 的時候,MAC 位址是電腦就會自動填好,電腦當然知道自己網路卡的 MAC 位址,至於接收端網路卡的 MAC 位址,電腦必須使用接收端的 IP 位址來查詢,查好以後電腦也會自動填好,再將這個封包傳送出去,不知不覺之中電腦就做了這麼多事,才把 Email 寄給對方囉!

MAC 位址就好像傳統郵件寄件人與收件人的「門牌地址」,大家回想一下,全世界每個人家裡的門牌地址是不是唯一的呢?當然是唯一的,否則郵差怎麼送信呀?既然 IP 位址和 MAC 位址都是唯一的,那為什麼說 IP 位址像「公司名稱」,MAC 位址像「門牌地址」呢?

「IP 位址」和「MAC 位址」有什麼不同?

「IP 位址」是由網管人員手動或伺服器自動設定,是可以改變的,因此好像「公司名稱」;「MAC 位址」燒錄在網路卡的唯讀記憶體(ROM)內,是固定不變的,因此好像「門牌地址」。

假設我們只討論固定不動的桌上型電腦,那電腦(網路卡)買來以後是是固定在某一個地方不移動也不改變,因此 MAC 位址很像門牌地址一樣不移動也不改變;而這台電腦要上網時所使用的 IP 位址是網管人員手動或伺服器自動設定的,是可以改變的,就好像同一個門牌地址(MAC 位址)的房子,由不同的人來開公司,就會有不同的公司名稱(IP 位址)。

許多文章都說 IP 位址是門牌地址,這樣的比喻不完全正確,因為 IP 位址是可以改變的,今天網管人員把它設定給電機系使用,電機系的電腦就用它連接網路;明天把它設定給資工系使用,資工系的電腦就用它連接網路,我們應該很少看過門牌地址可以這樣改來改去的吧!

那麼既然有了 MAC 位址,為什麼還需要 IP 位址呢?經過前面的介紹,大家應該發現 IP 位址的 32 位元數字是有意義的,當我們看到 140.112.66.88,我們會立刻知道這是台大的 IP 位址(140.112.X.X),雖然我不知道這台電腦是誰的,但是它一定是從台大的某個地方連接過來的,而我們卻很難從 MAC 位址知道那是在什麼地方的網路卡,最多只知道是那一家廠商製造的網路卡而已。

對網管人員來說,能夠從 IP 位址簡單地知道網路的相關資訊,也能夠輕易地切割子網路,更能夠隨時改變IP位址,以達到實際網路不同架構的需求,所以IP位址是非常重要的。

 

私有 IP(Private IP)與真實 IP(Real IP)

目前使用的 IP 版本為第四版(IPv4),總共可以提供 232(大約 43 億)個位址,其實早就不夠用了,科學家發明了所謂的「私有 IP(Private IP)」,才讓 43 億個位址用到現在,那什麼是私有 IP 呢?

  • 真實IP(Real IP):可以在網際網路上使用的 IP 位址,也就是網際網路上的節點(路由器或閘道器)認得的 IP 位址稱為「外部 IP(External IP)」或「真實 IP(Real IP)」。
  • 私有 IP(Private IP):只能在公司或家庭內部私有網路使用的 IP 位址,也就是網際網路上的節點(路由器或閘道器)並不認得的 IP 位址,稱為「內部 IP(Internal IP)」或「私有 IP(Private IP)」。

我們平常使用網路一定是連接到外部的網際網路嗎?有沒有可能只是公司或家庭內部的電腦之間傳送資料而已呢?一般公司通常都有數百台電腦,有時候只是在公司內部傳送資料,何必一定要用真實 IP?更何況真實 IP 是要付費的,如果每台電腦都要使用一個也太浪費了。

當資料封包只是在公司內部的電腦之間傳送的時候,使用私有 IP(內部 IP)就可以了;當封包要傳送到公司外部的網際網路時,再經由一台伺服器指定真實 IP(外部 IP)給這個封包使用,這台可以更改封包 IP 位址的伺服器稱為「網路位址轉譯伺服器(Network Address Translation,NAT server)」,是網路防火牆最重要的成員,不但可以減少真實 IP 的使用量,也可以隔絕公司的內部與外部網路讓公司內部的網路更安全。

由網路位址分配組織(IANA)建議保留給私人網路使用的私有 IP(內部 IP)位址包括三個等級,大家在一般的機關團體常常看到的 IP 位址 192.168.X.X,可用 IP 位址為 192.168.0.0~192.168.255.255,其實就是其中一個等級的私有 IP(內部 IP),只能提供公司內部使用,每一家不同的公司都可以自由地重覆使用這些私有 IP,但是資料封包要傳送到公司外部的網際網路時,必須經由一台 NAT 伺服器指定一個真實 IP(外部 IP)給這個封包使用,這樣網際網路上的節點(路由器或閘道器)才會認得,封包也才能傳送到目的地。

 

徹底解決 IP 不足的問題:IPv6

雖然公司內部可以使用私有 IP(內部 IP),不需要讓每台連接網路的電腦都擁有一個真實 IP(外部 IP),但是隨著網際網路的發展,一定還是會面臨真實 IP 不夠使用的問題,因此早在 1990 年開始,網際網路工程任務小組(Internet Engineering Task Force,IETF)就開始規劃 IPv6 位址,採用十六進位,其格式為「FEDC:BA98:7654:3210:0000:0000:0000:FEDC」如圖三所示,轉換成二進位總共有 128 位元(bit),相當於 16 位元組(Byte),總共可以提供 2128 個 IP 位址,那麼 2128 到底是多少呢?不必算了,因為那是一個龐大的天文數字。

IPV4 3

▲ IPv6 位址的格式。

IPv6 會制定這麼多的 IP 位址,主要是考慮到人類未來所有的電子產品可能都要連接網路,其實就是「物聯網(Internet of Things,IoT)」的概念,包括:智慧型手機、網路冰箱、網路電鍋,甚至網路電視機(可以經由網路傳送電視節目)、網路冷氣機(可以在回家之前先經由網路將冷氣打開)等應用,每一種電子產品都要上網當然就需要更多的 IP 位址。

問題是目前許多的網際網路上的節點(路由器或閘道器)與用戶端設備都不認得 IPv6 位址,而且根據統計,到 2014 年底網路上仍然有 95% 的資料封包是使用 IPv4 位址,現在 IPv4 位址用盡,接下來將會面對一段時間的過渡期,事實上科學家有考慮到這種情況,因此在 IPv6 位址裡定義了相容於 IPv4 位址的格式,讓支援 IPv6 位址的節點可以向下相容於 IPv4 位址,讓兩種不同格式的位址並存,由於 IPv4 轉換到 IPv6 位址需要時間,因此企業應該提早準備部署 IPv6 位址才能跟得上未來的網際網路世界。

(首圖來源:Flickr/Daan Berg CC BY 2.0)

延伸閱讀: