IP Address และ Subnetting คืออะไร? สอนคำนวณ Subnet สำหรับ Network Engineer 2026

บทนำ: ทำไม IP Addressing และ Subnetting ยังคงเป็นทักษะสำคัญที่สุดของ Network Engineer?

ไม่ว่าเทคโนโลยีเครือข่ายจะพัฒนาไปแค่ไหน — จะเป็น SD-WAN, Cloud Networking, Software-Defined Networking หรือแม้แต่ Zero Trust Architecture — พื้นฐานทุกอย่างล้วนตั้งอยู่บน IP Addressing และ Subnetting ทั้งนั้น การเข้าใจว่า IP address ทำงานอย่างไร การแบ่ง subnet การคำนวณ network address, broadcast address, usable hosts คือทักษะที่ Network Engineer, System Admin และ IT Infrastructure ทุกคนต้องมี

สำหรับผู้ที่กำลังเตรียมสอบ CCNA หรือ CompTIA Network+ การ subnetting เป็นหัวข้อที่ออกสอบแน่นอนและมีน้ำหนักคะแนนสูง นอกจากนี้ในการทำงานจริง ไม่ว่าจะเป็นการตั้งค่า Firewall, VPN, VLAN หรือ routing ล้วนต้องใช้ความรู้ subnetting ทั้งสิ้น

บทความนี้จะสอนทุกอย่างเกี่ยวกับ IP Addressing และ Subnetting ตั้งแต่พื้นฐาน binary ไปจนถึง VLSM, IPv6, NAT/PAT และการวางแผน subnet สำหรับองค์กร พร้อมแบบฝึกหัดและเฉลยให้ฝึกทำ เหมาะสำหรับทั้งผู้เริ่มต้นและผู้ที่ต้องการทบทวนความรู้

ส่วนที่ 1: IPv4 Address Structure — โครงสร้างของ IP Address

1.1 IP Address คืออะไร?

IP Address (Internet Protocol Address) คือหมายเลขที่ใช้ระบุตัวตนของอุปกรณ์ในเครือข่าย เปรียบเสมือน “ที่อยู่บ้าน” ของอุปกรณ์แต่ละตัว ทำให้ router สามารถส่ง packet ไปถึงปลายทางได้ถูกต้อง

IPv4 address ประกอบด้วย 32 bits แบ่งเป็น 4 กลุ่ม (octets) กลุ่มละ 8 bits คั่นด้วยจุด เขียนในรูปแบบ dotted decimal notation

ตัวอย่าง: 192.168.1.100

แยกเป็น binary:
192     . 168     . 1       . 100
11000000. 10101000. 00000001. 01100100

รวม 32 bits ทั้งหมด

1.2 การแปลง Binary เป็น Decimal (และกลับกัน)

การเข้าใจ binary เป็นรากฐานของ subnetting ทั้งหมด แต่ละ bit ใน octet มีค่า (weight) ดังนี้:

ตำแหน่ง bit:  7     6    5    4    3   2   1   0
ค่า (weight): 128   64   32   16   8   4   2   1

ตัวอย่าง: แปลง 192 เป็น binary
192 = 128 + 64 + 0 + 0 + 0 + 0 + 0 + 0
    = 1     1    0   0   0   0   0   0
    = 11000000

ตัวอย่าง: แปลง 10101100 เป็น decimal
1*128 + 0*64 + 1*32 + 0*16 + 1*8 + 1*4 + 0*2 + 0*1
= 128 + 0 + 32 + 0 + 8 + 4 + 0 + 0
= 172

เทคนิคการจำ: จำเลขชุดนี้ให้ขึ้นใจ — 128, 64, 32, 16, 8, 4, 2, 1 (แต่ละตัวคือ 2 ยกกำลัง 7 ลงไปจนถึง 2 ยกกำลัง 0)

1.3 ส่วนประกอบของ IP Address

IP Address ทุกตัวประกอบด้วย 2 ส่วน:

  • Network Portion — ระบุว่าอยู่ network (ซับเน็ต) ไหน เปรียบเสมือน “ซอย” หรือ “ถนน”
  • Host Portion — ระบุว่าเป็นอุปกรณ์ตัวไหนใน network นั้น เปรียบเสมือน “บ้านเลขที่”

การแยก 2 ส่วนนี้ออกจากกัน ใช้ Subnet Mask เป็นตัวกำหนด

ส่วนที่ 2: IP Classes — ประเภทของ IP Address

2.1 Classful IP Addressing

ในอดีต IP address ถูกแบ่งเป็น 5 classes ตาม bit แรกๆ ของ address:

Class  | First Octet | Default Mask    | Network/Host   | จำนวน Networks | จำนวน Hosts
-------|-------------|-----------------|----------------|---------------|-------------
A      | 1-126       | 255.0.0.0 /8    | N.H.H.H        | 126           | 16,777,214
B      | 128-191     | 255.255.0.0 /16 | N.N.H.H        | 16,384        | 65,534
C      | 192-223     | 255.255.255.0 /24 | N.N.N.H      | 2,097,152     | 254
D      | 224-239     | (Multicast)      | ไม่แบ่ง        | -             | -
E      | 240-255     | (Reserved)       | ไม่แบ่ง        | -             | -

หมายเหตุสำคัญ:

  • 127.x.x.x (127.0.0.0/8) — เป็น Loopback address ไม่ได้ใช้สำหรับ network จริง (127.0.0.1 = localhost)
  • 0.0.0.0 — หมายถึง “this network” หรือ default route
  • 255.255.255.255 — Limited Broadcast (broadcast ไปทุกอุปกรณ์ใน local network)
  • Class D (224-239) — ใช้สำหรับ multicast เช่น OSPF ใช้ 224.0.0.5
  • Class E (240-255) — reserved สำหรับ experimental

