分享

openstack【juno】入门高级篇:为何你的实例ping不通外网【详述】

pig2 发表于 2015-6-4 08:41:32 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 8 139771
问题导读

1.本文解决ping通外网的思路是什么?
2.如何实现ping通外网?
3.ping域名bad address该如何解决?






前面是概述,这里给大家在详细说一下,openstack网络。
由于在安装部署中,我们遇到了实例ping不通外网、ping不通节点,ping不通域名。而且有的甚至获取不到ip。
获取不到ip,一直没有遇到过这个问题,只要是完全按照
about云openstack入门宝典
应该不会遇到这个问题。
要么使用dhcp自动分配,要么是自己手工配置。入门宝典采用的是自动分配。

学习openstack的过程中,为什么我们会遇到问题。总结原因如下:

1.存在专门跳坑现象

刚开始学习,我们一般对一门技术理解的并不深刻,可能只是停留在皮毛阶段。这时候我们所做的最多的是模仿。当我们会走了之后,我们在学跑。有的同学不是,是上来就想跑,结果到处往坑里掉。

有的同学,可能会想,我改动下,可以明白原理,这样理解更深刻。道理是没有错的,但是这样会浪费你更多的时间,而且可能解决不了。因为有很多问题,是跟自己的操作有关系。

对于新手最好的学习方式,是多找资料,然后模仿。为什么要多找资料那,网上的资料是非常多的,同样书籍和视频也是不少的,但是如果你单纯的按照一个文档来操作,能操作正确,当然是好的。但是从概率上来说,一个完全正确的文档几乎没有。即使官方文档,比如openstack kilo官网文档,刚发布之后,也经过几次修改。所以我们在学习的时候,一定要先积累资料,这样避免多次掉坑现象。

资料有了,我们开始学习和实践,特别是在实践的过程中,应避免在一知半解的情况改动。
比如在keystone部署的过程中,mysql都有默认的密码,我们觉得比较懂,就修改了密码,但是由于这个密码在多个组件中都是用,如果在配置的过程中,有一处没有修改,那么就会产生问题。

2.遇到问题如何提问

当我们遇到问题的时候,存在以下几种情况。
1.遇到问题,发到qq群,或则论坛
我们发我们的,说不定能解决,发完之后,自己在尝试解决。
遇到过很多这种情况,有的人在帮忙,偶尔会有人帮助,而且可能在互动中,解决了问题。
但是不得不说很多情况是楼主自己解决的,而且会把自己的解决办法分享给大家。
这样的人还是比较令人欣赏的,一个对大家有贡献的人,谁又会不喜欢,不欢迎。


2.遇到问题自己搞
要么百度,谷歌等,总之总想自己搞定。但是有时候会搞不定,怎么办。就到处找资料,找视频等。总之不太喜欢去问人,如果能够成为逗逼,那么前途无量,否则职业发展会遇到瓶颈。推荐:程序员职业发展瓶颈:被别人信任才能有广阔未来[写给代码技术同事]

3.发帖、提问就想得到现成的答案
遇到一些新手,当然也有一些工作多年的,当提问题,或则把问题发到qq群,如果没有人回答,可能会直接退群,而且愤愤然。
即使问题解决了,当然不会分享给别人,会将它所得到知识如数收藏。

上面其实当别人遇到问题的时候,有时候很多人确实是想帮助的,但是有心无力,确实帮不上。有些确实想帮,就说出自己看法,但是对于想得到正确答案的提问者来说,这无疑是废话,根本帮不上。

真正的大神是没有多少的,需要懂原理,而且有丰富的实践经验。这样的人是非常少的,因为想达到融会贯通至少需要两三年的时间,成为大师级人物则需要10年,而且还需要是一个勤奋思考的人。

对于多数人而言,我们只是负责某一个工作,甚至可能原理都不懂,但是我会做。就是这么简单。如果说你遇到了,那么只能根据它的经验来解决你的问题。

############################
说了这么多,那么我们遇到问题,到底是该提问,还是不该提问。有问题不问,憋着更不会。三人行必有我师,即使你的问题得不到你想要的答案,最起码起到下面作用
1.缓解你遇到问题的压力
2.在跟别人交流的过程,也是整理问题的过程,对问题有一个认识。
同样这里希望问问题的人,调整自己的心态,并不是所有的问题,别人都会给你一个正确的答案。跟别人交流自己的问题,这本身是一个很大的进步,而且可能得到一些灵感,自己就可以解决。

如果自己确实找不到答案,又没人帮助,你该怎么做。不断找资料,书籍、文档、视频,不断逛论坛,你的问题,肯定有解决的一天。而且这个问题的解决,会带给你质的飞跃。


######################################################

上面说了我们学习的过程中,是如何学习,该如何解决我们学习过程中遇到的问题。

我们就说说openstack的网络。
按照about云openstack入门宝典,安装部署完毕openstack。我们就想测试实例。
可是不幸的是,我们经常ping不通实例或则实例ping不通外部节点和外网互联网。当然也有获取不到ip,这个是由于基本的配置的问题,这里不在详述,如果是ubuntu,详细查看about云openstack入门宝典

这里主要讲讲为什么实例ping不通外网。如果能够ping通外网,那么ping通其它节点自然不问题。

在三节点安装的过程中,首先我们需要确定上网模式。
这里是以mware为例:
我们知道mware有三种上网模式(虚拟机三种网络模式该如何上网指导),openstack安装部署,是需要至少有一个网卡上网的。
在网络节点我们知道,需要三个网卡(如果这里不了解,可能基础薄弱一些,参考about云openstack入门宝典openstack【juno】入门 【准备篇】零:整体介绍),那么这三个网卡的网络模式是个关键。


