VNX: SMB2 güvenli kanal iletişimini destekleyen kodu yükselttikten sonra DOMAIN_CONTROLLER_NOT_FOUND
Summary: DC'lerle SMB2 güvenli kanal iletişimini destekleyen kodu yükselttikten sonra mesajları DOMAIN_CONTROLLER_NOT_FOUND. (Dell Tarafından Düzeltilebilir)
Symptoms
Kod, yukarıda listelenen sürümlerden birine yükseltildi.
Aşağıdaki kodlardan birine yükselttikten sonra, günlüklerde etki alanı denetleyicisinin kapalı olduğunu belirten hata mesajları görünmeye başladı:
VNX2:
8.1.9.211
VNX1:
7.1.82.0
Mesaj şuna benzer:
2017-06-20 20:51:27: SMB: 3:[NASSERVER1] OpenAndBind[LSA] DC=DC01 failed: Bind_OpenXFailed DOMAIN_CONTROLLER_NOT_FOUND
Cause
Yukarıda bahsedilen kodların tümü, NAS sunucusunun veya veri taşıyıcının SMB2'deki etki alanı denetleyicileriyle iletişim kurmasını sağlayan yeni bir özelliğe eklenmiştir. Bu koddan önce, etki alanı denetleyicisi iletişimlerinin tümü SMB1'de yürütülüyordu (ancak istemciler bizimle SMB2/SMB3'te konuşmaya devam edebiliyordu).
SMB2'ye yapılan değişiklikle birlikte komutlarımızın tümü etki alanı denetleyicilerine serileştirilmez. Bu, bazı komutların aynı anda paralel olarak çalışmasına neden oluyor gibi görünüyor.
Bir örnek, adlandırılmış lsarpc adlı boruyu açma girişimidir.
Bu hata mesajında, bağlanmaya çalıştığımız hizmeti not etmek önemlidir:
2017-06-20 20:51:27: SMB: 3:[NASSERVER1] OpenAndBind[LSA] DC=DC01 failed: Bind_OpenXFailed DOMAIN_CONTROLLER_NOT_FOUND
Hata mesajından, LSA'yı açmaya çalıştığını (kırmızı renkle vurgulanmıştır) görebiliriz. İşte sorun burada devreye giriyor. DC'den bir yanıt almadan önce lsarpc adlı kanalı aynı anda birden çok kez açmayı deneriz. İlk istek başarılı olur, ancak sonraki istekler başarısız olur. Hata mesajlarının STATUS_PIPE_NOT_AVAILABLE olduğunu görüyoruz ve DOMAIN_CONTROLLER_NOT_FOUND mesajı günlüklere kaydediyoruz.
Bu mesajların her zaman bu sorunu göstermediğine dikkat etmek önemlidir. DOMAIN_CONTROLLER_NOT_FOUND hatalarının birçok nedeni olabilir.
Bu örnekteki, günlüklerde aşağıdaki bilgilendirme mesajlarının birçoğu olabilir:
2017-06-28 14:37:45: 26041909248: SMB: 6:[NASSERVER1] sendLookupSIDs pipe lsarpc reopened 2017-06-28 14:37:47: 26041909248: SMB: 6:[NASSERVER1] sendLookupSIDs pipe lsarpc reopened
Sorunun sorunla eşleşip eşleşmediğine dair herhangi bir soru varsa, bir paket izlemede doğrulanabilir. İzlemede, herhangi birine yanıt almadan önce lsarpc'yi açmak için aynı anda birden fazla istek görürüz, ardından ilki başarılı olur ve sonrakiler DC yanıt verdiğinde STATUS_PIPE_NOT_AVAILABLE ile başarısız olur.
Bu sorun genellikle etki alanı denetleyicisinde çok sayıda SID araması gerektiren sistemlerde meydana gelir. Ortamda artık SID'ler varsa bu hataların çok daha fazlasını günlüğe kaydetme eğilimindedir. Bunun nedeni DC'ye gönderilen trafik miktarıdır. ACL'ye her erişildiğinde, SID önbelleğimizde olmayan SID'lerin kimliğini sormak için DC'ye bir istek göndermemiz gerekir. Artık SID'ler hiçbir zaman SID önbelleğinde olmaz ve her seferinde aranmaya çalışılır ve lsarpc adlı boruda yapmamız gereken açma miktarı artar.
İlk açık deneme başarılı olduğu için bu etkili olmayan bir olaydır ve bu mesajlar göz ardı edilebilir.
Resolution
Kalıcı düzeltme:
Mühendislik ekibi sorunun farkındadır ve gelecekteki bir kod sürümünde bir düzeltme için çalışmaktadır. Bu, kesintiye yol açmayan bir sorundur ve bu süre zarfında güvenle göz ardı edilebilir. Ancak, mesajı azaltmayı veya ortadan kaldırmayı denemek ve kaldırmak istiyorsanız, bazı geçici çözümler mevcuttur.
Geçici Çözüm 1:
Bu mesajların günlüklerde oluşmasını engellemenin birkaç yolu vardır. Lsarpc kanalında birden çok eşzamanlı açma girişimi soruna neden olduğundan, iletileri azaltmanın en kolay yolu, gereken SID aramalarının miktarını azaltmaktır.
Artık SID'ler bu aşırı aramalara neden olur. Aşağıdaki parametre, aramaları bilinmeyen sid'ler için secmap önbelleğine bakmaya zorlayacak şekilde değiştirilebilir ve DC'ye giden trafik miktarını azaltmalıdır:
[nasadmin@CS0 ~]$ server_param server_2 -f cifs -i acl.mappingErrorAction -v server_2 : name = acl.mappingErrorAction facility_name = cifs default_value = 8 current_value = 8 configured_value = 8 user_action = none change_effective = immediate range = (0,31) description = Define rules for an unknown SID/UID/GID mapping detailed_description Defines the rules for unknown mapping between SID/UID/GID on ACL settings. Two kinds of errors might occur: the SID set in the ACL is unknown to the Domain Controllers we are using, or the username is not yet mapped to a UID/GID. 0x01: Stores unknown sid. 0x02: Stores sid with no UNIX mapping. 0x04: Enables debug traces. 0x08: Only do lookup in cache (secmap or globalSid cache or per connection SID cache) 0x08 is HIGHLY RECOMMENDED WITH OPTION=0x01. 0x10: Disable log displayed when an unknown SID resolution takes too much time.Maximum value = 0x1F Refer to param cifs.acl.retryAuthSID
Bu, aşağıdaki bilgiye çevrilir:
Bit0 = Bilinmeyen sid'i depolar.
Bit1 = UNIX eşlemesi olmadan sid'yi depolar.
Bit2 = Hata ayıklama izlerini etkinleştirir.
Bit3 = Yalnızca önbellekte arama yap (secmap veya globalSid önbelleği veya bağlantı başına SID önbelleği)
0 ve 1 bitleri ayarlanmışsa (değer olarak 0x3), artık SID'lerin dosya sistemi ACL'lerinde depolanmasına izin verilir (varsayılan olarak ayarlanmaz). Değeri 0x3'den 0x11'e değiştirmeniz önerilir, bu 0,1 ve 3 bitini açar. Yani, bilinmeyen SID'leri unix eşlemesi olmadan depolayın ve yalnızca secmap ve genel SID önbelleklerine bakın. 0x8 veya 0 ve 1 bitlerinin kapatıldığı başka bir kombinasyona ayarlanırsa, artık sid'lerin depolanmasına izin verilmez ve bu parametrede herhangi bir değişiklik yapılmamalıdır.
Parametreyi değiştirmek isterseniz, aşağıdaki komut çalıştırılabilir:
server_param server_2 -f cifs -m acl.mappingErrorAction -v 11
Bu muhtemelen oluşumları azaltır, ancak bunları tamamen ortadan kaldırabilir veya ortadan kaldırmayabilir.
Geçici Çözüm 2:
Günlüklerdeki bu hatalardan kurtulmanın kesin yolu, DC iletişim davranışını yeni kodlardan önceki haline geri döndürmektir (yani yalnızca SMB1'deki etki alanı denetleyicileriyle konuşuruz).
DC iletişimlerinde (Eski VNX davranışı) SMB1'e geri dönmek istiyorsanız Dell Desteği ile iletişime geçin ve bu Knowledge Base makalesini referans gösterin.