URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID14
Нить номер: 2525
[ Назад ]

Исходное сообщение
"Samba в роли PDC, ddns для клиентов, замена wins?"

Отправлено gard , 26-Мрт-12 12:42 
Привет всем!  :)
Буквально вчера разбирался с поддержкой wins в самба, попробовал, покрутил - работает. Однако, наслышан, что совместно/заместо wins используют dns, а именно ddns, который реализуется через связку dhcp+bind. Вот текущий конфиг самбы, вдруг кому то будет интересно:
[global]
        workgroup = urfu-nsk
        netbios name = tux
        server string = pdc
        wins support = Yes
        name resolve order = wins bcast hosts
        domain logons = Yes
        preferred master = Yes
        os level = 255
        time server = yes
        disable spoolss = yes
        load printers = no

#       log level = 5 passdb:5 auth:10 winbind:2

#       socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        interfaces = lo eth0 192.168.2.0/24
        bind interfaces only = Yes
        hosts allow = 192.168.2. 127.

        username map = /etc/samba/users.map
#       invalid users = root
        map to guest = Bad User
        guest account = gard

        add group script = /etc/samba/scripts/addPdcGroup.sh %g
        delete group script = /usr/sbin/groupdel %g
        add user script = /etc/samba/scripts/addPdcUser.sh %u
        delete user script =  /usr/sbin/userdel %u
        set primary group script = /usr/sbin/usermod -g %g %u
        add machine script = useradd -M -N -s /bin/false -g machines %u

        logon script = login.bat
#       logon path = \\%L\profile
        logon path =

[netlogon]
        comment = logon service for all user groups
        path = /home/netlogon
        read only = Yes
        browseable = no

#[profile]
#       comment = network profiles for users
#       path = /home/data/%U/.profile
#       profile acls = yes
#       create mask = 0600
#       directory mask = 0700
#       valid users = +%G
#       csc policy = disable
#       read only = no
#       browseable = no

#Пользовательские каталоги, общие шары
[data]
        comment = home folder for user
        path = /home/data/%U
        valid users = %U
        csc policy = disable
        read only = no
        browseable = no
        include = /etc/samba/recycle.conf

[share]
        comment = shared folder
        path = /home/shares/%G
        valid users = +%G
        csc policy = disable
        read only = no
        browseable = no
        create mask = 0770
        directory mask = 0770
        include = /etc/samba/recycle.conf

[netShare]
        comment = shared Folder for all users
        path = /home/gard/NetShare
        writable = yes
        guest ok = yes
        write list = @staff @empls
        include = /etc/samba/recycle.conf

