同一接口上的客户端之间无连接

同一接口上的客户端之间无连接

我在 Linux 中配置无线接口时遇到问题。出于某种原因,无线客户端生成的发往同一接口上其他无线客户端的流量被丢弃(即 arp 请求、icmp 等)。

例如,10.0.1.2(连接到 wlan0)可以 ping 通 10.0.1.3(连接到 wlan1),反之亦然。但是,10.0.1.4(也连接到 wlan1)无法 ping 通 10.0.1.3。

有趣的是,wireshark 显示传入的数据包,因此它们正在到达接口。我目前已将无线接口连接到网桥,但是没有网桥也会出现问题。我还尝试过各种无线芯片和各种客户端,它们的行为都一样。此外,在无线客户端上手动添加相关的 arp 记录并不能解决问题。

对我来说,这似乎是我遗漏的一些 sysctl 或 ip 路由设置。如有任何意见,我将不胜感激。如果您需要我的配置的任何特定部分,请告诉我。

作为参考,我的 hostapd 配置中未设置 ap_isolate,并且我指定的唯一 sysctl 参数是 net.ipv4.ip_forward = 1,并且在 iptables 中配置了 NAT。

更新 1 (相关 sysctl 配置):

net.ipv4.conf.wls15.accept_local = 0
net.ipv4.conf.wls15.accept_redirects = 1
net.ipv4.conf.wls15.accept_source_route = 1
net.ipv4.conf.wls15.arp_accept = 0
net.ipv4.conf.wls15.arp_announce = 0
net.ipv4.conf.wls15.arp_filter = 0
net.ipv4.conf.wls15.arp_ignore = 1
net.ipv4.conf.wls15.arp_notify = 0
net.ipv4.conf.wls15.bootp_relay = 0
net.ipv4.conf.wls15.disable_policy = 0
net.ipv4.conf.wls15.disable_xfrm = 0
net.ipv4.conf.wls15.drop_gratuitous_arp = 0
net.ipv4.conf.wls15.drop_unicast_in_l2_multicast = 0
net.ipv4.conf.wls15.force_igmp_version = 0
net.ipv4.conf.wls15.forwarding = 1
net.ipv4.conf.wls15.igmpv2_unsolicited_report_interval = 10000
net.ipv4.conf.wls15.igmpv3_unsolicited_report_interval = 1000
net.ipv4.conf.wls15.ignore_routes_with_linkdown = 0
net.ipv4.conf.wls15.log_martians = 0
net.ipv4.conf.wls15.mc_forwarding = 0
net.ipv4.conf.wls15.medium_id = 0
net.ipv4.conf.wls15.promote_secondaries = 0
net.ipv4.conf.wls15.proxy_arp = 0
net.ipv4.conf.wls15.proxy_arp_pvlan = 0
net.ipv4.conf.wls15.route_localnet = 0
net.ipv4.conf.wls15.rp_filter = 1
net.ipv4.conf.wls15.secure_redirects = 1
net.ipv4.conf.wls15.send_redirects = 1
net.ipv4.conf.wls15.shared_media = 1
net.ipv4.conf.wls15.src_valid_mark = 0
net.ipv4.conf.wls15.tag = 0

看起来启用重定向可以解决问题!

答案1

检查无线设备的配置设置。该命令sysctl -a | grep ipv4.conf.wlan0应提供设置。这些是我配置的设置:

net.ipv4.conf.wlan0.accept_redirects = 1
net.ipv4.conf.wlan0.accept_source_route = 1
net.ipv4.conf.wlan0.arp_ignore = 1
net.ipv4.conf.wlan0.转发 = 1
net.ipv4.conf.wlan0.secure_redirects = 1
net.ipv4.conf.wlan0.send_redirects = 1
net.ipv4.conf.wlan0.共享媒体 = 1

相关内容