gpt4 book ai didi

linux - 如何删除特定的 dhcp 响应?

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:03 26 4
gpt4 key购买 nike

我想从 dhcp 服务器中删除 mac addr 为 3c:e3:c9:64:3b:f7 的 dhcp 响应,所以我可以使用以下命令:iptables -t raw -A PREROUTING -p udp --sport 67 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROP
我从这里学习:https://serverfault.com/questions/302445/how-do-i-mac-filter-with-dhcp-server

但是我的接口(interface)使用 802.1q 协议(protocol),我希望 vlan20(eth0.20) 无法接收来自 3c:a3:c9:a4:3b:f7 的 dhcp 响应,而是从 00:30:67:00:38:CF 接收。 vlan20中有2个dhcp服务器,其中一个是被动的,它只响应列表中的特定mac地址,被动的一个是我自己使用的,另一个是公共(public)的。这种情况下,我只是放弃来自3c的响应:a3:c9:a4:3b:f7 那么它只会从 00:30:67:00:38:CF 接收。

另一个 vlan30(eth0.30),只有一个 dhcp 服务器 3c:e3:c9:64:3b:f7,所以无事可做。

我试过这个iptables -t raw -A PREROUTING -i eth0.121 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROP ,但没有用。

我错过了什么?

最佳答案

您的网卡只有一个 MAC 地址,但有多个 IP 接口(interface)。他们需要静态分配他们的地址。
DHCP 是一种不理解虚拟地址的广播协议(protocol)。
DHCP 服务器发送一个 DHCPOFFER,它是如何被传送到 eth0:30 而不是 eth0 的? eth0:20 通过广播发送 DHCPDISCOVER 或 DHCPREQUEST。
DHCP 服务器以 DHCPOFFER 响应以通知客户端其 IP 地址。如果 eth0:20 还没有 IP 地址,DHCPOFFER 可能不会到达。
DHCP 服务器进行广播并依靠链路层将以太网帧(以及堆叠在其顶部的其他相关层)正确传送到协调 MAC 地址。这就是 DHCP 分配的工作原理。
DHCPOFFER 的问题在于,从第 2 层的角度来看,两个“设备”(eth0 和 eth0:30)无法区分,因此(从第 3 层的角度来看)DHCPOFFER 的目标地址为 255.255.255.255。
虽然 VLAN 可以工作,但您必须确保您有一个实际支持 802.1q 的 NIC。
我会确保你的网卡支持 VLAN,我会检查内核是否加载了 vlan 模块
检查是否加载
lsmod | grep 8021q
如果没有加载,让我们加载它
模组探针 8021q
至于 Iptables 命令,这应该是最后的手段,因为上面需要正常工作。
iptables -I INPUT -p udp -m udp --sport 68 -m mac --mac-source 3c:e3:c9:64:3b:f7 -j DROP

关于linux - 如何删除特定的 dhcp 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37437175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com