![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170126-1485413738962099337.jpg)
前面我们学习了位于不同 Neutron subnet 的 instance 可以通过 router 通信,今天开始讨论 instance 如何访问外部网络。
这里的外部网络是指的租户网络以外的网络。租户网络是由 Neutron 创建和维护的网络。 外部网络不由 Neutron 创建。如果是私有云,外部网络通常指的是公司 intranet;如果是公有云,外部网络通常指的是 internet。
具体到我们的实验网络环境: 计算节点和控制节点 eth1 提供的是租户网络,IP 段租户可以自由设置。 控制节点 eth2 连接的就是外部网络,IP 网段为 10.10.10.2/24。如下图所示:
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170126-1485413739149009254.png)
配置准备
为了连接外部网络,需要预先在配置文件中告诉 Neutron 外部网络的类型以及对应的 Open vSwitch 网桥。 外部网络是已经存在的物理网络,一般都是 flat 或者 vlan 类型。
这里我们将外部网络的 label 命名为 “external”,网桥为 br-ex。 如果类型为 flat,控制节点 /etc/neutron/plugins/ml2/ml2_conf.ini 配置如下:
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170126-1485413739284018325.png)
如果类型为 vlan,配置如下:
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170126-1485413739403025028.png)
在我们的网络环境中,外部网络是 flat 类型。 修改配置后,需要重启 neutron 的相关服务。另外,我们需要提前准备好 br-ex,将 eth2 添加到 br-ex。
![](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170126-1485413739523092175.png)
br-ex 已经存在,我们只需要添加 eth2。
下一节我们演示如何创建外部网络 ext_net。