Самба пока крутится на компьютере с адресом 192.168.2.10 (мой рабочий комп, на котором ставлю опыты. А dhcp и dns у меня крутятся на шлюзе, который имеет адрес 192.168.2.1. Конфиг dhcp со шлюза:

# dhcpd.conf

authoritative;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

#option ms-classless-static-routes code 249 = array of unsigned integer 8;
#option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

subnet 192.168.2.0 netmask 255.255.255.0 {
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.2.255;
        option routers 192.168.2.1; #,192.168.2.1;
        option domain-name-servers 192.168.2.1; #93.88.181.2,8.8.8.8,93.88.182.2;
        #option ntp-servers 192.168.2.1;

        option domain-name "urfu";
        ddns-updates on; #Разрешение Dynamic DNS
        ddns-update-style interim;
        option netbios-name-servers 192.168.2.10; #Самба-сервер, выступающий в роли WINS-сервера
        option netbios-node-type 8;

        default-lease-time 3600;  #36000;
        max-lease-time 7200; #43200;

#       Клиенты получают маршруты от сервера DHCP (для работы этого надо раскомменитровать определение выше)
#       option ms-classless-static-routes  16,172,16,172,16,10,1, 8,10,172,16,10,1, 20,93,88,176,172,16,10,1;

        range 192.168.2.30 192.168.2.254;

        group top{
        host area51 { hardware ethernet 00:1C:C0:5A:21:E1; fixed-address 192.168.2.10; }
        host dhcp11 { hardware ethernet 00:1c:c0:5a:22:4c; fixed-address 192.168.2.11; }
        host dhcp12 { hardware ethernet 00:e0:4c:16:11:29; fixed-address 192.168.2.12; }
        host dhcp13 { hardware ethernet 00:50:ba:53:49:aa; fixed-address 192.168.2.13; }
        host dhcp14 { hardware ethernet 00:1c:c0:5a:33:1f; fixed-address 192.168.2.14; }
        host dhcp15 { hardware ethernet 00:1c:c0:0a:0f:26; fixed-address 192.168.2.15; }
        host dhcp16 { hardware ethernet 00:1c:c0:0a:0f:18; fixed-address 192.168.2.16; }
        host dhcp17 { hardware ethernet 70:71:bc:0b:c9:c5; fixed-address 192.168.2.17; }
        host dhcp18 { hardware ethernet 00:19:66:2c:4e:a9; fixed-address 192.168.2.18; }
        host dhcp19 { hardware ethernet 00:19:66:2c:4e:a1; fixed-address 192.168.2.19; }
        host dhcp20 { hardware ethernet 00:01:6c:a5:bc:85; fixed-address 192.168.2.20; }
        host dhcp21 { hardware ethernet 00:1c:c0:0a:0f:4a; fixed-address 192.168.2.21; }
        }
}

Как я понимаю для связки с pdc Samba (wins или же ddns) тут важными являются параметры:
        option domain-name "urfu";
        ddns-updates on; #Разрешение Dynamic DNS
        ddns-update-style interim;
        option netbios-name-servers 192.168.2.10; #Самба-сервер, выступающий в роли WINS-сервера
        option netbios-node-type 8;

Что касается dns-сервера, который также крутится на шлюзе, с сегодняшнего дня это bind, до этого стоял dnsmasq. Итак, выдержка моей новосозданной локальной зоны с named.conf:

//Внутренняя зона
zone "urfu" IN {
      type master;
      file "urfu.zone";
      allow-query { lan; };
      allow-update { lan; };
      allow-transfer { lan; };
};

zone "2.168.192.in-addr.arpa" IN {
      type master;
      file "192.168.2.zone";
      allow-query { lan; };
      allow-update { lan; };
      allow-transfer { lan; };
};


Соответствующие файлы прямого и обратного преобразования:
[root@area51 ~]# cat /var/named/urfu.zone 
$TTL 3h
@ IN SOA ns.urfu. gard.area51.gmail.com. (
                20120322        ; serial (date)
                3h              ; время обновления
                1h              ; повтор каждый час
                1w              ; как долго хранить информацию
                1h )            ; TTL (время жизни ) записи

; Адреса DNS-серверов
@         IN NS         ns.urfu.

; Адреса узлов для зоны
ns              IN A        192.168.2.1
tux              IN A        192.168.2.10

; Псевдонимы
gw         IN CNAME     ns
[root@area51 ~]# cat /var/named/192.168.2.zone
$TTL 3h
@ IN SOA ns.urfu. gard.area51.gmail.com. (
                20120322        ; serial (date)
                3h              ; время обновления
                1h              ; повтор каждый час
                1w              ; как долго хранить информацию
                1h )            ; TTL (время жизни ) записи

; Адреса DNS-серверов
@         IN NS         ns.urfu.

; Адреса узлов для зоны
1                  IN PTR        ns.urfu.
10              IN PTR        tux.urfu.
[root@area51 ~]#


В named.conf как я понимаю за возможность реализации ddns отвечает директива:
allow-update { lan; };

Она позволяет клиентам вносить записи о себе в эту зону dns?

И вот мне интересно как же виндовс клиенты, которые будут в домене samba PDC, будут посылать запросы на внесение себя в список объектов dns-зоны? Это вообще реализуемо? Может быть все работает совсем по другому, а не так как я думаю? Просветите, знающие люди. =)