我们一般采用的网络模式有很多种组合:
1.在原先三个网卡的基础上,我们使用第四个网卡上网。另外三个网卡采用host-only
2.三个网卡中,使用管理网络来上网。
等模式。
上面最关键是第三块网卡,这块网卡连接着虚拟网络与物理网络,也就是这块网卡的配置

[mw_shl_code=bash,true]# The external network interface
auto eth2
iface eth2 inet manual
        up ip link set dev $IFACE up
        down ip link set dev $IFACE down[/mw_shl_code]

如果你仍然不明白,同样参考上面准备篇,(此篇同样会录制视频,欢迎捐助淘宝链接

此网卡没有ip地址,官网给的网段是下面:
[mw_shl_code=bash,true]203.0.113.0/24为外部网络[/mw_shl_code]
但是采用这个网段,使用虚拟机,相信很多人会遇到ping不通网络的现象。
这个问题该如何解决,这里给提供另外一个思路:

这里在上篇已经有所截图,直接拿过来:

控制节点:





网络节点




计算节点





如果你一直被这个问题困扰,那么看到上面图,可能已经有所灵感。
上面采用的网络模式,是管理网络来上网,
10.0.0.0/24
第三块网卡使用的网段。
10.0.0.0网段
无论是采用nat,还是host-only,我们都可以来上网。
网段配置完毕,接着我们在实例化网络。
参考:
openstack【juno】入门 【网络篇】十八:创建实例化网络

实例化网络这里稍有不同,我们不再使用
使用 203.0.113.0/24  , floating IP 地址范围 203.0.113.101 to 203.0.113.200:
而是使用
10.0.0.0/24,floatingIP 地址范围 start= 10.0.0.100,end=10.0.0.200


实例化网络[mw_shl_code=bash,true]neutron subnet-create ext-net --name ext-subnet \
  --allocation-pool start=10.0.0.100,end=10.0.0.200 \
  --disable-dhcp --gateway 10.0.0.2 10.0.0.0/24[/mw_shl_code]


这个问题解决,剩下我们创建实例,进行测试:



[mw_shl_code=bash,true]nova boot --flavor m1.tiny --image cirros-0.3.3-x86_64 --nic net-id=c5820bc3-9612-407b-8f67-eaf167192c7f \
--security-group default --key-name demo-key demo-instance1[/mw_shl_code]




[mw_shl_code=bash,true]nova list[/mw_shl_code]




进入控制台





我们ping下about云(www.aboutyun.com




我们看到
[mw_shl_code=bash,true]ping : bad address 'www.aboutyun.com'[/mw_shl_code]

这里是因为我们没有修改/etc/resolv.conf
添加[mw_shl_code=bash,true]nameserver  8.8.8.8[/mw_shl_code]

修改完毕,我们在

[mw_shl_code=bash,true]ping 'www.aboutyun.com'[/mw_shl_code]





至此我们的网络也就ping通了

推荐帖子:

云主机ping的通三节点,但是ping不通百度

【求助】如何从公网ping通openstack实例?

求助:搭建multi-region的openstack环境


下一篇:

openstack【juno】入门高级篇:openstack的Neutron中SDN介绍
openstack【juno】入门高级篇3:openstack的Neutron中虚拟网络设备介绍

本文相关视频:


about云零基础开发、部署openstack视频




已有(8)人评论

跳转到指定楼层
lzc868266 发表于 2015-6-4 11:58:19
很强大,楼主很强大
回复

使用道具 举报

fay625 发表于 2015-8-29 20:54:12
我想问楼主是如果在虚拟机中按照这些博文安装 最终都是ping不通么 是要必须改成这种网络模式么
回复

使用道具 举报

hyj 发表于 2015-8-29 21:35:24
fay625 发表于 2015-8-29 20:54
我想问楼主是如果在虚拟机中按照这些博文安装 最终都是ping不通么 是要必须改成这种网络模式么

大部分都是这样的,这个问题比较难解决的。
期待能有新的解决方案
回复

使用道具 举报

yu1119874506 发表于 2015-9-2 14:48:59
hyj 发表于 2015-8-29 21:35
大部分都是这样的,这个问题比较难解决的。
期待能有新的解决方案

您好,请问一下,如果管理网络使用桥接模式,隧道网络和混杂模式的网卡都设置成host-only模式,网段是和教程上一样的话,创建实例化网络的时候出现奇怪的现象。在controller节点ping不通203.0.113.101这个网关,可是在本地Windows下是可以ping通这个网关的,请问这个现象会是管理网络造成的吗?因为我只有在管理网络上和教程不一样,其他的都是按照教程装的,其他都没有问题,就是在创建实例化网络的时候出现上述现象,请楼主帮忙解答一下。谢谢。
回复

使用道具 举报

yu1119874506 发表于 2015-9-2 15:26:50
您好,请问一下,如果管理网络使用桥接模式,隧道网络和混杂模式的网卡都设置成host-only模式,网段是和教程上一样的话,创建实例化网络的时候出现奇怪的现象。在controller节点ping不通203.0.113.101这个网关,可是在本地Windows下是可以ping通这个网关的,请问这个现象会是管理网络造成的吗?因为我只有在管理网络上和教程不一样,其他的都是按照教程装的,其他都没有问题,就是在创建实例化网络的时候出现上述现象,请楼主帮忙解答一下。谢谢。
回复

使用道具 举报

neo_seele 发表于 2015-12-25 14:30:23
非常感谢LZ分享的技巧,按照帖子中的步骤实现了实例ping外网~
回复

使用道具 举报

liu_augur 发表于 2016-2-1 09:14:01
又搜到了您的帖子了,拜读
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条