V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
c3824363
V2EX  ›  问与答

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

  •  
  •   c3824363 · 2018-07-17 11:43:48 +08:00 · 3665 次点击
    这是一个创建于 2351 天前的主题,其中的信息可能已经有所发展或是发生改变。
    原本两个局域网, 路由器都是 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 使用某个网关 应该怎么设置呢。 最好是能从路由器上控制。 谢谢
    6 条回复    2020-12-18 22:46:34 +08:00
    LGA1150
        1
    LGA1150  
       2018-07-17 13:25:41 +08:00 via Android
    OpenWrt 实现故障转移?参考 https://stijn.tintel.eu
    hicdn
        2
    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
        3
    kokutou  
       2018-07-17 14:25:55 +08:00 via Android
    土味冗余 2333
    gam2046
        4
    gam2046  
       2018-07-17 17:08:34 +08:00
    dhpc 是走广播发现的。没有优先级一说。谁先响应,客户端就用谁的。
    zhaiblog
        5
    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
        6
    zhaiblog  
       2020-12-18 22:46:34 +08:00
    最后还是放弃了脚本的做法,用 kea-dhcp 另外搭一个 DHCP 服务器即可,kea-dhcp 可以对指定 MAC 下发不同的 dhcp-option,来实现不同设备使用不同网关和 DNS 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1338 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 17:26 · PVG 01:26 · LAX 09:26 · JFK 12:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.