解决openwrt不能解析内网地址域名

250次阅读
没有评论

共计 766 个字符,预计需要花费 2 分钟才能阅读完成。

 其实之前就有发现,我在路由器(openwrt)后面的机器不能正常解析映射到内网地址的域名,我当时的做法是在openwrthosts文件里加上相应的项来workaround这个问题。当时我还以为只是我自己网络配置出的问题。直到昨晚,微博上有同学跟我聊起这个问题,我才意识到这可能是个普遍性的问题,于是便想google一下解决这个问题。

  最终呢,确认是openwrtdnsmasq的配置问题。只需将openwrt/etc/config/dhcp 文件下,dnsmasq块下的这一句:

option rebind_protection 1

改为

option rebind_protection 0

即可。
  你可以通过下面这一句命令来修改

sed -i ‘s/option rebind_protection 1/option rebind_protection 0/’  /etc/config/dhcp

  看了一下openwrtwikirebind_protection这一个选项的作用是Enables DNS rebind attack protection by discarding upstream RFC1918 responses。按我的理解,即是为了保护网络不受DNS rebind attackDNS重定向攻击?),路由器会将上由路由的对RFC1918域(0.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16,即内网IP段)的响应包扔掉。
  显然这是一个dnsmasqDNS解析的问题,因此如果我们把/etc/resolv.conf下的nameserver 127.0.0.1删除掉,也能workaround这个问题,但那样就相当于放弃了dnsmasqDNS缓存功能,得不偿失

 或者在luci界面DHCP/DNS关闭冲绑定保护

解决openwrt不能解析内网地址域名

正文完
 
admin
版权声明:本站原创文章,由 admin 2018-12-27发表,共计766字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码