Neutron中的dhcp过程分析

Nova 虚机获取固定IP (Fixed IP)主要分为两个步骤:
(1)在创建虚机过程中,Neutron 随机生成 MAC 和 从配置数据中分配一个固定IP 地址,并保存到 Dnsmasq 的 hosts 文件中,让 Dnsmasq 做好准备。
(2)虚机在启动时向 Dnsmasq 获取 IP 地址


1、创建虚拟机时的数据流


Nova-compute 在创建虚机时,需要 Neutron 所做的主要事情之一就是分配一个 MAC 和 一个或者多个固定 IP 地址,该过程从 Nova-compute 向 Neutron 申请 Port 开始:

步骤2-6:nova-compute向neutron-server申请port,neutron-server是用NeutronDbPlugin创建port,创建port时,生成了随机的mac地址,然后用这MAC地址创建port,同时IP是数据库中取出一个预配置的
          ps:创建port时,需要指定网络和mac
             REQ: curl -i http://controller:9696/v2.0/ports.json -X POST -H " X-Auth-Token: ...= " -H " User-Agent: python-neutronclient " -d ' {"port": {"binding:host_id": "compute1", "admin_state_up": true, "network_id": "0a4cd030-d951-401a-8202-937b788bea43" , "tenant_id": "43f66bb82e684bbe9eb9ef6892bd7fd6", "device_owner": "compute:nova", "security_groups": ["8c0dc337-0a6d-4ad7-94bf-a400ee32b2ac"], "device_id": "8671c14e-9ee4-4338-bcc5-8a5f0ea6e1d5"}} '

步骤7-10:创建port,并绑定到ovs
步骤12-14:通过消息队列告知DHCP Agent,port创建结束,并通知新分配的port信息
步骤15-17:DHCP Agent重新生成hosts文件,并重启dnsmasq进程,以供dhcp获取
步骤13返回的port信息示例如下:此时已经带有ip信息

{ " port " : { " status " : " DOWN " ,
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值