IPv4 Addressing

ipv4依類別分為
classful(分級定址),早期的方法,將ip分為class A,B,C,D,E
classless(不分級定址),使用CIDR技術,新的方法,支援vlsm,discontiguous network

為區分不同規模的網路,將每個完整的32bit的ip分成網路與主機部份,如下表:

class2進位開頭範圍網路bit/可用網路主機bit/可用主機其他補充
A01-1268/127((2^7)-1)24/16,777,216私有ip:10.0.0.0-10.255.255.255
B10128-19116/16,384(2^14)16/65,534私有ip:172.16.0.0-172.31.255.255
C110192-22324/2,097,152(2^21)8/254私有ip:192.168.0.0-192.168.255.255
D1110224-239  特殊用,multicast用(視訊會議)
E1111240-255  保留範圍,IETF研究網路用

ps:
Class A addresses:127*16,777,214= 2,130,706,178
Class B addresses:16384* 65,534 = 1,073,709,056
Class C addresses:2,097,152*254 = 532,676,608
total available addresses=
2,130,706,178 + 1,073,709,056+532,676,608 =
3,737,091,842

CIDR(Classless Inter-Domain Routing,不分級網域間之路由)
由IETF提出
不分等級IP,完全依照mask定義網路
可將多個SUBNET或是NETWORK合起來成為一個supernet
可使用VLSM決定可變長度的netmask來產生許多subnet
搭配拓樸式定址法,客戶可依實際需求取得適當大小位址區塊

mask
用來決定網路位置與主機位置用的參數,如下表:

10進位mask2進位mask,預設網路位元為1,主機位元為0CIDR值網路bit可用主機其他補充
255.0.0.011111111,00000000,00000000,00000000/8816,777,216給class a當預設mask
255.255.0.011111111,11111111,00000000,00000000/161665536給class b當預設mask
255.255.255.011111111,11111111,11111111,00000000/2424256給class c當預設mask
255.255.255.12811111111,11111111,11111111,10000000/2525128
255.255.255.19211111111,11111111,11111111,11000000/262664
255.255.255.22411111111,11111111,11111111,11100000/272732
255.255.255.24011111111,11111111,11111111,11110000/282816
255.255.255.24811111111,11111111,11111111,11111000/29298
255.255.255.25211111111,11111111,11111111,11111100/30304用在點對點的wan鏈路
255.255.255.25411111111,11111111,11111111,11111110/31312
255.255.255.25511111111,11111111,11111111,11111111/32321主機自己本身

主機數-2=實際可用主機數
ps:mask若為0.0.0.0,在路由表上代表任何主機

RFC3330定義的保留位置
0.0.0.0/8 此位址表示所有任何的意思
 在netstat中,表示應用程式將接聽所有的本機介面
 Used for broadcast messages to the current (“this”) network,by RFC 1700
100.64.0.0/10, refer RFC 6598
127.0.0.0/8  用做loopback(迴路)測試用
169.254.0.0/16 dhcp程序失敗時,主機預設使用的IP位置
192.0.2.0/24 保留作為文件及示範用途
192.88.99.0/24 用於IPv4和IPv6中繼(RFC3068)
192.18.0.0/15 用於網路設備測試(RFC2544)
refer
https://tools.ietf.org/html/rfc3330
https://en.wikipedia.org/wiki/Reserved_IP_addresses

其他特殊ip位址
網路位元全0+主機位元全0:0.0.0.0,本機,系統啟動用,路由表用它來指定預設路徑,也可解釋為任何網路
網路位元全1+主機位元全1:255.255.255.255,自己的網路廣播位址,也叫做flooded broadcast
網路位元+主機位元全1:特定網路的廣播位址,也叫做directed broadcast
網路位元+主機位元全0:該網路的位址

算ip的網路位址和廣播位址
1將mask轉成2進位
2ip在mask非0部份改填0,重算後=網路位置,就是mask和ip做and運算
3ip在mask非0部份改填1,重算後=廣播位置,就是mask先not後在和ip做or運算
ex:ip=192.128.248.130,mask=255.255.255.240
11111111,11111111,11111111,11110000(255.255.255.240)
11000000.10000000.11111000.10000010(192.128.248.130)
11000000.10000000.11111000.10000000(192.128.248.128)網路位置=ip AND mask
11000000.10000000.11111000.10001111(192.128.248.143)廣播位置=ip OR (not(mask))

……………

subnet(子網路)
從一個網路切割產生
好處:減少網路流量; 彈性分配運用; 簡化管理; 安全考量

subneting(子網路切割)
可將一個NETWORK切成多個SUBNET
方法:向後借bit,會使網路變多,但各網內主機變少
 class c最多可向後借6bit建立64個子網路
 class b最多可向後借14bit建立16384個子網路
 class a最多可向後借22bit建立4194304個子網路
ex:a網要60個ip,b網要30個ip,c網要2個ip,d網要10個ip
用192.168.10.0網路來切割,可切成如下
192.168.10.0/26,區塊大小為64,有62個ip給a網
192.168.10.64/26,區塊大小為64,有62個ip給b網
192.168.10.128/26,區塊大小為64,有62個ip給c網
192.168.10.192/26,區塊大小為64,有62個ip給d網

VLSM(Variable Length Subnet Mask,可變子網路切割) ,RFC1219
這是一種產生不同大小子網的網絡分配機制,可使IP的可用性增加
ex:a網要60個ip,b網要30個ip,c網要2個ip,d網要10個ip
用192.168.10.0網路來切割,可切成如下
192.168.10.0/26,區塊大小為64,有62個ip給a網
192.168.10.64/27,區塊大小為32,有30個ip給b網
192.168.10.96/30,區塊大小為4,有2個ip給c網
192.168.10.100/28,區塊大小為16,有14個ip給d網
還有區塊大小140未分配,可在產生其他子網路

……………………

summariz(總結),也稱route aggregation(路徑聚合)
將多個網路集合成大的網路,也稱為supernet(超網路)
方法:向前借bit,會使網路變少,但各網主機變多
這讓繞送協定能夠以一個位址來宣傳多個網路
目的是為了縮減路由器之路徑表的大小,以節省記憶體,同時縮短ip分析路徑表以找尋扺達遠端網路之路徑時間
籍由在一個宣傳訊息中宣傳許多路徑,而非各別的宣傳每條路徑,可最有效率提供路徑更新,這會節省不少頻寬
ps:isp連到客戶端網域時常用此方法
ex:若路由表有10.1.0.0/24到10.1.3.0/24這4個網路,且都會送到10.10.0.0網路
則這4個網路可summariz成10.1.0.0/22,並從到10.10.0.0網路,路徑就從4筆變成1筆
這同時也表示,10.1.0.0到10.1.3.255的1024個ip,會送到10.10.0.0的網路
ex:若路由表有192.168.144.0/21和192.168.152.0/21這2個網路會被送到s0介面
則這2個網路可summariz成192.168.144.0/20,並送到s0介面,路徑從2筆變成1筆
這同時也表示192.168.144.0到192.168.159.255的ip會被送到s0介面