Правильная конфигурация Bind DNS для внутренней и внешней сети с Ubuntu Server 20.04

Правильная конфигурация Bind DNS для внутренней и внешней сети с Ubuntu Server 20.04

Я работаю в офисе начального образования и настраиваю локальный сервер с Ubuntu Server 20.04 как для внутреннего, так и для внешнего использования. Все школы и офисы принадлежат к национальной сети «.sch.gr». Сеть назначила нашему офису домен dipe****.sch.gr, а наш внешний IP-адрес — 81.186.21.**. Извне все работает нормально. Внутренний IP-адрес сервера — 10.145.252.10. Я хочу, чтобы компьютеры из локальной сети, когда они вводят dipe****.sch.gr, разрешались во внутренний IP-адрес 10.145.252.10. Возможно ли это? Я установил для этого Bind, но не могу найти правильную конфигурацию. Может кто-нибудь помочь?

решение1

Да, это возможно. В ISC BIND есть специальная функция, называемая "views". См. например,здесьиздесь.

По сути, вы делаете следующее.

Вам нужны два файла зоны, один для "внешних" клиентов, другой для "внутренних". Я предполагаю, что вы уже настроили его для "внешних" клиентов. Допустим, конфигурация такая:

zone "dipe****.sch.gr" IN {
        type master;
        file "pri/dipe****.sch.gr.zone";
};

Вы меняете это на:

view "internal" {
    match-clients { 10.0.0.0/8; };
    zone "dipe****.sch.gr" IN {
            type master;
            file "pri/dipe****.sch.gr.zone_int";
    };

}; 

view "external" {
    match-clients { any; };
    recursion no;
    zone "dipe****.sch.gr" IN {
            type master;
            file "pri/dipe****.sch.gr.zone";
    };
};

Обратите внимание, что ваша текущая конфигурация зоны была перенесена во внешний вид. Также обратите внимание, что порядок видов важен, внутренний вид должен появляться перед внешним, поскольку определение внешнего вида имеет подстановочный знак catch-all в match-clients.

Затем на запросы DNS из 10.xxx будут отвечать из файла ''dipe****.sch.gr.zone_int'', в котором вы настраиваете свои частные адреса. На все запросы от клиентов, которые не соответствуют 10.xxx, будут отвечать из ''dipe****.sch.gr.zone'', который предназначен для публичных адресов.

Если ваши внутренние клиенты также существуют в других сетях (192.168.xx, 172.16.xx), добавьте их в match-clientsпредставление internal. Вы также можете настроить acl и поместить его в match-clients вместо того, чтобы указывать их в представлении напрямую.

Связанный контент