Switch – Block DHCP Broadcast

兩台 Switch 皆有 DHCP Server ,串接在一起就打架了,有什麼辦法可以串再一起又不會影響彼此的 DHCP ,一開始有想過設定 Vlan + Trunk 來隔開,後來找到另外一種更方便的方式 Switch ACL (Access Control List).

測試環境為 Edge-Core ES4650 (Power by Accton) Layer 3 Switch x 2.

兩台 Switch 串再一起的埠,可以透過 Switch ACL 功能來把 DHCP 協定阻擋 ( Deny , Block) 起來即可.

Firewall configuration

需先把 Filter 功能打開,透過 Web 在 ES4650 / ACL configuration / Filter configuration / Firewall configuration / Switch firewall configuration / Packet filtering 設定為 Open (Firewall default action 預設為 accept),不然在 Attach ACL to port 會顯示以下的錯誤訊息.

Warning: firewall is disable, we can't attach ACL for Port

DHCP UDP package

設定前先來了解一下 DHCP 使用哪一種協定.
DHCP Client 向 DHCP Server 要求 IP 時主要的四個動作 ( DHCPDISCOVER , DHCPOFFER , DHCPREQUEST , DHCPACK ),如果能看到這四個動作,這就代表 Client 已經成功獲得 IP ,下面 Client 是正確透過 DHCP 獲取 IP 的過程.

15:42:31.013004 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:02:b3:af:b2:82, length 314
15:42:32.013978 IP 192.10.0.2.67 > 192.10.0.20.68: BOOTP/DHCP, Reply, length 300
15:42:32.014176 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:02:b3:af:b2:82, length 320
15:42:32.039599 IP 192.10.0.2.67 > 192.10.0.20.68: BOOTP/DHCP, Reply, length 300

主要 DHCP Client (Port 68 , 使用廣播封包 broadcast ) 與 DHCP Server (Port 67) 透過四個動作 ( DHCPDISCOVER , DHCPOFFER , DHCPREQUEST , DHCPACK ) 來獲得 IP (使用 UDP).

我們只需要把以下兩個 UDP 阻擋起來即可.

  1. DHCP Client (Source Port 68) 到 DHCP Server (Destnation Port 67)
  2. DHCP Server (Destnation Port 67) 到 DHCP Client (Source Port 68)

IP extended ACL

回到 Switch Web 設定 ES4650 / ACL configuration / Name ACL (numeric ACL 一樣可以設定,但名稱須為數字) / Extended name ACL / IP extended ACL.
同一 ALC (name 名稱或是 numeric 數字),可以同時設定多個規則.

  1. DHCP Client (Source Port 68) 到 DHCP Server (Destnation Port 67)
    • Operation type : UDP
    • List name : DHCP
    • Rule : Deny
    • Source address type : Any IP
    • Destination address type : Any IP
    • Source port : 68
    • Source port :
    • Destination port : 67
    • Destination port :
  2. DHCP Server (Destnation Port 67) 到 DHCP Client (Source Port 68)
    • Operation type : UDP
    • List name : DHCP
    • Rule : Deny
    • Source address type : Any IP
    • Destination address type : Any IP
    • Source port : 67
    • Source port :
    • Destination port : 68
    • Destination port :
ip access-list extended DHCP (used 1 time(s))
deny udp any-source s-port 68 any-destination d-port 67
deny udp any-source s-port 67 any-destination d-port 68

Attach ACL to port

回到 Switch Web 設定 ES4650 / ACL configuration / Filter configuration / Attach ACL to port (IP ACL , MAC ACL , MAC-IP ACL 至多只能有一條 ACL ,但一條 ACL 裡面可以有多條規則),依據自行需求的埠來設定.

  • Port Ethernet : 1/1
  • ACL type : IP
  • List name : DHCP
  • ACL attached durection : in
  • Operation type : Add

設定完成, Port ethernet 1/1 將無法使用 DHCP .可以透過 tcpdump – http://benjr.tw/96904 觀察一下封包,在試過都沒問題之後要記得 Save & Exit.

另外一種方式可以用 DHCP snooping 的功能.

沒有解決問題,試試搜尋本站其他內容

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料