2016年3月12日土曜日

Samba4 AD BDC追加の試みの経過

この環境固有の問題かもしれないが、そうでないかもしれない。

CentOS 6.7 Samba-4.2.8 AD DC #1
CentOS 6.7 Samba4-4.2.9 AD DC #2
CentOS 7 Samba4-4.2.8 AD ファイルサーバ

とりあえずDC2台の間で、同期が正しく動作しない。BDC側にユーザ/コンピュータアカウントなどがコピーされてはいるので全く動作していないわけではないが、いずれかの変更がもう一方にレプリケーションされない。

とりあえずトラフィックで見えるところでは、


このような。DCE/RPC のエラーのようだ。

Distributed Computing Environment / Remote Procedure Calls
https://ja.wikipedia.org/wiki/DCE/RPC

/usr/local/samba/var/log.wb-SAMBA4-AD

を見てみると、

../source3/winbindd/winbindd.c:266(winbindd_sig_term_handler)
  Got sig[15] terminate (is_parent=0)

なるエントリが続くだけ。同期のタイミングで発生しているわけではなさそうだ。次に、

/usr/local/samba/var/log.samba

の中身だが、

../lib/util/util_runcmd.c:324(samba_runcmd_io_handler)
  /usr/local/samba/sbin/samba_dnsupdate: RuntimeError: kinit for DC01$@SAMBA4-AD.LOCAL failed (Cannot contact any KDC for requested realm)

このエラーが。

host -t SRV _ldap._tcp.SAMBA4-AD.LOCAL
Host _ldap._tcp.SAMBA4-AD.LOCAL not found: 3(NXDOMAIN)

DNSも引けない。さて、これは、、、

一方で、BDC側の方でkinitでOK。ま、そう簡単にいくわけもないということ。

# /usr/local/samba/bin/samba-tool drs showrepl
ERROR(<class 'samba.drs_utils.drsException'>): DRS connection to dc01.samba4-ad.local failed - drsException: DRS connection to dc01.samba4-ad.local failed: (-1073741772, 'The object name is not found.')
  File "/usr/local/samba/lib/python2.6/site-packages/samba/netcmd/drs.py", line 39, in drsuapi_connect
    (ctx.drsuapi, ctx.drsuapi_handle, ctx.bind_supported_extensions) = drs_utils.drsuapi_connect(ctx.server, ctx.lp, ctx.creds)
  File "/usr/local/samba/lib/python2.6/site-packages/samba/drs_utils.py", line 54, in drsuapi_connect
    raise drsException("DRS connection to %s failed: %s" % (server, e))
#

ひとつ手掛かりは見つけたが、また「この意味するところを学ぶ」段階から牛歩。

また、DCの2台目を落とした状態で、WinクライアントからDCの1台目へのドメインログオンはOKとみられる。しかしnslookup では確かにdc01.samba4-ad.localが引けない。一方で管理ツール上ADへのアクセスはOK。ありえない事象のようにも思えるが、あるいはこれはクライアントがDCと同一セグメントであるためか? などとも思ったが違った。Winクライアントを別セグに移してもログオン可能。管理ツール上で試しにユーザを追加してみたがこれも可能。

ここで、DC01のトラフィックをキャプチャしたところ、外部DNS向けのクエリが多数流れている状況が見えた。/etc/resolv.conf を見ると、外部ルータをDNS参照先にしている。これを書き換えたがトラフィックはおさまらな...ってここの元になっているのは、ifcfg-だった。DNS1の値をループバックに書き換えたところ、外部DNS参照は終了した。

また、dc01をDNSサーバとしているWinクライアントからDC1のホスト名を引くと、OKとなった。そういうことか。。

この後、samba-tool の user list をDC両方で確認したところ、BDC側で作成したユーザアカウントがもう一方へ、またこの逆も更新がなされた。他方、Winクライアントの管理ツール上では、ユーザ情報の自動更新はなされない。またF5なども利かないようだが、ツールのOFF/ONで更新されるので何の問題も無い。


内部DNSについてこれまでの私の認識は根本的に誤っていた。一連の状況からすると、少なくとも私が従来持っていた「知らないことだけ外部に問い合わせるという浅はかな想像の産物」ではない。


学ぶってこんなもん...ということは決してなくて今回も愚かな学び方だったが、いずれはもっとスマートに学びたいぜ AWESOME!(Neil Pasricha 氏ふう)


0 件のコメント:

コメントを投稿