You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于在isc-dhcp-server和dnsmasq中推送带自定义非零度量值的无类静态路由的技术咨询

在isc-dhcp-server和dnsmasq中推送带自定义非零度量值的无类静态路由

没问题,我来帮你解决这个度量值的问题——你说的情况确实很典型,默认0度量的路由很容易和物理直连路由抢优先级,导致连通性异常。下面分别说下isc-dhcp-server和dnsmasq怎么配置自定义度量的路由:

一、给isc-dhcp-server配置带自定义度量的路由

首先,isc-dhcp-server需要用RFC3442定义的无类静态路由选项(code 121),同时为了兼容Windows客户端,最好也配上微软的私有选项(code 249)。

  • 先在你的dhcpd.conf里确认是否已经定义了这两个选项,如果没有的话,先加上:
    option rfc3442-classless-static-routes code 121 = array of integer 8;
    option ms-classless-static-routes code 249 = array of integer 8;
    
  • 然后就可以推送带度量值的路由了,格式是:度量值, 前缀长度, 目标网络字节, 网关字节。比如你要推送192.168.10.0/24走192.168.42.10,度量值设为10,就这么写:
    option rfc3442-classless-static-routes 10, 24, 192,168,10, 192,168,42,10;
    option ms-classless-static-routes 10, 24, 192,168,10, 192,168,42,10;
    
    解释下:第一个数是度量值,24是前缀长度,然后是目标网络的前3个字节(因为/24,所以不用写第四个0),最后是网关的完整4个字节。
  • 改完配置后,重启服务生效:
    systemctl restart isc-dhcp-server

二、给dnsmasq配置带自定义度量的路由

dnsmasq的配置更简单直接,用dhcp-option指令结合无类静态路由选项就行:

  • 在dnsmasq.conf里添加推送路由的配置,格式是:dhcp-option=option:classless-static-routes, 度量值, 前缀长度, 目标网络, 网关。比如你要推送192.168.42.0/24走192.168.10.10,度量值设为10,就写:
    dhcp-option=option:classless-static-routes, 10, 24, 192.168.42.0, 192.168.10.10
    dhcp-option=option:ms-classless-static-routes, 10, 24, 192.168.42.0, 192.168.10.10
    
    同样,加上ms-classless-static-routes是为了兼容Windows客户端。
  • 如果要推多条路由,直接在后面用逗号接下一个路由的参数就行,比如:
    dhcp-option=option:classless-static-routes, 10,24,192.168.42.0,192.168.10.10, 15,16,10.0.0.0,192.168.10.1
    
  • 重启dnsmasq服务让配置生效:
    systemctl restart dnsmasq

最后提个小建议:把度量值设得比物理直连路由的度量值高(比如10、20这类),这样物理直连的路由会被优先选用,只有当物理链路不可达时,才会触发这些VPN相关的路由,正好匹配你的网络场景需求。

备注:内容来源于stack exchange,提问作者Adam Ryczkowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:45:30