【技巧】Class C 子網路切割 - 速算法



贊助商連結


頁 : [1] 2

linux_xp
2004-12-28, 02:29 PM
Class C 子網路切割 - 超級速算法 # 2004年 最終修正版

The Class C Subneting Super Quickly Copmputing

原理說明:

http://home.pchome.com.tw/art/linux2005/images/web/pczone/subneting2.gif

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

http://home.pchome.com.tw/art/linux2005/images/web/pczone/222.gif

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


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

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

http://home.pchome.com.tw/art/linux2005/images/web/pczone/subneting.gif

二進位 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?

http://home.pchome.com.tw/art/linux2005/images/web/pczone/subneting3.gif

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位

http://home.pchome.com.tw/art/linux2005/images/web/pczone/subneting4.gif

Network ID 佔 3 位

有 8 個子網路

二進位 netmask 為 /27

分析完畢! :)


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

因為根本不用算啊 ∼ :D

贊助商連結


geminiab
2004-12-28, 09:38 PM
以前有上過課,聽的很複雜又模糊,最後我都是這樣算的...
類型一:欲切割 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

琥珀
2004-12-28, 09:45 PM
分享辛苦了。分享辛苦了。

basuya
2004-12-28, 10:25 PM
以前有上過課,聽的很複雜又模糊,最後我都是這樣算的...
類型一:欲切割 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
受教啦,感謝您。

linux_xp
2004-12-28, 11:22 PM
/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 的機器好像不支援這種寫法?
也有可能是我用的模擬器比較舊的關係 :confused:

geminiab
2004-12-29, 12:00 AM
/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 的機器好像不支援這種寫法?
也有可能是我用的模擬器比較舊的關係 :confused:

受教了,感謝...

ICLA
2004-12-29, 12:00 AM
算法知道後,可以用 IP Subnet Calculator (http://www.wildpackets.com/products/ipsubnetcalculator) 來算喔...

linux_xp
2004-12-31, 02:05 AM
拍謝,表畫錯了
最多只會借到 6 位

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

userboy
2005-03-08, 12:26 PM
大大請問這篇可以轉寄給我的朋友看嗎 ?

linux_xp
2005-03-08, 07:24 PM
當然可以啦,都貼在網路上了 :)

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