吵吵   2012-03-15  阅读:8,599

老实说,openWrt是个好东西,吵吵就用它实现了802.1x协议,并且帮助不少大学实现了无线路由梦。但是从一开始,吵吵就没能够解决一个问题,即dns的中继问题。如果我们在内网使用路由器的话,我们发现继承过来的dns是127.0.0.1,这样子就会导致校园内的那些网站就打不开了。因为没有校园内的dns解析服务,我们就无法通过正确的ip地址来链接到校园网内的网站。

这个问题,吵吵其实也研究过的,先前的做法是在lan中加入
option ‘dhcp_opiton’ ’6,192.168.168.154′
来解决这个问题,具体可见:
局域网中使用openWrt路由网站访问不了

但是这个要手动设置,如果学校的dns还经常变的话,那就玩完了,于是乎,我还是想把它改为自动的。

通过ssh链接到路由器上我们发现/etc/resolv.conf是如下的:
search lan
nameserver 127.0.0.1
但是当我打开/tmp/resolv.conf.auto后又分明看到:
nameserver 192.168.168.164
nameserver 192.168.168.165
search fimmu.edu.cn

也就是说路由器是获取到了内网的dns,但是并没有因此而分配下去,那么有问题的就是dnsmasq了,它没有正确的分配好这些东西。

既然如此,吵吵就写了一个脚本,将该文件中的dnsserver写入lan的配置中去:

我修改了dnsmasq的init.d中的启动文件,将dnsserver取出后用config_set设置成lan的dhcp_option,本以为如此就万事ok了。但是当我打开/etc/config/network后竟然发现没有了

但是如果用config_get的话又存在,也就是说虽然取出来了,但是却不能够写入到配置文件,那么开机的时候自动设置也惘然了。

那么就剩下两条路了,要么直接写入network的配置文件中去,要么看看dnsmasq到底哪里出错了。

有知道的朋友一定要告知我一声哦,太折磨人了。

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

12条回应:“再探openWrt局域网中dns不能中继问题”

  1. 以前比较关心这个

  2. 青岛葡萄酒说道:

    每天都来转一圈

  3. 南浦月说道:

    为嘛我木有出现这个问题?

  4. 混日子说道:

    我也没碰见过这种情况

  5. 孪生子说道:

    来学习一下啦

  6. 刘学政博客说道:

    是你的文章太深刻,不是我不愿意看,不懂……

  7. java博客说道:

    师兄果然还是比较擅长网络方面….膜拜下….

  8. 糖尿病足说道:

    我来看看你博客

  9. 过来支持一下了啊

  10. 松鹤说道:

    dnsmasq好像有个选项是抛弃私有地址的解析的,如果校内网站的地址是私有地址的话,就会被dnsmasq抛弃,这样就访问不了校内网站了,找到它把它设置成允许就行,好像是叫什么“丢弃私有地址的上行(RFC1918)响应数据”,把它前面的勾去掉就行了

  11. coasterli说道:

    config dnsmasq
    option localise_queries ‘1’
    option expandhosts ‘1’
    option leasefile ‘/tmp/dhcp.leases’
    option rebind_protection ‘0’
    option nohosts ‘1’
    option resolvfile ‘/tmp/resolv.conf.auto’

    你把最后一行加上,它就用.auto来解析了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注