บทความนี้อธิบายวิธีแก้ไขปัญหาที่ตั้งค่า DNAT (Destination NAT) บน Sangfor NGAF/NSF แล้วแต่ยังไม่สามารถใช้งานได้ โดยสาเหตุหลักมาจากการตั้งค่า Src Port ใน Custom Service ไม่ถูกต้อง
อาการ
- ตั้งค่า DNAT เพื่อชี้ Port จากภายนอกเข้ามาหา Server ภายใน
- Port ที่ต้องการใช้ไม่อยู่ใน Database จึงสร้าง Custom Service ขึ้นมา
- ทดลอง Telnet IP:Port ที่ถูก DNAT จากภายนอกเข้ามา แต่ ไม่สำเร็จ (Fail)
สาเหตุ
เมื่อสร้าง Custom Service แล้วกรอก Src Port ให้เหมือนกับ Dst Port (เช่น Src Port = 8080, Dst Port = 8080) จะทำให้ DNAT ไม่ทำงาน เพราะ:
- Dst Port: คือ Port ปลายทางที่ต้องการ NAT ไป (ถูกต้อง)
- Src Port: คือ Port ของ Client ที่ส่ง Request เข้ามา ซึ่งโดยทั่วไปจะเป็น Port Random (เช่น 49152-65535) ไม่ใช่ Port เดียวกับ Dst Port
วิธีแก้ไข
- ไปที่ Objects > Services > Custom Services
- แก้ไข Custom Service ที่ใช้กับ DNAT
- เปลี่ยน Src Port เป็น 0-65535 เพื่อไม่จำกัด Port ของ Client ที่ Request เข้ามา
- กด OK เพื่อบันทึก
- กลับไปที่ DNAT Rule แล้วเลือก Custom Service ที่แก้ไขแล้ว
- ทดสอบ Telnet อีกครั้ง — ควรสามารถเชื่อมต่อได้ปกติ
วิธีตรวจสอบ Custom Service
ไปที่ Objects > Services > Custom Services แล้วตรวจสอบว่า Src Port เป็น 0-65535
หมายเหตุ
- ปัญหานี้เกิดขึ้นเฉพาะเมื่อสร้าง Custom Service เอง — Service ที่อยู่ใน Database จะมี Src Port ตั้งไว้ถูกต้องอยู่แล้ว
- หลักการ: Src Port ควรเป็น 0-65535 เสมอ (ยกเว้นมี Requirement พิเศษ) เพราะ Client จะใช้ Port Random ในการเชื่อมต่อ
- หาก DNAT ยังไม่ทำงานหลังแก้ไขแล้ว ให้ตรวจสอบ:
- Network Security Policy: ต้องมี Rule ที่ Allow Traffic จาก WAN ไปยัง Server ภายใน — หรือเปิดตัวเลือก "Add ACL policy automatically" ใน DNAT Rule เพื่อให้ระบบสร้าง Policy อัตโนมัติ
- Server Firewall: ตรวจสอบว่า Server ปลายทางเปิด Port ที่ต้องการ
- Routing: ตรวจสอบว่า NGAF สามารถเข้าถึง Server ภายในได้
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น