ในปัจจุบัน (2026) ระบบ classful ไม่ได้ใช้จริงแล้ว เพราะ “สิ้นเปลือง” IP address มาก (องค์กรเล็กๆ ที่ต้องการ 300 hosts ต้องใช้ Class B ที่มี 65,534 hosts ซึ่งเหลือทิ้งมหาศาล) จึงเปลี่ยนมาใช้ CIDR (Classless Inter-Domain Routing) แทน

2.2 Private IP vs Public IP

IP address แบ่งเป็น 2 ประเภทหลัก:

Private IP Address — ใช้ภายในองค์กร (LAN) ไม่สามารถ route บน internet ได้ ใช้ซ้ำได้ไม่จำกัด:

Class A: 10.0.0.0     - 10.255.255.255    (10.0.0.0/8)         — 16,777,216 addresses
Class B: 172.16.0.0   - 172.31.255.255    (172.16.0.0/12)      — 1,048,576 addresses
Class C: 192.168.0.0  - 192.168.255.255   (192.168.0.0/16)     — 65,536 addresses

องค์กรส่วนใหญ่ในไทยใช้ 10.x.x.x หรือ 192.168.x.x สำหรับ internal network

Public IP Address — ใช้บน internet ต้องได้รับจัดสรรจาก ISP หรือ RIR (Regional Internet Registry) ไม่สามารถใช้ซ้ำได้ (unique ทั่วโลก)

Special Addresses อื่นๆ:

  • 169.254.0.0/16 — APIPA (Automatic Private IP Addressing) — อุปกรณ์กำหนดให้ตัวเองเมื่อหา DHCP server ไม่ได้
  • 100.64.0.0/10 — Carrier-Grade NAT (CGNAT) — ISP ใช้สำหรับ NAT ภายใน
  • 198.18.0.0/15 — Benchmarking/Testing

ส่วนที่ 3: Subnet Mask — หน้ากากเครือข่าย

3.1 Subnet Mask คืออะไร?

Subnet Mask คือตัวเลข 32-bit ที่ใช้แยก network portion ออกจาก host portion ของ IP address กฎง่ายๆ คือ:

  • bit ที่เป็น 1 = ส่วน Network
  • bit ที่เป็น 0 = ส่วน Host
  • bit 1 ต้องอยู่ทางซ้ายติดกัน bit 0 อยู่ทางขวาติดกัน (ไม่สลับกัน)
ตัวอย่าง: Subnet Mask 255.255.255.0
Binary: 11111111.11111111.11111111.00000000
        |------- Network --------|-- Host -|
        24 bits network           8 bits host

3.2 CIDR Notation (Classless Inter-Domain Routing)

CIDR notation คือวิธีเขียน subnet mask แบบย่อ โดยใส่ / ตามด้วยจำนวน network bits:

Subnet Mask         | CIDR | Network Bits | Host Bits | Usable Hosts
--------------------|------|-------------|-----------|-------------
255.0.0.0           | /8   | 8           | 24        | 16,777,214
255.128.0.0         | /9   | 9           | 23        | 8,388,606
255.255.0.0         | /16  | 16          | 16        | 65,534
255.255.128.0       | /17  | 17          | 15        | 32,766
255.255.255.0       | /24  | 24          | 8         | 254
255.255.255.128     | /25  | 25          | 7         | 126
255.255.255.192     | /26  | 26          | 6         | 62
255.255.255.224     | /27  | 27          | 5         | 30
255.255.255.240     | /28  | 28          | 4         | 14
255.255.255.248     | /29  | 29          | 3         | 6
255.255.255.252     | /30  | 30          | 2         | 2
255.255.255.254     | /31  | 31          | 1         | 2 (point-to-point)
255.255.255.255     | /32  | 32          | 0         | 1 (host route)

สูตรคำนวณจำนวน Usable Hosts: 2^(จำนวน host bits) – 2

ลบ 2 เพราะต้องเอา Network Address (host bits ทั้งหมดเป็น 0) และ Broadcast Address (host bits ทั้งหมดเป็น 1) ออก ยกเว้น /31 ที่ใช้สำหรับ point-to-point link (RFC 3021) ไม่ต้องลบ

3.3 การ AND Operation หา Network Address

เมื่อต้องการหา Network Address ให้ทำ AND operation ระหว่าง IP Address กับ Subnet Mask:

ตัวอย่าง: IP 192.168.10.130/26

IP Address:   192.168.10.130  = 11000000.10101000.00001010.10000010
Subnet Mask:  255.255.255.192 = 11111111.11111111.11111111.11000000
              -----------------------------------------------
AND Result:   192.168.10.128  = 11000000.10101000.00001010.10000000

Network Address = 192.168.10.128

สูตร AND:
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0

ส่วนที่ 4: Subnetting Calculation — คำนวณ Subnet ทีละขั้น

4.1 ขั้นตอนการ Subnetting

เมื่อได้รับ IP address พร้อม subnet mask สามารถหาข้อมูลสำคัญได้ดังนี้:

ตัวอย่างที่ 1: 192.168.1.50/24

ขั้นที่ 1: หา Network Address
  IP:      192.168.1.50
  Mask:    255.255.255.0 (/24)
  AND:     192.168.1.0     ← Network Address

ขั้นที่ 2: หา Broadcast Address
  Host bits ทั้งหมดเป็น 1:
  192.168.1.255           ← Broadcast Address

