在後續會開始漫談雲端的部分,在使用雲端網絡設計和管理需要對IP地址進行嚴格控制,以確保資源的正確連接和通信。此時會需要使用CIRD(「無類別域間路由」(Classless Inter-Domain Routing)) 分配和路由IP地址。如果對這東西沒掌握度的話在GCP使用上沒配置好很容易遇到衝突問題,所以針對這個做個較透徹明確小記錄。
相信各位對於IP應該再熟悉不過了,不過對於它的格式定義,如果不是特別做網管的人或是會常遇到需要做IP配置的需求,大部分的AP工程師會忽略。所以稍微對於這部分做一個整理。
IPv4 是目前最常見的網際網路協定,在IETF(Internet Engineering Task Force)於1981年9月發布的 RFC 791 中被描述最初的目的是讓全球的電腦彼此連接。
它的地址由32位二進位數字組成,通常被分為4個「八位元組」或「位元組」,每個位元組由一個點分開,而每個位元組可以表示為0到255之間的數字。所以,IPv4地址的格式是:X.X.X.X,其中每個X都是0到255之間的數字。例如:192.149.252.76 (如下圖)。
RFC 791 由 美國國防部的 ARPANET 計劃制定,目的是讓不同的電腦網路之間可以互相溝通。
Internet Assigned Numbers Authority(IANA,網際網路數字分配局)是負責管理全球網際網路資源的機構。IANA 的主要職責包括:
- IP位址分配:負責全球IP位址的分配,特別是IPv4和IPv6位址,並將這些位址空間分配給各區域的註冊機構(RIRs),如亞太地區網際網路註冊機構(APNIC)等。
- 域名系統(DNS)管理:IANA負責管理DNS的根域,包括根域名伺服器的維護,並確保網域名稱與IP位址的對應。
- 協定編號管理:IANA負責維護和管理各種網際網路協定中的數值標識符,如端口號(Port Numbers)、協定號碼(Protocol Numbers)等,確保不同協定和應用程序可以正確地運行。
上述提到,IPv4 用 32 位 來表示一個地址(像 192.168.1.1),最多可以支持約 43 億個 IP 地址。最初,這個數量看起來很大,因為當時的網路還沒有普及。
隨著網路和設備越來越多,尤其是像手機、物聯網設備的出現,IPv4 的地址已經漸漸不足。到了 1990 年代,就開始出現所謂的「IPv4 地址枯竭」問題,全球唯一的 IP 地址池(IANA)也快要用光了。為了解決這個問題,技術人員開始研發下一代的網路協定,也就是 IPv6。
IPv6地址由128位二進位數字組成,通常被分為8組,每組是4個十六進位數字,組與組之間由冒號分開。這意味著每一組可以表示為0000到FFFF之間的數字。所以,IPv6地址的格式是:X:X:X:X:X:X:X:X,其中每個X都是0000到FFFF之間的數字。例如:3ffe:1900:fe21:4545:: (當 IPv6 地址裡有連續的「0」組,可以用 ::
來省略不寫)。
IP 配置通常都會有一個與之對應的位址遮罩,用於識別 IP 地址中的網路部分和主機部分。位址遮罩和 IP 地址一起使用,可以更有效地路由數據到正確的設備或目的地。
一個 IP 地址包含兩個主要組成部分:網路地址和主機地址。
位址遮罩是用來區分這兩個部分的,通過將 IP 地址中的某些位指定為網路地址,其餘的位作為主機地址。這樣,路由器或網路設備可以知道某個 IP 地址屬於哪個網路,以及這個網路中的哪台主機。
假設我們有一個 IP 地址:192.168.1.5
,並且它的位址遮罩是 255.255.255.0
。
192.168.1
,表示該 IP 地址所屬的網路。.5
,表示該網路中的某台具體設備。位址遮罩 255.255.255.0
指示前 24 位(前三組數字)是網路地址,最後 8 位(第四組數字)是主機地址。
為了更清楚,將位址遮罩 255.255.255.0
轉換為二進位:
11111111
11111111.11111111.11111111.00000000
這表明前 24 位都是「網路部分」,而最後 8 位是「主機部分」。
IPv4 使用具體的 子網遮罩,如上述提到的 255.255.255.0
。用來定義子網的大小。子網遮罩告訴你哪些位是網路部分(以 1 表示),哪些位是主機部分(以 0 表示)。
IPv6 地址比較長,因此一般只用一個 /
後面的數字來表示子網範圍,而不使用具體的位址遮罩。
例如,2001:db8::/64
表示該網路的前 64 位是固定的網路位(後續會提到CIDR),剩下的部分是主機地址。
IPv4 和 IPv6 確實是 地址格式的規範,定義了如何表示和使用 IP 地址。而 SubMask(位址遮罩)則是與這些地址格式搭配使用的,用於網路中的實際應用,如劃分子網和區分網路部分與主機部分。
CIDR(無類別域間路由,Classless Inter-Domain Routing)用於表示 IP 地址和位址遮罩的一種方式,可以使 IP 地址的分配更為靈活,更好地適應實際需求。簡單來說他是一個IP分配的表示,會表示一個子網區域的分配。可以讓你快速地了解網路中有多少可用的 IP 地址。
假設你的 IP 地址是 36.225.74.34,你的位址遮罩就會決定你的 CIDR 記號。例如:
"/24" 表示的是位址遮罩中的 "1" 的數量,表示前 24 位是網路地址的一部分,最後的 8 位是主機地址的一部分。在主機地址部分就是你的子網域範圍,而你有8bit可以配置,範圍包含了從 "36.225.74.0" 到 "36.225.74.255" 之間的所有 IP 地址,總共有 256 個 IP 地址。
須注意的是,在這 256 個地址中,"36.225.74.0" 通常被用作網路地址,而 "36.225.74.255" 通常被用作廣播地址,這兩個地址通常不會分配給主機。因此,實際可用的 IP 地址將是 "36.225.74.1" 到 "36.225.74.254"。
網路地址(Network Address):這是用於標識特定子網的地址。它是該子網中的第一個地址,用於在網路中路由和描述網路的位置。網路地址通常不會分配給任何特定的主機作為其 IP 地址。
廣播地址(Broadcast Address):這是子網中的最後一個地址,用於向該子網中的所有設備發送信息。當一個訊息被發送到廣播地址時,該訊息將被傳送到該子網的所有主機。同樣的,廣播地址也不會分配給任何特定的主機作為其 IP 地址。
以此類推"/25”意味著位址遮罩中有25個1,你的 IP 範圍(IP Range)或者說是子網(Subnet)將會是 "36.225.74.0" 到 "36.225.74.127"。換句話說,這個子網包含了從 "36.225.74.0" 到 "36.225.74.127" 之間的所有 IP 地址,總共有 128 個 IP 地址。
每個子網的大小必須是 2 的 n 次方,而且範圍必須從某個特定的數字開始。
接下來我們做個小練習,將 36.225.74.0
到 36.225.74.255
的地址範圍劃分為兩個不同的子網,具體如下:
36.225.74.0
到 36.225.74.127
36.225.74.128
到 36.225.74.255
CIDR 表示法如下:
子網一: 36.225.74.0/25
36.225.74.0
到 36.225.74.127
36.225.74.0
36.225.74.127
36.225.74.1
到 36.225.74.126
子網二: 36.225.74.128/25
36.225.74.128
到 36.225.74.255
36.225.74.128
36.225.74.255
36.225.74.129
到 36.225.74.254
這樣可以將 36.225.74.0
到 36.225.74.255
的地址空間劃分為兩個相等大小的子網,每個子網擁有 128 個 IP 地址。
36.225.74.0
到 36.225.74.63
36.225.74.64
到 36.225.74.255
由於 36.225.74.64
到 36.225.74.255
的範圍無法直接表示為一個子網(要遵守2的n次方),因此需要再進一步拆分:
CIDR 表示法如下:
子網一: 36.225.74.0/26
36.225.74.0
到 36.225.74.63
36.225.74.0
36.225.74.63
36.225.74.1
到 36.225.74.62
子網二:
這個範圍需要再劃分為兩個子網:
子網二-1: 36.225.74.64/26
36.225.74.64
到 36.225.74.127
36.225.74.64
36.225.74.127
36.225.74.65
到 36.225.74.126
子網二-2: 36.225.74.128/25
36.225.74.128
到 36.225.74.255
36.225.74.128
36.225.74.255
36.225.74.129
到 36.225.74.254