# 1.4 IPv4, CIDR आणि subnetting नीट समजून घेऊ

Source: https://ravindrabagale.com/mr/aws/ch01-networking-fundamentals/1-4-ipv4-in-detail.html
Language: mr (Marathi with English technical terms)

पेन-कागद घेऊन हिशोब करा. IPv4 समजलं की AWS मधले CIDR आणि subnets सोपे होतात.

IPv4 ची रचना

IPv4 मध्ये 32 bits असतात. 8 bits च्या चार octets मध्ये, dot लावून decimal स्वरूपात लिहितो. प्रत्येक octet 0 ते 255:

     192    .    168    .     1     .    10
  11000000   10101000   00000001   00001010
  |<-8 bits->|
  |<---------------- 32 bits ---------------->|

एकूण addresses 2^32 ≈ 4.3 billion. Phones, laptops आणि IoT च्या प्रमाणात ही संख्या मर्यादित आहे; private IPs, NAT आणि IPv6 याच कारणासाठी महत्त्वाचे आहेत.

Network portion म्हणजे कोणतं network — रस्त्याच्या नावासारखं.

Host portion म्हणजे त्या network मधली machine — घराच्या number सारखं.

Subnet mask हे भाग ठरवतो. 255.255.255.0 मध्ये पहिले 24 bits network चे आहेत.

Classful addressing: जुनी पद्धत, exams मध्ये उपयोगी

 | Class
 | First octet range
 | Leading bits
 | Default mask
 | Networks / Hosts per network
 | Use

 | A
 | 1 – 126
 | 0
 | 255.0.0.0 (/8)
 | 126 / ~16.7 million
 | Very large networks

 | B
 | 128 – 191
 | 10
 | 255.255.0.0 (/16)
 | 16,384 / 65,534
 | Medium networks

 | C
 | 192 – 223
 | 110
 | 255.255.255.0 (/24)
 | ~2 million / 254
 | Small networks

 | D
 | 224 – 239
 | 1110
 | —
 | —
 | Multicast

 | E
 | 240 – 255
 | 1111
 | —
 | —
 | Experimental / reserved

Class A/B/C अनुक्रमे मोठ्या/मध्यम/छोट्या networks साठी वापरले जात. Class D multicast आणि Class E experimental/reserved आहे.

127 चं काय?

127.0.0.0/8 loopback साठी reserved. 127.0.0.1 किंवा localhost म्हणजे हीच machine. App 127.0.0.1:3000 वर असेल तर server वरूनच direct access मिळतो; reverse proxy च्या मागे हे उपयोगी आहे.

CIDR — Classless Inter-Domain Routing

जुन्या classes मध्ये addresses वाया जात. फक्त 500 hosts साठीही मोठा Class B block घ्यावा लागे. CIDR मध्ये IP नंतर /n लिहितो; n म्हणजे network bits.

 | CIDR
 | Subnet mask
 | Total addresses
 | Usable hosts (traditional)
 | Usable in AWS subnet

 | /16
 | 255.255.0.0
 | 65,536
 | 65,534
 | 65,531

 | /20
 | 255.255.240.0
 | 4,096
 | 4,094
 | 4,091

 | /24
 | 255.255.255.0
 | 256
 | 254
 | 251

 | /25
 | 255.255.255.128
 | 128
 | 126
 | 123

 | /26
 | 255.255.255.192
 | 64
 | 62
 | 59

 | /27
 | 255.255.255.224
 | 32
 | 30
 | 27

 | /28
 | 255.255.255.240
 | 16
 | 14
 | 11

 | /32
 | 255.255.255.255
 | 1
 | single host
 | —

Formula: total addresses = 2^(32 − n). पारंपरिक subnet मध्ये usable hosts = 2^(32 − n) − 2, कारण network आणि broadcast addresses राखीव. /31 point-to-point आणि /32 host route हे विशेष cases आहेत.

AWS मध्ये 5 addresses राखीव

नेहमीच्या AWS IPv4 subnet मध्ये पहिले चार आणि शेवटचा address reserved: network, VPC router (.1), DNS (.2), पुढच्या वापरासाठी (.3) आणि शेवटचा address. त्यामुळे /24 मध्ये 251 usable IPs. या course च्या IPv4 CIDR उदाहरणांमध्ये /16 ते /28 blocks वापरतो.

0.0.0.0/0 म्हणजे सर्व IPv4 addresses. Security group मध्ये anywhere आणि route table मध्ये default route म्हणून दिसेल.

Mauli Dairy चं office network 192.168.1.0/24 असेल तर पहिले 24 network bits आणि शेवटचे 8 host bits; पारंपरिक 254 usable hosts. त्याच आकाराच्या नेहमीच्या AWS subnet मध्ये 251 usable.

Worked example: चार समान subnets

College ला 192.168.10.0/24 मिळालं आहे. चार labs साठी चार समान subnets करू.

चार subnets साठी दोन bits उधार: 2² = 4. नवीन prefix 24 + 2 = /26.

प्रत्येक block 2^(32−26) = 64 addresses. Mask 255.255.255.192.

शेवटच्या octet मध्ये 64 ने वाढवत subnets लिहा:

 | Subnet
 | Network address
 | First usable
 | Last usable
 | Broadcast
 | Usable hosts

 | Lab 1
 | 192.168.10.0/26
 | 192.168.10.1
 | 192.168.10.62
 | 192.168.10.63
 | 62

 | Lab 2
 | 192.168.10.64/26
 | 192.168.10.65
 | 192.168.10.126
 | 192.168.10.127
 | 62

 | Lab 3
 | 192.168.10.128/26
 | 192.168.10.129
 | 192.168.10.190
 | 192.168.10.191
 | 62

 | Lab 4
 | 192.168.10.192/26
 | 192.168.10.193
 | 192.168.10.254
 | 192.168.10.255
 | 62

192.168.10.100 च्या शेवटच्या octet चे binary 01100100. सुरुवातीचे दोन subnet bits 01 म्हणजे zero पासून मोजलेला subnet 1 — Lab 2, 192.168.10.64/26.

Block size ची trick

Mask मधल्या शेवटच्या non-255 octet साठी 256 − 192 = 64. म्हणून सुरुवात 0, 64, 128, 192.

AWS मध्ये 10.0.0.0/16 VPC चे 10.0.1.0/24 public AZ-a, 10.0.2.0/24 public AZ-b, 10.0.11.0/24 private AZ-a आणि 10.0.12.0/24 private AZ-b असे subnets करू शकतो.

Linux वर ipcalc package वापरून हिशोब तपासा:

ipcalc 192.168.10.64/26

Lab

10.0.0.0/24 चे चार समान subnets करा. Prefix, block size, प्रत्येक network, usable range आणि broadcast लिहा. ipcalc 10.0.0.64/26 ने दुसरं उत्तर तपासा.

IPv4 = 32 bits, /n = network bits आणि block size हे तीन मुद्दे पक्के करा; पुढे IPv6 पाहू.

रवींद्र बागले यांची tip

/26 मधले 64 हे total addresses आहेत: पारंपरिक 62 usable, AWS मध्ये साधारण 59. आठवडाभर रोज पाच subnetting उदाहरणं सोडवा आणि ipcalc ने तपासा.
