ปัญหาหนึ่งที่เจอบ่อยมากในองค์กรคือ เน็ตล่มเป็นพัก ๆ ทั้งที่อุปกรณ์หลักไม่ได้ล่มจริง สุดท้ายไล่ไปไล่มามักเจอว่า มีอุปกรณ์บางตัวแอบแจก DHCP เช่น Router ส่วนตัวมาต่อเอง ทำให้เครื่องลูกข่ายบางเครื่องได้ IP/Gateway/DNS ผิด และเริ่มมีอาการหลุด ๆ ติด ๆ หรือถูกพาไป DNS ปลอมได้
บทความนี้จะอธิบาย DHCP Snooping คืออะไร และไปดูวิธีตั้งค่าป้องกันบน Cisco Meraki Dashboard (MS Switch) สามารถดูได้จากบทความด้านล่างได้เลยครับ
DHCP Snooping คืออะไร
ลองนึกภาพว่าใน VLAN เดียวกันมี DHCP Server ของจริงอยู่แล้วแต่มี คนนำอุปกรณ์อื่นที่สามารถแจก DHCP ได้เช่น Router ส่วนตัว ทำตัวเป็น Rogue DHCP Server มาต่อกับสวิตช์ในวงเดียวกัน
เวลาเครื่องลูกข่ายเปิดเครื่อง มันจะส่ง DHCP Discover ออกไปแบบ broadcast จากนั้นจะมี DHCP ตอบกลับด้วย DHCP Offer
ประเด็นคือ ถ้า Rogue DHCP ตอบ Offer ได้เร็วกว่า DHCP ของจริงเครื่องลูกข่ายก็อาจรับค่าจากตัวปลอมก่อน เช่น
-
ได้ IP/Default Gateway ที่คนร้ายกำหนด
-
ได้ DNS ปลอม พาไปเว็บปลอม
-
หรือแจก IP ชนกันจนระบบรวน/ล่มได้
DHCP Snooping จึงเกิดมาเพื่อเป็นยามเฝ้าประตูบนสวิตช์โดยหลักการคือ:
-
ค่าเริ่มต้น ไม่เชื่อใครไว้ก่อน (Untrusted)
-
จะอนุญาต DHCP Offer/ACK เฉพาะจากพอร์ต/แหล่งที่เชื่อถือได้ (Trusted) เท่านั้น
สรุปคือ DHCP ปลอมจะถูกบล็อกตั้งแต่ชั้นสวิตช์
บน Meraki ทำงานยังไง
บน Meraki MS จะไม่ใช้คำว่า DHCP Snooping แบบ Cisco IOS ตรง ๆ แต่เป็น DHCP Guard และมีหน้าสำคัญคือ
DHCP Guard ใช้กับ IPv4 โดยโฟกัสที่ฝั่ง DHCP Server ไม่ใช่ฝั่งลูกข่ายที่ขอ IP คือ ลูกข่ายยังส่ง DHCP Discover/Request ได้ปกติ แต่สวิตช์จะ ยอมให้มีแค่ DHCP Server ที่เราอนุญาตเท่านั้น ที่สามารถส่ง DHCP Offer/ACK ออกมาได้ ถ้ามีใครเอาเราเตอร์บ้านหรืออุปกรณ์ที่เปิด DHCP มาเสียบใน VLAN เดียวกันมันจะพยายามแจก IP แข่งกับของจริง แต่ข้อความตอบกลับของมันจะถูกบล็อกทำให้ลูกข่ายไม่มีทางรับ IP/Gateway/DNS จากตัวปลอม
RA Guard ใช้กับ IPv6 โดยกัน Router Advertisement (RA) ซึ่งเป็นข้อความที่เราเตอร์ส่งมาเพื่อบอกเครื่องลูกข่ายว่า default gateway/prefix ของ IPv6 คืออะไร ถ้ามีอุปกรณ์แปลกปลอมส่ง RA ได้ เครื่องลูกข่ายอาจถูกหลอกให้ตั้ง gateway ผิดหรือ IPv6 เพี้ยน ๆ RA Guard จึงทำหน้าที่ ยอมให้ส่ง RA ได้เฉพาะอุปกรณ์/พอร์ตที่เป็นเราเตอร์จริง และบล็อก RA ที่มาจากฝั่งพอร์ตผู้ใช้
ตั้งค่าบน Meraki
บน Meraki สามารถเข้าไปตั้งค่าได้ที่ Switching > Monitor > DHCP Servers & ARP

จากนั้นทำการเลือก default Policy ว่าจะเป็น Block DHCP Server ทั้งหมดแล้วค่อยมาทำ Allow List หรือจะเป็น Allow DHCP Server ทั้งหมด แล้วมาทำ Block List ในกรณีที่ทราบชัดเจนแน่นอนอยู่แล้วว่า DHCP Server ของเรามี MAC Address อะไรแนะนำให้ตั้งค่าเป็น Block DHCP Server ทั้งหมดแล้วค่อยมาทำ Allow List

นำ MAC Address มาใส่ในช่อง Allowed DHCP servers กรณีที่เลือก default Policy เป็น Block DHCP Server

เป็นอันเสร็จครับจาะเห็น Log จากด้านล่างที่หัวข้อ DHCP server ได้เลยครับมาใครแจก IP เบอร์อะไรไป VLAN อะไร Policy Allow หรือ Block ในกรณีที่ตั้งค่า default Policy เป็น Allowed DHCP servers ทั้งหมดไว้สามารถกด Action เป็น Block จากตรงนี้ได้เลยครับ MAC นี้ก็จะไปอยู่ใน Block List


ในส่วนการตั้งค่า RA Guard สำหรับ IPv6 ก็เหมือนกันเลยครับคือตั้งค่า default Policy ว่าเป็นแบบไหนและนำ MAC Address มาในช่อง Allowed/ฺBlock DHCP servers
