【技巧】Class C 子網路切割 - 速算法 - PCZONE 討論區

返回   PCZONE 討論區 > ▲ ADSL_CABLE_FTTH 寬 頻 上 網 討 論 > -- 網 路 技 術 版


PCZONE 討論區



通知

-- 網 路 技 術 版 較深入的網路方面技術問題,請來此這版討論

Kree
【技巧】Class C 子網路切割 - 速算法
Class C 子網路切割 - 超級速算法 # 2004年 最終修正版

The Class C Subneting Super Quickly Copmputing

原理說明:



Network ID 佔的位數 + Host ID 佔的位數 = 總合為 8



※ 請記住這個表,以下超級速算法,不去計算2的指數,直接靠位數取得對應結果 ※


類型一:欲切割 32 個子網路,netmask 多少?每個子網路有幾個ip?

32 是 2 的 5 次方,所以 Network ID 借了 5 位



二進位 netmask 為 /29 (Class C 由 /24 起跳,+ 5 = 29)

Nerwrok ID 佔 5 位,Host ID 佔 3 位,每個子網路有 8 個ip

十進位 netmask 尾碼 256 - 8 = 248 ,255.255.255.248

分析完畢!


類型二:/26,有幾個子網路?每個子網路有幾個ip?



Network ID 借了 2 位,Host ID 佔 6 位,每個子網路有 64 個ip

Netwrok ID 佔 2 位, 4 個子網路

分析完畢!


類型三:netmask 255.255.255.224,有幾個子網路?每個子網路幾個ip?二進位 netmask 多少?

256 - 224 = 32,每個子網路有 32 個ip

32 是 2 的 5 次方,Host ID 佔了 5位



Network ID 佔 3 位

有 8 個子網路

二進位 netmask 為 /27

分析完畢!


爲什麼是「分析」,而不是「計算」呢?

因為根本不用算啊 ∼

回覆
會員

以前有上過課,聽的很複雜又模糊,最後我都是這樣算的...
類型一:欲切割 32 個子網路,netmask 多少?每個子網路有幾個ip?
1.每個網段IP 256/32=8
2.子網路遮罩 256-8=248...類推

類型二:/26,有幾個子網路?每個子網路有幾個ip?
/26...這我不了解是什麼意思

類型三:netmask 255.255.255.224,有幾個子網路?每個子網路幾個ip?二進位 netmask 多少?
1.子網路有 256/(256-224)=8 .........(224為子網路遮罩最後一碼)
2.每個子網路256/8=32個IP
回覆
あなたの家に行く

分享辛苦了。分享辛苦了。
回覆
會員

引用:
作者: geminiab
以前有上過課,聽的很複雜又模糊,最後我都是這樣算的...
類型一:欲切割 32 個子網路,netmask 多少?每個子網路有幾個ip?
1.每個網段IP 256/32=8
2.子網路遮罩 256-8=248...類推

類型二:/26,有幾個子網路?每個子網路有幾個ip?
/26...這我不了解是什麼意思

類型三:netmask 255.255.255.224,有幾個子網路?每個子網路幾個ip?二進位 netmask 多少?
1.子網路有 256/(256-224)=8 .........(224為子網路遮罩最後一碼)
2.每個子網路256/8=32個IP
受教啦,感謝您。
回覆
Kree

/26 的意義

netmask (子網路遮罩)一般會用十進位的表示法,例如:255.255.255.0

但我們知道,ip實際上是二進位的
Class A、B、C,在RFC規範中的定義,是第一碼為1、10、110
而netmask的作用,也是先換算成二進位,才有辦法和ip做AND邏輯運算
換句話說,netmask 用十進位來表示,是多此一舉

所謂的255.255.255.0
實際上就是 11111111 11111111 11111111 00000000
這就像裹腳布,又臭又長

現在國際上有一種新式的 netmask 正規表示法
如上所示的255.255.255.0,它的二進位前面有24個1
新式的正規表示法為 /24

255.0.0.0 = /8
255.255.0.0 = /16
255.255.255.0 = /24

有借位的話(subneting,子網路切割)
就是看借幾位,就往後加多少,粉簡單的加法
可參考樓上那張圖

這種新式的正規表示法,是不是非常簡單明瞭呢
換算子網路切割也非常方便

從上面的速算法就可以看出
十進位的netmask 簡直就是多餘的,反而造成換算上的困擾

目前比較新的網路軟體,甚至是較新型的Linux核心硬體路由器
設定檔都可以接受這種寫法了
如:apache,bind....等等



不過 Cisco 的機器好像不支援這種寫法?
也有可能是我用的模擬器比較舊的關係
回覆
會員

引用:
作者: linux_xp
/26 的意義

netmask (子網路遮罩)一般會用十進位的表示法,例如:255.255.255.0

但我們知道,ip實際上是二進位的
Class A、B、C,在RFC規範中的定義,是第一碼為1、10、110
而netmask的作用,也是先換算成二進位,才有辦法和ip做AND邏輯運算
換句話說,netmask 用十進位來表示,是多此一舉

所謂的255.255.255.0
實際上就是 11111111 11111111 11111111 00000000
這就像裹腳布,又臭又長

現在國際上有一種新式的 netmask 正規表示法
如上所示的255.255.255.0,它的二進位前面有24個1
新式的正規表示法為 /24

255.0.0.0 = /8
255.255.0.0 = /16
255.255.255.0 = /24

有借位的話(subneting,子網路切割)
就是看借幾位,就往後加多少,粉簡單的加法
可參考樓上那張圖

這種新式的正規表示法,是不是非常簡單明瞭呢
換算子網路切割也非常方便

從上面的速算法就可以看出
十進位的netmask 簡直就是多餘的,反而造成換算上的困擾

目前比較新的網路軟體,甚至是較新型的Linux核心硬體路由器
設定檔都可以接受這種寫法了
如:apache,bind....等等



不過 Cisco 的機器好像不支援這種寫法?
也有可能是我用的模擬器比較舊的關係
受教了,感謝...
回覆
會員

算法知道後,可以用 IP Subnet Calculator 來算喔...
回覆
Kree

拍謝,表畫錯了
最多只會借到 6 位

因為借到 7 位的時候
Host ID 佔 1 位,只有 2 個 IP可用
一個給網段本身,一個給廣播位置,等於沒得用

回覆
會員

大大請問這篇可以轉寄給我的朋友看嗎 ?
回覆
Kree

當然可以啦,都貼在網路上了

這是一般常用的速算法,不是我原創的
我只是畫圖加以說明而已

回覆







 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。