ขั้นที่ 3: หา First Usable Host
  Network Address + 1:
  192.168.1.1             ← First Host

ขั้นที่ 4: หา Last Usable Host
  Broadcast Address - 1:
  192.168.1.254           ← Last Host

ขั้นที่ 5: จำนวน Usable Hosts
  2^8 - 2 = 256 - 2 = 254 hosts

สรุป:
  Network:    192.168.1.0/24
  First Host: 192.168.1.1
  Last Host:  192.168.1.254
  Broadcast:  192.168.1.255
  Hosts:      254

ตัวอย่างที่ 2: 10.50.100.200/20

ขั้นที่ 1: หา Subnet Mask
  /20 = 20 network bits
  11111111.11111111.11110000.00000000
  = 255.255.240.0

ขั้นที่ 2: หา Block Size
  octet ที่ 3 ของ mask = 240
  Block size = 256 - 240 = 16
  (ทุก subnet จะเพิ่มทีละ 16 ใน octet ที่ 3)

ขั้นที่ 3: หา Network Address
  IP octet ที่ 3 = 100
  100 / 16 = 6.25 → ปัดลง = 6
  6 * 16 = 96
  Network Address = 10.50.96.0

ขั้นที่ 4: หา Broadcast Address
  Network Address ถัดไป = 10.50.112.0
  Broadcast = 10.50.112.0 - 1 = 10.50.111.255

ขั้นที่ 5: หา Usable Range
  First Host: 10.50.96.1
  Last Host:  10.50.111.254

ขั้นที่ 6: จำนวน Usable Hosts
  Host bits = 32 - 20 = 12
  2^12 - 2 = 4,096 - 2 = 4,094 hosts

สรุป:
  Network:    10.50.96.0/20
  Mask:       255.255.240.0
  First Host: 10.50.96.1
  Last Host:  10.50.111.254
  Broadcast:  10.50.111.255
  Hosts:      4,094

ตัวอย่างที่ 3: 172.16.45.130/27

ขั้นที่ 1: Subnet Mask
  /27 = 255.255.255.224

ขั้นที่ 2: Block Size
  256 - 224 = 32

ขั้นที่ 3: Network Address
  octet ที่ 4 = 130
  130 / 32 = 4.0625 → ปัดลง = 4
  4 * 32 = 128
  Network Address = 172.16.45.128

ขั้นที่ 4: Broadcast Address
  128 + 32 - 1 = 159
  Broadcast = 172.16.45.159

ขั้นที่ 5: Usable Range
  First Host: 172.16.45.129
  Last Host:  172.16.45.158

ขั้นที่ 6: Hosts
  Host bits = 32 - 27 = 5
  2^5 - 2 = 32 - 2 = 30 hosts

สรุป:
  Network:    172.16.45.128/27
  Mask:       255.255.255.224
  First Host: 172.16.45.129
  Last Host:  172.16.45.158
  Broadcast:  172.16.45.159
  Hosts:      30

4.2 เทคนิค Block Size Method (วิธีเร็ว)

วิธีที่เร็วที่สุดในการ subnet คือ Block Size Method:

  1. หา Block Size = 256 – subnet mask value ของ interesting octet
  2. หาร IP ของ interesting octet ด้วย Block Size แล้วปัดลง คูณกลับ ได้ Network Address
  3. Network Address + Block Size – 1 = Broadcast Address
ตัวอย่าง: 192.168.5.200/26

Mask /26 = 255.255.255.192
Interesting octet = 4th (192)
Block Size = 256 - 192 = 64

Subnets ที่เป็นไปได้:
  192.168.5.0    (0*64)
  192.168.5.64   (1*64)
  192.168.5.128  (2*64)
  192.168.5.192  (3*64)

IP .200 อยู่ในช่วง 192-255
→ Network = 192.168.5.192
→ Broadcast = 192.168.5.192 + 64 - 1 = 192.168.5.255
→ Usable: 192.168.5.193 - 192.168.5.254 (62 hosts)

ส่วนที่ 5: VLSM — Variable Length Subnet Masking

5.1 VLSM คืออะไร?

VLSM (Variable Length Subnet Masking) คือเทคนิคการแบ่ง subnet โดยใช้ subnet mask ขนาดต่างกันสำหรับแต่ละ subnet ซึ่งตรงข้ามกับ FLSM (Fixed Length Subnet Masking) ที่ใช้ mask เดียวกันทุก subnet

ทำไมต้องใช้ VLSM? เพราะในองค์กรจริง แต่ละแผนกมีจำนวนอุปกรณ์ไม่เท่ากัน:

  • สำนักงานใหญ่: 200 hosts
  • สาขา A: 50 hosts
  • สาขา B: 20 hosts
  • WAN link: 2 hosts (point-to-point)

ถ้าใช้ FLSM (/24 เท่ากันหมด) จะเหลือ IP ทิ้งมหาศาล VLSM ช่วยประหยัดโดยให้แต่ละ subnet มี mask ที่ “พอดี” กับจำนวน hosts

5.2 ขั้นตอนการทำ VLSM

กฎสำคัญ: เริ่มจาก subnet ที่ต้องการ hosts มากที่สุดก่อน แล้วไล่ลงมา

ตัวอย่าง: มี network 192.168.10.0/24 ต้องแบ่งให้:

  • LAN A: 100 hosts
  • LAN B: 50 hosts
  • LAN C: 25 hosts
  • LAN D: 10 hosts
  • WAN 1: 2 hosts
  • WAN 2: 2 hosts
