
初始數據:
1.兩個 DHCP 伺服器:
第一的: 描述:Debian GNU/Linux 6.0.10 (squeeze) 發行版:6.0.10 代號:squeeze
第二 NAME=“Debian GNU/Linux” VERSION_ID=“8” VERSION=“8 (jessie)” ID=debian
2.一個網絡,比方說 192.168.0.0/24
3.兩個介面 192.168.0.1 和 192.168.0.2,每個 DHCP 伺服器一個。兩者都在工作並提供來自同一個子網路的位址,但第一個 dhcp 的池是 .10-.20 網關 ip.1,第二個 ip.21-.31 的池是網關 ip.2
4.任務 - 此網路中的設備應從 DHCP #2 而不是 DHCP #1 接收位址。為什麼這樣?主要任務是從一個系統遷移到另一個系統,因此我不能簡單地斷開所有設備的連接 - 其中那些正在工作的設備必須保持工作狀態。這是飯店裡的電視遷移。
5.我嘗試過什麼?我的想法是手動增加對來自客戶端的 DHCP 請求的 DCHP #1 的回應延遲。
6.DHCP #1 上使用的指令: tc qdisc add dev eth1 root handle 1: prio tc qdisc add dev eth1 Parent 1:3 handle 30: netem delay 500ms tc filter add dev eth1 protocol ip Parent 1:0 m* sport 67 0xffff flowid 1:3 tc 過濾器新增 dev eth1 協定 ip 父級 1:0 prio 3 u32 \ 符合 ip dport 68 0xffff flowid 1:3
7.結果:從設備ping DHCP #1,我看到延遲超過500 毫秒,但是當我執行設備的反駁並在兩台DHCP 伺服器上發出“tcpdump -n -i eth1 portrange 67-68”命令或命令“tail - f”時/var/log/syslog”了解更多詳細信息,我發現 DHCP #1 的回复速度比 DHCP #2 更快。
我將非常感謝您的想法和線索、還能做什麼或其他解決方案。謝謝你!
答案1
即使 DHCP 伺服器不可用,DHCP 伺服器發出的 IP 也不會失效。因此,除非故事中有更多內容您沒有添加到您的問題中,否則這應該不會太困難。
- 所有設備都從伺服器 #1 請求 IP,並透過有效租約(例如 1 小時)來取得它。
- 關閉 DHCP 伺服器#1。所有設備仍保留在池 #1 中。
- 50% 的租約到期後(本例中為 30 分鐘),設備將嘗試續約租約。由於伺服器已關閉,續訂將失敗,但設備將繼續使用其有效的池 1 IP 位址。
- 87.5% 的租約到期後(剩餘租約 7.5 分鐘),用戶端將執行 DHCPDISCOVER 並接受新的租約。此時,它應該從 DHCP 伺服器#2 取得有效位址,並取得池 2 中的 IP 位址。
- 租約期滿後,您的所有客戶都應位於 pool2 中。