文档章节

探索 OpenStack 之(8):Neutron 深入探索之 OVS + GRE 之 完整网络流程 篇(转)

tantexian
 tantexian
发布于 2016/03/29 10:10
字数 1242
阅读 71
收藏 1

同 学习OpenStack之(7):Neutron 深入学习之 OVS + GRE 之 Neutron节点篇 中所使用的环境。

简单总结一下:

Compute 节点上由Neutron-OVS-Agent负责:

  • br-int:每个虚机都通过一个Linux brige连到该OVS桥上
  • br-tun:转化网络packet中的VLAN ID 和 Tunnel ID
  • GRE tunnel:虚拟GRE通道

Neutron节点上:

  • br-tun/br-int:同Compute节点,由Neutron-OVS-Agent负责
  • br-ex:连接物理网卡,用于和外网通信
  • Network namespace:用于tenant 网络DHCP服务的qDHCP由Neutron-DHCP-Agent负责,和用于网络间routing的qRouter由Neutron-L3-Agent负责

2. 几个典型流程案例

2.1 流程1: 同一个host上同一个子网内虚机之间的通信过程

因为br-int是个虚拟的二层交换机,所以同一个host上的同一个子网内的虚机之间的通信只是经过 br-int 桥,不需要经过 br-tun 桥。如下图中红线所示:

 

2.2 流程2: 不同主机上同一个子网内的虚机之间的通信过程

过程:

1. 从左边的虚机1出发的packet,经过Linux bridge到达br-int,被打上 VLAN ID Tag

2. 到达br-tun,将VLAN ID转化为Tunnel ID,从GRE Tunnel 发出,到达另一个compute节点

3. 在另一个compute节点上经过相反的过程,到达右边的虚机

注:本配置待不久之后的实验验证。

2.3 流程3: 虚机访问外网

1. Packet离开虚机,经过Linux bridge, 到达br-int,打上 VLAN ID Tag

2. 达到 br-tun,将 VLAN ID转化为 Tunnel ID

3. 从物理网卡进入GRE通道

4. 从GRE通道达到 Neutron 节点的网卡

5. 达到跟物理网卡相连的br-tun,将 Tunnel ID 转化为 VLAN ID

6. 达到 br-int,再达到 router,router的NAT 表 将 fixed IP 地址 转化为 floatiing IP 地址,再被route 到br-ex

7. 从br-ex相连的物理网卡上出去到外网

外网IP访问虚机是个相反的过程。

2.4 流程4:虚机发送DHCP请求

过程:

1. 虚机的packet -> br-int -> br-tun -> GRE Tunnel -> eth2 ------>eth2->br-tun->br-int->qDHCP

2. qDHCP返回其fixed IP地址,原路返回

例如:在虚机(IP为10.0.22.202)启动过程中,DHCP Server (10.0.22.201)所收到的请求及其回复:

复制代码
root@network:/home/s1# ip netns exec qdhcp-d24963da-5221-481e-adf5-fe033d6e0b4e tcpdump

listening on tap15865c29-9b, link-type EN10MB (Ethernet), capture size 65535 bytes //dnsmasq在此TAP设备上监听

07:16:56.686349 IP (tos 0x0, ttl 64, id 41569, offset 0, flags [DF], proto UDP (17), length 287)

    10.0.22.202.bootpc > 10.0.22.201.bootps: [udp sum ok] BOOTP/DHCP, Request from fa:16:3e:19:65:62 (oui Unknown), length 259, xid 0xab1b9011, secs 118, Flags [none] (0x0000)

  Client-IP 10.0.22.202 //虚机eth0的IP地址

  Client-Ethernet-Address fa:16:3e:19:65:62 (oui Unknown)

  Vendor-rfc1048 Extensions

    Magic Cookie 0x63825363

    DHCP-Message Option 53, length 1: Release

    Client-ID Option 61, length 7: ether fa:16:3e:19:65:62 //虚机eth0的Mac地址

    Server-ID Option 54, length 4: 10.0.22.201 //DHCP Server IP地址

