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

 

最後修改日期: 2021 年 09 月 30 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。