Openstack之DHCP

半兽人 发表于: 2025-09-19   最后更新时间: 2025-09-19 09:31:27  
{{totalSubscript}} 订阅, 19 游览

DHCP自动给网络里的设备分配 IP 地址和相关的网络配置,而不是让你手动去设置。

OpenStack 里,DHCP 的作用和原理跟传统网络类似,但它是由 Neutron(网络服务组件)来实现的,并且依赖一个专门的代理:neutron-dhcp-agent

1. OpenStack 里的 DHCP 是干嘛的?

在虚拟机(VM)启动时,需要自动获取 IP、网关、DNS 等网络信息。
这些信息不是手动配置的,而是 由 DHCP agent 在后台动态分配

  • 它给虚拟机分配固定或动态的 IP(来自子网的 IP 池)。
  • 它会下发网关地址、DNS 地址。
  • 它还能保证同一个 VM 重启后拿到相同的 IP(如果是 DHCP 保留)。

2. 它是怎么实现的?

  • DHCP agent 本质上是运行在宿主机上的服务,它会为每个虚拟网络子网启动一个 dnsmasq 进程。
  • dnsmasq 就是一个轻量的 DHCP+DNS 服务,用来给虚拟机分配 IP。
  • 当虚拟机接入某个 Neutron 子网时,它会发送 DHCP Discover 广播,Open vSwitch/OVN 会把这个请求转发给对应子网的 dnsmasq,再由它分配地址。

3. 相关命令

你可以用 OpenStack CLI 查看 DHCP 的分配情况:

  • 查看子网的 DHCP 是否启用:
openstack subnet show <subnet-id> -c enable_dhcp
  • 查看 DHCP agent:
openstack network agent list --agent-type dhcp
  • 查看某个网络绑定在哪些 DHCP agent 上:
openstack network agent list --network <network-id>

4. 特点

  • 分布式:每个网络可能会在不同的 DHCP agent 上启动进程。
  • 高可用:多个 DHCP agent 可以同时为同一个子网服务,避免单点故障。
  • 隔离性:不同租户的 DHCP 服务互相隔离,互不影响。
更新于 2025-09-19
在线,11小时前登录

查看OpenStack更多相关的文章或提一个关于OpenStack的问题,也可以与我们一起分享文章