Friday 26 February 2010

အခြေခံ IP Addressing

Binary Maths အရ 0 နဲ့ 1 ဘဲရှိတယ်။

Decimal Maths ကတော့ နေ့စဉ်သုံးနေတဲ့ ပုံမှန် 1, 2, 3,….10, …, 20……, 100, 101, 102, …. အစရှိသဖြင့် အလုပ်လုပ်ကြတယ်ဆိုတာကိုတော့ သိပြီးသားဖြစ်မှာပါ။

Boolean AND တွက်ချက်မှုအရ

1 + 1 = 1
1 + 0 = 0
0 + 1 = 0
0 + 0 = 0

ဖြစ်တဲ့ တွက်ချက်မှုနဲ့ တွက်ပြီးတော့ IP Address ကို အခြေခံအားဖြင့် တွက်ယူတယ်။

Address = တိကျတဲ ID နံပါတ်တစ်ခု ကွန်ပျူတာ (Host) ဒါမှမဟုတ် Device တစ်ခုရဲ့ interface တစ်ခုအတွက် တိကျတဲ့ ID နံပါတ်တစ်ခု

subnet = network addresses တွေကို ပိုမိုရရှိစေဖို့ ‌address တစ်ခုမှ addresses များ ခွဲထုတ်ခြင်း

subnet mask = 32 bit အစုအပေါင်းဖြစ်တဲ့ address တစ်ခုဖြစ်တယ်။ network အပိုင်းနဲ့ host အပိုင်းကို ဖေါ်ပြတဲ့နေရာမှာသုံးတယ်။

interface = network cable တပ်တဲ့နေရာကို ဆိုလိုတယ်။

Understanding IP Addresses

IP address ကို 32 binary bits တွေနဲ့ဖွဲ့စည်းထားပြီး network ပိုင်းနဲ့ hosts ပိုင်းကို ခွဲခြားသိနိုင်ဖို့ subnet mask ကို အကူအညီပေးတယ်။ အဲဒီ 32 binary bits ကို အပိုင်းလေးပိုင်း ပိုင်းထားပေးတယ်။ ၁ ပိုင်းစီကို 1 octet လို့ခေါ်တယ်။ 1 octet မှာ 8 binary bits ရှိတယ်။ (1 octet = 8 bits) ။ အဲဒီ binary bits တွေကို decimal ပုံစံကိုပြန်ပြောင်းပြီး dot (.) တွေနဲ့ခြားထားပြီး၊ လူသားတွေ အလွယ်တကူနားလည်နိုင်တဲ့ သချာၤပုံစံနဲ့ ရေးကြ သုံးကြတယ်။ octet range တစ်ခုချင်းစီမှာ 0 ကနေ 255 ထိ 256 လုံးရှိတဲ့ decimal number ရှိတယ်။ Binary bits အားဖြင့် ဆိုရင်တော့ 00000000 ကနေ 11111111 လို့ပြောလို့ရတယ်။


2 7

2 6

2 5

2 4

2 3

2 2

2 1

2 0

128

64

32

16

8

4

2

1

1

1

1

1

1

1

1

1

128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255

IP Address တွေကို Class 5 မျိုးခွဲထားတယ်။

Class A 1 – 127 (127 ကို loopback address နဲ့ internal testing အတွက်ဘဲအသုံးပြုတယ်)
Class B 128 – 191
Class C 192 – 223

Class D 224 – 239 (multicast address အတွက်အသုံးပြုဖို့ချန်ထားတဲ့ အုပ်စု)
Class E 240 – 255 (experiment
 နဲ့ research လုပ်တဲ့နေရာတွေမှာသုံးဖို့ ချန်ထားတဲ့ အုပ်စု)

Class A, B, C Group သုံးခုကိုဘဲ hosts တွေနဲ့ interfaces တွေအတွက်သုံးတယ်။

Class A Range 1.0.0.0 to 126.0.0.0

00000000.00000000.00000000.00000000

Class B Range 128.0.0.0 to 191.0.0.0

10 000000.00000000.00000000.00000000

Class C Range 192.0.0.0 to 223.0.0.0

11 000000.00000000.00000000.00000000

