共計(jì) 5183 個(gè)字符,預(yù)計(jì)需要花費(fèi) 13 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) openstack kilo 版本虛擬機(jī)無(wú)法 ping 通外網(wǎng)是什么情況,文章內(nèi)容質(zhì)量較高,因此丸趣 TV 小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
一、簡(jiǎn)介
第二次搭建 Openstack 環(huán)境,此次并非在自己的 VM 虛擬機(jī)上搭建,環(huán)境搭建過(guò)程中,出現(xiàn)各種錯(cuò)誤,此處只為記錄下:
二、測(cè)試環(huán)境
硬件:兩臺(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
三、網(wǎng)卡配置
兩臺(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:未作配置(本來(lái)想作為隧道網(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
說(shuō)明:
(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)卡。
四、錯(cuò)誤記錄 1、虛擬機(jī)創(chuàng)建失敗
新創(chuàng)建的虛擬機(jī)一直是 error 狀態(tài)
解決思路:
多檢查日志尤其是網(wǎng)絡(luò)方面的日志
我的解決辦法:檢查 neutron 的配置文件,重新配置 neutron,重啟 neutron 的服務(wù)(如 ovs 等)
2、虛擬機(jī)無(wú)法獲取 IP
這種錯(cuò)誤的表象就是啟動(dòng)云主機(jī)的時(shí)候,時(shí)間過(guò)長(zhǎng),因?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,后來(lái)發(fā)現(xiàn)是自己粗心,在配置 IP 的時(shí)候,網(wǎng)卡配置時(shí) ip 地址配置錯(cuò)誤了,而配置文件并沒(méi)有錯(cuò),
因此 gre 隧道是通的,但是還是獲取不到 ip,修改網(wǎng)卡的 ip 設(shè)置,問(wèn)題就解決了。
3、虛擬機(jī)無(wú)法訪問(wèn)外網(wǎng)
虛擬機(jī)可以正常獲取到 IP,也可以 ping 以及 ssh 連接制節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn),但是無(wú)法 ping 通外網(wǎng)
網(wǎng)絡(luò)創(chuàng)建過(guò)程:
五、創(chuàng)建第一個(gè)網(wǎng)絡(luò)創(chuàng)建外部網(wǎng)絡(luò)
# source admin-openrc.sh
# neutron net-create ext-net --router:external \
--provider:physical_network external --provider:network_type flat
+---------------------------+--------------------------------------+
在外部網(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
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 |
+-------------------+------------------------------------------------------+
創(chuàng)建租戶網(wǎng)絡(luò)
# 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 |
+-----------------+--------------------------------------+
在租戶網(wǎng)絡(luò)下創(chuàng)建子網(wǎng)
# 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 |
+-------------------+----------------------------------------------+
為租戶網(wǎng)絡(luò)創(chuàng)建路由,并將外部網(wǎng)絡(luò)以及租戶網(wǎng)絡(luò)添加進(jìn)去
創(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ò)的配置過(guò)程完全按照官方文檔的步驟,但是創(chuàng)建實(shí)例后依舊無(wú)法 ping 通外網(wǎng),最后檢查發(fā)現(xiàn)為網(wǎng)卡的配置問(wèn)題,因?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,而測(cè)試環(huán)境的子網(wǎng)掩碼是 255.255.0.0,這就導(dǎo)致非 12 網(wǎng)段不能 ping 通浮動(dòng) IP,最終創(chuàng)建子網(wǎng)的語(yǔ)句修改為
# 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èn)外網(wǎng),自己的 PC 也可以訪問(wèn)云主機(jī)。
關(guān)于 openstack kilo 版本虛擬機(jī)無(wú)法 ping 通外網(wǎng)是什么情況就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。