1. 程式人生 > 實用技巧 >智慧DNS

智慧DNS

BIND9的acl訪問控制列表

4個內建acl

  • any:任何主機
  • none:沒有主機
  • localhost:本機
  • localnet:本地子網所有IP

自定義acl

簡單acl

1
2
3
acl "someips" {                               //定義一個名為someips的ACL  
10.0.0.1; 192.168.23.1; 192.168.23.15; //包含3個單個IP
};

複雜acl

1
2
3
4
5
6
7
acl "complex" {             //定義一個名為complex的ACL  
"someips"; //可以巢狀包含其他ACL
10.0.15.0/24; //包含10.0.15.0子網中的所有IP
!10.0.16.1/24; //非10.0.16.1子網的IP
{10.0.17.1;10.0.18.2;}; //包含了一個IP組
localhost; //本地網路介面IP(含實際介面IP和127.0.0.1)
};

使用acl

1
2
3
allow-update { "someips"; };
allow-transfer { "complex"; };
...

BIND9的view檢視功能

view語句定義了檢視功能。檢視是BIND9提供的強大的新功能,允許DNS伺服器根據客戶端的不同,有區別地回答DNS查詢,每個檢視定義了一個被特定客戶端子集見到的DNS名稱空間。這個功能在一臺主機上執行多個形式上獨立的DNS伺服器時特別有用。

view的語法範例

1
2
3
4
5
6
7
8
view view_name [class] {
match-clients { address_match_list } ;
match-destinations { address_match_list } ;
match-recursive-only { yes_or_no } ;
[ view_option; ...]
[ zone-statistics yes_or_no ; ]
[ zone_statement; ...]
};

view配置範例1:按照不同業務環境解析

注:以下是內網DNS的view使用範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
acl "env-test" {
10.4.7.11;
};
acl "env-prd" {
10.4.7.12;
};

view "env-test" {
match-clients { "env-test"; };
recursion yes;
zone "od.com" {
type master;
file "env-test.od.com.zone";
};
};
view "env-prd" {
match-clients { "env-prd"; };
recursion yes;
zone "od.com" {
type master;
file "env-prd.od.com.zone";
};
};
view "default" {
match-clients { any; };
recursion yes;
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};

view配置範例2:智慧DNS

注:以下特指公網智慧DNS配置範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//電信IP訪問控制列表
acl "telecomip"{ telecom_IP; ... };
//聯通IP訪問控制列表
acl "netcomip"{ netcom_IP; ... };
view "telecom" {
match-clients { "telecomip"; };
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.telecom.zone";
};
};
view "netcom" {
match-clients { "netcomip"; };
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.netcom.zone";
};
};
view "default" {
match-clients { any; };
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.zone";
};
};

原文地址:https://blog.stanley.wang/page/2/