本博客已經添加"打賞"功能,"打賞"位置位於右邊欄紅色框中,感謝您贊助的咖啡.
=====問題=======
虛擬機可以ping通外網,外網能ping通虛擬機但是收不到reply
這個問題本人遇到有兩種情況:
1.安裝完整openstack-kilo后,在route中和虛擬機中抓包得知,外網能ping通虛擬機,但是ping包在到達虛擬機后就不在了。從虛擬機ping出的包能到達外網網關並能得到reply回應。
2.使用模式的不同導致網絡不通。
OpenStack internal network (gre)-----------------|-------------------external network(vlan)
=========原因=============
第一種問題的原因: 外網ping虛擬機------------>虛擬機(ping包能到達虛擬機,是因為在創建instance的時候添加的secgroup,而就是這個secgroup中沒有相應的規則導致了不能ping進虛擬機。
第二種問題的原因:之前外網模式為不帶tag的網絡,內網tenant網絡為gre,可以正常通信。之后外網變為了vlan網絡,沒有更改內網tenant網絡模式,導致了虛擬機的數據出不來,外網的數據進不到虛擬機。兩種不同模式的網絡,不通也就正常了。
=========解決方案===========
【第一種問題的解決方案】
在securegroup中添加相應規則

增加規則以后,問題一解決。
【第二種問題的解決方案】

修改tenant的網絡模式為vlan,添加網卡子網形成vlan子接口.
編輯/etc/neutron/plugins/ml2/ml2_conf.ini

創建vlan子接口:將父接口的bootproto改為manual,子接口改為bootproto=none
父接口:

子接口:

重啟網絡:
service network restart 或者 systemctl restart network.service
並將子接口添加到br-ex上
ovs-vsctl add-br br-ex enp2s0f1.125

在ping網絡就通了。
