The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Делегирование реверсной зоны c DDNS"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (DNS / Linux)
Изначальное сообщение [ Отслеживать ]

"Делегирование реверсной зоны c DDNS"  +/
Сообщение от teegoremail (ok), 01-Апр-20, 02:52 
ОКРУЖЕНИЕ И ЗАДАЧА

Приветствую всех читающих. Ситуация такая - у меня в тестовом лабораторном окружении KVM есть сеть 172.16.50/24 в которой работают 2 сервера под управлением Centos 7 на них установлены Bind и ISC DHCP:

* Мастер DNS : controller.wsvirt.home (172.16.50.2)
* Slave DNS: controller2.wsvirt.home (172.16.50.3)

Все клиенты в этой сети - это Linux системы, которые получают IP по DHCP и также для них настроен динамический DNS.

DNS сервер является авторитетным для зоны wsvirt.home.

В этом виртуальном окружении я проверяю сценарий в котором в данной сети нужно создать домен AD для обслуживания Windows клиентов и для этих целей мы решили использовать Samba 4. Samba сервер для Centos 7 я собрал из исходников с поддержкой Heimdal Kerberos.

Для домена AD я решил выделить подсеть 172.16.50.192/26 и создать для неё домен ad.wsvirt.home.

Контроллер домена - это система Centos 7 на которой работает Samba 4, Bind 9 и ISC DHCP сервер. Samba использует бэкенд BIND_DLZ. Доменное имя этого контроллера AD - это addc1.ad.wsvirt.home и IP 172.16.50.193.

Windows клиенты получают свои IP по DHCP и также динамически полуют доменные имена.

В реальности все клиентские системы должны быть в одном широковещательном домене.

Чтобы реализовать данные настройки я делегировал обслуживание прямой ad.wsvirt.home и реверсной  172.16.50.192/26 зон с сервера controller.wsvirt.home на контроллер AD addc1.ad.wsvirt.home в соответствии с RFC 2317.


ПРОБЛЕМА

В принципе всё работает как и задумано кроме одного. Когда я проверяю разрешение обратных адресов через контроллер AD всё нормально:


$ dig -x 172.16.50.193 @addc1.ad.wsvirt.home

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -x 172.16.50.193 @addc1.ad.wsvirt.home
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43507
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;193.50.16.172.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
193.50.16.172.in-addr.arpa. 86400 IN    CNAME   193.50.16.172.ddns.
193.50.16.172.ddns.     900     IN      PTR     addc1.ad.wsvirt.home.

;; Query time: 7 msec
;; SERVER: 172.16.50.193#53(172.16.50.193)
;; WHEN: Mon Mar 30 21:05:12 IDT 2020
;; MSG SIZE  rcvd: 121

Но если сделать разрешение через upstream сервер controller.wsvirt.home, то я получаю следующее:


$ dig -x 172.16.50.193 @controller.wsvirt.home

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> -x 172.16.50.193 @controller.wsvirt.home
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 48825
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;193.50.16.172.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
193.50.16.172.in-addr.arpa. 86400 IN    CNAME   193.50.16.172.ddns.

;; AUTHORITY SECTION:
.                       8133    IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2020033001 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 172.16.50.2#53(172.16.50.2)
;; WHEN: Mon Mar 30 21:49:41 IDT 2020
;; MSG SIZE  rcvd: 162

Мне нужно чтобы Linux клиенты из домена wsvirt.home могли разрешать реверсные имена в домене ad.wsvirt.home. Как это можно сделать и можно ли вообще это сделать?


КОНФИГУРАЦИЯ

Сервер controller.wsvirt.home

/etc/named.conf:


acl local { 172.16.50.0/24; 127.0.0.1; };

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/rndc.key";

server 172.16.50.3 {
        keys { "rndc-key"; };
};

