对于这两个interface含义的理解一波三折,下面我把各种理解都记录下来.
 
2014-9-23
 
#可以把flat_interface理解为Openstack整套生态系统内部的网络接口,内部各节点之间相互通讯用的
#可以把public_interface理解为Openstack系统之外的面向管理员,面向控制端的接口
所以在我的笔记中flat_interface = eth1 (GE网卡,mannual), public_interface = eth0(BBG网卡,static),因为我默认BBG是用来管理的,GE用来内部通讯的.
 
2014-10-28
 
回顾github上的一篇文章 (https://github.com/ChaimaGhribi/Icehouse-Installation-Flat-Networking/blob/master/OpenStack-Icehouse-Installation-Nova-Network.rst#install-the-compute-service-nova), 发现文中nova.conf的public_interface=br100, 对此感到非常奇怪!
我尝试将GE网卡比作文中的eth0用来内部通讯+互联网通讯, BBG网卡比作eth1用来管理. 然后创建浮动ip地址池,将3.242.164.4分配给了cirros(内部IP 172.52.17.2), 但是外界无法联系到cirros.
于是我将BBG网卡的gateway取消, 将GE网卡配上ip, netmask, gateway. 此时从我的电脑3.242.164.104可以ping或ssh至cirros了. 但是从cirros内却无法ping通我.
我尝试使用该文中的public_interface = br100方法,可以达到互通的目的,但是不理解原理.
 
 
2014-10-29
 
今天看了一篇文章: https://groups.google.com/forum/#!topic/china-openstack-user-group/7obOGTcv6gk
Q: 请教一个问题,我在主机上一块网卡安装了Openstack(havana)。网络用的nova-network。配置j如下
network_manager=nova.network.manager.FlatDHCPManager
flat_network_bridge=br100
flat_interface=eth0
public_interface=eth0
eth0网卡地址为10.10.101.105,网关是10.10.101.254,可以连通外网。

br100以及虚拟机的ip用的网段为192.168.100.0/24。现在问题是虚拟机不能访问外网和主机的局域网。ping命令如下
PING www.baidu.com(115.239.210.27)
From 192.168.100.1: icmp_seq=2 Redirect Host(New nexthop: 10.10.101.254)
From 192.168.100.1: icmp_seq=3Redirect Host(New nexthop: 10.10.101.254)
可以看到DNS应该没问题,但是访问不了外网。
A: 由于最近忙别的去了,把这个帖子忘了,今天偶尔看到邮件,有人问这个问题,我把我的解决办法说一下。

1、如果你有两块网卡,当然将flat_interface和flat_interface设成不同的网卡是最好的了。flat_interface是通过网桥连接虚拟机的,随便设置一个网卡就行;public_interface一定要设成你连上外网的那个网卡,这样虚拟机就可以直接上网了。
2、如果你只有一块网卡如”eth0“,那么上面的设置时没有问题的,至于上不去网,是iptables的问题。我的解决办法是执行下面一条命令就行了
iptables -t nat -A POSTROUTING -o br100 -j MASQUERADE
这是到目前为止我认为正确的理解,即: flat主内,public主外似乎还是没错的, 但是管理网络也是可以充当实例间通讯网络的 (这是和2014-9-23理解的不同之处), 所以flat_interface = eth0(BBG). public_interface=eth1(GE), 用GE网卡充当实例访问互联网的那块网卡.
 
2014-10-30
 
昨天的文章中说"flat_interface随便设置一个网卡就行", 今天想了下似乎有道理, 因为一般情况下,所有compute结点的网卡都接在网络中,相互之间肯定可以通讯, 所以flat网卡同时也可以是public网卡.

对于flat_interface与public_interface的理解的更多相关文章

  1. openstack搭建配置

    安装和配置网络节点vim /etc/sysctl.confnet.ipv4.ip_forward=1net.ipv4.conf.all.rp_filter=0net.ipv4.conf.default ...

  2. 7. Add a networking service

    Controller Node: 1. sudo vi /etc/nova/nova.conf [DEFAULT] ... network_api_class = nova.network.api.A ...

  3. openstack组件手动部署整合

    preface:当你完全且正确的配置好整个OpenStack ENV 你将能看到的和体验到的!!! 我们先来看看简单效果吧,祝君能在这条路上走的更远,更好;

  4. Deploying Cloud Foundry on OpenStack Juno and XenServer (Part I)

    link http://rabbitstack.github.io/deploying-cloud-foundry-on-openstack-juno-and-xenserver-part-i/ Cl ...

  5. 8.OpenStack网络组件

    添加网络组件 安装和配置控制器节点 创建数据库 mysql -uroot -ptoyo123 CREATE DATABASE neutron; GRANT ALL PRIVILEGES ON neut ...

  6. 理解CSS视觉格式化

    前面的话   CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...

  7. 彻底理解AC多模式匹配算法

    (本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...

  8. 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信

    接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...

  9. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

随机推荐

  1. Java for LeetCode 030 Substring with Concatenation of All Words【HARD】

    You are given a string, s, and a list of words, words, that are all of the same length. Find all sta ...

  2. 【HTTP协议】响应头中的Content-Length和Transfer-Encoding

    来源: http://blog.csdn.net/superhosts/article/details/8737434 http://bbs.csdn.net/topics/390384017 对于h ...

  3. VS禁止特定警告

    项目右键-属性-配置属性-C/C++-高级-禁用特定警告-填写警告编号例如4996

  4. javascript输出AscII码扩展集中的字符

    function test(){ var c=""; for(var i=1;i<65536;i++){ if((i%10)==0){ c+=i+':\t'+String.f ...

  5. Jam的计数法(codevs 1140)

    题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数都是相同的(使用 ...

  6. 微信api退款操作

    状况:证书加载进去,本地调试退款成功,然而发不到iis上却是不成功. 分析:定然是iis配置问题. 问题一:证书加载不进去,出现“内部错误” 解决:在iis中找到对应的应用连接池,右键高级设置,找到“ ...

  7. Oracle 性能查看

    http://blog.chinaunix.net/uid-20784775-id-373968.html

  8. 用戶登陸。防SQL注入,驗證碼不區分大小寫

    if (string.Compare(TBCheckCode.Text, Session["CheckCodeI"].ToString(), true) == 0)        ...

  9. WinForm下窗体标题栏上有“帮助”按钮

    将FormBorderStyle设置为Sizable. 最大化和最小化设置为false helpbutton 设置为true

  10. HTTP基础02--HTTP协议简介

    客户端和服务器端: 仅从一条通信路线来说,服务器端和客户端是确定的: HTTP协议规定,通信一定是先从客户端开始建立,服务器端在没有接受到请求之前不会发送响应: 不保存状态: HTTP是无状态协议,对 ...