เรียงจากมากไปน้อย: 100, 50, 25, 10, 2, 2

1. LAN A (100 hosts):
   ต้องการ: 2^n - 2 >= 100 → n=7 → 2^7-2=126 → /25 (255.255.255.128)
   Network:   192.168.10.0/25
   Usable:    192.168.10.1 - 192.168.10.126
   Broadcast: 192.168.10.127
   ที่อยู่ถัดไป: 192.168.10.128

2. LAN B (50 hosts):
   ต้องการ: 2^n - 2 >= 50 → n=6 → 2^6-2=62 → /26 (255.255.255.192)
   Network:   192.168.10.128/26
   Usable:    192.168.10.129 - 192.168.10.190
   Broadcast: 192.168.10.191
   ที่อยู่ถัดไป: 192.168.10.192

3. LAN C (25 hosts):
   ต้องการ: 2^n - 2 >= 25 → n=5 → 2^5-2=30 → /27 (255.255.255.224)
   Network:   192.168.10.192/27
   Usable:    192.168.10.193 - 192.168.10.222
   Broadcast: 192.168.10.223
   ที่อยู่ถัดไป: 192.168.10.224

4. LAN D (10 hosts):
   ต้องการ: 2^n - 2 >= 10 → n=4 → 2^4-2=14 → /28 (255.255.255.240)
   Network:   192.168.10.224/28
   Usable:    192.168.10.225 - 192.168.10.238
   Broadcast: 192.168.10.239
   ที่อยู่ถัดไป: 192.168.10.240

5. WAN 1 (2 hosts):
   ต้องการ: /30 (255.255.255.252)
   Network:   192.168.10.240/30
   Usable:    192.168.10.241 - 192.168.10.242
   Broadcast: 192.168.10.243
   ที่อยู่ถัดไป: 192.168.10.244

6. WAN 2 (2 hosts):
   ต้องการ: /30 (255.255.255.252)
   Network:   192.168.10.244/30
   Usable:    192.168.10.245 - 192.168.10.246
   Broadcast: 192.168.10.247

เหลือ IP ว่าง: 192.168.10.248 - 192.168.10.255 (สำรองไว้ขยายอนาคต)

จะเห็นว่า VLSM ทำให้ใช้ /24 เดียว (256 addresses) แบ่งได้ถึง 6 subnets โดยเหลือ IP ทิ้งน้อยมาก

ส่วนที่ 6: Supernetting / Route Summarization

6.1 Supernetting คืออะไร?

Supernetting (หรือ Route Summarization / Route Aggregation) คือการรวม network เล็กๆ หลายตัวเข้าเป็น network ใหญ่ตัวเดียว เป็นสิ่งตรงข้ามกับ subnetting ใช้เพื่อลดจำนวน routes ใน routing table ทำให้ router ทำงานเร็วขึ้น

6.2 วิธีคำนวณ Summary Route

ตัวอย่าง: ต้องการรวม 4 networks ต่อไปนี้:
  192.168.4.0/24
  192.168.5.0/24
  192.168.6.0/24
  192.168.7.0/24

ขั้นที่ 1: เขียน octet ที่ต่างกัน (octet 3) เป็น binary
  4 = 00000100
  5 = 00000101
  6 = 00000110
  7 = 00000111

ขั้นที่ 2: หา common bits (bits ที่เหมือนกันทุกตัว)
  00000100
  00000101
  00000110
  00000111
  ------
  000001xx  ← 6 bits เหมือนกัน, 2 bits ต่างกัน

ขั้นที่ 3: สร้าง Summary Route
  Common bits octet 3: 000001 00 = 4
  Prefix length = 16 (octet 1-2) + 6 (common bits) = /22

  Summary Route: 192.168.4.0/22
  Mask:          255.255.252.0

6.3 ข้อควรระวัง

Summarization อาจรวม network ที่ไม่ต้องการเข้ามาด้วย ต้องตรวจสอบให้ดี ตัวอย่างเช่น 192.168.4.0/22 จะรวมทั้ง .4, .5, .6, .7 ซึ่งพอดี แต่ถ้ามีแค่ .4 กับ .6 การ summarize เป็น /22 จะรวม .5 และ .7 ที่อาจไม่ใช่ของเราเข้ามาด้วย

ส่วนที่ 7: IPv6 — อินเทอร์เน็ตโปรโตคอลรุ่นใหม่

7.1 ทำไมต้อง IPv6?

IPv4 มี address space ทั้งหมดเพียง 2^32 = 4,294,967,296 addresses (ประมาณ 4.3 พันล้าน) ซึ่ง หมดแล้วตั้งแต่ปี 2011 (IANA), ปี 2019 (RIPE NCC สำหรับยุโรป) แม้ว่า NAT จะช่วยยืดอายุ IPv4 ได้ แต่ในระยะยาว IPv6 คือคำตอบ

IPv6 มี address space = 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses (ประมาณ 340 undecillion หรือ 3.4 x 10^38) ซึ่ง “ไม่มีวันหมด” ในทางปฏิบัติ

7.2 รูปแบบ IPv6 Address

IPv6 address มี 128 bits เขียนเป็น 8 groups ของ 4 hexadecimal digits คั่นด้วย colon (:)

เต็มรูปแบบ:
  2001:0db8:0000:0000:0000:0000:0000:0001

กฎการย่อ:
1. ตัด leading zeros ในแต่ละ group ได้
   2001:db8:0:0:0:0:0:1

2. แทนที่ groups ที่เป็น 0 ติดกันด้วย :: (ใช้ได้ครั้งเดียว)
   2001:db8::1

