请问如果局域网内有多个 dhcp 服务器(dnsmasq)的话, 可否设置优先级呢

2018-07-17 11:43:48 +08:00
 c3824363
原本两个局域网, 路由器都是 openwrt, 都是通过一个共用的 mac:ip 对照表分配 IP
两个局域网的网段也都是 192.168.123.0/24, 其中一台路由器是 192.168.123.254 另一台 192.168.123.253

用网线把两台路由器的 lan 口连接起来,
设置 uci set dhcp.lan.force=1 (不然 openwrt 检测到局域网有其它 dhcpd 则不启动 dhcpd 功能了)

然后两台路由器通过脚本检测它们的访问外网的功能是否正常, 如果不正常则关闭 dhcpd 功能

这样一个很简单的热备功能就实现了, 一台的外网失效,不能上网的设备只要关闭网络重开启就行了,不是十分完善但是简单有效。

那么问题来了, 如果我想让某台设备( linux win7 android) prefer 使用某个网关 应该怎么设置呢。 最好是能从路由器上控制。 谢谢
3643 次点击
所在节点    问与答
6 条回复
LGA1150
2018-07-17 13:25:41 +08:00
OpenWrt 实现故障转移?参考 https://stijn.tintel.eu
hicdn
2018-07-17 13:46:50 +08:00
192.168.123.254-lan1(wan2)-lan1-192.168.123.253

192.168.123.254 在 network-switch 里把 lan1 也设置成 wan 口,wan2,和 192.168.123.253 的 lan 口连接

192.168.123.254 network-mwan 把 wan2 设置成故障转移
kokutou
2018-07-17 14:25:55 +08:00
土味冗余 2333
gam2046
2018-07-17 17:08:34 +08:00
dhpc 是走广播发现的。没有优先级一说。谁先响应,客户端就用谁的。
zhaiblog
2020-12-15 21:56:50 +08:00
有个办法,我正好也在写类似的脚本给自己用:
主路由上忽略设备 DHCP 请求即可
使用 dnsmasq 的话,配置文件里面写:
```
dhcp-host=00:11:22:33:44:55:66,ignore
```

也可以使用 iptables,拒绝请求:
```
iptables -t raw -N DHCP_clients
iptables -t raw -A PREROUTING -p udp --dport 67 -j DHCP_clients
iptables -t raw -A DHCP_clients -m mac --mac-source 00:11:22:33:44:55:66 -j DROP
iptables -t raw -A DHCP_clients -j ACCEPT
```

然后再写个脚本检测旁路由是否正常,不正常则将上面的语句去掉,让设备能够正常通过主路由的 DHCP 服务器获取 IP
zhaiblog
2020-12-18 22:46:34 +08:00
最后还是放弃了脚本的做法,用 kea-dhcp 另外搭一个 DHCP 服务器即可,kea-dhcp 可以对指定 MAC 下发不同的 dhcp-option,来实现不同设备使用不同网关和 DNS 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/471552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX