解决浮动网关在一些不支持同时设置dns和网关的路由器上下发浮动dns和网关的办法,另外加上主路由dns

复现目标

让指定设备(例如 Win11 主机)自动获得:

  • 默认网关192.168.50.4(VIP)

  • DNS192.168.50.4(优先)+ 192.168.50.1(备用)
    并且不依赖 GUI 的静态 DHCP 配置。

你的地址:

  • 主路由:192.168.50.1

  • 旁路由:192.168.50.2

  • VIP:192.168.50.4

  • Win11:192.168.50.57

  • Win11 MAC:08:BF:B8:2A:58:3E

A. 在 AX86U(Merlin)上操作(SSH)

1)确认 dnsmasq 支持加载 /jffs/configs/dnsmasq.d

执行:

grep -n "conf-dir=/jffs/configs/dnsmasq.d" /etc/dnsmasq.conf

如果能看到类似一行输出:

xx:conf-dir=/jffs/configs/dnsmasq.d

说明已启用(你这里就是已启用)。

2)确保目录存在

mkdir -p /jffs/configs/dnsmasq.d

3)为你的 Win11 写入“按 MAC 下发网关+DNS”的配置文件

文件名你可以自定义,这里用:
/jffs/configs/dnsmasq.d/hustarpc-floatip.conf

执行(直接复制粘贴):

cat > /jffs/configs/dnsmasq.d/hustarpc-floatip.conf <<'EOF'
# hustarPC: gateway + DNS to FLOAT IP (50.4), DNS fallback to router (50.1)
dhcp-host=08:BF:B8:2A:58:3E,set:hustarpc,192.168.50.57,infinite
dhcp-option=tag:hustarpc,3,192.168.50.4
dhcp-option=tag:hustarpc,6,192.168.50.4,192.168.50.1
EOF

(可选)检查文件内容:

cat /jffs/configs/dnsmasq.d/hustarpc-floatip.conf

4)重启 dnsmasq

service restart_dnsmasq


B. 在 Win11 上让 DHCP 重新获取(两种任选一种)

方法 1:管理员 CMD 执行

ipconfig /release
ipconfig /renew
ipconfig /all

方法 2:网卡禁用/启用一次,然后查看

“网络适配器”里禁用再启用 → 再看“网络连接详细信息”。


C. 验证是否成功(Win11 上看结果)

打开“网络连接详细信息”或 ipconfig /all,确认:

  • IPv4 默认网关:192.168.50.4

  • IPv4 DNS 服务器:第一是 192.168.50.4,第二是 192.168.50.1

  • DHCP 服务器:192.168.50.1(正常,因为 DHCP 还是主路由发的)


D. 以后新增设备怎么做(复用模板)

只要重复 A-3 那一步:换 3 个东西即可

  1. MAC 地址

  2. 需要固定的 IP(也可以不固定)

  3. 配置文件名(随意)

新设备模板(复制改三处)

cat > /jffs/configs/dnsmasq.d/<device>.conf <<'EOF'
dhcp-host=<MAC>,set:<tag>,<IP>,infinite
dhcp-option=tag:<tag>,3,192.168.50.4
dhcp-option=tag:<tag>,6,192.168.50.4,192.168.50.1
EOF

service restart_dnsmasq


E. 维护/删除(需要回滚时用)

1)查看当前你写过哪些设备规则

ls -la /jffs/configs/dnsmasq.d/

2)删除某台设备的规则并重启 dnsmasq

rm -f /jffs/configs/dnsmasq.d/hustarpc-floatip.conf
service restart_dnsmasq