ตัวอย่างอื่น:
  fe80:0000:0000:0000:0211:22ff:fe33:4455
  = fe80::211:22ff:fe33:4455

  ff02:0000:0000:0000:0000:0000:0000:0001
  = ff02::1

7.3 ประเภทของ IPv6 Address

  • Global Unicast (2000::/3) — เทียบเท่า public IPv4 route ได้บน internet เริ่มด้วย 2 หรือ 3
  • Link-Local (fe80::/10) — ใช้ภายใน link/segment เดียว ไม่ route ข้าม router ทุก interface ต้องมี link-local address (เหมือน APIPA ของ IPv4 แต่มีประโยชน์กว่ามาก)
  • Unique Local (fc00::/7, fd00::/8) — เทียบเท่า private IPv4 (10.x, 172.16.x, 192.168.x) ใช้ภายในองค์กร
  • Multicast (ff00::/8) — ส่งไปยังกลุ่มอุปกรณ์ ไม่มี broadcast ใน IPv6 (ใช้ multicast แทน)
  • Loopback (::1/128) — เทียบเท่า 127.0.0.1 ใน IPv4
  • Unspecified (::/128) — เทียบเท่า 0.0.0.0 ใน IPv4

7.4 EUI-64 — สร้าง Interface ID จาก MAC Address

EUI-64 (Extended Unique Identifier) เป็นวิธีสร้าง 64-bit interface ID จาก 48-bit MAC address:

ขั้นตอน:
1. เอา MAC address: 00:1A:2B:3C:4D:5E

2. แบ่งครึ่ง: 00:1A:2B | 3C:4D:5E

3. แทรก FF:FE ตรงกลาง: 00:1A:2B:FF:FE:3C:4D:5E

4. Flip bit ที่ 7 ของ byte แรก (U/L bit):
   00 = 00000000 → flip bit 7 → 00000010 = 02

5. ผลลัพธ์: 02:1A:2B:FF:FE:3C:4D:5E
   เขียนแบบ IPv6: 021a:2bff:fe3c:4d5e

ดังนั้นถ้า prefix คือ 2001:db8:1::/64
IPv6 address = 2001:db8:1::021a:2bff:fe3c:4d5e

หมายเหตุ: ปัจจุบัน EUI-64 ไม่ค่อยนิยมใช้แล้ว เพราะมีปัญหา privacy (สามารถ track อุปกรณ์ได้จาก MAC) จึงมี SLAAC Privacy Extensions (RFC 4941) ที่ใช้ random interface ID แทน

7.5 IPv6 Subnetting

IPv6 subnetting ง่ายกว่า IPv4 มาก เพราะมาตรฐานกำหนดว่า:

  • ISP ได้รับจัดสรร /32 หรือ /48
  • องค์กร (customer) ได้รับ /48 จาก ISP
  • แต่ละ subnet ใช้ /64 (มาตรฐาน) ดังนั้น interface ID จะมี 64 bits เสมอ
ตัวอย่าง: องค์กรได้รับ 2001:db8:abcd::/48

Global Routing Prefix: 2001:db8:abcd (48 bits)
Subnet ID:             16 bits (bit 49-64)
Interface ID:          64 bits (bit 65-128)

จำนวน subnets ที่สร้างได้ = 2^16 = 65,536 subnets
จำนวน hosts ต่อ subnet = 2^64 = 18,446,744,073,709,551,616 hosts (ไม่มีทางหมด!)

การแบ่ง subnet:
  2001:db8:abcd:0000::/64  → Subnet 0 (Office Floor 1)
  2001:db8:abcd:0001::/64  → Subnet 1 (Office Floor 2)
  2001:db8:abcd:0002::/64  → Subnet 2 (Server VLAN)
  2001:db8:abcd:0003::/64  → Subnet 3 (Guest WiFi)
  ...
  2001:db8:abcd:ffff::/64  → Subnet 65535

ส่วนที่ 8: NAT และ PAT — การแปลง IP Address

8.1 NAT คืออะไร?

NAT (Network Address Translation) คือการแปลง IP address จาก private เป็น public (และกลับกัน) เพื่อให้อุปกรณ์ใน internal network สามารถเข้าถึง internet ได้ แม้จะมี public IP แค่ตัวเดียว

8.2 ประเภทของ NAT

Static NAT (One-to-One)

  • map private IP 1 ตัวเข้ากับ public IP 1 ตัว ถาวร
  • ใช้สำหรับ server ที่ต้องการให้เข้าถึงจากภายนอก (web server, mail server)
  • ตัวอย่าง: 192.168.1.10 → 203.150.100.10 (เสมอ)

Dynamic NAT (Many-to-Many)

  • map private IP เข้ากับ pool ของ public IPs แบบ dynamic
  • ถ้า pool หมด client ใหม่จะเข้า internet ไม่ได้
  • ไม่ค่อยใช้ในปัจจุบัน เพราะ public IP มีจำกัด

PAT / NAT Overload (Many-to-One)

  • map private IP หลายตัวเข้ากับ public IP ตัวเดียว โดยใช้ port number ในการแยก
  • นี่คือสิ่งที่ใช้จริงในทุกองค์กรและทุกบ้าน
  • router (หรือ firewall) จะเก็บ NAT table ที่ map internal IP:port กับ external IP:port
PAT Example:
  Internal                    External (Public IP: 203.150.100.1)
  192.168.1.10:50001  →  203.150.100.1:40001  →  google.com:443
  192.168.1.20:50002  →  203.150.100.1:40002  →  facebook.com:443
  192.168.1.30:50003  →  203.150.100.1:40003  →  youtube.com:443

