Windows Server 2025 — ติดตั้ง DHCP + DNS + Forward/Reverse Zone ทีละ Step
คู่มือครบ end-to-end สำหรับ Windows Server 2025 ตั้งแต่ติดตั้ง DHCP role, สร้าง Scope, Reserve IP ไปจนถึงสร้าง Forward/Reverse Lookup Zone, เพิ่ม A/PTR/CNAME record และตั้ง Forwarder ไปยัง Cloudflare/Google
1. ทำไม DHCP + DNS ต้องอยู่บน Server ขององค์กร (แทนการใช้ของ ISP/Router)#
DHCP จาก ISP หรือ Router ทั่วไปทำได้แค่แจก IP — ไม่มี Policy, ไม่มี Reservation แบบ centralized, ไม่สามารถแจก custom Option เช่น NTP Server หรือ WPAD ได้ครบ และที่สำคัญกว่านั้นคือ DHCP ที่รันบน Windows Server สามารถ register DNS record ให้ client อัตโนมัติผ่าน Dynamic DNS (DDNS) ซึ่งทำให้ชื่อเครื่องใน forward/reverse zone ถูก update ทุกครั้งที่ lease ต่ออายุ โดยไม่ต้องแก้มือ
สำหรับ DNS ฝั่ง ISP มักเป็น recursive resolver สาธารณะที่ไม่รู้จักชื่อ internal เช่น dc01.corp.local หรือ fileserver.corp.local เลย ถ้าองค์กรรัน Active Directory อยู่แล้ว DNS ที่ integrate กับ AD จะ replicate zone ข้าม Domain Controller โดยอัตโนมัติ ทำให้มีความทนทานสูงกว่ามาก
บทความนี้ต่อจาก ติดตั้ง Active Directory บน Windows Server 2025 — สมมติว่า domain corp.local ถูก promote ขึ้นมาแล้ว และคุณ login ด้วย Domain Admin account
2. Prerequisites (Win Server 2025 + domain joined แล้ว)#
ก่อนเริ่มให้ตรวจสอบสิ่งเหล่านี้ให้ครบ:
- Windows Server 2025 ถูก join domain
corp.localเรียบร้อยแล้ว - Server มี Static IP address (เช่น
192.168.10.1) — ห้ามรับจาก DHCP - Login ด้วย account ที่เป็น Domain Admins หรือ Enterprise Admins
- Network subnet ที่จะแจก IP:
192.168.10.0/24(ตัวอย่างบทความนี้) - Default Gateway:
192.168.10.1, DNS Server:192.168.10.10, NTP:192.168.10.10
3. ติดตั้ง DHCP Server Role ผ่าน Server Manager#

- เปิด Server Manager → Manage → Add Roles and Features
- คลิก Next ผ่านหน้า Before You Begin
- เลือก Role-based or feature-based installation → Next
- เลือก server ปัจจุบัน → Next
- บนหน้า Select server roles ติ๊ก DHCP Server → ยืนยัน Add Features → Next

- คลิก Next ผ่านหน้า Features
- อ่าน note บนหน้า DHCP Server → Next
- หน้า Confirm → Install
หรือใช้ PowerShell แทนทั้งหมดได้ในบรรทัดเดียว:
Install-WindowsFeature DHCP -IncludeManagementTools
การติดตั้ง DHCP role ไม่ต้อง restart server
4. Post-install Wizard + Authorize DHCP ใน AD#
หลัง install เสร็จ Server Manager จะแสดง flag สีเหลืองด้านบน ให้คลิกแล้วเลือก Complete DHCP configuration

Wizard นี้จะ:
- สร้าง security group
DHCP AdministratorsและDHCP Usersใน AD - Authorize DHCP Server ใน Active Directory Domain Services โดยอัตโนมัติ
คลิก Next → Commit → Close

จากนั้นเปิด DHCP console (Start → Windows Administrative Tools → DHCP) ขยาย server name และ right-click Authorize ถ้า icon ยังแสดงสีแดง รอสักครู่แล้ว Refresh — icon จะเปลี่ยนเป็นสีเขียว
หรือ authorize ผ่าน PowerShell:
Add-DhcpServerInDC -DnsName "srv01.corp.local" -IPAddress 192.168.10.10
Get-DhcpServerInDC
DHCP Server ที่ยังไม่ได้ Authorize จะไม่แจก IP ให้ client เลย แม้จะสร้าง Scope ไว้แล้ว — เป็น security feature ของ AD เพื่อป้องกัน rogue DHCP server
5. สร้าง Scope (range, exclusion, lease)#