options {
        listen-on port 53 { local; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { local; };
        allow-transfer { none; };
        notify no;
        forwarders { 8.8.8.8; 8.8.4.4; };
        forward only;
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};


zone "." IN {
        type hint;
        file "named.ca";
};

zone "wsvirt.home" IN {
        type master;
        file "wsvirt.home.db";
        allow-update { key "rndc-key"; };
        allow-transfer { key "rndc-key"; };
        notify yes;
        forwarders {};
};

zone "50.16.172.in-addr.arpa" IN {
        type master;
        file "50.16.172.db";
        allow-update { key "rndc-key"; };
        allow-transfer { key "rndc-key"; };
        notify yes;
};

/var/named/50.16.172.db:


$ORIGIN .
$TTL 86400      ; 1 day
50.16.172.in-addr.arpa  IN SOA  controller.wsvirt.home. root.wsvirt.home. (
                                153        ; serial
                                3600       ; refresh (1 hour)
                                1800       ; retry (30 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      controller.wsvirt.home.
                        NS      controller2.wsvirt.home.
$ORIGIN 50.16.172.in-addr.arpa.
2                       PTR     controller.wsvirt.home.
$TTL 86400      ; 1 day
3                       PTR     controller2.wsvirt.home.
;
50.16.172.ddns.         IN      NS      addc1.ad.wsvirt.home.
$GENERATE 193-254 $     IN      CNAME   $.50.16.172.ddns.


/etc/dhcp/dhcpd.conf:


include "/etc/rndc.key";

default-lease-time 600;
max-lease-time 7200;
authoritative;
ddns-update-style interim;

class "windows" {  
        match if substring (option vendor-class-identifier, 0, 8) = "MSFT 5.0";
}

subnet 172.16.50.0 netmask 255.255.255.0 {
        log (info, concat("Vendor Class ID (60): ", option vendor-class-identifier));
        log (info, concat("DHCP Client ID (61): ", option dhcp-client-identifier));
        log (info, concat("User Class ID (77): ", option user-class));
        option domain-name-servers 172.16.50.2, 172.16.50.3;
        option ntp-servers 172.16.50.2;
        option routers 172.16.50.1;
        option broadcast-address 172.16.50.255;
        default-lease-time 600;
        max-lease-time 7200;
        option ip-forwarding off;
        ignore client-updates;
        option domain-name "wsvirt.home";
        option domain-search "wsvirt.home";
        option netbios-scope "";
        option netbios-node-type 8;
        option netbios-name-servers 172.16.50.2;
        option netbios-dd-server 172.16.50.2;
        ddns-updates on;
        ddns-domainname "wsvirt.home.";
        ddns-rev-domainname "in-addr.arpa.";

        pool {  
                range 172.16.50.21 172.16.50.190;
                deny members of "windows";
        }

        zone wsvirt.home {
                primary 172.16.50.2;
                key "rndc-key";
        }

        zone 50.16.172.in-addr.arpa {
                primary 172.16.50.2;
                key "rndc-key";
        }
}


Контроллер AD addc1.ad.wsvirt.home

/etc/named.conf:


options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    recursing-file  "/var/named/data/named.recursing";
    secroots-file   "/var/named/data/named.secroots";
    allow-query     { any; };
    forwarders  { 172.16.50.2; 172.16.50.3; };
    forward only;
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;
    bindkeys-file "/etc/named.root.key";
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
    tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
    minimal-responses yes;
};

zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/var/lib/samba/bind-dns/named.conf";


/etc/dhcp/dhcpd.conf:


include "/etc/rndc.key";

default-lease-time 600;
max-lease-time 7200;
min-secs 5;
authoritative;
ddns-update-style none;

class "others" {
    match if substring (option vendor-class-identifier, 0, 8) != "MSFT 5.0";
}

subnet 172.16.50.192 netmask 255.255.255.192 {
    log (info, concat("Vendor Class ID (60): ", option vendor-class-identifier));
    log (info, concat("DHCP Client ID (61): ", option dhcp-client-identifier));
    log (info, concat("User Class ID (77): ", option user-class));
    option routers 172.16.50.1;
    option broadcast-address 172.16.50.255;
    default-lease-time 600;
    max-lease-time 7200;
    option ip-forwarding off;
    ignore client-updates;
    option ntp-servers 172.16.50.193;
    option domain-name-servers 172.16.50.193;
    option domain-name "ad.wsvirt.home";
    option domain-search "ad.wsvirt.home";
    option netbios-name-servers 172.16.50.193;
    option netbios-dd-server 172.16.50.193;
    option netbios-scope "";
    option netbios-node-type 8;
    ddns-rev-domainname "ddns";

    pool {
        range 172.16.50.210 172.16.50.254;
        deny members of "others";
    }
}

on commit {
    set noname = concat("dhcp-", binary-to-ascii(10, 8, "-", leased-address));
    set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
    set ClientDHCID = concat (
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
    );
    set ClientName = pick-first-value(option host-name, config-option-host-name, client-name, noname);
    log(concat("Commit: IP: ", ClientIP, " DHCID: ", ClientDHCID, " Name: ", ClientName));
    execute("/usr/local/sbin/dhcp-dyndns.sh", "add", ClientIP, ClientDHCID, ClientName);
}

on release {  
    set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
    set ClientDHCID = concat (
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":",
    suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2)
    );
    log(concat("Release: IP: ", ClientIP));
    execute("/usr/local/sbin/dhcp-dyndns.sh", "delete", ClientIP, ClientDHCID);
}

on expiry {  
    set ClientIP = binary-to-ascii(10, 8, ".", leased-address);
    log(concat("Expired: IP: ", ClientIP));
    execute("/usr/local/sbin/dhcp-dyndns.sh", "delete", ClientIP, "", "0");
}

Содержание ревересной зоны 50.16.172.ddns:


$ samba-tool dns query localhost 50.16.172.ddns @ ALL
Password for [administrator@AD.WSVIRT.HOME]:
  Name=, Records=2, Children=0
    SOA: serial=3, refresh=900, retry=600, expire=86400, minttl=3600, ns=addc1.ad.wsvirt.home., email=hostmaster.ad.wsvirt.home. (flags=600000f0, serial=3, ttl=3600)
    NS: addc1.ad.wsvirt.home. (flags=600000f0, serial=1, ttl=3600)
  Name=193, Records=1, Children=0
    PTR: addc1.ad.wsvirt.home (flags=f0, serial=3, ttl=900)
  Name=230, Records=1, Children=0
    PTR: winxp-1.ad.wsvirt.home (flags=f0, serial=3, ttl=3600)

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Licha Morada (ok), 01-Апр-20, 04:45   +/
> есть сеть 172.16.50/24
> Для домена AD я решил выделить подсеть 172.16.50.192/26

В смысле, интервал 172.16.50.192-254 внутри подсети 172.16.50.0/24, или у вас две (пересекающихся) сети находятся в одном и том-же широковещательном домене?
Какие маски сети на у controller.wsvirt.home и у addc1.ad.wsvirt.home? Вывода "ip route" будет достаточно.

> В реальности все клиентские системы должны быть в одном широковещательном домене.

В одном домене друг с другом, или в одном домене вместе с controller, controller2 и addc1?
Если все в одном широковещательном домене, то у вас, кажется, будет race condition между dhcpd развёрнутом на controller и на addc1. Они оба будут пытаться отвечать одному и тому-же клиенту.

Оставьте всех в одной сети /24 (например 172.16.50.0/24), или разнесите на 2 или более сети /26 (например 172.16.50.0/26 и 172.16.50.192/26) в разных широковещательных доменах. Но не перемешивайте разные сети в одном домене, а то будут трудно предсказуемые результаты.


По существу делегирования обратной зоны, соответствующей classless CIDR (то есть сети не /0, /8, /16 или /24). Так можно, но через костыли. Дело в том что DNS умеет в иерархию обратных зон используя десятичную нотацию адресов IP и точку как разделитель. Он может отличить, например, 172.16.50.0/24 от 172.16.51.0/24. А 172.16.50.0/25 от 172.16.50.128/25 не может, так как на половине последнего октета, в десятичной нотации, точку не поставишь.
Но, я полагаю, вы об этом уже всё прочитали и не устрашились.

> Мне нужно чтобы Linux клиенты из домена wsvirt.home могли разрешать реверсные имена
> в домене ad.wsvirt.home. Как это можно сделать и можно ли вообще
> это сделать?

Собственно, ваш "$GENERATE 193-254" эти костыли и есть. Оно вам надо? Не проще ли будет вашу лабораторию разнести на разные classful подсети?
У вас лаборатория по Самбе, или по экзотическим случаям делегирования обратных зон DNS?


Я однажды делал примерно так:
controller:/var/named/50.16.172.db
$ORIGIN 50.16.172.in-addr.arpa.
2                       IN      PTR     controller.wsvirt.home.
3                       IN      PTR     controller2.wsvirt.home.
$GENERATE 193-254 $     IN      NS   addc1.ad.wsvirt.home.
(но это не точно)
(освежил здесь https://dnswatch.com/dns-docs/BIND-administration-guide/Bv9A...)


Говорят, по RFC2317 можно и так:
controller:/var/named/50.16.172.db
$ORIGIN 50.16.172.in-addr.arpa.
2                       IN      PTR     controller.wsvirt.home.
3                       IN      PTR     controller2.wsvirt.home.
192/26                  IN      NS      addc1.ad.wsvirt.home.
$GENERATE 193-254 $     IN      CNAME   $.192/26.50.16.172.in-addr.arpa.
(подсмотрел на https://superuser.com/questions/1450158/bind-create-reverse-...)
Но читаем https://www.ietf.org/rfc/rfc2317.txt:
Some DNS implementations are not kind to special characters in domain names, e.g. the "/" used in the above examples.


Я подозреваю, что в вашей конфигурации кто-то непрвильно обрабатывает ответ CNAME от controller.
Что будет если
dig ns 50.16.172.ddns @controller.wsvirt.home
?

Ещё можно попробоать как-то обозначить зону 50.16.172.ddns на controller. Есть гипотеза что он не знает что делать с запросами о *.ddns.
Например, задать её в качестве slave или forward.


Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2

2. Сообщение от teegoremail (ok), 01-Апр-20, 22:29   +/
> Оставьте всех в одной сети /24 (например 172.16.50.0/24), или разнесите на 2
> или более сети /26 (например 172.16.50.0/26 и 172.16.50.192/26) в разных широковещательных
> доменах. Но не перемешивайте разные сети в одном домене, а то
> будут трудно предсказуемые результаты.

Спасибо что обратили внимание на проблемы топологии и маршрутизации, но в данный момент я бы не хотел затрагивать эту тему - она заслуживает отдельного топика. Данная схема прошла обкатку "в поле" и вроде без замечаний, если будут проблемы буду решать их по мере поступления.


> Собственно, ваш "$GENERATE 193-254" эти костыли и есть. Оно вам надо? Не
> проще ли будет вашу лабораторию разнести на разные classful подсети?
> У вас лаборатория по Самбе, или по экзотическим случаям делегирования обратных зон
> DNS?

Костыль и есть - костыль из RFC 2317, конечно проще было бы вынести AD в другой бродкаст домен и выделить ему сеть класса C, но задача у меня сделать так как я описал. Лаборатория в основном для обкатки связки DNS+DHCP+Samba и за исключением описанной проблемы всё работает хорошо.


> Я однажды делал примерно так:
> controller:/var/named/50.16.172.db
> $ORIGIN 50.16.172.in-addr.arpa.
> 2            IN      PTR     controller.wsvirt.home.
> 3            IN      PTR     controller2.wsvirt.home.
> $GENERATE 193-254 $     IN     NS   addc1.ad.wsvirt.home.
> (но это не точно)
> (освежил здесь https://dnswatch.com/dns-docs/BIND-administration-guide/Bv9A...)

Да я тоже читал это руководство на сайте ISC https://kb.isc.org/docs/aa-01589 и ещё массу других мануалов - во всех описывается один и тот же рецепт с созданием CNAME.


> Что будет если
> dig ns 50.16.172.ddns @controller.wsvirt.home

Если я сейчас выполняю команду

dig ns 50.16.172.ddns @controller.wsvirt.home
то получаю такое:


; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> ns 50.16.172.ddns @controller.wsvirt.home
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 16226
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;50.16.172.ddns.                        IN      NS

;; AUTHORITY SECTION:
.                       10771   IN      SOA     a.root-servers.net. nstld.verisign-grs.com. 2020040101 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 172.16.50.2#53(172.16.50.2)
;; WHEN: Wed Apr 01 22:16:02 IDT 2020
;; MSG SIZE  rcvd: 118


> Ещё можно попробоать как-то обозначить зону 50.16.172.ddns на controller. Есть гипотеза
> что он не знает что делать с запросами о *.ddns.
> Например, задать её в качестве slave или forward.

Мысль о том чтобы явно указать Бинду на сервере controller.wsvirt.home использовать зону 50.16.172.ddns с сервера addc1.ad.wsvirt.home мне тоже приходила в голову и пытался сделать форвардинг, добавив в named.conf на controller.wsvirt.home:


zone "50.16.172.ddns." {
    type forward;
    forwarders { 172.16.50.193; };
};

Однако это не помогло, я даже попробовал сделать addc1.ad.wsvirt.home авторитетным мастером для зоны 50.16.172.ddns, но и это тоже бесполезно - реверсные имена из этой зоны тогда вообще не резолвятся.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #3

3. Сообщение от Licha Morada (ok), 01-Апр-20, 23:14   +/
>> Оставьте всех в одной сети /24 (например 172.16.50.0/24), или разнесите на 2
>> или более сети /26 (например 172.16.50.0/26 и 172.16.50.192/26) в разных широковещательных
>> доменах. Но не перемешивайте разные сети в одном домене, а то
>> будут трудно предсказуемые результаты.
> Спасибо что обратили внимание на проблемы топологии и маршрутизации, но в данный
> момент я бы не хотел затрагивать эту тему - она заслуживает
> отдельного топика. Данная схема прошла обкатку "в поле" и вроде без
> замечаний, если будут проблемы буду решать их по мере поступления.

Ради бога. Слона правильно есть по частям.
Рекомендую на каждый чих отслеживать, не мешает ли это коммуникации между controller и addc1, между серверами и клиентами, и от правильного ли DHCP получают адрес склиенты.
Я бы прямо сниффер поставил в нескольких терминалах, и смотрел, есть ли трафик везде где должен. А то мало ли...

>[оверквотинг удален]
>> controller:/var/named/50.16.172.db
>> $ORIGIN 50.16.172.in-addr.arpa.
>> 2            IN      PTR     controller.wsvirt.home.
>> 3            IN      PTR     controller2.wsvirt.home.
>> $GENERATE 193-254 $     IN     NS   addc1.ad.wsvirt.home.
>> (но это не точно)
>> (освежил здесь https://dnswatch.com/dns-docs/BIND-administration-guide/Bv9A...)
> Да я тоже читал это руководство на сайте ISC https://kb.isc.org/docs/aa-01589 и ещё
> массу других мануалов - во всех описывается один и тот же
> рецепт с созданием CNAME.

Обратите внимание, в моём примере нет CNAME.


>> Что будет если
>> dig ns 50.16.172.ddns @controller.wsvirt.home
> получаю такое:
> ;50.16.172.ddns.                      
>  IN      NS

Я думаю, этот неуспех прямо связан с проблемой. Чтобы узнать нужный адрес, клиенту требуется отрезольвить адрес в зоне 50.16.172.ddns, а не получается.

> Мысль о том чтобы явно указать Бинду на сервере controller.wsvirt.home
> использовать зону 50.16.172.ddns с сервера addc1.ad.wsvirt.home мне тоже приходила
> в голову и пытался сделать форвардинг
> ...
> Однако это не помогло, я даже попробовал сделать addc1.ad.wsvirt.home авторитетным
> мастером для зоны 50.16.172.ddns, но и это тоже бесполезно - реверсные
> имена из этой зоны тогда вообще не резолвятся.

А controller в принципе может достучаться до addc1? А наоборот?
Подозреваю, что ваша топология шлёт вам привет. Пакеты controller->addc1 доходят, а обратно теряются, т.к. addc1 считает что controller находится в другой сети и к нему надо ходить через шлюз.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #4

4. Сообщение от teegoremail (ok), 02-Апр-20, 02:37   +/
> А controller в принципе может достучаться до addc1? А наоборот?
> Подозреваю, что ваша топология шлёт вам привет. Пакеты controller->addc1 доходят, а обратно
> теряются, т.к. addc1 считает что controller находится в другой сети и
> к нему надо ходить через шлюз.

Ну если верить tcpdump то сервера в общем то между собой общаются и находят друг друга:


# tcpdump -vvvnni eth0 port 53 and host 172.16.50.193
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
23:45:46.748934 IP (tos 0x0, ttl 64, id 53368, offset 0, flags [none], proto UDP (17), length 75)
    172.16.50.2.35597 > 172.16.50.193.53: [bad udp cksum 0xbd2c -> 0xd63d!] 101+% [1au] PTR? 193.50.16.172.ddns. ar: . OPT UDPsize=4096 DO (47)
23:45:46.751086 IP (tos 0x0, ttl 63, id 14698, offset 0, flags [none], proto UDP (17), length 109)
    172.16.50.193.53 > 172.16.50.2.35597: [bad udp cksum 0xbd4e -> 0x21cf!] 101* q: PTR? 193.50.16.172.ddns. 1/0/1 193.50.16.172.ddns. [15m] PTR addc1.ad.wsvirt.home. ar: . OPT UDPsize=4096 (81)
23:45:47.070016 IP (tos 0x0, ttl 64, id 53531, offset 0, flags [none], proto UDP (17), length 75)
    172.16.50.2.53475 > 172.16.50.193.53: [bad udp cksum 0xbd2c -> 0xb0ec!] 57280+% [1au] DS? 193.50.16.172.ddns. ar: . OPT UDPsize=4096 DO (47)
23:45:47.072165 IP (tos 0x0, ttl 64, id 15002, offset 0, flags [none], proto UDP (17), length 142)
    172.16.50.193.53 > 172.16.50.2.53475: [bad udp cksum 0xbd6f -> 0x2d30!] 57280* q: DS? 193.50.16.172.ddns. 0/1/1 ns: 50.16.172.ddns. [1h] SOA addc1.ad.wsvirt.home. hostmaster.ad.wsvirt.home. 3 900 600 86400 3600 ar: . OPT UDPsize=4096 (114)


Это я сделал дамп во время выполнения команды

dig -x 172.16.50.193 @controller.wsvirt.home

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #5

5. Сообщение от Licha Morada (ok), 02-Апр-20, 03:11   +/
>> А controller в принципе может достучаться до addc1? А наоборот?
>> Подозреваю, что ваша топология шлёт вам привет. Пакеты controller->addc1 доходят, а обратно
>> теряются, т.к. addc1 считает что controller находится в другой сети и
>> к нему надо ходить через шлюз.
> Ну если верить tcpdump то сервера в общем то между собой общаются
> и находят друг друга:
> ...
> Это я сделал дамп во время выполнения команды
> dig -x 172.16.50.193 @controller.wsvirt.home

Это вы на каком хосте tcpdump делали, и где dig запускали?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #6

6. Сообщение от teegoremail (ok), 02-Апр-20, 03:46   +/
> Это вы на каком хосте tcpdump делали, и где dig запускали?

tcpdump на controller а dig на клиентской системе

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #7

7. Сообщение от Licha Morada (ok), 02-Апр-20, 03:54   +/
>> Это вы на каком хосте tcpdump делали, и где dig запускали?
> tcpdump на controller а dig на клиентской системе

Тогда надо логи BIND смотреть, почему он не получил ответ "PTR addc1.ad.wsvirt.home." а клиенту не сказал.
И заодно tcpdump ответа клиентской системе, на controller и на ней самой, а то вдруг он сказал.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

8. Сообщение от teegoremail (ok), 02-Апр-20, 16:34   +/
Нашёл я где собака порылась. Bind 9 не умеет работать с DNSSEC когда используется форвардинг и зная это я установил на сервере addc1.ad.wsvirt.home в /etc/named.conf значения глобальных опций в качестве workaroubd:

dnssec-enable no;
dnssec-validation no;

А сделать тоже самое на upstream сервере controller.wsvirt.home я забыл - там эти значения этих опции были установлены в yes, поменял их на  no и всё заработало. Вопрос использования DNSSEC с форвардингом - это уже другая история.

Благодарю  Licha Morada за участие и ценные советы.

Ответить | Правка | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру