18.12.5.2. DHCP Snooping
CTRL_IP_LEARNING=dhcp (DHCP snooping)提供额外的反欺骗安全性,特别是在组合使用过滤器时,仅允许可信 DHCP 服务器来分配 IP 地址。要启用此功能,将变量
DHCPSERVER
设置为有效的 DHCP 服务器的 IP 地址,并提供使用此变量过滤传入的 DHCP 响应的过滤器。
当 DHCP snooping 被启用且 DHCP 租期过期时,客户机虚拟机将不再能够使用 IP 地址,直到从 DHCP 服务器获取新的有效租期。如果迁移了客户机虚拟机,它必须获取新的有效 DHCP 租期才能使用 IP 地址(例如,通过使虚拟机接口停止并重新启动)。
注意
自动 DHCP 检测侦听客户端虚拟机交换的 DHCP 流量,与基础架构的 DHCP 服务器交换。为了避免对 libvirt 的拒绝服务攻击,对这些数据包的评估具有速率限制,这意味着客户机虚拟机每秒发送过多的 DHCP 数据包不会评估所有这些数据包,因此过滤器可能无法适应。假设假定一般 DHCP 客户端行为每秒发送少量的 DHCP 数据包。此外,务必要在基础架构中的所有虚拟客户机上设置适当的过滤器,以避免它们能够发送 DHCP 数据包。因此,guest 虚拟机必须被阻止,将 UDP 和 TCP 流量从端口 67 发送到端口 68,或所有 guest 虚拟机上应使用 DHCPSERVER 变量来限制仅来自于可信 DHCP 服务器的信息。同时,必须在 子网中的所有客户机虚拟机上启用反欺骗措施。
例 18.6. 激活 DHCP 侦听的 IP
以下 XML 提供了一种使用 DHCP 侦听方法激活 IP 地址学习的示例:
<interface type='bridge'> <source bridge='virbr0'/> <filterref filter='clean-traffic'> <parameter name='CTRL_IP_LEARNING' value='dhcp'/> </filterref> </interface>