之前设置dnsmasq,一直没有奏效,后来摸索了一下,初步发现它的原理:
正常的流程应该是像这样的,先由client来发送DNS请求到网关,然后网关的dnsmasq处理这个请求,
再根据设置决定如何处理这个请求。
但是,在下面这种情况下,dnsmasq就没有作用了:
当你在接口-LAN里面设置了序号为6的option,也就是dns服务器地址设置,比如 6,8.8.8.8,那么客户端被通告
的DNS服务器就是8.8.8.8,客户端的所有请求都会发送到8.8.8.8,而不是发送到网关。
就像这个样子:
若这里不填写的话,客户端的请求会先发送到网关,然后由网关决定。这里的网关指的是路由器。
也就是像下面这个样子:
当client的dns服务器地址是网关时,网关必须做出相应的处理,不然客户端的dns请求得不到回应,
也就会导致无法访问网站。
当只设置一个dns的时候,这样和指派给客户端dns地址的效果是一样的。
dnsmasq的强大之处之一是可以选择多个dns来解析,比如这里将baidu和163交给114dns解析,其他交给8.8.8.8来解析。