返回顶部

OpenStack Neutron网络状态详解

[复制链接]
遨游平流层Lv.1 显示全部楼层 发表于 2016-12-29 20:51:21 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Neutron里面很多对象都有admin_state_up和status两个属性,并且看上去很难搞清楚二者的区别,本文将详细介绍这两个属性在Network, Port和Router上的含义。

Network
admin_state_up

表示Network的管理状态,如果设置为False,则网络不再转发IP包。在创建网络的时候这个属性的值默认为True. 管理员可以通过API来修改admin_state_up(True|False).

在代码中是如何实现当admin_state_up为False时,不再转发IP包的呢?通过分析代码可以发现,当Network的 admin_state_up值变为False时,针对该Network的DHCP服务会被停止,用于监听DHCP请求的tap设备会被销毁,新建的虚机 将无法获得IP。那么对于已经获得IP地址的虚机呢?Neutron的DHCP Driver使用的是dnsmasq,并且为dnsmasq设置了lease time,在Grizzly里这个值为2分钟,这意味着最多两分钟之后,虚机将无法续租IP,继而无法转发IP包。对于没用使用DHCP的情况 (static),没看到代码中所做的处理。

status

表示Network的运行状态,亦即Network的实际状态。在创建Network时status默认为ACTIVE。Neutron中对Network的status属性定义了ACTIVE,BUILD,DOWN和ERROR四个状态,对于ML2 + OVS agent,目前只有ACTIVE被用到。status属性无法通过API进行修改。

Port
admin_state_up

表示Port的管理状态,如果设置为False,则该端口将不再转发网络包。代码中具体做法是,当Port的admin_state_up变为False时,OVS agent会将对应的OVS port的local vlan id会被设置为4095,并且在br-int上增加flow规则drop所有这个port收到网络包。

status

表示Port当前的运行状态。在创建Port时status默认为DOWN。此属性不能通过API修改。OVS agent在port创建后会将status设置成与admin_state_up一直的状态(ACTIVE or DOWN)。在此之前OVS agent根据admin_state_up设置其临时状态为BUILD或者DOWN。status共具有ACTIVE,DOWN,BUILD,ERROR四种状态,ML2 & OVS agent没有用到ERROR。

Router
admin_state_up

表示Router的管理状态,缺省值为True,管理员可以通过API修改。当属性值变为False时,Router将不再转发IP包,L3 Agent会清空router对应的nat rules, filter rules, 销毁对应的namespace等。

status

表示Router当前的运行状态。缺省值为ACTIVIE,并且不允许通过API进行修改。目前Neutron只用到了ACTIVE状态。
作者:蒋趁心
参考资料

[1] https://answers.launchpad.net/neutron/+question/230508

[2] http://osdir.com/ml/openstack-dev/2014-02/msg01807.html

[3] https://bugs.launchpad.net/neutron/+bug/1237807
转载

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

云萌主 云萌主-BIGSAAS旗下,由北京合智互联信息技术有限公司在2018年创立,为广大云应用技术爱好者的平台。在云萌主论坛可以查看云应用技术文章、云产品产品最新资讯、技术问答、技术视频。在畅游云上技术的同时,学到最新的云应用产品和技术。
  • 微信公众号

  • Powered by Discuz! X3.4 | Licensed | Copyright © 2001-2022, Aliyun Cloud. | 星点互联设计
  • 京ICP备18052714号 | 营业执照 | |合智互联| QQ