အကယ်လို့ IP Address တစ်ခုရဲ့ အစနံပါတ်တစ်ခုကာ အထက်ကပြထားတဲ့ အုပ်စု တစ်ခုခုထဲမှာ ရှိခဲ့ရင် အဲဒီ address ကို အဲဒီ class ကိုသုံးထားတယ်လို့ ပြောကြတယ်။ သုံးထားတဲ့ class ပေါ်မှာ မူတည်ပြီးတော့ subnet mask ကို သုံးကြတယ်။ အဲဒီနံပါတ်တွေကို အသေကျက်မှတ်ထားဖို့ လိုပါသလား။ အင်း .. အရမ်းကောင်းတဲ့မေးခွန်းပါ။ ကျက်မှတ်ထားစရာမလိုပါဘူး။ class A ကို ဆိုကြပါစို့ 00000000.00000000.00000000.00000000 ဘယ်ဖက်ထိပ်က ပထမဆုံးတစ်လုံးနေရာကို ကြည့်မယ်ဆိုရင် သူ့နေရာက 128 ဖြစ်တဲ့အတွက်ကြောင့် သူ့ကို 0 – 127 လို့ယူလို့ရပါတယ်။ ဒီအတိုင်းဘဲ B ဆိုရင် 10000000.00000000.00000000.00000000 ဆိုတော့ သူကာ 128 – 191 အထိနောက်ထပ် ဂဏာန်းတန်ဖိုးမတိုးခင်အထိ ယူပါတယ်။ C ဆိုရင်တော့ 11000000.00000000.00000000.00000000 အဲဒီတော့ သူကာ ဘယ်ဘက်ထိပ်ဆုံးမှာရှိတဲ့ တန်ဖိုးနှစ်ခုပေါင်းဖြစ်တဲ့ 128 + 64 = 192 ကနေစပြီးတော့ အရှေ့က တွက်နည်းတွေအတိုင်းဘဲ နောက်ထပ်တစ်နေရာကို 1 တန်ဖိုးရောက်မလာခင်အထိ (11100000 (128+64+32=224) မဖြစ်ခင်အထိ ) ဖြစ်တဲ့ 192 – 223 လို့မှတ်ယူလို့ရပါတယ်။ အပေါ်ကဇယားထဲမှာလည်းပြထားပါတယ်။

Network Masks

Network masks ကာ address တစ်ခုရဲ့ ဘယ်အပိုင်းကာ Network အပိုင်း၊ ဘယ်အပိုင်းက Hosts/Nodes အပိုင်းလဲဆိုတာကို ပိုင်းခြားတဲ့နေရာမှာ အကူအညီပေးတယ်။ ပုံမှန် Class A, Class B, Class C တွေရဲ့ Subnet masks တွေကို အောက်ပါအတိုင်းတွေ့နိုင်ပါတယ်။

Class A: 255.0.0.0
Class B: 255.255.0.0
Class C: 255.255.255.0

ဒီနေရာမှာ subnetting အပိုင်းရဲ့ အကျိုးရှိပုံကို ပြောပြပါ့မယ်။ Subnetting မလုပ်ထားတဲ့ Class A address တစ်ခုဖြစ်တဲ့ 8.20.15.1 255.0.0.0 ဥပမာအားဖြင့် သရုပ်ခွဲကြည့်ကြပါစို့…

8

.20

.15

.1 =

00001000

00010100

00001111

00000001

255

.0

.0

.0 =

11111111

00000000

00000000

00000000

၎င်းဘိုင်နရီတန်းနှစ်ခုအား အထက်တွင်ဖေါ်ပြခဲ့ပြီးတဲ့ Boolean AND အရ တွက်ချက်ပြီး Network address ကိုရှာယူနိုင်ပါတယ်။ Network ID အပိုင်းနဲ့ Hosts ID အပိုင်းကိုလည်း ခွဲကြည့်လို့နိုင်ပါတယ်။

8

.20

.15

.1 =

00001000

00010100

00001111

00000001

255

.0

.0

.0 =

11111111

00000000

00000000

00000000

Network Address

00001000

00000000

00000000

00000000


8

.0

.0

.0

အဲဒီတော့ကာ 8 ကာ Network ID ဖြစ်ပြီး ကျန်နေတဲ့ .0.0.0 အပိုင်းကာ Hosts ID အပိုင်းတွေ ဖြစ်တယ်။ 1 တွေဖြစ်နေတဲ့ နေရာမှာရှိတဲ့ ဂဏန်းတန်ဖိုးတွေကို အတွဲလိုက်ပေါင်းကြည့်လိုက်တဲ့အခါမှာ နဂိုနံပါတ်တွေကို ပြန်ပြီးရလာမှာဖြစ်တယ်။ အဲဒီနံပါတ်တွေဟာ Hosts အပိုင်းအတွက် address ဖြစ်တယ်။ ဒီဥပမာအရဆိုရင်

Network ID

=

0

0

0

0

1

0

0

0


=

0(128)

0(64)

0(32)

0(16)

8

0(4)

0(2)

0(1)


=

8


Host ID

=

0

0

0

1

0

1

0

0

.

0

0

0

0

1

1

1

1

.

0

0

0

0

0

0

0

1


=

0

0

0

16

0

4

0

0

.

0

0

0

0

8

4

2

1

.

0

0

0

0

0

0

0

1


=

20

.

15

.

1

ဒါကြောင့်မို့လို့ Network ID က 8 ဖြစ်ပြီး Host ID က 20.15.1 ဖြစ်တယ်။

Network အရွယ်အစားနဲ့ Hosts တွေမှာရှိမယ့် IP Addresses တွေကို Subnetting မလုပ်ဘဲနဲ့ ဖေါ်ပြပါဇယားအတိုင်းရနိုင်တယ်။

Any Network of This Class

Number of Network Bytes(bits)

Number of Hosts Bytes(bits)

Number of Addresses Per Network*

A

1(8)

3(24)

2 24 - 2

B

2(16)

2(16)

2 16 - 2

C

3(24)

1(8)

2 8 - 2