ใช้ public IP เพียง 1 ตัว แต่รองรับ internal hosts ได้หลายพันตัว
(เพราะ port number มี 65,535 ports ให้ใช้)

8.3 Port Forwarding

Port Forwarding คือการกำหนดให้ traffic ที่เข้ามายัง public IP port หนึ่ง ส่งต่อไปยัง private IP port ที่กำหนด:

ตัวอย่าง:
  Public IP 203.150.100.1:80   → 192.168.1.100:80  (Web Server)
  Public IP 203.150.100.1:443  → 192.168.1.100:443 (HTTPS)
  Public IP 203.150.100.1:25   → 192.168.1.200:25  (Mail Server)
  Public IP 203.150.100.1:3389 → 192.168.1.50:3389 (RDP)

ส่วนที่ 9: DHCP Relay กับ Subnetting

9.1 ปัญหา DHCP กับ Multi-Subnet

DHCP ใช้ broadcast ในการค้นหา server แต่ broadcast ไม่ข้าม router/subnet ดังนั้นถ้ามีหลาย subnet จะมีปัญหา:

  • ทางเลือก 1: ตั้ง DHCP server ในทุก subnet (สิ้นเปลือง ดูแลยาก)
  • ทางเลือก 2: ใช้ DHCP Relay Agent (ip helper-address) ที่ router ของแต่ละ subnet เพื่อ forward DHCP request ไปยัง DHCP server กลาง

9.2 การตั้งค่า DHCP Relay บน Cisco Router

! DHCP Server อยู่ที่ 10.0.0.10
! ต้องตั้ง ip helper-address ที่ default gateway ของทุก subnet

interface GigabitEthernet0/1
 description VLAN 10 - Office
 ip address 192.168.10.1 255.255.255.0
 ip helper-address 10.0.0.10

interface GigabitEthernet0/2
 description VLAN 20 - Engineering
 ip address 192.168.20.1 255.255.255.0
 ip helper-address 10.0.0.10

interface GigabitEthernet0/3
 description VLAN 30 - Guest
 ip address 192.168.30.1 255.255.255.0
 ip helper-address 10.0.0.10

9.3 DHCP Scope Planning สำหรับ Multi-Subnet

DHCP Server Config (Windows Server / Linux ISC DHCP):

Scope: VLAN 10 - Office
  Network:     192.168.10.0/24
  Range:       192.168.10.50 - 192.168.10.200
  Gateway:     192.168.10.1
  DNS:         10.0.0.10, 8.8.8.8
  Reserved:    192.168.10.1-49 (Infrastructure)
               192.168.10.201-254 (Printers, static devices)

Scope: VLAN 20 - Engineering
  Network:     192.168.20.0/24
  Range:       192.168.20.50 - 192.168.20.200
  Gateway:     192.168.20.1
  DNS:         10.0.0.10, 8.8.8.8

Scope: VLAN 30 - Guest
  Network:     192.168.30.0/24
  Range:       192.168.30.10 - 192.168.30.250
  Gateway:     192.168.30.1
  DNS:         8.8.8.8, 1.1.1.1
  Lease Time:  4 hours (สั้นเพราะ guest เข้าออกบ่อย)

ส่วนที่ 10: Subnet Planning สำหรับองค์กร

10.1 หลักการวางแผน Subnet

การวางแผน IP addressing scheme สำหรับองค์กร ต้องคำนึงถึง:

  • จำนวนสาขา (sites) — กี่สาขา แต่ละสาขาต้องการกี่ subnets
  • จำนวน VLANs — แต่ละสาขามีกี่ VLAN (Office, Server, Guest, VoIP, IoT, Management)
  • จำนวน hosts per subnet — ปัจจุบันและอนาคต (ควรเผื่อ 50-100%)
  • Summarization — ออกแบบให้ summarize ได้ง่าย (ใช้ contiguous address blocks ต่อ site)
  • Standards — กำหนดมาตรฐาน เช่น gateway ใช้ .1 เสมอ, DNS server ใช้ .10 เสมอ

10.2 ตัวอย่างการออกแบบ IP Scheme สำหรับองค์กร 3 สาขา

Private IP Block: 10.0.0.0/8

การจัดสรร:
  10.SITE.VLAN.HOST

  Site 1 (HQ):      10.1.x.x/16
  Site 2 (Branch A): 10.2.x.x/16
  Site 3 (Branch B): 10.3.x.x/16

VLANs per site (ใช้ VLAN ID เป็น octet ที่ 3):
  VLAN 10 - Office:     10.x.10.0/24  (254 hosts)
  VLAN 20 - Engineering: 10.x.20.0/24  (254 hosts)
  VLAN 30 - Server:      10.x.30.0/24  (254 hosts)
  VLAN 40 - VoIP:        10.x.40.0/24  (254 hosts)
  VLAN 50 - Guest WiFi:  10.x.50.0/24  (254 hosts)
  VLAN 99 - Management:  10.x.99.0/24  (254 hosts)
  VLAN 100 - IoT:        10.x.100.0/24 (254 hosts)

WAN Links (point-to-point):
  10.255.0.0/30  — HQ to Branch A
  10.255.0.4/30  — HQ to Branch B
  10.255.0.8/30  — Branch A to Branch B

