我有一台通过 DHCP 接收其 IP 地址的服务器。这似乎有效并且连接正在工作(目前)。但是,自从安装了新文件后,我还没有重新启动,/etc/sysconfig/iptables
所以下次重新启动时我可能会损失很大。
我注意到我的防火墙阻止了像这样的传出 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
(by ) 初始化防火墙规则?iptables.service
我希望尽可能多地阻止,否则我只会允许它而不是在这里询问。
阻止该访问的后果是您的 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 连接故障。