*There are two reserved host addresses per network. Network addresses တစ်ခုချင်းစီမှာ မသုံးဘဲထားရတဲ့အပိုင်းနှစ်ပိုင်းရှိတယ်။ Network address နဲ့ Broadcast address တွေဘဲဖြစ်တယ်။ အဲဒီအတွက်ကို ၂ ခုစာချန်ထားရတယ်။ host address အနေနဲ့ သုံးလို့မရဘူး။

အမှန်တကယ်အသုံးပြုလို့ရတဲ့ Network နံပါတ်တွေအားလုံးကို ဇယားလေးထဲမှာဖေါ်ပြပေးထားပါတယ်။

Class

First Octet Range

Valid Network Numbers

Total Number for This Class of Network

Number of Hosts Per Network

A

1 to 126

*1.0.0.0 to 126.0.0.0*

2 7 - 2 (126)

2 24 - 2 (16,777,214)

B

129 to 191

128.0.0.0 to 191.255.0.0

2 14 - 2 (16,384)

2 16 - 2 (65,534)

C

192 to 223

192.0.0.0 to 223.255.255.0

2 21 - 2 (2,097,152)

2 8 - 2 (254)

ဇယားထဲမှာ * ကလေးပြထားတာကို သတိထားမိပါလိမ့်မယ်လို့ထင်ပါတယ်။ ဘာဘဲဆိုတော့ မေးစရာလေးပါ။ 0.0.0.0 နဲ့ 127.0.0.0 ဘယ်ရောက်သွားလဲလို့မေးစရာရှိပါတယ်။ 0.0.0.0 ကိုမူလကတည်းက Broadcast address အနေနဲ့အသုံးပြုဖို့ သတ်မှတ်ထားခဲ့တာဖြစ်ပြီး၊ 127.0.0.0 ကိုတော့ loopback address နဲ့ testing လုပ်တဲ့နေရာမှာ သုံးဖို့အတွက် ချန်ထားခဲ့တာပါ။ testing ဘယ်လိုလုပ်ပါသလဲဆိုရင် မိမိရဲ့ NIC ကဒ်ကောင်းမကောင်းသိချင်တဲ့အခါကျရင် 127.0.0.1 ကို ping ခေါက်ပြီး reply ပြန်လာမလာကို ကြည့်ခြင်းအားဖြင့် မိမိရဲ့ NIC ကဒ်က ကောင်းကောင်းအလုပ်လုပ်တယ် ပျက်စီးသွားပြီးဆိုတာကို စစ်ဆေးလို့ရပါတယ်။ အလားတူ 127 address range ထဲက တခြားနေရာတွေမှာ သုံးတာတွေလည်းရှိအုံးမယ်လို့ ယူဆပါတယ်။ အဲဒါကိုတော့ ကျွန်တော်ကိုယ်တိုင်လည်း မသိပါဘူး။

Private Addresses

ဒီမှာမှ နောက်ထပ်ဘာဆက်ရှိသေးသလဲဆိုရင် Public Address နဲ့ Private Address ဆိုပြီးတော့ အုပ်စုနှစ်စုထပ်ရှိပါတယ်။ Public Address ကိုအင်တာနက်နဲ့ချိန်ဆက်အသုံးပြုကြမယ့် ကွန်ပျူတာတွေမှာ ဘယ်သောအခါမှ သုံးလို့မရ ( အင်တာနက် Gateway အနေနဲ့သုံးမယ့် ကွန်ပျူတာကလွဲလို့ ) သလို Private Address ကိုလည်း အင်တာနက်ပေါ်မှာ ဘယ်သောအခါမှ မတွေ့ရနိုင်ပါ။ ဆိုလိုတာက မိမိရဲ့ အဆောက်အအုံတွင်းက local network အတွက် network address ကို သတ်မှတ်အသုံးပြုတဲ့နေရာမှာ Private addresses တွေကလွဲလို့ Public addresses တွေကိုသုံးလို့မရပါဘူး။ သုံးချင်ရင်တော့ရပါတယ်။ ဒါပေမယ့် အင်တာနက်နဲ့ ချိတ်ဆက် အသုံးပြုတဲ့အခါမှာ ပြဿနာရှိနိုင်ပါတယ်။ အောက်မှာပြထားတဲ့ ဇယားထဲက နံပါတ်စုတွေကာ Private Address အစုတွေဘဲဖြစ်တယ်။

Private Addresses Table

Private IP Networks

Class of Networks

Number of Networks

10.0.0.0 through 10.255.255.255

A

1

127.16.0.0 through 127.31.255.255

B

16

192.168.0.0 through 192.168.255.255

C

256

အခုဆိုရင် Private addresses တွေကာဘာတွေလဲ ဆိုတာ သိသွားပါပြီ။ အဲဒီအတွက်ကြောင့် ကျွန်တော် Public addresses တွေအကြောင်းကို မပြောတော့ပါဘူး။ ဘာလို့လဲဆိုတော့ Private addresses တွေမဟုတ်တဲ့ကျန်တဲ့ အုပ်စုတွေကာ Public addresses တွေဖြစ်လို့ပါ။






No comments:

Post a Comment