ตัวอย่าง HQ (Site 1):
  Office:     10.1.10.0/24   (Gateway: 10.1.10.1)
  Engineering: 10.1.20.0/24   (Gateway: 10.1.20.1)
  Server:     10.1.30.0/24   (Gateway: 10.1.30.1)
  VoIP:       10.1.40.0/24   (Gateway: 10.1.40.1)
  Guest:      10.1.50.0/24   (Gateway: 10.1.50.1)
  Management: 10.1.99.0/24   (Gateway: 10.1.99.1)

Summarization:
  HQ ทั้งหมด summarize เป็น: 10.1.0.0/16
  Branch A ทั้งหมด:          10.2.0.0/16
  Branch B ทั้งหมด:          10.3.0.0/16

10.3 IP Address Documentation

สิ่งที่ต้องมีในเอกสาร IP planning:

  • IP Addressing Table — ตารางรวม subnet ทั้งหมด พร้อม VLAN ID, gateway, mask, DHCP range
  • IP Assignment Sheet — ตารางบันทึกว่า IP ไหนใช้กับอุปกรณ์อะไร (สำหรับ static IPs)
  • Network Diagram — แผนผังเครือข่ายที่แสดง subnet, VLAN, router interfaces
  • DHCP Scope Summary — สรุป scope ของ DHCP server ทั้งหมด

ควรเก็บเอกสารเหล่านี้ใน version control (Git) หรือ IPAM tool เช่น phpIPAM, NetBox, Infoblox

ส่วนที่ 11: Subnet Calculator Tools

11.1 Online Tools

  • subnet-calculator.com — ใช้ง่าย แสดงผลครบ
  • calculator.net/ip-subnet-calculator — มี VLSM calculator ด้วย
  • jodies.de/ipcalc — แสดง binary ให้ดูเข้าใจง่าย
  • Visual Subnet Calculator (davidc.net) — แสดงเป็น visual blocks สวยงาม

11.2 CLI Tools

# Linux: ipcalc
sudo apt install ipcalc
ipcalc 192.168.10.0/24
ipcalc 10.50.100.200/20

# Linux: sipcalc (more detailed)
sudo apt install sipcalc
sipcalc 192.168.10.0/24
sipcalc 2001:db8:abcd::/48

# Python: ipaddress module (built-in)
python3 -c "
import ipaddress
net = ipaddress.ip_network('192.168.10.0/24')
print(f'Network: {net.network_address}')
print(f'Broadcast: {net.broadcast_address}')
print(f'Mask: {net.netmask}')
print(f'Hosts: {net.num_addresses - 2}')
print(f'First: {list(net.hosts())[0]}')
print(f'Last: {list(net.hosts())[-1]}')
"

11.3 IPAM (IP Address Management) Tools

สำหรับองค์กรที่มี IP จำนวนมาก ควรใช้ IPAM tool:

  • phpIPAM — open-source, web-based, ใช้ง่าย ฟรี
  • NetBox — open-source (by DigitalOcean), ครบทั้ง IPAM + DCIM (Data Center Infrastructure Management)
  • Infoblox — enterprise solution, รวม DNS + DHCP + IPAM (DDI)
  • SolarWinds IPAM — integrated กับ SolarWinds ecosystem
  • BlueCat — enterprise DDI solution

ส่วนที่ 12: แบบฝึกหัด Subnetting พร้อมเฉลย

โจทย์ที่ 1: Basic Subnetting

โจทย์: จากข้อมูลต่อไปนี้ หา Network Address, Broadcast, First Host, Last Host, จำนวน Hosts

a) 10.20.30.100/16
b) 172.16.100.50/22
c) 192.168.50.200/28

เฉลย:

a) 10.20.30.100/16
   Mask: 255.255.0.0
   Network:    10.20.0.0
   Broadcast:  10.20.255.255
   First Host: 10.20.0.1
   Last Host:  10.20.255.254
   Hosts:      65,534

b) 172.16.100.50/22
   Mask: 255.255.252.0
   Block Size: 256-252 = 4
   100/4 = 25 → 25*4 = 100
   Network:    172.16.100.0
   Broadcast:  172.16.103.255
   First Host: 172.16.100.1
   Last Host:  172.16.103.254
   Hosts:      1,022

c) 192.168.50.200/28
   Mask: 255.255.255.240
   Block Size: 256-240 = 16
   200/16 = 12.5 → 12*16 = 192
   Network:    192.168.50.192
   Broadcast:  192.168.50.207
   First Host: 192.168.50.193
   Last Host:  192.168.50.206
   Hosts:      14

โจทย์ที่ 2: VLSM Design

โจทย์: มี network 172.16.0.0/24 ต้องแบ่งให้:
  - Sales: 60 hosts
  - HR: 30 hosts
  - IT: 12 hosts
  - WAN: 2 hosts

เฉลย (เรียงจากมากไปน้อย):

1. Sales (60 hosts):
   2^n-2 >= 60 → n=6 → /26 (64 addresses, 62 usable)
   Network:    172.16.0.0/26
   Usable:     172.16.0.1 - 172.16.0.62
   Broadcast:  172.16.0.63

2. HR (30 hosts):
   2^n-2 >= 30 → n=5 → /27 (32 addresses, 30 usable)
   Network:    172.16.0.64/27
   Usable:     172.16.0.65 - 172.16.0.94
   Broadcast:  172.16.0.95

3. IT (12 hosts):
   2^n-2 >= 12 → n=4 → /28 (16 addresses, 14 usable)
   Network:    172.16.0.96/28
   Usable:     172.16.0.97 - 172.16.0.110
   Broadcast:  172.16.0.111

4. WAN (2 hosts):
   /30 (4 addresses, 2 usable)
   Network:    172.16.0.112/30
   Usable:     172.16.0.113 - 172.16.0.114
   Broadcast:  172.16.0.115

