OpenStack 虛擬機器網路不通的幾個思路 1

2021-08-17 04:44:50 字數 2067 閱讀 5655

本文記錄虛擬機器無法上網的幾種可能的解決辦法,雖然openstack的版本是基於pike 發行版,環境的搭建基於devstack,但對其它版本應該都可以適用。

假設你的基礎網路配置沒有問題,而且物理機可以成功訪問外網,用devstack可以成功搭建好乙個openstack集群,如果不做任何修改,你的虛擬網路是無法與外界連通的。

虛擬機器需要與外界連通,需要考慮的因素包含下面幾點:

我們乙個乙個來看,首先對建立的虛擬機器關聯乙個floating ip,虛擬網路與物理網路預設是隔離的,外界與虛擬機器互訪需要借助floating ip,floating ip並不是乙個物理存在的ip,它實現本質上是通過ip table來完成的snat和dnat規則。

分配floating ip的前提是虛擬網路的dhcp伺服器以及router是正常工作的,討論dhcp與router的原理是另乙個網路的主題了,這裡不再擴充套件。

接下來需要做security group的修改,環境搭建好之後,只有乙個預設的security group,預設的security group是禁止外界ssh以及ping虛擬機器的,所以你可以選擇建立乙個自己的security group定義合適的rule,或者直接修改default security group,將虛擬機器關聯到合適的security group。我們選擇後者,修改後的security group如下圖所示:

第一條規則,允許來自任何ip對虛擬機器發起ping命令,第二條規則則定義了允許任何外界的ip通過ssh連線到虛擬機器。可以直接在介面上操作,也可以通過命令列操作,通過命令列操作,命令如下:

openstack security group rule create 4db9cb30-7dde-4026-b99b-1bd41c491b85 –ingress –protocol icmp –description 「for ping」

openstack security group rule create 4db9cb30-7dde-4026-b99b-1bd41c491b85 –ingress –protocol tcp –dst-port 22

上面的4db9cb30-7dde-4026-b99b-1bd41c491b85是security group的id,修改規則之後,我們試試ping 虛擬機器的floating ip,並ssh到虛擬機器:

如果順利的話,我們可以連上虛擬機器了,試試虛擬機器內訪問外網,發現虛擬機器如果無法訪問外網,可以從下面兩個角度再考慮,宿主機上的ip table是否設定正確,網域名稱伺服器是否設定正確,不妨在物理機上執行下面的規則:

iptables -t nat -i postrouting -o eno1 -j masquerade

這條規則的意思是通過位址偽裝,自動讀取宿主機上的物理網絡卡eno1的ip,然後做snat出去,接下來可以檢查網域名稱伺服器是否設定正確,如果採用的網路是devstack預設設定的,網域名稱設定看起來像下面這樣(假設你用的是預設建立好的網路,而不是你自定義的網路):

$ cat /etc/resolv.conf

search openstacklocal

nameserver 10.0.0.2

可以考慮使用google提供的免費網域名稱伺服器: 8.8.8.8和8.8.4.4。更新網域名稱伺服器為8.8.8.8再測試網路的連通性:

實際的環境可能千差萬別,排查上面這些可能的原因後,做網路的故障分析時,熟練應用tcpdump,或者借助一些第三方工具例如wireshark可以幫助你分析定位問題。

openstack虛擬機器網路配置

登陸horizon介面 1.用admin使用者登陸,在管理員下把預設的網路刪除 先刪路由器 2.在管理員下用admin使用者建立新的網路 newnet 其中選擇外部,共享,管理員狀態選項,在 newnet 網路下建立新的子網 192.168.2.0 24,閘道器為 192.168.2.150,192...

openstack 虛擬機器 遷移

遷移。如果 你的 雲 系統 正在 使用 共享 儲存,使用 nova live migration 命令 就可以。首先,要 獲得 需要 被 遷移 的 例項 列表 nova list host c01.example.com all tenants 接下來,把 它們 乙個 乙個 移走 nova live...

openstack 虛擬機器映象製作

準備 伺服器作業系統 centos 7 準備一台安裝了vnc viewer客戶端的windows作業系統用於訪問伺服器裡啟動的虛擬機器介面 前提是windows系統能訪問伺服器 sle 12 sp2 sap x86 64 gm 1.iso複製到伺服器 home 下 qemu img create f...