I | P 位址 |
網際網路協定( IP )是整個 TCP/IP 協定的基礎﹐它的一些功能在前面的介紹 OSI 和 TCP/IP 模型的時候已經略略提過了﹐不過﹐由於它的重要性實在太值得了解﹐因此我們在這裡再深入的探討一下網際網路層的協定。而事實上,若 IP 這個環節若不過關的話,我會勸您別嚐試網路相關的工作了,否則會痛苦一輩子!
大體而言,網際網路協定的功能包括如下﹕
- 定義資料在網際網路中傳輸的基本單位。
- 定義網際網路的定址方式。
- 負責網路存取層和傳送層之間的資料傳遞。
- 決定資料傳送的路由路徑。
- 執行資料的分解和重組。
這層協定主要要做的事情﹐是將從傳送層傳來的資料準確的送到遠端機 器上。讓我們溫習一下剛學過的 ARP 協定﹐我們知道當主機獲得一個 IP 後﹐如果在 ARP 表格中找不到目的主機的實體位址的時候(因為底層的傳送是以實體位址為依據的)﹐那麼就利用 ARP 協定是以廣播的方式去尋問對方的實體位址。不過﹐這裡有一個限制﹕廣播封包是有限制的﹐只能在同一個網段( segment )上的節點才能收到廣播封包。假如當我們有一個封包﹐從教室傳到網際網路上地球另一邊的主機﹐那這時候要如何處理呢﹖
Okay﹐這就是 IP 協定要解決的問題了。讓我們先看看 IP 封包的格式吧。
IP 封包表頭格式
首先﹐讓我們看看IP封包的組成部份﹐以及各部件的長度﹕
Version (4) | Internet Header Length (4) | Type of Service (8) | Total Length (16) | ||
Identification (16) | Flags (3) | Fragment Offset (13) | |||
Time To Live (8) | Protocol (8) | Header checksum (16) | |||
Source Address (32) | |||||
Destination Address (32) | |||||
Options (Variable) | Padding (0-24) | ||||
Data .... |
IP 封包格式
在上圖中﹐括號之內的數字就是各部件的長度 (bit)﹐如果您夠細心﹐就會計算得出每一行的總長度都是 32bit。事實上,真正的封包是由連續的位元依序排列在一起的,之所以分行,完全是因為排版的關係。下面,我們分別對各部件名稱解釋一下﹕
- Version 版本 (VER)。表示的是 IP 規格版本﹐目前的 IP 規格多為版本 4 (version 4)﹐所以這裡的數值通常為 0x4 (注意﹕封包使用的數字通常都是十六進位的)。
- Internet Header Length 標頭長度 (IHL)。我們從 IP 封包規格中看到前面的 6 行為 header ﹐如果 Options 和 Padding沒有設定的話﹐也就只有5 行的長度﹔我們知道每行有 32bit ﹐也就是 4byte﹔那麼, 5 列就是 20byte 了。20 這個數值換成 16 進位就成了 0x14﹐所以﹐當封包標頭長度為最短的時候﹐這裡數值會被換算為 0x14 。
- Type of Service
服務類型 (TOS)。這裡指的是 IP 封包在傳送過程中要求的服務類型﹐其中一共由 8 個 bit 組成﹐每組 bit 組合分別代表不同的意思﹕
000..... Routine 設定 IP 順序﹐預設為 0 ﹐否則﹐數值越高越優先 ...0.... Delay 延遲要求﹐ 0 是正常值﹐ 1 為低要求 ....0... Throughput 通訊量要求﹐ 0 為正常值﹐ 1 為高要求 .....0.. Reliability 可靠性要求﹐0 為正常值﹐ 1 為高要求 ......00 Not Used 未使用 - Total Length 封包總長 (TL)。通常以 byte 做單位來表示該封包的總長度﹐此數值包括標頭和數據的總和。
- Identification 識別碼 (ID)。每一個IP封包都有一個 16bit 的唯一識別碼。我們從 OSI 和 TCP/IP 的網路層級知識裡面知道﹕當程式產生的數據要通過網路傳送時﹐都會在傳送層被拆散成封包形式發送﹐當封包要進行重組的時候﹐這個 ID 就是依據了。
- Flag
旗標 (FL)。這是當封包在傳輸過程中進行最佳組合時使用的 3 個 bit 的識別記號。請參考下表﹕
000. 當此值為 0 的時候﹐表示目前未被使用。 .0.. 當此值為 0 的時候﹐表示封包可以被分割﹐若為 1 則不能被分割。 ..0. 當上一個值為 0 時﹐此值為 0 就示該封包是最後一個封包﹐如果為 1 則表示其後還有被分割的封包。 - Fragment Offset
分割定位 (FO)。當一個大封包在經過一些傳輸單位(MTU)較小的路徑時﹐會被被切割成碎片(fragment)
再進行傳送(這個切割和傳送層的打包有所不同﹐它是由網路層決定的)。由於網路情況或其它因素影響﹐其抵達順序並不會和當初切割順序一至的。所以當封包進
行切割的時候﹐會為各片段做好定位記錄﹐所以在重組的時候﹐就能夠依號入座了。
如果封包沒有被切割﹐那麼 FO 的值為“0”。
- Time To Live 存活時間 (TTL)。這個 TTL 的概念﹐在許多網路協定中都會碰到。當一個封包被賦予 TTL 值(以秒或跳站數目(hop)為單位)﹐之後就會進行倒數計時。在 IP 協定中,TTL 是以 hop 為單位,每經過一個 router 就減一)﹐如果封包 TTL 值被降為 0 的時候﹐就會被丟棄。這樣﹐當封包在傳遞過程中由於某些原因而未能抵達目的地的時候﹐就可以避免其一直充斥在網路上面。有隻叫做 traceroute 的程式﹐就是一個上佳的 TTL 利用實作﹐我們會在後面的章節裡面討論。
------------------------------------------------------ 前面所介紹的 IP 封包格式﹐請花點時間研究一下﹐因為在日後的網路生涯中﹐許多概念都要求設計者非常了解 IP 和 TCP 封包(標頭)的結構﹐例如﹕防火牆設定和 socket 程式設計。 IP 位址 當我們知道 IP 封包結構之後﹐接著我們就要接觸一個在 TCP/IP 網路管理中最重要的一個概念﹕ 子網切割( subnetting ) 。子網路這個名詞我們前面不斷的碰到過﹐或許同學們心裡都很納悶它究竟是什麼東東?不過﹐在真正了解子網路的定義之前﹐我們必須要先了解的一個概念是 IP 位址。 IP 位址雖然只有 4 組用小點 (.) 分開的數字(IP v4)﹐然而它卻是整個 TCP/IP 協定的基石。如果我們在討論 TCP/IP 網路的時候﹐不知道 IP 位址的各個數字代表什麼意思﹐那就什麼都免談了。 那 我們如何解讀出 IP 位址所隱含的深刻意思呢﹖首先,我們要具備一定的數學和邏輯基礎﹐下面兩個概念是一定要知道的﹕十進位和二進位的換算﹐以及基本邏輯運算。這裡不打算討論 十進位和二進位的換算了﹐如果您忘記了﹐請回學校問問數學老師吧。然而﹐邏輯運算也不打算詳細討論了﹐下面只把在學習 IP 子網計算所需的幾個運算﹐作一簡單歸納而已﹕
如果不知道它們的工作原理﹐那麼以後我們在討論 IP 位址和子網的時候﹐您就只能靠死記一途了。不過,一旦你知道了其原理﹐那麼您在任何的 IP 網路中都不至於迷失﹐所謂“萬變不離其宗”是也。 我們在前面講述網路存取層的時候﹐曾介紹過 ifconfig 命令來查找界面實體位址。事實上,在命令的輸出結果裡面﹐還包含了一個非常重要的資訊﹕inet addr 和 Mask﹕
正 如您所見到的 IP 位址﹐是四組用“.”分開的十進位數字﹐這樣的格式被稱作“Dotted quad”。其實每一組都是一個 8-bit 的二進位數字(使用十進完全是為了遷就人類的習慣)﹐我們稱每組數字為一個“octet”﹐合共起來就是一個 32-bit 的 IP 位址﹐亦即是 IP v4 (Version 4) 版本的位址(現在IPv6 也正如火如筡的開發中 ,則使用 128-bit 的 IP 位址)。好了,我們要如何解讀這 32bit 位址呢?其實﹐每一組 IP 號碼都包括兩個識別碼信息﹕Net_ID 跟 Host_ID。不過﹐我這裡還是建議大家先來認識一下 IP 的 Class 概念。 相信許多人都聽過什麼 C Class 和 B Class 這樣的 IP 了﹐但究竟什麼樣的 IP 屬於什麼樣 Class 呢﹖ 如果我們將 IP 位址全部用二進位來表示的話﹐每個 octet 都是完整的 8 個 bit ﹐如果不夠 8-bit 的話﹐則往左邊填上 0 ﹐直到補滿為止。這時候﹐你再看看最左邊的數字是以什麼為開頭的﹕
倘若您不懂得如何換算二進位﹐您也可以死記﹕
顯然易見﹐用二進位來識別 IP Class 容易得多﹗Okay﹐當我們曉得區別 IP 的 Class 之後﹐我們就可以知道 IP 的 Net_ID 和 Host_ID﹕
從下圖中﹐您可以輕易的區分上面三個不同的 IP Class ﹕ 您或許問:為什麼我們需要為 IP 劃分等級呢﹖這是當初在 IP 應用早期,為了管理需要而設計的﹕ 如 果您要組建一個單一的 IP 網路﹐那麼您得分配相同的 Net ID 給所有主機﹐而各主機的 Host ID 卻必須是唯一的﹐也就是說沒有任何兩個 Host ID 會是一樣的。您的網路還要連上 internet 或其它網路的話﹐那麼您使用的 Net ID 也必須是唯一的﹐也就是必需經過註冊才能獲得否則就會造成衝突了。若以比較接近現實生活的例子作比喻,就好比您家的電話號碼﹐如果是 1234567(Host ID) 的話﹐那麼在相同區號 (Net ID)裡﹐其他人將不會再使用這個號碼﹐然而﹐你不能保證在其它區號裡面沒有 1234567 這個號碼哦﹔然而,若台北使用了區號 02 的話﹐台南就不能使用 02 而必須改用其它(如 06 )。無論如何﹐整個區號加電話號碼必須是唯一的。同樣的道理﹕整個 IP 位址 (Net ID + Host ID) 在 Internet 上也必須是唯一的。這裡,有一個很特別的 Net ID﹕ 127 (即二進位的 01111111) 需要特別一提:它是保留給本機回路測試使用的﹐它不可以被運用於實際的網路中,其中的 127.0.0.1 則代表任何一台 IP 主機本身。 此 外,還有一個規則我們還必須遵守的﹕在指定 Host ID 的時候﹐換成二進位的話﹐不可以是全部為 0 ﹐也不可以是全部為 1。當 Host ID 全部為 0 的時候﹐指的是網路本身識別碼﹔而全部為 1 的時候﹐則為該網路的廣播位址﹐代表的是該網路上的所有主機(注意﹕別將 IP 的廣播和 Ethernet 的廣播搞混亂了,兩種廣播是不同層級的)。 很明顯﹐A Class 網路可分配的 Host ID 要比 C Class 的要多好多倍。讓我們算算可以劃分的 Net ID 數目和各等級裡面的 Host ID 數目就知道了﹕ 因為 A Class 第一個 bit 必須為 0 ﹐所以我們在頭一個 otect 的 8 個 bit 就只有 7 個 bit 是可變化的。那麼 27 = 128﹐再減去 127 這個 Net ID 不能使用﹐那麼我們實際上最多只能劃分127 A Class 的網路。而每個 A Class 的網路之下可以分配 2 的 24 次方(能夠使用的 Host ID 之 bit 數目)﹐亦即 16,777,216 個 Host ID﹐但因為二進位數字不可以全部為 0 或 1﹐所以再扣掉兩個,那麼實際能用來分配給主機使用的位址有 16,777,214 個。 Okay,用同樣的公式去算算 C Class 好了:因為 C Class 以 110 開頭﹐所以從 24 bit 的 Net_ID 中減去 3 個 bit ﹐因此可劃分的 C Class 網路則為 2 的 21次方(24-3) ﹐也就是2,097,152 個 Net ID﹐然後每個 Class C 之下則可以劃分 28 = 256 - 2 = 254 個 Host ID。 好了﹐接下來請您自己試試看﹐計算出 B Class 可以劃分多少個 Net ID ﹐以及每個 Net ID 之下的可用 Host ID 數目。( Tips﹕別忘了 Host_ID 不能全部為 0 或 1 )。 等您計算完畢後再來對照下面的列表﹕
Net Mask 到這裡﹐我必須要向大家交代清楚一件事情﹕在我們進行 IP 位址劃分的時候﹐IP 和 Net Mask 都必須一對使用的﹐兩者缺一不可﹗不過﹐當我們使用分等級的 IP 位址的時候﹐我們也可以使用預設的 mask ﹕
您或許又有問題了:這 是什麼意思啊﹖嗯~~ 看 255 比較難理解﹐如果您將之換算為二進位就容易理解多了﹕255 = 11111111(8個1),剛好是一個全部為 1 的完整 octet 。然後﹐請您把這些 Net Mask 和各等級 IP 對應看看... 聰明的您就會發現一個現象﹕就是~~ 凡是被 1 所對應著的 IP 部份就是 Net ID﹔凡是被 0 所對應部份就是 Host ID ﹗ 實際的情形是:當電腦獲得了一對 IP 和 Mask (都是二進位數字)之後﹐電腦會使用一個 AND 的二進位羅輯運算﹐來求出 Net ID。我們可以隨便拿一個 IP 來做例子﹕ 139.175.152.254 換成二進位是﹕ 因為它是以 10 開頭的﹐所以是一個 B Class IP。這個 Class 的預設 mask 是255.255.0.0 ﹐換成二進位﹕ 然後將 IP 和 mask 加以 AND 運算﹕ 得出﹕ 換成十進位就是 139.175.0.0 ﹐這個就是 Net ID了。 那麼,怎麼求 Host ID 呢﹖也很簡單﹕ 先將 Net Mask 做一個 NOT 運算﹐可以得出﹕ 然後再和 IP 做一次 AND 運算﹐就可以得到 Host ID: 換成十進位就成了﹕0.0.152.254。 就是這麼簡單﹐多拿些實際 IP 例子來運算運算您就得心應手了。 當 我們設定網路環境的時候﹐除了要輸入 IP 位址﹑netmask ﹑網路位址之外﹐還需要指定廣播位址( broadcast )。我們已經知道如果 Host ID 全部為 0 是網路位址﹑而全部為 1 則是廣播位址。其實廣播位址也可以通過一個簡單運算來獲得﹕ 先將 Net Mask 做一個 NOT 運算﹐可以得出﹕ 然後再和IP做一次 OR 運算﹐就可以得到 Broadcast Address: 換成十進位就成了﹕139.175.255.255。
劃分子網路 網路都有一定的節點極限的﹐比如 Ethernet 通常最多只能連接 1,200 台主機﹐如果您獲得一個 B Class 的 Net ID﹐豈不是浪費很多 Host ID了 嗎﹖要是使用 A Class 就更是駭人﹗ 當您遇到這種“有錢人的困擾”的時候﹐Sub-net Mask 就派上用場了。如果您剛才還認為預設的 Net Mask 是多餘的話﹐那麼當您知道 Sub-net Mask 的功能之後﹐我敢保證您不會再忽略 Net Mask了。 Sub-net Mask 的使用手法就是靠“借”﹐或可以說靠“搶”﹕就是從左往右的按需要將本來屬於 Host ID 的一些連續的 bit 轉為 Sub-net ID 來使用。也就是將預設的 Net Mask 的“1”逐漸的往右增加﹐相對地﹐Net Mask的“0”則越來越少。這樣的結果當然是可以獲得更多的 Net ID﹐換一句話說﹐您可以將一個大的 IP 網路分割成更多的子網路﹐而每一個子網路的主機數目卻相應的減少。 其情形會是﹕當您借用 1 個 bit 的 Host ID 來做 Sub-net ID 的時候﹐會將網路切割開兩個子網路(2 1 = 2) ﹔如果借 2 個 bit 則有 4 個子網路﹔3 個 bit 則 8 個﹔4 個 bit 則 16 個..... 當所有的 Host ID 都借出去之後﹐您可以得到最多數量的子網路﹐但這是毫無意義的﹐因為沒有 Host ID 了﹐您怎麼分配 IP 給主機呢﹖要是您的 Host ID 只剩下一個 bit 沒有借出去的話﹐那麼您在每個網路只能得到 0 和 1 來作為 Host ID﹐這也是不行的﹐因為這兩個 ID 也不可以用來分配給主機。 因此,當您切割網路的時候﹐您得最少留下 2 個 bit 來做 Host ID﹐這時候﹐每個網路最多只能連接 2 台主機。咦﹖22 不是等於 4 嗎﹖但別忘了 Host_ID 不能是兩個 0 或兩個 1 哦。這樣的網路通常會用在 WAN 與 WAN 之間的路由器連接。而在 LAN 中的應用﹐通常最少要保留 3 個 bit 來做 Host_ID,比方說,台灣 Hinet 的固八 ADSL (現在您終於知道為甚麼是固八而不是固九了吧?)。 為了更好的理解 Sub-net Mask 的功用﹐我們還是以剛才的 IP (139.175.152.254) 為例子,再來一翻推算﹕ 我們知道它在預設情形之下的 Net Mask 是﹕ 如果我們借用了 Host ID 的其中三個 bit 來做 Sub-net ID 的話﹐將原來的 Net Mask 和 Sub-net Mask 做一個 OR 的運算﹕ 換成十進位後﹐實際的 Net Mask 將會變成這樣﹕255.255.224.0 。 因 為借用的 ID 只有 3 個 bit﹐所以我們可以將原來的 B Class 網路切割為 8 個子網路﹐而它們的 Sub-net ID 則分別從 000 到 111 這 8 個組合﹐再加上原來的 Net ID (10001011.10101111.00000000.00000000)﹐各子網路的實際 Net ID 就成了﹕ 10001011.10101111.00000000.00000000(139.175.0.0) 這時候﹐本來是 16 個 bit 的 Host ID 只剩下 13 個 bit 了﹐也就是說﹕在每個子網路裡面﹐最多只能有 2 13 = 8,192 - 2 = 8,190 台主機﹐而它們可分配的號碼分別由 然而,我們並不能簡單的將它以十進位的 0.1 到 31.254 這樣表示﹐因為我們在表示一個完整的 IP 必需是 4 個完整的 Octet ,因此我們還得與各個不同的 Sub-net ID 再相加一起才能得出最終的 IP 號碼。例如﹕ 在 Sub-net ID 001 之下的主機號碼﹐將會是從 同樣的,在 Sub-net ID 100 之下的主機號碼﹐將會是從 明白了﹖還是請您自己再動手算算在 110 這個 Sub-net ID 之下的主機號碼範圍是多少﹖還有這個子網的 Net_ID 和廣播位址分別是什麼﹖ 如果您得出來的主機 IP 不是 139.175.192.1 到 139.175.223.254 之間﹐那麼您需要重新溫習前面所學﹐確定每一個概念都清楚了才繼續。否則您只會更混亂(記住:我已經在這裡警告過您了)。 Okay﹐這裡讓我們歸納一下以上所學吧﹕
不分等級的IP 思考一下﹕如果我的 IP 是 139.175.152.254﹐而 Net Mask 則為 255.255.255.0。您認為是否用錯了 net mask呢﹖而 203.56.6.18 使用 255.255.0.0 做 mask 又如何呢﹖ 這 裡,我們將較大的 IP 等級切割成許多較小網路﹐可以說是“有錢人的煩惱”﹔但難道“窮人”就沒有煩惱嗎﹖當然是有啦﹗例如﹕您的公司有接近 600 台主機﹐想連一個 IP 網路﹐若申請一個 B Class 網路似乎太浪費﹐而且﹐說實在﹐也未必可以申請得到﹗那麼申請 3 個 C Class 的網路總可以吧﹖當然沒問題啦﹗(如果還沒用光的話)。 然 而﹐因為 3 個 C Class 網路它們的 Net ID 都各自獨立的﹐如果您要其下的電腦都能溝通的話﹐就要 router 的參與了(關於 routing 我們稍後討論)。但是 router 一點都不便宜哦﹗就算您老闆不在乎﹐要設定和維護好幾個網路的 routing 也不是一件輕鬆的事情。 好消息是﹕您可以將這三個 C Class 網路整合在一起來使用啦﹗使用的是 CIDR (Classless Inter-Domain Routing)技術﹐也就是所謂的 不分等級 IP 了。使用 CIDR 的時候﹐您大可不必理會 IP 的開首字元﹐你可以隨便設定您的 Net Mask 長度。也就是說﹐一個原本屬於 C Class 的網路也可以使用 255.255.0.0 這樣的 mask ﹐我們稱這樣的網路為“Supernet”﹐跟 subnet 正好相反就是了。 事 實上,早期的 IP 開發並沒預期到 IP 消耗量的爆炸性成長,結果 Class 的設計在後來大大的箝制了 IP 網路的擃充與靈活性。例如上例中一個橫跨好幾個 C Class 的站點,因為不能取得 B Class 而造成網路數目的急劇成長,同時也導致路由維護的負擔與成本。因此在 1993 年 IEEE Network 的提案增加了 CIDR 的擴充,而打破了 Class 的局限。如果您的系統支持 CIDR 協定﹐就可以拋開等級的界限,使用可變長度的 netmask (VLSM) 靈活的的設計 IP 網路的範圍與路由。當然﹐如果要和其它網路溝通﹐您使用的 router 也必須支援 CIDR 才行啦﹐不過,現在的 router 鮮有不使用 CIDR 的了。 在 CIDR 引入之後,如果您覺得 139.175.152.254/255.255.0.0 和192.168.1.1/255.255.255.0 這樣的 IP 表現方法實在太麻煩了﹐這裡有一個更好的表示法﹕使用 mask 的 bit 數目長度表示 Net Mask。這樣我們就可以將前面兩個 IP 寫成這樣﹕139.175.152.254/16 和 203.56.6.18/24 。假如,這裡使用了三個 bit 的 Sub-net﹐我們只要將 16 改成 19 、將 24 改成 27 就可以了﹔如果是使用了三個 bit 的Supernet﹐我們將之改成 13 和 21 就可以了。這樣,在表示上和計算上都簡單得多﹐非常值得提倡。 "公共 IP" 與 "私有 IP" 當我們要將網路連上 Intetnet 的時候﹐我們必須先註冊好 Net ID﹐如果該 ID 已經被使用了﹐您就必須選用另外的 ID 了。負責 Internet IP 註冊的機構叫做 InterNIC (Network Information Center)﹐他們的網路位址是 http://www.internic.net。不過,實際上的運作,一般機構或個人是不太可能直接從 InterNIC 上註冊 IP 的,而是經您的 ISP 分配下來。這些經過合法授權使用的 IP ,我們稱之為 公共 IP( Public IP ) 然而,由於 Internet 的爆炸性成長﹐IP 的位址買少見少﹐而且在很多機構裡﹐也不是所有機器都有必要使用註冊的 IP 位址。於是﹐我們就在 A﹑B﹑C 這三個層級裡面﹐各劃出一些位址範圍保留給私有位址所用﹐它們分別是﹕
當您使用這些位址的時候﹐當然是有所限制的﹕
正是由於這些限制﹐當我們使用這些私有位址來設定網路的時候﹐就無需擔心會和其它也使用相同位址的網路衝突。而這些無需註冊就能自由使用的 IP ,我們稱之為 私有 IP( Private IP )。 當我們架設 IP 網路的時候,私有 IP 給與我們很大的方便。比方說﹕您目前的公司還沒有連上Internet﹐且也沒有獲得公共 IP 的註冊。倘若使用公共 IP 的話﹐等到以後真正要連上網路的時候﹐就很可能和別人衝突了。其壞處是:由於您的 IP 不是合法授權使用的,別人根本連不進來,而且,與您衝突的 IP 您卻永遠沒法連上去(若對方是您的最大客戶可就慘了)。若是那時候再重新規劃 IP 的話﹐將是件非常頭痛的問題! 解決的辦法是:我們可以先利用私有位址來架設網路﹐等到真要連上 intetnet 的時候﹐我們可以使用代理伺服器( proxy )或 IP 轉換( NAT --- Network Addresss Translation) 等技術﹐配合新註冊的 IP 就可以了。 由於私有位址在 Internet 上是不能路由的﹐用來架設企業內部網路﹐在安全上面也是有所幫助的。當然了﹐如果在課堂上或在家裡架設 IP 網路﹐使用私有位址也是個不錯的主意哦。 說到這裡,不得不提醒一下大家:在平時的技術討論中,許多人愛用 "真實 IP"、"合法 IP"、或 "實體 IP" 來稱呼 Public IP ﹔以 "假 IP"、"非法 IP"、或 "虛擬 IP" 來稱呼 Private IP 。但我認為都不太貼切,雖然在初學階段還不算甚麼,但隨著深入的研究,以後在討論 nat, vpn, vip, ipvs 等進階技術的時侯, 卻很可能因為名詞的誤解而浪費大量的時間在彎路上打轉。為此,我建議您儘量使用 "公共 IP" 與 "私有 IP" 來稱呼 Public IP 與 Private IP ,若您有興趣了解詳細原因,不妨花點時間看看 <<請問什麼是虛擬ip?>> 這篇文章。 參考資料﹕
|