复制代码

 2.5 不同tenant内虚机之间的通信

Neutron Tenant网络是为tenant中的虚机之间的通信。如果需要不同tenant内的虚机之间通信,需要在两个subnet之间增加Neutron路由。

3. 关于GRE/OVS/Neutron的一些快速结论

1. GRE 可以隔离广播风暴,不需要交换机配置chunk口, 解决了vlan id个数限制,3层隧道技术可以实现跨机房部署,但它是点对点技术,每两个点之间都需要有一个隧道,对于4层的端口资源是一种浪费;同时,在IP头中 增加Tunnel ID,势必减少vm的mtu值,同样大小的数据,需要更多的ip包来传,传输效率有影响。
2. OVS :可以针对每个vm做流量限制、流量监控、数据包分析,同时可以引入OpenFlow,使控制逻辑和物理交换相分离,并且sdn controller可以实现vxlan的跨机房大二层通信,但是可能性能是个潜在问题。
3. Neutron的优点:
       (1)提供REST API
       (2)Neutron 把部分传统网络管理的功能推到了租户方,租户通过它可以创建一个自己专属的虚拟网络及其子网,创建路由器等,在虚拟网络功能的帮助下,基础物理网络就可以向外提供额外的网络服务了,比如租户完全可以创建一个属于自己的类似于数据中心网络的虚拟网络。Neutron 提供了比较完善的多租户环境下的虚拟网络模型以及 API。像部署物理网络一样,使用 Neutron 创建虚拟网络时也需要做一些基本的规划和设计。
4. Neutron的可能问题:
    (1)单点故障:Neutron节点做为network的中心控制节点,很容易导致单点故障。生产环境中HA应该是必须有的。
    (2)性能降低:network traffic经过太多的层次,latency增加。
     (3)可扩展性不够:当Compute 节点快速增加的时候,Neutron节点也需要扩展。

© 著作权归作者所有

tantexian
粉丝 225
博文 527
码字总数 746616
作品 0
成都
架构师
私信 提问
30 个 Openstack 经典面试问题和解答

现在,大多数公司都试图将它们的 IT 基础设施和电信设施迁移到私有云, 如 OpenStack。如果你打算面试 OpenStack 管理员这个岗位,那么下面列出的这些面试问题可能会帮助你通过面试。 Q:1 说...

作者: Pradeep Kumar
2018/12/09
0
0
Linux运维工程师资源汇总---OpenStack专题

OpenStack专题(已更新12.19) http://dwz.cn/yZdBi openstack网络架构(nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点非常庞杂,包括bridge、vlan、gre、...

马洪伟
2014/12/22
480
0
OpenStack Icehouse neutron-networking 架构 新增计算节点操作详解

新增计算节点 官方教程中只包含三个节点,所以根据实际需求我们需要增加计算节点,以创建更多的虚拟机。 1.配置网络 需要配置两个网卡 网卡配置 【eth0】 IP:10.0.0.41 netmask:255.255.2...

zhangdiandong
2015/12/08
0
0
openstack neutron-server.service启动出错,求大神帮助,小白跪谢。

系统: RHEL7.1 ip:192.168.10.101 rpm安装openstack k版,mysql、rabbit、keystone、glance、nova均已正常,但neutron.server无法启动,数据库已同步。 neutron安装过程: yum install -y o...

小白的落寞
2017/02/24
1K
2
Openstack计算-存储-控制分离与计算节点的在线添加

Openstack计算-存储-控制分离与计算节点的在线添加 实验环境:red hat linux 6.5 Host: 192.168.122.19 server19.example.com Compute node 1:192.168.122.3 server3.example.com Compute n......

Scanf_Love
2014/09/01
3.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

3_数组

3_数组

行者终成事
今天
7
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
今天
10
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
今天
7
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部