您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關openstack kilo版本虛擬機無法ping通外網是什么情況,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
第二次搭建Openstack環境,此次并非在自己的VM虛擬機上搭建,環境搭建過程中,出現各種錯誤,此處只為記錄下:
硬件:兩臺X86的服務器,6塊網卡
系統:Centos7.2的系統,openstack版本為kilo
由于是兩臺機器,所以架構比較緊湊:
bdc217:controller、compute1
bdc218:network、compute2
兩臺機器一樣都是6塊網卡,具體配置如下
bdc217:
bond0:兩塊網卡綁定
IPADDR=192.168.8.217
NETMASK=255.255.0.0
GATEWAY=192.168.5.2
bond2:三塊網卡綁定作為存儲網絡
192.168.13.217
enp4s0f0:未作配置(本來想作為隧道網絡)
bdc218:
bond0:兩塊網卡綁定
IPADDR=192.168.8.218
NETMASK=255.255.0.0
GATEWAY=192.168.5.2
bond2:三塊網卡綁定 作為存儲網絡
192.168.13.218
enp4s0f0:作為網絡節點的外部網絡
# cat /etc/sysconfig/network-scripts/ifcfg-enp4s0f0 TYPE=Ethernet BOOTPROTO=none NAME=enp4s0f0 DEVICE=enp4s0f0 ONBOOT=yes
說明:
(1)外部網絡:為云主機提供上網業務和外界登陸openstack使用
(2)管理網絡:三節點之間通信,比如keystone、認證、RabbitMQ消息隊列等
(3)隧道網絡:網絡節點和計算節點之間的虛擬機數據通信,比如DHCP、L2、L3
其實管理網絡和隧道網絡可以使用同一塊網卡。
新創建的虛擬機一直是error狀態
解決思路:
多檢查日志尤其是網絡方面的日志
我的解決辦法:檢查neutron的配置文件,重新配置neutron,重啟neutron的服務(如ovs等)
這種錯誤的表象就是啟動云主機的時候,時間過長,因為一直在檢查,查看云主機控制臺日志,發現報如下錯誤,而且會有一連串似乎是20個failed。
Starting network... udhcpc (v1.18.5) started Sending discover... Sending discover... Sending discover... No lease, failing WARN: /etc/rc3.d/S40-network failed
解決思路:
由于我配置的時候用的是GRE網絡方式,檢查了多次ml2_conf.ini配置文件,一直在關注local_ip,后來發現是自己粗心,在配置IP的時候,網卡配置時ip地址配置錯誤了,而配置文件并沒有錯,
因此gre隧道是通的,但是還是獲取不到ip,修改網卡的ip設置,問題就解決了。
虛擬機可以正常獲取到IP,也可以ping以及ssh連接制節點和網絡節點,但是無法ping通外網
網絡創建過程:
# source admin-openrc.sh # neutron net-create ext-net --router:external \ --provider:physical_network external --provider:network_type flat Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | c05070a1-9a4a-40d7-aa53-f1e38c6616e8 | | mtu | 0 | | name | ext-net | | provider:network_type | flat | | provider:physical_network | external | | provider:segmentation_id | | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | df206060f35a48b78d06aa1a9ec9c10c | +---------------------------+--------------------------------------+
# neutron subnet-create ext-net 192.168.12.0/24 --name ext-subnet \ --allocation-pool start=192.168.12.100,end=192.168.12.200 \ --disable-dhcp --gateway 192.168.12.1 Created a new subnet: +-------------------+------------------------------------------------------+ | Field | Value | +-------------------+------------------------------------------------------+ | allocation_pools | {"start": "192.168.12.100", "end": "192.168.12.200"} | | cidr | 192.168.12.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 192.168.12.1 | | host_routes | | | id | d9a05de1-4c7d-4c05-b324-a65cbd182b83 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | ext-subnet | | network_id | cbd0e9ab-07d4-49bf-b1ef-67914fbaaf20 | | subnetpool_id | | | tenant_id | df206060f35a48b78d06aa1a9ec9c10c | +-------------------+------------------------------------------------------+
# source demo-openrc.sh # neutron net-create demo-net Created a new network: +-----------------+--------------------------------------+ | Field | Value | +-----------------+--------------------------------------+ | admin_state_up | True | | id | dc14ee5b-4bb6-4773-89f3-c1c4c064315a | | mtu | 0 | | name | demo-net | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | 23652ebf5833435aa243e1a7665cb9dc | +-----------------+--------------------------------------+
# neutron subnet-create demo-net 10.10.1.0/24 \ --name demo-subnet --dns-nameserver 8.8.4.4 --gateway 10.10.1.1 Created a new subnet: +-------------------+----------------------------------------------+ | Field | Value | +-------------------+----------------------------------------------+ | allocation_pools | {"start": "10.10.1.2", "end": "10.10.1.254"} | | cidr | 10.10.1.0/24 | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 10.10.1.1 | | host_routes | | | id | f4758b79-5a53-4f9d-9838-5e372802da3f | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | demo-subnet | | network_id | dc14ee5b-4bb6-4773-89f3-c1c4c064315a | | subnetpool_id | | | tenant_id | 23652ebf5833435aa243e1a7665cb9dc | +-------------------+----------------------------------------------+
創建路由
# neutron router-create demo-router Created a new router: +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | fbb96045-517d-4956-990a-01668151a70e | | name | demo-router | | routes | | | status | ACTIVE | | tenant_id | 23652ebf5833435aa243e1a7665cb9dc | +-----------------------+--------------------------------------+
添加路由到demo租戶的子網
# neutron router-interface-add demo-router demo-subnet Added interface b5153ea2-4ed5-4c68-b599-29fc48d251b7 to router demo-router.
添加路由到外部網絡并將其作為網關
# neutron router-gateway-set demo-router ext-net Set gateway for router demo-router
整個網絡的配置過程完全按照官方文檔的步驟,但是創建實例后依舊無法ping通外網,最后檢查發現為網卡的配置問題,因為默認網關是192.168.5.2,只有配了該網關才能連接到外網上,但是 在外部網絡上創建一個子網 步驟使用的是
# neutron subnet-create ext-net 192.168.12.0/24 --name ext-subnet \
--allocation-pool start=192.168.12.100,end=192.168.12.200 \
--disable-dhcp --gateway 192.168.12.1
網關只能選擇12網段的ip,不能改成5.2,最后將外部網絡的子網修改為5網段的,網關也修改成了5.2,發現可以ping通外網。
另外,子網掩碼也需要注意,/24表示255.255.255.0 是三個255,而測試環境的子網掩碼是255.255.0.0,這就導致非12網段不能ping通浮動IP,最終創建子網的語句修改為
# neutron subnet-create ext-net 192.168.5.0/16 --name ext-subnet \
--allocation-pool start=192.168.5.100,end=192.168.5.200 \
--disable-dhcp --gateway 192.168.5.2
這樣創建新實例,綁定浮動IP后,云主機既可以訪問外網,自己的PC也可以訪問云主機。
關于openstack kilo版本虛擬機無法ping通外網是什么情況就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。