ใน DHCP console ให้ right-click IPv4 → New Scope แล้วทำตาม wizard:
| ฟิลด์ | ค่าที่ใช้ในตัวอย่าง |
|---|---|
| Scope Name | Corp-LAN-10 |
| Start IP | 192.168.10.100 |
| End IP | 192.168.10.200 |
| Subnet Mask | 255.255.255.0 |
| Exclusion range | 192.168.10.100 – 192.168.10.109 (สำรองไว้สำหรับ server/printer) |
| Lease Duration | 8 ชั่วโมง (สำนักงาน) หรือ 1 วัน (ทั่วไป) |
กำหนด Lease Duration ให้สั้นลงในสภาพแวดล้อมที่มีอุปกรณ์เข้า-ออกบ่อย เช่น Wi-Fi guest ควรใช้ 1-4 ชั่วโมง แต่ใน wired LAN ที่เครื่องอยู่นิ่ง 8 ชั่วโมงหรือ 1 วันก็เพียงพอ
ด้วย PowerShell:
Add-DhcpServerv4Scope -Name "Corp-LAN-10" `
-StartRange 192.168.10.100 `
-EndRange 192.168.10.200 `
-SubnetMask 255.255.255.0 `
-State Active
Add-DhcpServerv4ExclusionRange -ScopeId 192.168.10.0 `
-StartRange 192.168.10.100 `
-EndRange 192.168.10.109
6. Configure Scope Options (DNS, Gateway, NTP, Domain)#

