dhcp agent用来给一个网络提供DHCP服务。网络的IP地址可以再创建subnet时指定。
dhcp agent启动命令dhcp_agent.py,启动是提供neutron.conf和dhcp_agent.ini配置文件。
重要的配置项
interface_driver ,dhcp agent使用interface_driver来创建tap设备。
dhcp_driver,实现dhcp服务的代码,默认配置是neutron.agent.linux.dhcp.Dnsmasq。dhcp agent默认使用dnsmasq来实现dhcp服务。
dhcp_agent_manager, RPC服务的manager,默认是neutron.agent.dhcp_agent.DhcpAgentWithStateReport
dhcp agent功能
主要有三个任务:
1)报告状态。
2)处理RPC API。
3)启动dhcp服务
1)报告状态
self.heartbeat = loopingcall.FixedIntervalLoopingCall(
self._report_state)
self.heartbeat.start(interval=report_interval)
2)处理RPC API
RPC API处理代码在DhcpAgent中。dhcp agent提供了哪些RPC API可以查看它提供的client来查看。
client代码位于dhcp_rpc_agent_api.py
DhcpAgentNotifyAPI
"""API for plugin to notify DHCP agent."""
主要有:
VALID_METHOD_NAMES = ['network.create.end',
'network.update.end',
'network.delete.end',
'subnet.create.end',
'subnet.update.end',
'subnet.delete.end',
'port.create.end',
'port.update.end',
'port.delete.end']
dnsmasq如何分配IP地址? <