亚瑟ax1800升级支持自定义DNS作旁路由WIFI还是要NAT

前言

当看到京东云无线路由器推送固件更新的时候,有说明支持自定义域名网DNS后,联想到之前文章《解决京东云ax1800 pro亚瑟 旁路由内网不通问题》有提到过,小米路由默认就支持旁路由功能,就因支持自定义局域网DNS。就迫不及待要更新了。

image-20240921133800777

升级

升级前

image-20240626205813636

升级后

image-20240626205823864

参考别人的https://cloud.tencent.com/developer/article/2036952

在这里插入图片描述

原因分析

注1: 问题在主路由身上,而不是旁路由。

注2: 不是所有路由器都有此问题,取决于固件及其配置参数。

3: 以下都是以 Redmi AX5 作为主路由讲述的。

数据从主机发送到主路由 AP,会经过虚拟网桥(下面简称 bridge),然后再到网桥上其他接口。 一般而言,我们常用的无线路由器(例如:Redmi AX5 ),都创建了一个名为 br-lan的 bridge,其桥接了以太网和无线设备,我们可以用 brctl show来查看:root@XiaoQiang:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br-lan         7fff.28d127e7dd8c       no             eth1
                                                      eth2
                                                      eth3
                                                      wl0
                                                      wl1
br-miot         7fff.2ed127e7dd8e       no             wl13
root@XiaoQiang:~#

可以看到,网桥 br-lan 桥接了 eth1、eth2、eth3、wl0、wl1 五个网卡接口(二层设备)。 另外,值得一提的是,eth1、eth2、eth3(还有用于 wan 口的 eth4)实际上是属于同一交换机上的端口(由 IPQ8075 —5口千兆交换芯片管理),然而,在这里它们被抽象成独立的网卡接口。又因为 eth1、eth2、eth3 被桥接在一起,为了加速转发,这3个接口之间数据转发其实是直接在二层(链路层)走交换机芯片被快速转发的,并不经过 bridge。如果是 wl0、wl1 (二层设备,分别负责2.4G、5G)和 eth1、eth2、eth3 之间收发数据,那就 必须经过 bridge了,因为它们的协议都不同(一个是 IEEE802.11,一个 IEEE802.3),帧格式自然不同,必须交给 CPU 处理转换才行。

当内核变量 net.bridge.bridge-nf-call-iptables = 1 时,netfilter 会调用 iptables 的相关钩子函数去处理 bridge 上的数据,也就是让数据包经过一遍防火墙(看变量名字也能猜出来是干什么)。

要知道,iptables 是具有状态机制的防火墙 的配置工具(不过,我经常就把 iptables 当作防火墙)。状态机制是 iptables 中特殊的一部分,其实它不应该叫状态机制,因为它只是一种连接跟踪机制。但是,很多人都认可状态机制这个名字。连接跟踪可以让 Netfilter 知道某个特定连接的状态。

解决办法

原来,路由器内部早就定义好了旁路由检测方式。 明白这些,就简单多了,登陆 Redmi AX5 网页后台,在DHCP参数页,设置一个或两个DNS为非192.168.31.1的IP就行了,当然把默认网关改成旁路由也可以,不过我不想那样。 然后保存重启路由器就行了。 此方法应该也适用 Xiaomi/Redmi 其他路由器(我猜的)

在这里插入图片描述

别人的解决办法是只要修DNS为非本路由的地址,就能启用了旁路由模式。

总结

可能京东云无线路由器根本就没有小米的那么周到,也就是根本没考虑旁路由当网关的情况。这次折腾以失败告终,wifi模式下还是要使用伪装,也就是要多一次NAT

fdsfsdf

生成海报
点赞 0

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