web-dev-qa-db-ja.com

不規則な間隔で「ads_connect:ログオンサーバーなし」を取得する

現在、Samba 4 ADサーバー(Ubuntu Server 16.04上)をセットアップしています。計画中のLinux/Windowsメンバーは約10です。ドメインコントローラーを正常にプロビジョニングした後、最初のXubuntu 16.04クライアントをドメインに参加させました。

最初は、Sambaユーザーアカウントを使用してクライアントにログインできました。したがって、wbinfo -ugetent passwdの両方にすべてのSambaアカウントがリストされていました。数分後、再度ログインを試みましたが、ログオン画面にkerberosの警告が表示されただけで、41日でパスワードの有効期限が切れそうです。

getent passwdはローカルユーザーのみをリストするようになりました。 wbinfo -uは、空のリストとSambaユーザーを一貫して切り替えていません。

net ads info -d 3は以下を返します。

ads_connect: No logon servers
ads_connect: No logon servers
Didn't find the ldap server!

/var/cache/samba/gencache.tdbおよび/var/run/samba/gencache_notrans.tdbを削除すると、出力が次のように変更されることがよくあります。

LDAP server: 10.230.44.1
LDAP server name: dc1.samdom.com # not the original domain
Realm: SAMDOM.COM
Bind Path: dc=SAMDOM,dc=COM
LDAP port: 389
Server time: Sa, 15 Okt 2016 18:01:33 CEST
KDC server: 10.230.44.1
Server time offset: 0

しかし、しばらくすると、上記の出力に戻ります。時々、単に待つだけでもうまくいくことがあります。

2番目のクライアントでも同じ問題が発生しますが、同時には発生しません。

サーバーは大学のネットワーク内にあり、NAT sambaクライアントのルーターとして機能します。ただし、非プライベートIPアドレスを使用している場合、クライアントはインターネットにアクセスできます。 。

サーバーのsmb.conf

[global] 
    workgroup = SAMDOM
    realm = SAMDOM.COM 
    netbios name = DC1
    server role = Active Directory domain controller 
    dns forwarder = xxx.yyy.xxx.yyy
    idmap_ldb:use rfc2307 = Yes 

    # Only listen to the internal network 
    interfaces = eno2 
    bind interfaces only = Yes 

[netlogon] 
    path = /var/lib/samba/sysvol/samdom.com/scripts 
    read only = No 

[sysvol] 
    path = /var/lib/samba/sysvol 
    read only = No

クライアントのsmb.conf

[global] 
    netbios name = M1
    security = ADS
    workgroup = SAMDOM
    realm = SAMDOM

    log file = /var/log/samba/%m.log 
    log level = 1 

    # Default idmap config used for BUILTIN and local windows accounts/groups 
    idmap config *:backend = tdb 
    idmap config *:range = 2000-9999 

    # idmap config for domain SAMDOM 
    idmap config SAMDOM:backend = rid 
    idmap config SAMDOM:range = 10000-99999 

    # Use template settings for login Shell and home directory 
    winbind nss info = template 
    template Shell = /sbin/bash 
    template homedir = /home/%U 

    winbind enum users = Yes 
    winbind enum groups = Yes 
    winbind use default domain = Yes 
    encrypt passwords = Yes

サーバーなしでNATルーターと同じ設定を行いますが、通常のIPアドレスでは同じ動作を返します。

2
Discordius

クライアントレルムはSAMDOM.COMではなくSAMDOMです。
質問のタイプミスのようです。また、DCインターフェースには、localhostインターフェースloを含める必要があります。
net ads infoの出力は、-d 3を使用したデバッグでは有効になりません。

クライアントとサーバーのレルムは一致する必要があります(DNSドメインに解決される必要があります)。 net ads infoは、次のようなDNSのさまざまなドメイン名を解決しようとします。

_ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.<your realm>
_kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.<your realm>

それ以外の場合は、<your workgroup>#1cでのnetbios名前解決にフォールバックします。

キャッシュを削除すると、<your workgroup>#1cエントリがDCのIPで660秒間有効になり、解決されます。
それ以外の場合、<your workgroup>#1cの値は、タイムアウトが負(0 - <seconds since Epoch>と等しい)であるため破棄されます。
660秒のタイムアウトはNAMECACHETIMEOUTの値です。

全体として、これであなたは一歩前進するはずですが、No logon serverエラーから抜け出すことはできません。サーバーが解決された場合でも、クライアントはCLDAP netlogon要求を発行し、失敗します。
次の方法で確認できます:

ldapsearch -LLL -h <you server ip> -x -b '' -s base "(&(NtVer=\06\00\00\00)(DnsDomain=<your realm>))" NetLogon

これを整理するためのデバッグがありません。
断続的である場合、別のDNSサーバーが古いエントリを持っている可能性が高く、時にはDCがドメイン名を照会されますが、他のDNSサーバーはそうです。

注:<your realm><your workgroup>および<your server ip>はプレースホルダーです。

1
Alban Browaeys