บทที่ 27 · L3 / Routing

DHCP Server Lab

SW-Access-01 ต้องทำหน้าที่เป็น DHCP server เอง (ไม่ใช่แค่ relay หรือ snooping เหมือนบทก่อนหน้า) แจก IP ให้ Staff (เช่าได้ 30 วัน) และ Guest (เช่าได้แค่ 2 วัน กันเครื่องแปลกหน้าค้างนาน) พร้อมผูก IP ตายตัวให้เครื่องพิเศษหนึ่งเครื่องด้วย MAC address และกันช่วง IP ไว้ให้ปริ้นเตอร์ ใช้คำสั่งอ้างอิงเพื่อทำตามทีละขั้น หรือกด "รันตัวอย่างอัตโนมัติ" เพื่อดูภาพรวมทั้งหมด

VLAN 10 · Staff — Vlanif10 10.1.1.1/24 · เช่า 30 วัน PC-Fixed — ผูก MAC 00E0-FC12-3456 → 10.1.1.100 เสมอ VLAN 20 · Guest — Vlanif20 10.1.2.1/24 · เช่า 2 วัน · กันช่วง .2–.10 DNS ที่แจก: 10.1.3.1

Topology — สถานะสด

Terminal — SW-Access-01

<HUAWEI>

คำสั่งอ้างอิง — คลิกเพื่อแทรกลงเทอร์มินัล

รองรับ system-view, dhcp enable, vlan batch, interface, port link-type access, port default vlan, ip address, dhcp select interface, dhcp server gateway-list, dhcp server lease, dhcp server dns-list, dhcp server domain-name, dhcp server excluded-ip-address, dhcp server static-bind, quit/return และคำสั่ง display หลัก ๆ — พิมพ์ผิดจะเห็นข้อความ error แบบเดียวกับสวิตช์จริง

อ้างอิงจาก Huawei S1720, S2700, S5700, and S6720 Configuration Guide – IP Service ("Configuring a DHCP Server" — interface address pool method, และ "Example for Configuring a DHCP Server (Based on an Interface Address Pool)")

สรุปท้ายบท — เข้าใจภาพรวม

บทนี้แก้ปัญหาอะไร

เครื่องลูกข่ายในแต่ละ VLAN ต้องได้ IP / gateway / DNS อัตโนมัติ โดยไม่ต้องตั้งมือทีละเครื่อง และไม่ต้องมี DHCP server แยกต่างหาก — ให้สวิตช์ L3 ตัวที่เป็น gateway อยู่แล้ว ทำหน้าที่แจก IP เองจาก subnet ของ Vlanif แต่ละวง (วิธี interface address pool คือ pool = subnet ของ interface นั้นเอง)

ใช้เมื่อไหร่ · ไม่ควรใช้เมื่อไหร่

  • ใช้: ไซต์เล็ก–กลางที่สวิตช์ L3 เป็น gateway อยู่แล้ว, แต่ละ VLAN = หนึ่ง subnet, ไม่อยากลงทุน server แยก
  • ไม่ควรใช้: มีหลายไซต์ / หลาย subnet ที่ต้องจัดการรวมศูนย์ → ใช้ DHCP Relay ชี้ไป server กลาง (Windows / Linux / IPAM) จะคุม scope, option, DDNS, รายงานได้ดีกว่า
  • ถ้าต้องการ pool ที่ ไม่ตรง กับ subnet ของ interface ต้องใช้ global address pool (ip pool <name>) แทน interface pool

จุดที่คนมักพลาด

  • ลืม dhcp enable ระดับ global — ตั้ง dhcp select interface ครบแล้วแต่ไม่มีอะไรถูกแจกออกไป
  • สั่ง dhcp select interface ก่อนใส่ ip address ให้ Vlanif — pool คือ subnet ของ interface ต้องมี IP ก่อนเสมอ
  • ไม่กัน IP ของอุปกรณ์ที่ตั้ง static เอง (เครื่องพิมพ์ / AP / server) → ต้อง dhcp server excluded-ip-address หรือ static-bind ไม่งั้น IP ชนกัน
  • static-bind ต้องผูก IP ที่อยู่ใน subnet เดียวกับ pool ของ Vlanif นั้น

คำสั่งในบทนี้ — ใช้ทำอะไร

dhcp enable
เปิดฟังก์ชัน DHCP ทั้งเครื่อง ทำครั้งเดียวก่อนอย่างอื่น ไม่เปิดตัวนี้คำสั่ง dhcp อื่นจะไม่มีผล
dhcp select interface
สั่งในโหมด Vlanif ให้ interface นี้ทำตัวเป็น DHCP server แจก IP จาก subnet ของตัวเอง (ต้องมี ip address ก่อน)
dhcp server gateway-list <ip>
บอก client ว่า default gateway คือ IP ไหน — ปกติใส่ IP ของ Vlanif เอง
dhcp server dns-list <ip> [<ip2>]
DNS server ที่จะแจกไปให้ client ใช้
dhcp server lease day <n> [hour <h>]
อายุสัญญาเช่า IP — สั้น = IP หมุนเวียนเร็ว (เหมาะ guest), ยาว = ลดโหลดต่อสัญญา (เหมาะเครื่องประจำ)
dhcp server domain-name <name>
โดเมนที่แจกให้ client ใช้ต่อท้ายชื่อสั้น เช่น pc1pc1.example.com
dhcp server excluded-ip-address <start> [<end>]
กัน IP เดี่ยวหรือทั้งช่วง ไม่ให้ถูกแจก — ใช้จองให้อุปกรณ์ที่ตั้ง static เอง
dhcp server static-bind ip-address <ip> mac-address <mac>
ผูก IP ตายตัวกับ MAC หนึ่งตัว เครื่องนั้นจะได้ IP เดิมทุกครั้ง (IP ต้องอยู่ใน subnet ของ pool)

คำสั่งพื้นฐาน (system-view, vlan batch, interface, port link-type access, port default vlan, ip address, quit) อยู่ใน บท 1

เชื่อมกับบทอื่น

  • บท 1 · VLAN, SVI & Static Route — ต้องมี Vlanif + ip address ก่อน ถึงจะแจก DHCP ได้
  • บท 7 · DHCP Relay — ทางเลือกเมื่อ DHCP server อยู่คนละ VLAN / คนละไซต์
  • บท 10 · DHCP Snooping — กันเครื่อง client แอบเป็น DHCP server ปลอม ควรเปิดคู่กันที่ access layer