我有一台通过 DHCP 接收 IP 地址的服务器。这似乎有效并且连接正常(目前)。但是,自从安装新文件后我就没有重新启动过,/etc/sysconfig/iptables
因此下次重新启动时我可能会损失很大,以防 DHCP 功能依赖于现在被阻止的连接。
我注意到我的防火墙阻止了传出 UDP DHCP 连接,如下所示:
[22994.373788] Firewall: *UDP_OUT Blocked* IN= OUT=enup0 SRC=$OUR_IP DST=$DHCP_SERVER_IP LEN=328 TOS=0x00 PREC=0x00 TTL=64 ID=53942 DF PROTO=UDP SPT=68 DPT=67 LEN=308 UID=0 GID=0
这可能是一些 DHCP 客户端命令,例如请求续订 DHCP 租约?
如果我阻止此传出请求会发生什么?如果这是 DHCP 服务器实现相关的:也许 RFC 文档要求我不阻止它?
相关:防火墙规则是在启动期间启动网络之前还是之后从/etc/sysconfig/iptables
(由)初始化?iptables.service
我希望尽可能地阻止,否则我会允许它而不是在这里询问。
答案1
阻止该访问的后果是您的 DHCP 客户端将无法续订其 IP 地址租约,直至其到期。
当租约到期并且客户端仍然无法通过单播到达 DHCP 服务器时,DHCP 客户端将取消配置当前的 IP 地址,然后使用广播从头开始 DHCP 请求过程,因此数据包的地址将是 0.0.0.0: 68 -> 255.255.255.255:67。因为这违反了正常的 IP 寻址规则,所以在 Linux 上,DHCP 客户端将需要使用原始套接字,这不会被常规 iptables 过滤规则阻止。除非该网段的IP地址严重短缺,否则DHCP服务器在收到广播请求时很可能会再次为您的系统重新发布相同的IP地址。
因此,总体效果是系统仍将获得其 IP 地址,但每次系统的 DHCP 租约到期时,您可能会遇到短暂但完全不必要的 IP 连接故障。