เหลือ: 172.16.0.116 - 172.16.0.255 (140 addresses สำรอง)

โจทย์ที่ 3: Supernetting

โจทย์: หา Summary Route ของ networks ต่อไปนี้:
  10.10.16.0/24
  10.10.17.0/24
  10.10.18.0/24
  10.10.19.0/24
  10.10.20.0/24
  10.10.21.0/24
  10.10.22.0/24
  10.10.23.0/24

เฉลย:
  16 = 00010000
  17 = 00010001
  18 = 00010010
  19 = 00010011
  20 = 00010100
  21 = 00010101
  22 = 00010110
  23 = 00010111

  Common bits: 00010 (5 bits เหมือนกัน)
  Prefix = 16 + 5 = /21

  Summary Route: 10.10.16.0/21 (255.255.248.0)
  ครอบคลุม: 10.10.16.0 - 10.10.23.255 (2,048 addresses)

โจทย์ที่ 4: จาก Subnet Mask หา CIDR (และกลับกัน)

โจทย์: แปลงค่าต่อไปนี้

a) 255.255.255.128 = ?
b) 255.255.240.0 = ?
c) /19 = ?
d) /29 = ?

เฉลย:
a) 255.255.255.128
   128 = 10000000 → 1 bit
   /24 + 1 = /25

b) 255.255.240.0
   240 = 11110000 → 4 bits
   /16 + 4 = /20

c) /19 = 16 + 3 network bits in 3rd octet
   11100000 = 224
   = 255.255.224.0

d) /29 = 24 + 5 network bits in 4th octet
   11111000 = 248
   = 255.255.255.248

ส่วนที่ 13: Quick Reference — ตารางอ้างอิงฉบับเร็ว

13.1 Subnet Mask Cheat Sheet (Class C)

CIDR | Mask              | Block | Subnets | Hosts/Subnet
-----|-------------------|-------|---------|-------------
/24  | 255.255.255.0     | 256   | 1       | 254
/25  | 255.255.255.128   | 128   | 2       | 126
/26  | 255.255.255.192   | 64    | 4       | 62
/27  | 255.255.255.224   | 32    | 8       | 30
/28  | 255.255.255.240   | 16    | 16      | 14
/29  | 255.255.255.248   | 8     | 32      | 6
/30  | 255.255.255.252   | 4     | 64      | 2
/31  | 255.255.255.254   | 2     | 128     | 2 (P2P)
/32  | 255.255.255.255   | 1     | 256     | 1 (host)

13.2 Powers of 2

2^0  = 1         2^8  = 256       2^16 = 65,536
2^1  = 2         2^9  = 512       2^17 = 131,072
2^2  = 4         2^10 = 1,024     2^18 = 262,144
2^3  = 8         2^11 = 2,048     2^19 = 524,288
2^4  = 16        2^12 = 4,096     2^20 = 1,048,576
2^5  = 32        2^13 = 8,192     2^21 = 2,097,152
2^6  = 64        2^14 = 16,384    2^22 = 4,194,304
2^7  = 128       2^15 = 32,768    2^23 = 8,388,608

สรุป

IP Addressing และ Subnetting เป็นพื้นฐานที่สำคัญที่สุดของ networking ทุกอย่างที่เกี่ยวกับเครือข่ายตั้งอยู่บนพื้นฐานนี้ ไม่ว่าจะเป็นการตั้งค่า Firewall, VPN, VLAN, routing, DNS/DHCP หรือแม้แต่ cloud networking

สิ่งที่ควรจำให้ขึ้นใจ:

  • Binary weights: 128, 64, 32, 16, 8, 4, 2, 1
  • Block Size: 256 – mask value ของ interesting octet
  • Usable Hosts: 2^(host bits) – 2
  • VLSM: เรียงจากมากไปน้อย แล้วจัดสรรทีละ subnet
  • IPv6 /64: ทุก LAN subnet ใช้ /64 เสมอ

การ subnet ต้อง ฝึกทำมือ ให้คล่อง ไม่ใช่แค่อ่านเข้าใจ ลองทำแบบฝึกหัดในบทความนี้ แล้วหาโจทย์เพิ่มเติมมาฝึก เมื่อคล่องแล้วจะสามารถคำนวณ subnet ได้ภายในไม่กี่วินาที ซึ่งเป็นทักษะที่ Network Engineer ทุกคนต้องมี

หากสนใจศึกษาเพิ่มเติมเกี่ยวกับ CCNA, Networking, DNS/DHCP และ Load Balancer/HA สามารถอ่านบทความเพิ่มเติมได้ที่ siamlancard.com

.

.
.
.

จัดส่งรวดเร็วส่งด่วนทั่วประเทศ
รับประกันสินค้าเคลมง่าย มีใบรับประกัน
ผ่อนชำระได้บัตรเครดิต 0% สูงสุด 10 เดือน
สะสมแต้ม รับส่วนลดส่วนลดและคะแนนสะสม

© 2026 SiamLancard — จำหน่ายการ์ดแลน อุปกรณ์ Server และเครื่องพิมพ์ใบเสร็จ

SiamLancard
#ffffff
Free Forex EA — XM Signal · SiamCafe Blog · SiamLancard · Siam2R · iCafeFX
Partner Sites: iCafe Forex | SiamCafe | SiamLancard | Siam2R | XM Signal | iCafe Cloud
iCafeForex.com - สอนเทรด Forex | SiamCafe.net
Shopping cart
Partner Sites: iCafeForex | SiamCafe | Siam2R | XMSignal