機器啟動時,會向外廣播自己的 mac 地址和 ip 地址,這個即稱為 arp 協議。范圍是未經過路由器的部分,如下圖的藍色部分,范圍內的設備都會在本地記錄 mac 和 ip 的綁定信息,若有重復則覆蓋更新(例如先收到 mac1-ip1、再收到 mac2-ip1 時則覆蓋記錄為 mac2-ip):
案例:假設某設備 reboot 后 mac 地址會變化,則每次 reboot 都會向外發送不同的 arp 包(如先發送自己為 mac1-ip1,下一次 reboot 時再發送自己是 mac2-ip1,再下一次 reboot 時發送自己是 mac3-ip1)。如下圖是 reboot 后變化的 mac 地址(通過 ip a 可看出 mac 地址):
作為網絡管理員(IT)通常為了應對這種「設備 reboot 后 mac 地址的變化」,對 DHCP 的沖擊,會做一些限制,如在交換機上設置其上的某網口,最多接受 50 個 mac 地址,若超過則丟包。
- DHCP 是一個服務,是通過 mac 地址請求 ip 地址,可單獨作為一個 server 部署,也可在交換機上配置部署。
- 如果設備 reboot 后 mac 地址總會變化,則對于同一個設備,其每次 reboot 都會向 DHCP 請求一個 ip 地址,這會耗盡局域網內的 ip 地址資源,導致其他設備無 ip 可用,從而網絡癱瘓,此行為可視為一種網絡攻擊。
- 如設備 a,第一次 reboot 會以 maca 向 DHCP 拿到 ipa,第二次 reboot 會以 maca 向 DHCP 拿到 ipb,第 n 次 reboot 會以 maca 向 DHCP 拿到 ipn
- 而 DHCP 的緩存是有過期時間的,雖然第 n 次時 設備 a 只使用了 ipn,但其之前拿到很多自己不需要的 ip 地址(如 ipa、ipb、。。。ipn-1)
- 這會造成局域網內的其他設備(如b、c、d、e)無 ip 可用,從而網絡癱瘓,此行為可視為一種網絡攻擊。
- 所以,網絡管理員會設置規則,限制如在交換機上設置其上的某網口,最多接受 50 個 mac 地址,若超過則丟包,如下圖
隨機生成 mac 地址的命令(前面6個數字也可以隨機):
echo 13:25:46:`echo $RANDOM | md5sum | sed 's/../&:/g' | cut -c1-8`
參考