本文接前文, 本文的主要目的是创建实例 ,并且让实例 可以访问外网, 同时外网可以访问实例 。
我们先来准备一下环境。
编辑控制节点和计算节点的neutron配置文件/etc/neutron/plugins/ml2/ml2_conf.ini
su - stack
/etc/neutron/plugins/ml2/ml2_conf.ini
重启相关服务
screen -ls
sudo chown stack /dev/pts/0
screen -r
在所有的neutron相关服务中按ctrl+c, 然后按光标向上键调用命令行, 重新运行服务。
首先创建一个vlan网络, 名称为vlan100
接下来创建子网
网络创建完成,接下来创建两个实例,镜像为cirros, 网络选择vlan100
创建外部网络
这是本人的网络情况,请自行更改
不需要dhcp
虚拟机网络创建好了,外部网络创建好了, 虚拟机也启动了,接下来我们需要创建虚拟路由器来打通虚拟机网络和外部网络。
设置网关
由于本人是成功后截图,所以显示会有不同,没有设置网关前,右边的按钮是“设置网关”, 在界面中选择外部网络既可。
接下来添加接口, 172.16.100.1是vlan网络的网关。
虚拟路由器设置完成,最终效果如下
接下来给虚拟机分配外网ip, 即浮动IP
分配成功后,可以在实例 界面看一下效果
接下来打开虚拟机控制台,可以ping通cirros2, 可以ping通外网网关,可以ping通百度。
外网可以ssh floatingip 访问虚拟机。
如果ping不通floating IP, 在安全组中把默认的规则删除,重新添加ssh, icmp协议既可。
接下来我们来分析一下后面的原理。虽然理解起来不难,不过要写清楚还是要花很多时间的。