花了我一下午学习DNS知识,以及一晚上如何搭建DNS,累死了。
我的目标是让虚拟机变成DNS域名解析器。
然后在Windows下能够通过nslookup 解析一个假的域名。
装dns服务,这个我就不多讲了。不同的版本linux,安装不同。我的是redhat 6。
安装好后,你需要如下几个文件。(没有的话自己创建)
一下三个文件
named.conf ( /var/named/chroot/etc/ 下)
fake12345.com.zone ( /var/named/chroot/var/下)
192.168.211.rev (( /var/named/chroot/var/下)
options { listen-on port 53 { any;}; //监听来自任何ip的dns请求,any里面可以写需要监听的ip,any表示任意ip listen-on-v6 port 53 { ::1; }; //关于ipv6的,这里表示允许,别管 directory "/var/named"; //数据目录 allow-query { any; }; forwarders { 192.168.1.1; };//当我的Windows nslookup 不能解析是,通过这个地址解析。你可以删除这行。 recursion yes; }; zone "." IN { type hint; file "named.ca"; }; zone "fake12345.com" IN { //我的假域名为 www.fake12345.com type master; file "fake12345.com.zone"; //待会还得创建一个 fake12345.com.zone 文件 allow-update { none; }; allow-transfer { none; }; }; zone "211.168.192.in-addr.arpa" IN { //我的fake12345.com.zone 的ip对应的是 192.168.211.X,所以逆解析,需要这样 type master; file "192.168.211.rev"; //我们也需要创建这样一个文件 allow-update { none; }; allow-transfer { none; }; };
$TTL 86400 @ IN SOA fake12345.com. root.fake12345.com. ( 2011072100 3H 15M 1W 1D ) IN NS svr2.benet.com. svr2 IN A 192.168.211.10 www IN A 192.168.211.11 ldap IN A 192.168.211.12 mail IN A 192.168.211.13 @ IN MX 10 mail.fake12345.com. * IN A 192.168.211.2 @ IN A 192.168.211.2
$TTL 86400 @ IN SOA fake12345.com. root.fake12345.com. ( 2011072100 3H 15M 1W 1D ) @ IN NS svr2.fake12345.com. 2 IN PTR mail.fake12345.com.
windows 不要设置成自动获取 dns,换成手动的,由于我的Windows ip是192.168.1.4,所以我把虚拟机的ip设置成192.168.1.10,
所以要想让虚拟机变成dns解析器,就需要把windows的首选dns变成192.168.1.10。
这样有一个问题,那我的windows还能上网吗?
这个要看named.conf 文件了。我上文说过,就是forwarders 设置的。
192.168.1.1是 tp-link的地址,负责转发给上一级的dns服务器,也就是你平时上网的路径。
说白了 ,如果你自动获取dns,解析是这样的:windows发送请求到192.168.1.1解析-》192.168.1.1发送给dns服务器
如果你设置手动dns,解析是这样的:windows发送请求到192.168.1.10 解析-》linux查看有没有相应的ip-》有的话返回给 windows,没有的话发送到192.168.1.1解析-》...