bind (named) geoip отдаем разные ip, для разных стран с помощью acl, view
Возникла необходимость, для стран востока, в частности Китая, отдавать для сайта, назовем его 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 записи из файла зоны для китая)
Возникли вопросы?
Всегда готов помочь.
Поделись с друзьями:
Рубрики: ArchLinux, CentOS, Debain, Fedora, FreeBSD, Linux Mint, NetWork, Raspberry Pi, Soft, Ubuntu · Теги: acl, BIND, china, DNS, GeoIP, ip, maxmind, named, view, гео, отдавать, таргет