我正在使用一个有点奇怪的设置(我认为)允许我在欺骗我的 IP 和 MAC 时连接到子网(在测试环境中,做网络安全学院 ^^)。但是,路由器似乎没有路由我的任何请求,我不明白为什么。
我的设置如下:
Ip: 169.254.66.66
route options:
Destination Gateway Genmask Flags
0.0.0.0 169.254.66.1 0.0.0.0 UG
169.254.0.0 0.0.0.0 255.255.0.0 U
Arp options:
Address HWType HWAddress Flags
169.254.66.1 ether xx:xx:xx:xx:xx:xx CM
然后有一些 iptables 和 ebtables 规则可以重写传出请求的 IP 和 MAC(我想这不是问题,它们已经工作了几个星期了)但它们看起来像这样:
target prot source destination
SNAT icmp 169.254.66.66 anywhere to:some_legit_ip_from_subnet
通过此设置,我能够 ping 默认网关(或 arp 表中的任何硬件地址),但网关不会在子网上进一步路由我的请求。更奇怪的是,它确实将我的请求路由到互联网。例如,我可以 ping 8.8.8.8 就好了,但是没有来自子网的 ips。
我不知道这是否清楚。请问是不是。
感谢您的时间!
感谢grawity我找到了解决方案。那里有两个问题导致了问题。第一:默认情况下,网关不会将流量路由到内部子网。第二:当使用与您发送请求的子网不同的 IP 时,ARP 表不会自动更新,这会导致对邻居的请求失败。
所以解决方案:在网关的子网内分配一个 IP,让 ARP 自行更新或手动更新 ARP 表。
谢谢你!
编辑:测试表明解决方案是两者的结合。不知道情况是否总是如此,但在我的交换机和路由器中,我的交换机和路由器不响应 ARP 请求。这意味着必须手动添加这些 MAC。
EDIT2:如果您希望能够访问内部网络和外部网络,更多测试表明这是一个部分解决方案。如果外部 IP 以与您的子网相同的编号开头,它将尝试对其进行 ARP,而不是通过网关到达它。