Knowledge BaseWindows Server 2025 — ติดตั้ง DHCP + DNS + Forward/Reverse Zone ทีละ Step
beginner

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

A
Apinan
C9NETWORK Editor
19 พฤษภาคม 2569
15 นาที
12025dhcpdnsstep-by-steptutorialwindows-serverzone

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 โดยอัตโนมัติ ทำให้มีความทนทานสูงกว่ามาก

ℹ️ Note

บทความนี้ต่อจาก ติดตั้ง 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#

Add Roles and Features Wizard เลือก DHCP Server
  1. เปิด Server ManagerManageAdd Roles and Features
  2. คลิก Next ผ่านหน้า Before You Begin
  3. เลือก Role-based or feature-based installationNext
  4. เลือก server ปัจจุบัน → Next
  5. บนหน้า Select server roles ติ๊ก DHCP Server → ยืนยัน Add Features → Next
เลือก DHCP Server Role ใน Server Manager
  1. คลิก Next ผ่านหน้า Features
  2. อ่าน note บนหน้า DHCP Server → Next
  3. หน้า Confirm → Install

หรือใช้ PowerShell แทนทั้งหมดได้ในบรรทัดเดียว:

powershellpowershell
Install-WindowsFeature DHCP -IncludeManagementTools
Tip

การติดตั้ง DHCP role ไม่ต้อง restart server

4. Post-install Wizard + Authorize DHCP ใน AD#

หลัง install เสร็จ Server Manager จะแสดง flag สีเหลืองด้านบน ให้คลิกแล้วเลือก Complete DHCP configuration

Post-install DHCP Configuration Wizard

Wizard นี้จะ:

  • สร้าง security group DHCP Administrators และ DHCP Users ใน AD
  • Authorize DHCP Server ใน Active Directory Domain Services โดยอัตโนมัติ

คลิก NextCommitClose

Authorize DHCP Server ใน Active Directory

จากนั้นเปิด DHCP console (Start → Windows Administrative Tools → DHCP) ขยาย server name และ right-click Authorize ถ้า icon ยังแสดงสีแดง รอสักครู่แล้ว Refresh — icon จะเปลี่ยนเป็นสีเขียว

หรือ authorize ผ่าน PowerShell:

powershellpowershell
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)#

New Scope Wizard กำหนด IP range สำหรับ 192.168.10.0/24

ใน DHCP console ให้ right-click IPv4New 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 วัน (ทั่วไป)
Tip

กำหนด Lease Duration ให้สั้นลงในสภาพแวดล้อมที่มีอุปกรณ์เข้า-ออกบ่อย เช่น Wi-Fi guest ควรใช้ 1-4 ชั่วโมง แต่ใน wired LAN ที่เครื่องอยู่นิ่ง 8 ชั่วโมงหรือ 1 วันก็เพียงพอ

ด้วย PowerShell:

powershellpowershell
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)#

Scope Options — ตั้งค่า Gateway, DNS, NTP

หลัง 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:

powershellpowershell
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 ReservationsNew Reservation

ฟิลด์ ตัวอย่าง
Reservation Name FileServer-01
IP Address 192.168.10.105
MAC Address 00-1A-2B-3C-4D-5E

ด้วย PowerShell:

powershellpowershell
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"
ℹ️ Note

MAC address ที่ใช้ใน DHCP console ใส่ด้วย - คั่น (เช่น 00-1A-2B-3C-4D-5E) ส่วน PowerShell รับทั้งรูปแบบ - และ : คั่น

8. ติดตั้ง DNS Server Role#

ถ้า server ที่ใช้เป็น Domain Controller ของ corp.local DNS role มักถูกติดตั้งไปพร้อมกับ AD DS แล้ว ให้ตรวจสอบก่อน:

powershellpowershell
Get-WindowsFeature DNS

ถ้าสถานะเป็น Available ให้ติดตั้ง:

powershellpowershell
Install-WindowsFeature DNS -IncludeManagementTools

หรือผ่าน Server Manager: Add Roles and Features → ติ๊ก DNS ServerInstall

9. สร้าง Forward Lookup Zone (corp.local)#

DNS Manager — สร้าง Forward Lookup Zone