หลัง wizard ถามว่าจะ configure options ตอนนี้เลยไหม เลือก Yes, I want to configure these options now แล้วกรอกตามตาราง:
| Option Code | ชื่อ | ค่า |
|---|---|---|
| 003 | Router (Default Gateway) | 192.168.10.1 |
| 006 | DNS Servers | 192.168.10.10 |
| 015 | DNS Domain Name | corp.local |
| 042 | NTP Servers | 192.168.10.10 |
หรือตั้งค่าทีหลังผ่าน PowerShell:
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 `
-Router 192.168.10.1 `
-DnsServer 192.168.10.10 `
-DnsDomain "corp.local"
# Option 042 NTP (ต้องตั้งแยก)
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 `
-OptionId 42 `
-Value "192.168.10.10"
7. IP Reservation สำหรับ Server/Printer#
Reservation ผูก MAC address ของอุปกรณ์กับ IP address คงที่ใน scope ทำให้อุปกรณ์ได้ IP เดิมเสมอโดยไม่ต้อง set static IP ที่ตัวมันเอง
ใน DHCP console: ขยาย scope → right-click Reservations → New Reservation
| ฟิลด์ | ตัวอย่าง |
|---|---|
| Reservation Name | FileServer-01 |
| IP Address | 192.168.10.105 |
| MAC Address | 00-1A-2B-3C-4D-5E |
ด้วย PowerShell:
Add-DhcpServerv4Reservation -ScopeId 192.168.10.0 `
-IPAddress 192.168.10.105 `
-ClientId "00-1A-2B-3C-4D-5E" `
-Description "FileServer-01"
Add-DhcpServerv4Reservation -ScopeId 192.168.10.0 `
-IPAddress 192.168.10.106 `
-ClientId "AA-BB-CC-DD-EE-FF" `
-Description "Printer-Floor2"
MAC address ที่ใช้ใน DHCP console ใส่ด้วย - คั่น (เช่น 00-1A-2B-3C-4D-5E) ส่วน PowerShell รับทั้งรูปแบบ - และ : คั่น
8. ติดตั้ง DNS Server Role#
ถ้า server ที่ใช้เป็น Domain Controller ของ corp.local DNS role มักถูกติดตั้งไปพร้อมกับ AD DS แล้ว ให้ตรวจสอบก่อน:
Get-WindowsFeature DNS
ถ้าสถานะเป็น Available ให้ติดตั้ง:
Install-WindowsFeature DNS -IncludeManagementTools
หรือผ่าน Server Manager: Add Roles and Features → ติ๊ก DNS Server → Install
9. สร้าง Forward Lookup Zone (corp.local)#

เปิด DNS Manager (Start → Windows Administrative Tools → DNS หรือ dnsmgmt.msc)
- ขยาย server → right-click Forward Lookup Zones → New Zone
- เลือก Primary zone → ติ๊ก Store the zone in Active Directory (ถ้า server เป็น DC)
- เลือก replication: To all DNS servers running on domain controllers in this domain: corp.local

- Zone Name:
corp.local - Dynamic Update: เลือก Allow only secure dynamic updates (แนะนำสำหรับ AD-integrated zone)
- คลิก Finish
ด้วย PowerShell:
Add-DnsServerPrimaryZone -Name "corp.local" `
-ReplicationScope Domain `
-DynamicUpdate Secure
10. สร้าง Reverse Lookup Zone (10.168.192.in-addr.arpa)#

Reverse zone ทำให้สามารถ resolve จาก IP กลับเป็น hostname ได้ ซึ่งสำคัญมากสำหรับ security logging, email server validation, และ audit trail
- Right-click Reverse Lookup Zones → New Zone
- เลือก Primary zone → Store ใน AD
- เลือก IPv4 Reverse Lookup Zone
- กรอก Network ID:
192.168.10— DNS Manager จะสร้างชื่อ10.168.192.in-addr.arpaให้อัตโนมัติ - Dynamic Update: Allow only secure dynamic updates
- คลิก Finish
ด้วย PowerShell:
Add-DnsServerPrimaryZone -NetworkId "192.168.10.0/24" `
-ReplicationScope Domain `
-DynamicUpdate Secure
11. เพิ่ม Records (A, PTR, CNAME)#

A Record (forward)#
ใน DNS Manager: right-click zone corp.local → New Host (A or AAAA)
| Name | IP Address |
|---|---|
| dc01 | 192.168.10.10 |
| fileserver | 192.168.10.105 |
| printer-floor2 | 192.168.10.106 |
Add-DnsServerResourceRecordA -ZoneName "corp.local" `
-Name "dc01" -IPv4Address "192.168.10.10" -CreatePtr
Add-DnsServerResourceRecordA -ZoneName "corp.local" `
-Name "fileserver" -IPv4Address "192.168.10.105" -CreatePtr
ใช้ -CreatePtr เพื่อให้ PowerShell สร้าง PTR record ใน Reverse zone ให้อัตโนมัติพร้อมกัน ไม่ต้องสร้างแยก
PTR Record (reverse)#
ถ้าต้องการสร้างแบบ manual ใน DNS Manager: right-click zone 10.168.192.in-addr.arpa → New Pointer (PTR)
Add-DnsServerResourceRecordPtr -ZoneName "10.168.192.in-addr.arpa" `
-Name "10" -PtrDomainName "dc01.corp.local"
CNAME Record (alias)#
CNAME ใช้สร้าง alias ให้กับ hostname เช่น ชี้ intranet.corp.local ไปที่ fileserver.corp.local
Add-DnsServerResourceRecordCName -ZoneName "corp.local" `
-Name "intranet" -HostNameAlias "fileserver.corp.local"
CNAME ไม่สามารถชี้ไปที่ IP address ได้โดยตรง — ต้องชี้ไปที่ FQDN เสมอ และห้ามใส่ CNAME ที่ apex ของ zone (ชื่อ zone เปล่าๆ) เพราะจะขัดกับ SOA/NS records
12. Configure Forwarders (1.1.1.1, 8.8.8.8)#
Forwarder คือ DNS server ที่ local DNS จะส่งต่อ query ที่ resolve ภายใน zone เองไม่ได้ (เช่น google.com, microsoft.com)
ใน DNS Manager: right-click server name → Properties → แท็บ Forwarders → Edit → เพิ่ม:
1.1.1.1 (Cloudflare DNS)
1.0.0.1 (Cloudflare DNS secondary)
8.8.8.8 (Google DNS)
8.8.4.4 (Google DNS secondary)
ด้วย PowerShell:
Set-DnsServerForwarder -IPAddress "1.1.1.1","1.0.0.1","8.8.8.8","8.8.4.4"
Conditional Forwarder#
Conditional Forwarder ส่ง query เฉพาะ domain บางชื่อไปยัง DNS server ที่กำหนด — มีประโยชน์มากเมื่อมีหลาย domain ใน LAN เช่น partner company หรือ branch office
# ส่ง query ของ branch.local ไปที่ DNS server สาขา
Add-DnsServerConditionalForwarderZone -Name "branch.local" `
-MasterServers "10.20.0.10" `
-ReplicationScope "Domain"
หรือผ่าน DNS Manager: right-click Conditional Forwarders → New Conditional Forwarder → กรอก domain name และ DNS server IP
13. Verify (nslookup, Get-DhcpServerv4Lease, dnscmd)#
ตรวจสอบ DHCP Lease#
# ดู lease ทั้งหมดใน scope
Get-DhcpServerv4Lease -ScopeId 192.168.10.0
# ดูเฉพาะ reservation
Get-DhcpServerv4Reservation -ScopeId 192.168.10.0
ตรวจสอบ DNS ด้วย nslookup#
:: Forward lookup — ชื่อ → IP
nslookup dc01.corp.local
:: Reverse lookup — IP → ชื่อ
nslookup 192.168.10.10
:: ทดสอบ forwarder — external domain
nslookup google.com
:: ทดสอบ CNAME
nslookup intranet.corp.local
:: ระบุ DNS server ที่ต้องการทดสอบ
nslookup dc01.corp.local 192.168.10.10
ตรวจสอบ DNS Zone ด้วย PowerShell#
# ดู zone ทั้งหมด
Get-DnsServerZone
# ดู record ใน corp.local
Get-DnsServerResourceRecord -ZoneName "corp.local"
# ดู forwarder ที่ตั้งไว้
Get-DnsServerForwarder
# ตรวจ conditional forwarder
Get-DnsServerZone | Where-Object { $_.ZoneType -eq "Forwarder" }
:: ตรวจ DNS statistics
dnscmd /statistics
:: list zone ทั้งหมด
dnscmd /enumzones
ถ้า nslookup ไม่สามารถ resolve internal hostname ได้ ตรวจสอบว่า network adapter ของ client ตั้ง DNS ชี้มาที่ 192.168.10.10 (DNS server ภายใน) ไม่ใช่ IP ของ ISP
C9NETWORK ให้บริการ deploy และ configure Windows Server infrastructure ครบวงจร ตั้งแต่ Active Directory, DHCP/DNS, File Services ไปจนถึง VPN และ Network Security สำหรับองค์กรในไทย ติดต่อทีมงานได้เลย