一个计算机技术爱好者与学习者

0%

好好学OpenStack:Ubuntu16手动安装OpenStack——实例访问外网

1. 问题

《Ubuntu16手动安装OpenStack——vxlan网络》一文中,已经配置好了vxlan网络,并且成功创建了cirros1实例。

但是,进入实例后,发现一个问题:实例无法连通外网。这个问题我们在《Ubuntu16手动安装OpenStack——horizon篇》一文中就遇到过,也找到了解决办法。如今更换了网络模式,我们再来研究一下实例访问外网的问题。

2. 解决办法

2.1. traceroute

1、登录cirros1
ssh cirros@10.0.0.201

2、路由跟踪
traceroute 8.8.8.8

从上图可以看出,从虚拟机发出的包,依次经过了192.168.100.1和10.0.0.1,然后就出不去了。这说明,问题出在网桥(10.0.0.1)和外网的连接。

2.2. snat

参照《Linux配置SNAT上网》《Ubuntu16手动安装OpenStack——horizon篇》,对控制节点网络进行设置。

1、接受虚拟机数据包
iptables -I INPUT -i eth2 -j ACCEPT

2、开启路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward

3、伪装数据包
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j SNAT --to 172.16.0.105

2.3. 测试

1、登录cirros1
ssh cirros@10.0.0.201

2、测试访问
ping 8.8.8.8 -c3

3、修改resolv.conf
sudo vi /etc/resolv.conf
添加:

1
nameserver 180.76.76.76

4、测试访问
ping www.baidu.com -c3