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
留言