bind (named) geoip отдаем разные ip, для разных стран с помощью acl, view

dns bind geoip

Возникла необходимость, для стран востока, в частности Китая, отдавать для сайта, назовем его test.com, другой ip, отличающийся от основного, или вообще не отдавать определенные записи зоны, например IN A.
В интернете есть несколько решений, например пропатчить bind для использования geoip maxmind, или использовать powerdns, но я решил это дело настроить с помощью acl и view, в acl мы заноси все адреса, для которых мы будем отдавать измененную зону, их можно заполнить каким-либо скриптом, а во views мы распишем для каждого acl, доступы к зоне, например так:

acl "CN" {
xx.xx.xx.xx/32;
};

view "CN" {
match-clients { CN; };
recursion no;
zone "test.com" {
type master;
file "clients/test.com.cn";
};
};
view "NotMatched" {
match-clients { any; };
recursion no;
zone "test.com" {
type master;
file "clients/test.com";
};
};


В представлении CN, мы будем отдавать зону из файла test.com.cn, для остальных из test.com.
Файл зоны test.com, отдаваемый для всех:

$TTL    30
;
test.com. IN SOA ns1.testhoster.com. hostmaster.testhoster.com. (
                        2016113001      ; Serial
                        60              ; Refresh after 30 seconds
                        30              ; Retry after 1 minute
                        604800          ; Expire after 1 week
                        30 )            ; Minimum TTL of 1 minute
;
;
; Name Servers
;
test.com.                IN NS           ns1.testhoster.com.
test.com.                IN NS           ns2.testhoster.com.
;
;
; Addresses for the canonical names
test.com.                IN A            127.0.0.1
*.test.com.              IN A            127.0.0.1

Файл зоны test.com.cn, отдаваемый только для  Китая:

$TTL    30
;
test.com. IN SOA ns1.testhoster.com. hostmaster.testhoster.com. (
                        2016113001      ; Serial
                        60              ; Refresh after 30 seconds
                        30              ; Retry after 1 minute
                        604800          ; Expire after 1 week
                        30 )            ; Minimum TTL of 1 minute
;
;
; Name Servers
;
test.com.                IN NS           ns1.testhoster.com.
test.com.                IN NS           ns2.testhoster.com.
;
;
; Addresses for the canonical names
test.com.                IN A            127.0.0.2
*.test.com.              IN A            127.0.0.2

Если необходимо, чтобы дружественный Китай, вообще не мог достучаться до сайта, то можно, просто убрать IN A записи из файла зоны для китая)
Возникли вопросы?
Всегда готов помочь.

Поделись с друзьями:

Опубликовано 30.11.2016 в 20:09 · Автор komivlad · Ссылка
Рубрики: ArchLinux, CentOS, Debain, Fedora, FreeBSD, Linux Mint, NetWork, Raspberry Pi, Soft, Ubuntu · Теги: , , , , , , , , , , ,

Написать комментарий