通过zerotier转发dns解析到openwrt

通过zerotier转发dns解析到openwrt

家里的dhcp中已经有了各个设备的静态地址和名称,但在公司没法使用,都要用IP地址。

因此想着能不能将这些设备的解析转发到openwrt的dns。

正好最近因为要将公司dns和openwrt的dns分开(否则Windows下会默认从公司dns解析,但对墙外的网站都会污染解析),找到了coredns这个工具,

经过几番摸索,找出方案如下

  1. 确保zerotier能够工作,即可以透明访问内网所有地址和端口
  2. 在coredns的配置中加入如下
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14

th {
    forward . 10.8.9.1 {
      force_tcp
    }
    import snip
}

tq {
    forward . 10.88.9.1 {
      force_tcp
    }
    import snip
}

其中最重要的就是force_tcp,我估计可能是运营商对udp的包做了限制。

  1. 为了对不同区域的私有域名区别转发,需要在openwrt的dhcp中设置本地域名,以便针对不同域名转发到不同的openwrt。这里我设置家里为th,另一处为tq。

实践证明coredns不好用,经常解析出错。现在用AdGuardHome。