這篇文章將為大家詳細(xì)講解有關(guān)openstack kilo版本虛擬機(jī)無法ping通外網(wǎng)是什么情況,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的霍林郭勒網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
第二次搭建Openstack環(huán)境,此次并非在自己的VM虛擬機(jī)上搭建,環(huán)境搭建過程中,出現(xiàn)各種錯(cuò)誤,此處只為記錄下:
硬件:兩臺(tái)X86的服務(wù)器,6塊網(wǎng)卡
系統(tǒng):Centos7.2的系統(tǒng),openstack版本為kilo
由于是兩臺(tái)機(jī)器,所以架構(gòu)比較緊湊:
bdc217:controller、compute1
bdc218:network、compute2
兩臺(tái)機(jī)器一樣都是6塊網(wǎng)卡,具體配置如下
bdc217:
bond0:兩塊網(wǎng)卡綁定
IPADDR=192.168.8.217
NETMASK=255.255.0.0
GATEWAY=192.168.5.2
bond2:三塊網(wǎng)卡綁定作為存儲(chǔ)網(wǎng)絡(luò)
192.168.13.217
enp4s0f0:未作配置(本來想作為隧道網(wǎng)絡(luò))
bdc218:
bond0:兩塊網(wǎng)卡綁定
IPADDR=192.168.8.218
NETMASK=255.255.0.0
GATEWAY=192.168.5.2
bond2:三塊網(wǎng)卡綁定 作為存儲(chǔ)網(wǎng)絡(luò)
192.168.13.218
enp4s0f0:作為網(wǎng)絡(luò)節(jié)點(diǎn)的外部網(wǎng)絡(luò)
# cat /etc/sysconfig/network-scripts/ifcfg-enp4s0f0 TYPE=Ethernet BOOTPROTO=none NAME=enp4s0f0 DEVICE=enp4s0f0 ONBOOT=yes
說明:
(1)外部網(wǎng)絡(luò):為云主機(jī)提供上網(wǎng)業(yè)務(wù)和外界登陸openstack使用
(2)管理網(wǎng)絡(luò):三節(jié)點(diǎn)之間通信,比如keystone、認(rèn)證、RabbitMQ消息隊(duì)列等
(3)隧道網(wǎng)絡(luò):網(wǎng)絡(luò)節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)之間的虛擬機(jī)數(shù)據(jù)通信,比如DHCP、L2、L3
其實(shí)管理網(wǎng)絡(luò)和隧道網(wǎng)絡(luò)可以使用同一塊網(wǎng)卡。
新創(chuàng)建的虛擬機(jī)一直是error狀態(tài)
解決思路:
多檢查日志尤其是網(wǎng)絡(luò)方面的日志
我的解決辦法:檢查neutron的配置文件,重新配置neutron,重啟neutron的服務(wù)(如ovs等)
這種錯(cuò)誤的表象就是啟動(dòng)云主機(jī)的時(shí)候,時(shí)間過長,因?yàn)橐恢痹跈z查,查看云主機(jī)控制臺(tái)日志,發(fā)現(xiàn)報(bào)如下錯(cuò)誤,而且會(huì)有一連串似乎是20個(gè)failed。
Starting network... udhcpc (v1.18.5) started Sending discover... Sending discover... Sending discover... No lease, failing WARN: /etc/rc3.d/S40-network failed
解決思路:
由于我配置的時(shí)候用的是GRE網(wǎng)絡(luò)方式,檢查了多次ml2_conf.ini配置文件,一直在關(guān)注local_ip,后來發(fā)現(xiàn)是自己粗心,在配置IP的時(shí)候,網(wǎng)卡配置時(shí)ip地址配置錯(cuò)誤了,而配置文件并沒有錯(cuò),
因此gre隧道是通的,但是還是獲取不到ip,修改網(wǎng)卡的ip設(shè)置,問題就解決了。
虛擬機(jī)可以正常獲取到IP,也可以ping以及ssh連接制節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn),但是無法ping通外網(wǎng)
網(wǎng)絡(luò)創(chuàng)建過程:
# 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 | +-------------------+----------------------------------------------+
創(chuàng)建路由
# 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租戶的子網(wǎng)
# neutron router-interface-add demo-router demo-subnet Added interface b5153ea2-4ed5-4c68-b599-29fc48d251b7 to router demo-router.
添加路由到外部網(wǎng)絡(luò)并將其作為網(wǎng)關(guān)
# neutron router-gateway-set demo-router ext-net Set gateway for router demo-router
整個(gè)網(wǎng)絡(luò)的配置過程完全按照官方文檔的步驟,但是創(chuàng)建實(shí)例后依舊無法ping通外網(wǎng),最后檢查發(fā)現(xiàn)為網(wǎng)卡的配置問題,因?yàn)槟J(rèn)網(wǎng)關(guān)是192.168.5.2,只有配了該網(wǎng)關(guān)才能連接到外網(wǎng)上,但是 在外部網(wǎng)絡(luò)上創(chuàng)建一個(gè)子網(wǎng) 步驟使用的是
# 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
網(wǎng)關(guān)只能選擇12網(wǎng)段的ip,不能改成5.2,最后將外部網(wǎng)絡(luò)的子網(wǎng)修改為5網(wǎng)段的,網(wǎng)關(guān)也修改成了5.2,發(fā)現(xiàn)可以ping通外網(wǎng)。
另外,子網(wǎng)掩碼也需要注意,/24表示255.255.255.0 是三個(gè)255,而測試環(huán)境的子網(wǎng)掩碼是255.255.0.0,這就導(dǎo)致非12網(wǎng)段不能ping通浮動(dòng)IP,最終創(chuàng)建子網(wǎng)的語句修改為
# 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
這樣創(chuàng)建新實(shí)例,綁定浮動(dòng)IP后,云主機(jī)既可以訪問外網(wǎng),自己的PC也可以訪問云主機(jī)。
關(guān)于openstack kilo版本虛擬機(jī)無法ping通外網(wǎng)是什么情況就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。