ps: простите, если спрашиваю банальные или глупые вещи, сам только-только начал разбираться с самба, год готовился, а тут прям недели две уже читаю, копаю, пробую. Но чем больше узнаю, тем больше понимаю, что я ничего не знаю. =)


Содержание

Сообщения в этом обсуждении
"Samba в роли PDC, ddns для клиентов, замена wins?"
Отправлено chemtech , 26-Мрт-12 15:40 
> И вот мне интересно как же виндовс клиенты, которые будут в домене
> samba PDC, будут посылать запросы на внесение себя в список объектов
> dns-зоны?

DDNS работает и без samba. Виндовое имя компа после получения IP записывается в DNS.



"Samba в роли PDC, ddns для клиентов, замена wins?"
Отправлено gard , 26-Мрт-12 17:20 
> DDNS работает и без samba. Виндовое имя компа после получения IP записывается
> в DNS.

Спасибо за простой и понятный ответ. Нужно будет попробовать отключить самбу и попробовать попинговать хосты по именам. =)


"Samba в роли PDC, ddns для клиентов, замена wins?"
Отправлено chemtech , 26-Мрт-12 18:58 
>> DDNS работает и без samba. Виндовое имя компа после получения IP записывается
>> в DNS.
> Спасибо за простой и понятный ответ. Нужно будет попробовать отключить самбу и
> попробовать попинговать хосты по именам. =)

Рекомендую Dnsmasq. Гораздо легче в понимании чем bind)


"Samba в роли PDC, ddns для клиентов, замена wins?"
Отправлено gard , 27-Мрт-12 08:23 
> Рекомендую Dnsmasq. Гораздо легче в понимании чем bind)

dnsmasq стоял до недавнего времени, просто решил поставить bind, потому что dhcp отдельно, bind отдельно.. =)


"Samba в роли PDC, ddns для клиентов, замена wins?"
Отправлено gard , 27-Мрт-12 11:42 
А подскажите пожалуйста еще, когда клиент вносит запись о себе в DNS, после того, как клиент отключается - будет ли удалена запись? Я заметил, что named переписывает (дополняет) файлы зон при динамической регисрации клиентов.

И еще немного недопонимаю может быть. Вроде бы все настроил, конфиг dhcpd.conf сейчас такой:

authoritative;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

key dhcpupdate {
        algorithm hmac-md5;
        secret SICqF8F0BVjvoE2EQS0eXA==;
}

zone urfu {
        primary 127.0.0.1;
        key dhcpupdate;
}

zone 2.168.192.in-addr.arpa {
        primary 127.0.0.1;
        key dhcpupdate;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.2.255;
        option routers 192.168.2.1; #,192.168.2.1;
        option domain-name-servers 192.168.2.1; #93.88.181.2,8.8.8.8,93.88.182.2;
        option domain-name "urfu";
        #option ntp-servers 192.168.2.1;

        ddns-updates on; #Разрешение Dynamic DNS
        ddns-update-style interim;
        ddns-domainname "urfu";
        ddns-rev-domainname "2.168.192.in-addr.arpa";
        ignore client-updates;
        update-static-leases true;

        option netbios-name-servers 192.168.2.10; #Самба-сервер, выступающий в роли WINS-сервера
        option netbios-node-type 8;

        default-lease-time 3600;  #36000;
        max-lease-time 7200; #43200;

#       Клиенты получают маршруты от сервера DHCP (для работы этого надо раскомменитровать определение выше)
#       option ms-classless-static-routes  16,172,16,172,16,10,1, 8,10,172,16,10,1, 20,93,88,176,172,16,10,1;

        range 192.168.2.30 192.168.2.254;

        group top{
        host area51 { hardware ethernet 00:1C:C0:5A:21:E1; fixed-address 192.168.2.10; }
        host dhcp11 { hardware ethernet 00:1c:c0:5a:22:4c; fixed-address 192.168.2.11; }
        host dhcp12 { hardware ethernet 00:e0:4c:16:11:29; fixed-address 192.168.2.12; }
        host dhcp13 { hardware ethernet 00:50:ba:53:49:aa; fixed-address 192.168.2.13; }
        host dhcp14 { hardware ethernet 00:1c:c0:5a:33:1f; fixed-address 192.168.2.14; }
        host dhcp15 { hardware ethernet 00:1c:c0:0a:0f:26; fixed-address 192.168.2.15; }
        host dhcp16 { hardware ethernet 00:1c:c0:0a:0f:18; fixed-address 192.168.2.16; }
        host dhcp17 { hardware ethernet 70:71:bc:0b:c9:c5; fixed-address 192.168.2.17; }
        host dhcp18 { hardware ethernet 00:19:66:2c:4e:a9; fixed-address 192.168.2.18; }
        host dhcp19 { hardware ethernet 00:19:66:2c:4e:a1; fixed-address 192.168.2.19; }
        host dhcp20 { hardware ethernet 00:01:6c:a5:bc:85; fixed-address 192.168.2.20; }
        host dhcp21 { hardware ethernet 00:1c:c0:0a:0f:4a; fixed-address 192.168.2.21; }
        }
}

