想用bind9的view功能实现多线路的自动导向,因在新网,申请的域名不支持这样的功能,所以,只好指向到自己的服务器实现该功能。

实现的步骤:

有两个域名,假设为:a.net和b.cn两个域名,在a.net中添加dns服务器ns.a.net和ns1.a.net分别指向到我自己的服务器IP上,并且在新网的mydns功能中做两条A记录也分别对应解析到这两个IP上,b.cn的dns服务器也修改到ns.a.net和ns1.a.net上

两个服务器分别搭建bind9环境,named.conf如下:

key “rndc-key” {
 algorithm hmac-md5;
 secret “eVlLdn/KBaRN3qZFzgwcFA==”;
};

controls {
 inet 127.0.0.1 port 953
 allow { 127.0.0.1; } keys { “rndc-key”; };
};

options {
 directory “/var/named”;
 version “I am bind”;
 listen-on {218.58.15.155;127.0.0.1;};
};

acl CNCGROUP{58.16.0.0/16;
58.17.0.0/17;
58.17.128.0/17;
58.18.0.0/16;
58.19.0.0/16;
58.20.0.0/16;
58.22.0.0/15;};
view “internal” {
match-clients {10.0.0.8/8;};
  recursion yes;
  zone “.” {
 type hint;
 file “/var/named/named.ca”;
  };
  zone “localhost” IN {
 type master;
 file “/var/named/localhost.zone”;
 allow-update { none; };
  };

  zone “0.0.127.in-addr.arpa” {
 type master;
 file “/var/named/named.local”;
 allow-update { none; };
  };
};
view “cnc” {
  match-clients {CNCGROUP;};
  recursion no;

  zone “b.cn” {
  type master;
  file “/var/named/b.cn.cnc”;
  };
};

view “other” {
  match-clients {any;};
  recursion no;

  zone “b.cn” {
  type master;
  file “/var/named/b.cn.bind”;
  };
};

named.ca即从网上下载的最新的named.root

named.local为:
$TTL86400
@ INSOA localhost.root.localhost. (
 42; serial (d. adams)
 1H; refresh
 15M ; retry
 1000H ; expiry
 1H ); minimum

 IN NS localhost.

1 INPTR localhost.

localhost.zone为:
$TTL86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
 42; serial (d. adams)
 3H; refresh
 15M ; retry
 1W; expiry
 1D ); minimum

 1D IN NS@
 1D IN A 127.0.0.1
b.cn.bind为:

$TTL86400
$ORIGIN b.cn.
@ INSOAns.a.net. root.b.cn.(
 1 ; Serial
 3600; Refresh
 900; Retry
 720000; Expire
 3600 ); Minimum
 ;INNSlocalhost.
 INNSns.a.net.
 INNSns1.a.net.
@ INA 222.14.180.98
www INA 222.14.180.98
pic INA 222.14.180.99
* INA 222.14.180.99

b.cn.cnc为:
$TTL86400
$ORIGIN b.cn.
@ INSOAns.a.net. root.b.cn.(
 1 ; Serial
 3600; Refresh
 900; Retry
 720000; Expire
 3600 ); Minimum
  ; INNSlocalhost.
 INNSns.a.net.
 INNSns1.a.net.
@ INA 218.58.15.154
www INA 218.58.15.154
pic INA 218.58.15.155
url INA 218.58.15.156
* INA 218.58.15.155