架了VPN,DNS又有点小问题了。在内网有些内部的地址要解析,只是内部的DNS对twitter和facebook的解析,得到的结果ping在VPN的主机上ping不到,又不想只用8.8.8.8这样的公开的DNS,而丢失对内部地址的解析。只好自己架一个DNS做个代理,对于内部的地址,就去内部的DNS请求,其它的都用8.8.8.8。
装了最常见的bind9,配置named.conf文件,一般在/etc/下
options {
directory "/opt/local/var/named";
// uncomment the following lines to turn on DNS forwarding,
// and change the forwarind ip address(es) :
//forward first;
forwarders {
8.8.8.8;
};
listen-on { 127.0.0.1; };
// to allow only specific hosts to use the DNS server:
allow-query {
127.0.0.1;
};
pid-file "/opt/local/var/run/named.pid";
};
这是做一个简单的转发,所有DNS请求都转到8.8.8.8去,试了下,能正常工作。
以内网地址是example.com结尾的为例,对内网的地址解析去特定的内网DNS,假定192.168.0.100
zone "example.com" in {
type forward;
forward first;
forwarders {
192.168.0.100;
};
};
配置文件的问题在重启named的时候会打在syslog里。如果希望跟踪DNS的具体解析,可以在conf里加上
logging{
channel named_log{
file "/var/log/named/named.log" versions 3;
severity info;
print-severity yes;
print-time yes;
print-category yes;
};
category default{
named_log;
};
};