设为首页 收藏本站
查看: 1079|回复: 0

[经验分享] OpenStack点滴03-Neutron

[复制链接]

尚未签到

发表于 2015-4-11 14:36:13 | 显示全部楼层 |阅读模式
  OpenStack Neutron是一个比较复杂的组件,如果说OpenStack安装部署过程哪一个组件最麻烦,那就肯定是网络组件Neutron了。
  因为我对OpenStack网络这块也不是很熟,就把我所了解的记录一下。
  典型的OpenStack网络分为管理网络、数据网络、外部网络,以下是一个图例:
   DSC0000.png
  外部网络:用户调用Openstack的API;虚拟机要访问外网;外网要ssh到虚拟机。
  数据网络:虚拟机之间的数据传输;虚拟机连接到虚拟路由。
  管理网络:各模块之间交互;Message Queue。
  
  在安装部署方面,Neutron分成多个模块分布在3个节点上。
  Controller节点
  neutron-server,用于接收API请求。
  Network节点
  neutron-l3-agent,用于创建和管理虚拟路由、namespace、iptables。
  neutron-dhcp-agent,创建和管理DHCP服务器,每个虚拟网络都有一个DHCP服务器。
  neutron-openvswitch-agent,创建虚拟的L2 switch,Router和DHCP Server都会连接到二层的switch上。
  Compute节点
  neutron-openvswitch-agent,创建虚拟的L2的switch的,虚拟机的网卡连接到二层的switch上。
  
  下图是一个简单的场景:1个租户,2个网络和1个路由。
   DSC0001.png
  
  分析Compute Host和Network Host上网络虚拟化的实现:
  Compute Host
   DSC0002.png
  
  TAP device:KVM和Xen等hypervisor实现的虚拟网卡(eg VIF、vNIC),比如图中的vnet0。发送到TAP设备的frame会被guest OS收到。
  veth pair:一对直接连接的虚拟网络接口。以太网帧发送到其中一个veth pair,另一个veth pair就会收到。
  Linux Bridge:就像一个简单的交换机。
  Open vSwitch:一个虚拟交换机软件,网络接口连接到openvswitch的port,port可以像物理交换机一样配置,包括VLAN配置。
  
  Integration bridge
    br-int:所有guest都连接到br-int,通过配置br-int ports可以实现网络隔离。
  Physical connectivity bridge
    br-eth1:提供到物理网卡eth1的连接,通过veth pair连接br-int。
  VLAN translation
    net01和net02各自有VLAN ID号 1 和 2,分别对应物理网络VLAN ID 101和102,openvswitch agent负责在br-int和br-eth1上配置flow rule,使其对应上。
  Security groups: iptables and Linux bridges
    理想情况下,TAP device直接连接到br-int,但是为了实现安全组,所以中间加了linux bridge以及其他。因为OpenStack在TAP device(比如vnet0)上实现了安全组,但是带安全组的TAP device不能直接连接到openvswitch端口。
  
  Network Host
   DSC0003.png
  br-ex:和连接到外网的网卡(eth0)连接。
  Open vSwitch internal ports
    openvswitch internal ports使得可分配多个地址给openvswitch。
  DHCP agent
    DHCP agent用dnsmasq进程来提供DHCP服务。每个需要DHCP服务的网络都会有一个internal port,并且attach 一个dnsmasq进程给这个port。在之前的例子中,tapXXX对应net01_subnet01,tapWWW对应net02_subnet01。
  L3 agent (routing)
    上例中,qr-YYY接口对应net01_subnet01,IP地址为192.168.101.1/24。qr-ZZZ对应net02_subnet01,IP地址为192.168.102.1/24。qg-VVV的IP地址为10.64.201.254/24。每个接口操作系统可见的,网络节点可以转发这个packets。
    L3 agent用iptables实现floating IP network address translation(NAT)。
  
  
  Overlapping subnets and network namespaces
    有一个问题,就是如果管理网络也用了192.168.101.0/24地址段,那么host就会区分不开。所以通过namespaces来避免冲突,这里的namespace和编程语言中的作用空间有类似的效果。

    下图有三个namespace。分别是qdhcp-aaaa、qrouter-bbbb和qdhcp-cccc
    
    
    
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56021-1-1.html 上篇帖子: OpenStack发布Essex-3版本 下篇帖子: 怎样写 OpenStack Neutron 的 Extension (一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表