เปิด DNS Manager (Start → Windows Administrative Tools → DNS หรือ dnsmgmt.msc)

  1. ขยาย server → right-click Forward Lookup ZonesNew Zone
  2. เลือก Primary zone → ติ๊ก Store the zone in Active Directory (ถ้า server เป็น DC)
  3. เลือก replication: To all DNS servers running on domain controllers in this domain: corp.local
ตั้งชื่อ Zone — corp.local
  1. Zone Name: corp.local
  2. Dynamic Update: เลือก Allow only secure dynamic updates (แนะนำสำหรับ AD-integrated zone)
  3. คลิก Finish

ด้วย PowerShell:

powershellpowershell
Add-DnsServerPrimaryZone -Name "corp.local" `
    -ReplicationScope Domain `
    -DynamicUpdate Secure

10. สร้าง Reverse Lookup Zone (10.168.192.in-addr.arpa)#

DNS Manager — สร้าง Reverse Lookup Zone

Reverse zone ทำให้สามารถ resolve จาก IP กลับเป็น hostname ได้ ซึ่งสำคัญมากสำหรับ security logging, email server validation, และ audit trail

  1. Right-click Reverse Lookup ZonesNew Zone
  2. เลือก Primary zone → Store ใน AD
  3. เลือก IPv4 Reverse Lookup Zone
  4. กรอก Network ID: 192.168.10 — DNS Manager จะสร้างชื่อ 10.168.192.in-addr.arpa ให้อัตโนมัติ
  5. Dynamic Update: Allow only secure dynamic updates
  6. คลิก Finish

ด้วย PowerShell:

powershellpowershell
Add-DnsServerPrimaryZone -NetworkId "192.168.10.0/24" `
    -ReplicationScope Domain `
    -DynamicUpdate Secure

11. เพิ่ม Records (A, PTR, CNAME)#

DNS Zone completed — พร้อมเพิ่ม records

A Record (forward)#

ใน DNS Manager: right-click zone corp.localNew Host (A or AAAA)

Name IP Address
dc01 192.168.10.10
fileserver 192.168.10.105
printer-floor2 192.168.10.106
powershellpowershell
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
Tip

ใช้ -CreatePtr เพื่อให้ PowerShell สร้าง PTR record ใน Reverse zone ให้อัตโนมัติพร้อมกัน ไม่ต้องสร้างแยก

PTR Record (reverse)#

ถ้าต้องการสร้างแบบ manual ใน DNS Manager: right-click zone 10.168.192.in-addr.arpaNew Pointer (PTR)

powershellpowershell
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

powershellpowershell
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 → แท็บ ForwardersEdit → เพิ่ม:

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:

powershellpowershell
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

powershellpowershell
# ส่ง query ของ branch.local ไปที่ DNS server สาขา
Add-DnsServerConditionalForwarderZone -Name "branch.local" `
    -MasterServers "10.20.0.10" `
    -ReplicationScope "Domain"

หรือผ่าน DNS Manager: right-click Conditional ForwardersNew Conditional Forwarder → กรอก domain name และ DNS server IP

13. Verify (nslookup, Get-DhcpServerv4Lease, dnscmd)#

ตรวจสอบ DHCP Lease#

powershellpowershell
# ดู lease ทั้งหมดใน scope
Get-DhcpServerv4Lease -ScopeId 192.168.10.0

# ดูเฉพาะ reservation
Get-DhcpServerv4Reservation -ScopeId 192.168.10.0

ตรวจสอบ DNS ด้วย nslookup#

cmdcmd
:: 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#

powershellpowershell
# ดู zone ทั้งหมด
Get-DnsServerZone

# ดู record ใน corp.local
Get-DnsServerResourceRecord -ZoneName "corp.local"

# ดู forwarder ที่ตั้งไว้
Get-DnsServerForwarder

# ตรวจ conditional forwarder
Get-DnsServerZone | Where-Object { $_.ZoneType -eq "Forwarder" }
cmdcmd
:: ตรวจ DNS statistics
dnscmd /statistics

:: list zone ทั้งหมด
dnscmd /enumzones
Tip

ถ้า 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 สำหรับองค์กรในไทย ติดต่อทีมงานได้เลย