openstack环境:

1 版本:ocata

2 系统:ubuntu16.04.2

3 控制节点 1个 + 计算节点 1个

4 控制节点网卡为ens33,ip = 172.171.5.200 ens34 manual模式 无IP

(为什么外网网卡ens34没有IP地址?这是另一个故事,后面有专门章节讲解。)

计算节点网卡 ens33 ,ip = 172.171.5.201

一 vxlan配置

1 控制节点:

编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件

配置tenant_network_types = vxlan。该配置意义是项目中创建的内部网络为vxlan类型。

配置flat外部网络的标签为provider,在创建外部网络时使用。

编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini文件

配置物理网卡的映射,通俗讲即指定外网网卡。ens34为本环境中出外网网卡。

指定vxlan的封装IP,即外层IP。

2 计算节点

同理配置计算节点,标签label要和控制节点一致

隧道的封装IP为ens33的IP地址

重启网络服务。

1
2
service neutron-server restart
service neutron-linuxbridge-agent restart

二 在dashboard上创建网络过程

1 admin用户创建公网

这里首先创建的是外网。外网的类型有两种:falt和vlan。当指定为flat类型时,物理网络中填写的就是上面配置的label。指明该flat网络使用label所绑定的网卡出外网。

一定要区分创建外部网络和非外部网络。如下图,勾选了外部网络一定是创建公网,是所有VM出公网的网络。admin用户也可以为某个项目创建内网,不勾选外部网络。

flat网络创建子网。子网网段是能够出外网的网段。比如这里填写的172.171.5.0/24网段,该网段中每一个IP地址都能出外网。

填写地址池,DNS服务器。外网到这里创建结束。接下来创建本环境中的项目demo项目的内网。

当创建好外部网络之后,对应的控制节点底层网桥发生变化。由于写博文截图不够及时,这里已经是创建好网络,实例之后的截图。

当创建好外部网络之后,会出现红框中的网桥信息。其中,该网桥连接了ens34网卡和dhcp节点tap543aa81e。

如下图所示(画功一般,见谅)

以demo用户登录

创建内部网络。使用demo用户登录demo项目中,创建的内部网络类型是由tenant_network_types中指定,为vxlan。

该配置能指定内部网络类型,如flat,vlan,gre等。

分配内网的ip地址。内网地址指定网段为任意网段,因为该网段的地址要经过路由器的转换,转换到外网的IP地址出外网。

推荐使用私网地址。本环境使用192.168.0.0/24。

配置地址池,不配置即可使用全部。

配置内网之后创建路由器,连接内网和外网。如下创建router,外部网络选择上面创建的外部网络名称。本环境为out_side_net。

再添加接口为内部网络。子网是指上面创建的内部网络。

最后开启一个实例。创建实例时选择的网络是内部网络。

创建好内部网络和实例之后,vxlan隧道就建立起来。系统会在控制节点创建一个vxlan 的VTEP,在计算节点创建一个vxlan的VTEP。

如下图,第一张为控制节点,创建vxlan12;第二张为计算节点创建也为vxlan12。这两个VTEP设备组成了vxlan隧道的两个端点。

通过查看计算节点上vxlan12的详细信息可以看到其连接ens33网卡。

此时隧道的网络如下图所示

如下图所示为创建好外部网络,内部网络,以及路由器之后的网络拓扑。

内部网络的情况大概如下图所示。

登陆实例,ping外网,通。此时的除外网的网络流量过程如下:

1. VM产生ICMP包,发往网桥。数据包源IP为192.168.0.X。
 2.通过网桥在vxlan12上封装外层数据包。
 3.数据通过ens33网卡出计算节点,到控制节点,即网络节点。
 4.在控制节点的vxlan12处解开外层封装,还原VM的ICMP包。
 5.数据流到达router路由器,经过路由器NAT地址转换。从192.168.0.X转换成外网地址172.171.5.230~240中一个。
 6.数据流经过网桥,从ens34出去到达公网。

回包过程大概是反过来的,不再累叙。

openstsack网络复杂,自身知识能力也有限,难免出现理解错误的地方。欢迎指正和交流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

浅谈openstack中使用linux_bridge实现vxlan网络的更多相关文章

  1. openstack中使用linux_bridge实现vxlan网络

    openstack环境: 1 版本:ocata 2 系统:ubuntu16.04.2 3 控制节点 1个 + 计算节点 1个 4 控制节点网卡为ens33,ip = 172.171.5.200 ens ...

  2. 浅谈JAVA中如何利用socket进行网络编程(二)

    转自:http://developer.51cto.com/art/201106/268386.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

  3. 浅谈JAVA中如何利用socket进行网络编程(一)

    转自:http://developer.51cto.com/art/201106/268385.htm Socket是网络上运行的两个程序间双向通讯的一端,它既可以接受请求,也可以发送请求,利用它可以 ...

  4. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  5. 浅谈Linux中的信号处理机制(二)

    首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...

  6. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  7. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  8. 转【】浅谈sql中的in与not in,exists与not exists的区别_

    浅谈sql中的in与not in,exists与not exists的区别   1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...

  9. 浅谈iOS中的userAgent

    浅谈iOS中的userAgent   User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...

随机推荐

  1. 位(bit)、字节(byte)、字符、编码之间的关系

    1.位: 数据存储的最小单位.每个二进制数字0或者1就是1个位: 2.字节: 8个位构成一个字节:即:1 byte (字节)= 8 bit(位): 1 KB = 1024 B(字节): 1 MB = ...

  2. EF Like

    public static class EdmxExtensions { [EdmFunction("YourEFModel", "String_Like")] ...

  3. 基于javaMail的邮件发送--excel作为附件

    基于JavaMail的Java邮件发送 Author xiuhong.chen@hand-china.com Desc 简单邮件发送 Date 2017/12/8 项目中需要根据物料资质的状况实时给用 ...

  4. Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))

    以下所有内容翻译至: https://xlsxwriter.readthedocs.io/ #----------------------------------------------------- ...

  5. 承接教育类html5交互课件/动画/游戏外包——如何快速开发一款html5交互课件/动画产品

    根据不同的课件类型选择不同的引擎,选择最合适的开发工具为您实现想要的课件效果.

  6. 多个ROS工作空间常见的问题

    1. 在/home/user_name/.bashrc文件中写入多个工作空间的环境变量,这样会导致环境变量之间相互覆盖.最常见的问题就是找不到工作空间中某个launch文件.节点.rviz插件等. 解 ...

  7. 用openssl为EAP-TLS生成证书(CA证书,服务器证书,用户证书)

    用openssl为EAP-TLS生成证书(CA证书,服务器证书,用户证书) 来源: https://www.cnblogs.com/osnosn/p/10597897.html 来自osnosn的博客 ...

  8. 联想T470笔记本GPT改MBR分区

    联想T470笔记本GPT改MBR分区 7000多元买的,这个笔记本配置还可以,就是感觉特别卡顿,于是想重做WIN7系统,为了方便激活,想把GPT分区改成MBR分区. 进入微PE1.2,用傲梅分区助手删 ...

  9. SMTP 协议

    SMTP 响应状态码 代码 说明 说明 211 System status, or system help reply 系统状态或显示系统帮助. 214 Help message 显示系统帮助,通常用 ...

  10. mac中更改xampp的根目录

    方法一: 1 打开 应用程序->XAMPP->xamppfiles->etc->httpd.conf 文档 2 commond+f搜索htdocs,搜到如下结果 # Docum ...