Конфиг named.conf в плане ключа и зон такой:

//список доступа lan: локальная сеть и 127.0.0.1
acl "lan" { 192.168.2.0/24; 127.0.0.1; };

key dhcpupdate {
    algorithm hmac-md5;
    secret SICqF8F0BVjvoE2EQS0eXA==;
};

//Внутренняя зона
zone "urfu" IN {
      type master;
      file "urfu.zone";
      allow-query { lan; };
      allow-update { key dhcpupdate; lan; };
      allow-transfer { lan; };
};

zone "2.168.192.in-addr.arpa" IN {
      type master;
      file "192.168.2.zone";
      allow-query { lan; };
      allow-update { key dhcpupdate; lan; };
      allow-transfer { lan; };
};

Попытка внести обновление в dns с другого компьютера локальной сети проходит удачно, делаю с помощью nsupdate -d testddns.file, в этом файле слудующее:

key dhcpupdate SICqF8F0BVjvoE2EQS0eXA==

update add test3.urfu. 86400 A 192.168.2.202
send

update add 202.2.168.192.in-addr.arpa 86400 PTR test3.urfu.
send

После этого я могу разрешать имя test3.urfu или же адрес 192.168.2.202. Однако... При включении виндового клиента обновление DNS не происходит. В системном логе в момент включения я вижу:
Mar 27 13:51:33 localhost dhcpd: DHCPDISCOVER from 00:1c:c0:0a:0f:26 via lan
Mar 27 13:51:33 localhost dhcpd: DHCPOFFER on 192.168.2.15 to 00:1c:c0:0a:0f:26 via lan
Mar 27 13:51:33 localhost dhcpd: DHCPREQUEST for 192.168.2.15 (192.168.2.1) from 00:1c:c0:0a:0f:26 via lan
Mar 27 13:51:33 localhost dhcpd: DHCPACK on 192.168.2.15 to 00:1c:c0:0a:0f:26 via lan

То есть клиент получил адрес (адрес для этого клиента привязан к маку), но в named запроса на обновление зоны от клиента нет.
[root@area51 ~]# nslookup 192.168.2.15
Server:        127.0.0.1
Address:    127.0.0.1#53

** server can't find 15.2.168.192.in-addr.arpa.: NXDOMAIN

Возможно, дело тут в ключе или я не совсем понимаю принцип работы сего механизма. Наверное, при общении с dhcp клиенту передается инструкция о возможности регистрации имени в DNS и ключ для регистрации, далее клиент регистрируется в DNS. Так ли это? Конечно, можно привязать адреса к макам в конфиге dhcpd и там же задать ddns-имя. Однако, хочется, чтобы была возможность автоматической регистрации клиентов в DNS. На клиенте (Windows XP) галочка "Зарегистрировать адреса этого подключения в DNS" активирована. Просветите незнающего меня. =)