Dec 022015
 

其实我本人网络方面一直都比较薄弱,为了逼自己学习,就是写写文档,帮助自己的理解。估计大家看完,就可以了解到我的Neutron网络的理解,还是比较肤浅。

Snap19

解析一个东西,写一堆,真的不如一个图,这个真的是深刻体会。这个图是老外的书里的。

Snap29

上面两张图,表达的意思,基本是一样的。

Neutron,其实和其他的OpenStack组件差不多,他都是一个中间层,自己基本不干具体的活,通过插件的机制,调用第三方的组件来完成相关的功能。

对于Neutron来说,在Havana版本前,支持Linux Bridge和Openvswitch两种插件。后来发现直接通过Neutron去调用插件的方式,有些不够理想

  1. linux bridge和ovs,实现功能的代码,其实有很大部分是重复的,这样让人感觉很不爽
  2. 出于功能和性能的考虑,有些场景下,需要同时使用linux bridge和OVS,采用这种直接调用插件的模式,是无法实现的。

在H版本以后,社区就推出一个Neutron插件 Modular Layer 2 (ml2) plugin,这个插件底下调用linux bridge和ovs两个Driver。

linuxbridge和OVS,可以干的活是支持不同的网络,目前这两种Driver,都可以实现下面几种网络功能。

  1. local
  2. flat
  3. vlan
  4. vxlan
  5. GRE (linux bridge 不支持)

那么这5种网络里,local网络,主要是用于测试,GRE网络,目前社区已经基本处于维护,大家基本也可以不考虑。所以大家只需要了解其中3种就可以。

OpenStack的网络里,可以有4种的网络流量

  1. 管理网络:消息队列和数据库访问的网络
  2. API网络:外部调用API
  3. External:连接外网(provider 网络)
  4. Guest:虚拟机互相通讯网络 (Tenant 网络)

4种网络里,和Neutron有关的就是External和Guest,Provider网络和Tenant 网络。

对于Provider 网络和Tenant 网络,技术实现基本都是一样的,区别仅仅在于

  • Provider 网络,是有管理员创建
  • Tenant 网络,是由用户自己创建

Provider 网络,常用的网络是:Flat和Vlan。vxlan基本是没有使用的可能性。

Tenant 网络,可以设置的选项就是 vlan,vxlan和flat,local主要是测试使用。

  26 Responses to “OpenStack Neutron网络的肤浅理解”

  1. 看陈老师发的博文,提到自己网络比较弱,我也有点求职上的问题,
    我现在的领导是网工出身的项目经理,他认为网络才是最重要的,Linux没有什么发展,而且也没什么可以深入搞得内容,但是我本身就是对Linux十分热爱。而且比较倾向于运维偏开发,而不是运维偏网络,我的网络学的很渣。
    所以想了解一下,对于neutron的认知理解是不是 用行业内的CCNP之类的来衡量一个人 对neutron这个组件多方面应用 灵活度的。
    感谢。

    • 对openstack来说,目前确实网络很重要。但是openstack的网络,由于现在是sdn,对linux底层要求也是非常高。bridge等,你真的需要了解。对于交换机的配置,其实ccna的水平就够了。对于网络的理解,确实是需要ccnp的理解,甚至ccie。

    • 现在你应该可以收到我的邮件提醒回复。

      • 1、感谢您百忙之中回复我一个普通学生的问题。十分感谢。
        2、没敢留自己的邮箱。担心留下的邮箱会被其他人查看到。现在留下了自己的真实邮箱,站点依旧是自己那个免费的站点。
        3、看了您的回复,感觉我是太偏执了。看来对Linux的追求也是要了解网络。软件定义网络这部分,最近Java的同事也在提这个事情,对这个不了解。
        4、会继续关注你您的博客。但是一直有个疑问,看到较多资料都是基于ubuntu进行实验的。我在工作中接触到服务器大多是suse11和Centos7.或许是我接触的太少,但是目前接触过的三百多台,偶尔遇到win 08,但从没遇到过ubuntu。

  2. 如果加上不同网络模式下,不同物理机vm通信过程,还有vm出公网的过程就很完美了,我是一个初学者,初学的时候对这两点很是疑惑,导致配neutron的时候,不知所错,出了问题不知道如何排查.我觉得只有知道了不同物理机vm通信过程,还有vm出公网的过程那么心里就明白了,如何去排查网络问题了

  3. 感觉目前我的邮件回复通知功能有问题。测试看看。

  4. 看看我自己评论是否可以收到。

  5. 真的是深入学习配置邮件。

  6. 看看是不是真的不行。邮件还是没法收到。

  7. 再次验证一次。

  8. 验证一下,我的邮件通知功能是否正常。

  9. 你好,看了你很多文章写的不错。之前一直搞cloudstack。最近转战openstack。在和xenserver集成的时候,有点问题请教,用K版,GRE网络。现在已经可以生成虚拟机了。就是DHCP获取不到IP地址。我看了很多资料,对网络这块还是有一点不明白。在计算节点br-int上一直生成不了,tap。这个tap是在计算节点生成了,还是在xenserver上生成了?怎么才可以生成tap了。谢谢

  10. 我的理解是,Provider网络,路由和NAT有第三方的软件和硬件来实现,对于Openstack Neutron本身,只有实现到网关,VLAN或Flat设置就可以。就Openstack而言,Provider网络恰恰不是外部网络,而是内部网络,只关心内部网络的连通性,外部网络的通信由第三方来实现。
    陈老师,不知道这样理解对吗?

  11. 对于Openstack的Classic方式,Openstack的管理员需要负责管理路由器、NAT、DHCP等。
    对于Openstack的Provider方式,Openstack的管理员只要负责VLAN、Flat、DHCP的管理就够了。

  12. 陈老师,我在部署中有一个问题急切需要你帮忙解答。生成环境中openstack的外部网络应该继续划分子网吗,如果划分多个子网后每个网络是不是都需要一台物理路由器呢?

    • 就是说如果虚拟路由器过多,每个用户一台,上千台,怎么样避免集中式网络

      • 给一个思路,使用多个外部网络,配置多个l3agent。多对多处理

        • 多个外部网络是没啥问题。多个l3agent,估计需要新的版本支持。newton版本,l3agent 可以指定给租户使用。

    • 就是说如果虚拟路由器过多,每个用户一台,上千台,怎么样避免集中式网络,谢谢陈老师啊

      • 如果你到了这样的规模,其实是有解决的办法。这个时候肯定是网络厂商的。目前网络的sdn厂商,就是为了解决各种性能问题。

  13. 陈老师,问个部署public网络的问题:部署openstack数据中心的public网络一般是私有网络吗?还是直接挂公网网段。如果是私有网段,那么虚机绑定公网ip是在物理路由器上做吗?谢谢。

    • 公网的IP段。企业内部使用,有时候是私有IP段,公网需要访问,通过防火墙做端口映射。

 Leave a Reply

(required)

(required)