獲取 dhcp IP 過程分析 - 每天5分鍾玩轉 OpenStack(91)


前面我們已經討論了 DHCP agent 的配置以及 namespace 如何隔離 dnsmasq 服務,本節將以 cirros-vm1 為例分析獲取 DHCP IP 的詳細過程。

在創建 instance 時,Neutron 會為其分配一個 port,里面包含了 MAC 和 IP 地址信息。這些信息會同步更新到 dnsmasq 的 host 文件。如下圖所示:

同時 nova-compute 會設置 cirros-vm1 VIF 的 MAC 地址。

一切准備就緒,instance 獲取 IP 的過程如下:

  1. cirros-vm1 開機啟動,發出 DHCPDISCOVER 廣播,該廣播消息在整個 flat_net 中都可以被收到。

  2. 廣播到達 veth tap19a0ed3d-fe,然后傳送給 veth pair 的另一端 ns-19a0ed3d-fe。dnsmasq 在它上面監聽,dnsmasq 檢查其 host 文件,發現有對應項,於是dnsmasq 以  DHCPOFFER 消息將 IP(172.16.1.103)、子網掩碼(255.255.255.0)、地址租用期限等信息發送給 cirros-vm1。

  3. cirros-vm1 發送 DHCPREQUEST 消息確認接受此 DHCPOFFER。

  4. dnsmasq 發送確認消息 DHCPACK,整個過程結束。

這個過程我們可以在 dnsmasq 日志中查看。 dnsmasq 默認將日志記錄到 /var/log/syslog。

至此,我們已經討論完 DHCP 服務,下節開始講學習應用最廣泛的 vlan network。

 

blob.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM