Neutron dhcp实现

概述

Neutron dhcp实现了为虚机提供动态分配IP的服务,dhcp功能由neutron-server和dhcp-agent配合实现。其中server负责接收请求并向agent发送网络、子网、端口等数据;agent接收数据,创建、配置dhcp实例。社区的dhcp功能由dnsmasq软件实现,即由该软件充当dhcp server。

常用dhcp相关的配置

表1 neutron-server所使用的dhcp配置(/etc/neutron/neutron.conf)

配置项

用途

默认值

dhcp_lease_duration

IP租期,-1为IP永久有效

86400 (24小时)

dhcp_agent_notification

是否向dhcp-agent发送消息

true

network_scheduler_driver

Dhcp-agent的调度算法

neutron.schedul

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
neutron-server 通过调用 neutron.agent.rpc.PluginApi 类的 create_subnet 方法将子网信息发送给 DHCP Agent,具体代码如下: 1. 在 neutron/server/rpc.py 中定义了 PluginApi 类,该类用于向各种插件发送 RPC 消息。 ```python class PluginApi(agent_rpc.PluginApi, l3_rpc.L3PluginApi, dhcp_rpc_base.DhcpPluginApi): def create_subnet(self, context, subnet): """Create a subnet.""" return self.call(context, self.make_msg('create_subnet', subnet=subnet), version='1.1') ``` 2. 在 neutron/agent/rpc.py 中定义了 PluginApi 类的父类 agent_rpc.PluginApi,该类用于向各种 Agent(包括 DHCP Agent)发送 RPC 消息。 ```python class PluginApi(agent_rpc.API): """Agent side of the neutron RPC API.""" def create_subnet(self, context, subnet): """Create a subnet.""" return self._call_plugin('create_subnet', context=context, subnet=subnet) ``` 3. 在 neutron/agent/dhcp/agent.py 中定义了 DHCP Agent,该 Agent 接收 PluginApi 发送的消息,并进行相应的处理,包括配置 DHCP 服务等。 ```python class DhcpAgentWithStateReport(DhcpAgent): def create_subnet(self, context, subnet): """Handle the subnet create RPC event.""" # 解析子网信息 network_id = subnet['network_id'] subnet_id = subnet['id'] cidr = subnet['cidr'] gateway_ip = subnet['gateway_ip'] # ... 其他操作 # 配置 DHCP 服务 self.enable_dhcp_helper(network_id, subnet_id, device_owner, cidr, gateway_ip, dhcp_server_ips) ``` 需要注意的是,在 neutron.conf 文件中需要配置 DHCP Agent 启用 DHCP 服务,具体配置项为: ```ini [DEFAULT] # ... dhcp_agent_notification = True ``` 这个配置项需要设置为 True,才能使 neutron-server 发送子网信息给 DHCP Agent。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值