iT邦幫忙

2023 iThome 鐵人賽

DAY 3
0

Classful IP VS Classless IP

Classful 和 Classless IP 一定是剛接觸網路的會有疑惑的的點
但其實他們是非常好懂的 可以先從定義、網路大小來瞭解

  • Classful
    • 早期 IP Address 使用的定址系統 拆分網路為 Class A,B,C,D,E
    • 每個網路的大小都是固定的 無法更改 容易造成空閒的 IP
  • Classless
    • 現代使用的 IP Address 定址系統 不再依照 Class 區分網路大小
    • 每個網路大小可依照 VLSM 調整的 能夠依照使用情形調節 IP 使用

從這幾點中可以看出為何 Classless 成為現代常用的定址系統
但為什麼還是常聽到 Classful 的網路呢
我們先可以看看 RFC1918 這個規範的定義
他定義了 3 組 Private 的 IP 分別為
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
這三組 IP 剛好就是基於 Class A,B,C 來定義的
每一個 Class 有一個自己的 Private IP Range
時至今日 我們依舊在使用這三組 Private IP 來建立自己的內網環境
當有人說出 Class A Private IP 時就能清楚的理解他說的網段 Range 是多少
而還有一部分是因 Multicast(多播) 使用的網段也還是依照 Classful 的 D 段網路定義

Classless IP 計算

在開始規劃網路前先來瞭解一下 Classless IP 的計算
如果要計算一個網路的網段
通常會先拿到一個 IP 和他的子網路遮罩
以 192.168.0.4 和 /24 來做舉例
先把十進制的 IP 和遮罩換成二進制表示來看
(/24 是以二進制表示時有 24 個 1 存在)

11000000.10101000.00000000.00000100 # IP
11111111.11111111.11111111.00000000 # 遮罩

可以想像沒被子網路遮罩罩住的 bit 是能更動的

11000000.10101000.00000000.00000100  # IP
11111111.11111111.11111111.00000000  # 遮罩
00000000.00000000.00000000.11111111  # 結果(Wildcard)

也就是得到最後的 8Bit 是能夠更動的
接著來找這個網段的網路IP(第一個IP)
把剛剛知道能更動的 Bit 全部歸0就可以找到

11000000.10101000.00000000.00000100  # IP
00000000.00000000.00000000.11111111  # 可更動範圍
11000000.10101000.00000000.00000000  # 網路位置

再來把廣播IP(最後一個IP)找到 就知道範圍了
把能更動的 Bit 全部添1就可以找到

11000000.10101000.00000000.00000100  # IP
00000000.00000000.00000000.11111111  # 可更動範圍
11000000.10101000.00000000.11111111  # 廣播位置

最後再把二進制換回十進制就能得到答案了
也就是得到 192.168.0.0 和 192.168.0.255
而扣除了這兩個 IP 就是我們能使用的 IP Range 了

簡易計算

這邊我再提供一個簡單許多的方法

假設把 11111111(255) 每一個bit分別換成十進制會得到
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 這八個數字
把子網路遮罩換成這樣表示再用加減乘除就能知道網段網路和廣播 IP
以 192.168.0.0/25 來說
25 的遮罩是第三個小數點後 10000000 也就是 128
256(8b 內所有的 IP 數量) - 128(剛剛得出來的數字) = 128 就得到這個網段所有 IP 數
0 / 128 = 0 , 也就是說他是第一個( 以 0 作為第一組開始算)
算出他在第幾個網段找出他的網路 IP, 0 代表就是第一個組網段
由於是第一組網段就由 0 (8bit 內第一個 IP) 開始算
0 + 128(遮罩) - 1(廣播 IP 占掉的) = 127
就能知道這一個網段是 192.168.0.0 ~ .127
下一段是 127 + 1 (下一個 IP) = 128 (第二個網段的起始 IP)
128 + 128 - 1 = 255
這樣子就能快速推出網段範圍

而當今天是給比較複雜的 IP 也是能計算
以 12.34.56.78/20 作為目標找出他的網段範圍
先把 /20 料理成第二個小數點後 11110000 也就是 240(128 + 64 + 32 + 16)
256 - 240 = 16
56 / 16 = 3 (算出他在第幾個網段找出他的網路 IP)
0 + 16 * 3 = 48
這邊就能得出網路 IP 是 12.34.48.0 接著算廣播 IP
48 + 16 - 1 = 63
就得到廣播 IP 為 12.34.63.255
這樣就能非常有效率的計算 IP 位置了


上一篇
Day2 Layer 123 進到機房怎麼那麼多沒看過的東西!?
下一篇
Day4 Networking 規劃 Route 來 Route 去不小心丟進Null0了
系列文
地端建置大雜燴-下從網路線上到Grafana的建置之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言