GeoDNS 就是拿一個 IP 位置清單 (依國家分類),餵給 DNS 伺服器,讓不同來源國家的 IP 查詢到不同的回傳結果
網站也提供一些 IP 位置清單下載,有 MaxMind 、 IP2Location 、 DB-IP,也提供程式讓你自行把 CSV 轉成 acl 檔 (純文字檔)
底下作個簡單測試 (BIND 9.16.21 (Extended Support Version))
建立一個 acl 檔,裡面包含了來源 IP (以上的 acl 內容就是長這樣)
vi /etc/named/cross_geoip.acl
acl CROSS_acl {
10.10.10.138/32;
}
再將 acl 檔 include 到 named 設定裡,並設定 view
vi /etc/named.conf
; 這裡尾巴要兩個 ;; 分號 (不知為何)
include "/etc/named/cross_geoip.acl";;
; 建立 view,加入要被過濾的來源 CROSS_acl ,當讀某個 zone 檔時
view "CROSS_view" {
match-clients { CROSS_acl; };
zone "ssorc.tw" {
type master;
file "/var/named/ssorc.tw_CROSS.db";
};
};
; 否則預設就跑這個 view
view "default" {
match-clients { any; };
zone "ssorc.tw" {
type master;
file "/var/named/ssorc.tw.db";
};
};
最後重啟 named
查詢就會有不同結果
dig @server_ip ssorc.tw
留言