openstack:在 eth1 上配置具有靜態 IP 的虛擬機

openstack:在 eth1 上配置具有靜態 IP 的虛擬機

我嘗試為 eth1 建立兩個具有靜態 IP 的可信任虛擬機,但靜態位址之間的 ping 失敗。

  • 透過哈瓦那儀表板,我建立了一個具有 10.16.1/24 子網路、禁用網關、啟用範圍 10.16.1.100,10.16.1.120 的 dhcp 的網路。
  • 啟動4個實例,每個實例有兩個NIC; eth0 用於我的常規公共接口,eth1 用於 10.16.1/24 子網路。
  • 登入兩個虛擬機器並建立 eth1.cfg,配置為 dhcp
    自動 eth1
    iface eth1 inet dhcp
    
  • 登入另外兩個VM並建立eth1.cfg,配置靜態訊息
    自動 eth1
    iface eth1 inet 靜態
      地址10.16.1.2
      網路遮罩 255.255.255.0
    
    • 每個虛擬機器上的 ifup eth1

從每個配置了 dhcp 的虛擬機,我可以 ping 通其他配置了 dhcp 的虛擬機,但不能 ping 通靜態配置的虛擬機。

從靜態配置的虛擬機器中,我無法 ping 通其他虛擬機器。

我還嘗試為網路建立路由器,並添加介面 10.16.1.254。但這並沒有帶來明顯的改變。我也無法從任一虛擬機器 ping 路由器。

我缺什麼?

答案1

如果沒有更多信息,很難回答。由於您在同一網路上,我不認為防火牆規則會成為問題。

你用的是中子還是新星。您能檢查所有 neutron 服務都運作正常嗎?

neutron agent-list

也許值得啟用 dhcp,這樣您至少可以驗證網路是否正常運作。

虛擬機器是否位於同一個實體管理程式上,或分佈在兩個虛擬機器管理程式中。如果它們分佈在兩個區域,那麼您是否使用 VLAN 並且是否配置了交換器來支援它?

值得指出的是,靜態配置 IP(不由 Openstack 保留)在 Icehouse 之前就可以工作,但該版本中的更改可能會為您帶來問題。

在託管虛擬機器之一的計算節點上(如果運行)

iptables -S | more

在輸出中搜尋您的虛擬機器 MAC 位址,例如我的是“FA:16:3E:D0:1A:5D”

您將看到如下輸出:

-A neutron-openvswi-see719639-9 -s 192.168.0.83/32 -m mac --mac-source FA:16:3E:BB:75:7E -j RETURN
-A neutron-openvswi-see719639-9 -j DROP

這意味著它只接受發送至 192.168.0 .83/32 的 MAC 位址的封包。

答案2

我相信這與我之前嘗試在支援 neutron DHCP 的網路上靜態配置 IP 位址的實驗是一致的。我記得,如果已針對該特定 neutron 網路停用 DHCP,您嘗試執行的操作會起作用,但如果已啟用它,則不會執行該操作。

對於後者,將為該 VM 介面建立一個 neutron 端口,並指派 IP 位址。如果您要靜態設定來賓虛擬機器以符合此 IP 和子網,那麼它就可以運作。如果您嘗試為 guest 靜態配置除 neutron 資料庫中的 IP 之外的 IP,則不會。如果沒有意外,這是一種 IP 欺騙保護形式,因為它不允許您冒充同一網路上另一個虛擬機器的 IP,並且通常是一種很好的保護。

因此,一種選擇是使用對您的網路停用 DHCP = 的網路。另一種選擇是為 VM 靜態配置 neutron 已指派的相同 IP。

另一個軼事:在一種情況下,我透過特定的 VLAN 將外部網路橋接到 OpenStack 網路。此網路只有靜態設定的實體伺服器,沒有 DHCP 伺服器。我使用 DHCP=enabled 建立的 openstack 端網路。我使用受限的allocation_range 來執行此操作,以指派不會與相同 CIDR 上的現有靜態 IP 衝突的 IP。因為 neutron 只管理虛擬機器的橋接端口,這意味著網路上的其他靜態配置設備(openstack/neutron 控制之外)可以與該網路上的 DHCP 虛擬機器進行通訊。但是,此設定不允許您在已啟用 DHCP 的相同 neutron 網路上混合靜態和 DHCP VM/來賓。

相關內容