天天看點

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

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

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

在建立 instance 時,Neutron 會為其配置設定一個 port,裡面包含了 MAC 和 IP 位址資訊。這些資訊會同步更新到 dnsmasq 的 host 檔案。如下圖所示:

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

同時 nova-compute 會設定 cirros-vm1 VIF 的 MAC 位址。

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

一切準備就緒,instance 擷取 IP 的過程如下:

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

廣播到達 veth tap19a0ed3d-fe,然後傳送給 veth pair 的另一端 ns-19a0ed3d-fe。dnsmasq 在它上面監聽,dnsmasq 檢查其 host 檔案,發現有對應項,于是dnsmasq 以  DHCPOFFER 消息将 IP(172.16.1.103)、子網路遮罩(255.255.255.0)、位址租用期限等資訊發送給 cirros-vm1。

cirros-vm1 發送 DHCPREQUEST 消息确認接受此 DHCPOFFER。

dnsmasq 發送确認消息 DHCPACK,整個過程結束。

這個過程我們可以在 dnsmasq 日志中檢視。 dnsmasq 預設将日志記錄到 /var/log/syslog。

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

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

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