Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Samba в роли PDC, ddns для клиентов, замена wins?  (Прочитано 1555 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gard

  • Автор темы
  • Любитель
  • *
  • Сообщений: 84
  • -=:area51:=-
    • Просмотр профиля
Привет всем!  :)
Буквально вчера разбирался с поддержкой 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-зоны? Это вообще реализуемо? Может быть все работает совсем по другому, а не так как я думаю? Просветите, знающие люди. =)
gard.area51@jabber.ru..

Оффлайн gizomo

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Ну домены samba как и NT по сути сабой не являются FQDN, поэтому собственно и существует вся эта приблуда с NetBIOS сетями. Но если уж очень хочется то можно поднять DDNS на основе, например, bind9 и isc-dhcp-server.

Во в качестве примера мои конфиги bind9 и isc-dhcp-server для настройки DDNS.
dhcpd.conf
authoritative;

default-lease-time 600;
max-lease-time 7200;

ddns-update-style interim;
update-static-leases on;
ignore client-updates;
include "/etc/dhcp/rndc.key";

subnet 10.0.0.0 netmask 255.255.255.224 {
 range 10.0.0.2 10.0.0.30;
 option routers 10.0.0.1;
 option domain-name-servers 10.0.0.1;
 option domain-name "gis.tsu.ru";
 option netbios-name-servers 10.0.0.1;
 option netbios-node-type 8;
 
 ddns-updates on;
 ddns-domainname "gis.tsu.ru";
 ddns-rev-domainname "in-addr.arpa";
 
 zone gis.tsu.ru. {
  primary 127.0.0.1;
  key rndc-key;
 }
 
 zone 0.0.10.in-addr.arpa. {
  primary 127.0.0.1;
  key rndc-key;
 }
}

named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/rndc.key";

named.conf.options
options {
  version "";
directory "/var/cache/bind";
forwarders { 8.8.8.8; };
  allow-query { 10.0.0.0/27; 127.0.0.1/32; };
  listen-on { 10.0.0.1; 127.0.0.1; };
  max-cache-size 32768;
auth-nxdomain no;    # conform to RFC1035
// listen-on-v6 { any; };
};

named.conf.local
zone "gis.tsu.ru" {
  type master;
  file "/var/cache/bind/gis.db";
  allow-update { key "rndc-key"; };
  notify no;
};

zone "0.0.10.in-addr.arpa" {
  type master;
  file "/var/cache/bind/10.db";
  allow-update { key "rndc-key"; };
  notify no;
};

controls {
  inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; };
};

gis.db
$ORIGIN .
$TTL 1h
gis.tsu.ru   IN  SOA omega.gis.tsu.ru. ivan.gis.tsu.ru. (
                     1
                     3h
                     1h
                     1w
                     1d )
             IN  NS  omega.gis.tsu.ru.
             IN  MX 10 omega.gis.tsu.ru.
             IN  A   10.0.0.1
$ORIGIN gis.tsu.ru.
omega        IN  A   10.0.0.1
www          IN  CNAME omega
wpad         IN  CNAME omega


10.db
$ORIGIN .
$TTL 1h
0.0.10.in-addr.arpa   IN  SOA omega.gis.tsu.ru. ivan.gis.tsu.ru. (
                              1
                              3h
                              1h
                              1w
                              1d )
                      IN  NS  omega.gis.tsu.ru.
$ORIGIN 0.0.10.in-addr.arpa.
1                     IN  PTR omega.gis.tsu.ru.


Теперь о настройке.
Если все делается для ubuntu server 12.04, то сначала нужно несколько костылей вставить системе.
1. Для безопасности в файле /etc/default/isc-dhcp-server в параметре INTERFACES="" прописать сетевые карты, на которых будет работать dhcp-server, например, INTERFACES="eth1"
2. В файле настроек запуска демона /etc/init/isc-dhcp-server.conf отредактировать предпоследнюю строку следующим образом exec /usr/sbin/dhcpd -f -q -4 -pf /var/run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES3. Файлы зон, как наверное уже заметили, лучше всего положить в каталог /var/cache/bind, к которому у bind есть права доступа, ведь записи в зонах будет менять сам bind по запросу dhcp-сервера. Ну и выставить на файлы зон права bind:bind 640.
4. Скопировать /etc/bind/rndc.key в папку к dhcp-серверу /etc/dhcp/rndc.key
5. Ну и теперь самое главное, т.к. в 12.04 файл /etc/resolv.conf теперь обновляется автоматически, чтобы наш сервер имен начал корректно работать нужно прописать необходимые параметры в файл настройки сетей.

/etc/network/interfaces
auto lo
iface lo inet loopback

#Интерфейс для внешней сети
auto eth0
iface eth0 inet static
    address 31.211.15.28
    netmask 255.255.255.0
    gateway 31.211.15.254
    dns-nameservers 127.0.0.1
    dns-domain gis.tsu.ru

#Интерфейс для локальной сети
auto eth1
iface eth1 inet static
    address 10.0.0.1
    netmask 255.255.255.224

В остальном все, перезапускаем службы bind9 isc-dhcp-server и networking. DDNS готов, при обращении клиентов к серверу за полученим ip-адреса dhcp-сервер тут же будет делать запрос к DNS-серверу за обновленим прямой и обратной зоны.

Самбу можно настраивать по мануалу с сайта документации ubuntu: https://help.ubuntu.com/12.04/serverguide/samba-dc.html

 

Страница сгенерирована за 0.07 секунд. Запросов: 24.