תקן 'שליטה על מתקשר ריבוי פעיל כתובת רשת לא היתה זמינה'

כל מנהל מערכות מידע שמנהל מכונות בסביבת Active Directory כבר היה שם. אתה מנסה להוסיף מחשב לדומיין (AD) של Active Directory ואז אתה מקבל את השגיאה הנוראית "לא ניתן היה ליצור קשר עם בקר ברשות הדומיין של Active Directory". במאמר זה, למד איך לאבחן (ולפתור) את הבעיה הזו לטובה.

A FREE read only tool that scans your AD and generates multiple interactive reports for you to measure the effectiveness of your password policies against a brute-force attack. Download Specops Password Auditor now!

An Active Directory Domain Controller Could not be Contacted

השגיאה הזו קשורה ל-DNS. הבעיה המרכזית היא שהמחשב נכשל במציאת רשומת DNS SRV מתאימה שהוא זקוק להצטרף לדומיין AD.

I’ve put together a few steps for you to follow to fix this error and get your computer joined to your domain.

וודא שאתה משתמש בשרתי DNS הנכונים

לפני שאתה יורד לבור נפלא, ודא תחילה שאתה משתמש בשרתי DNS הנכונים לך.

Active Directory ו-DNS יש להם יחס מיוחד. בקרי דומיין רשומים רשומות מסוימות בשרתי DNS שהם מכירים. אלו קיימים באזור _ldap._tcp.dc.msdcs.<domainname> ועוזרים להתקשרות התקנים שמצטרפים ל-AD למקורות כמו בקרי דומיין. רשומות SRV לא יתקיימו בשרתי DNS שאינם משולבות ב-AD.

כדי לפתור את הבעיה הזו, עליך להשתמש באחד מהבאים:

  • שרת DNS משולב ב-AD
  • A DNS server that replicates records from an AD aware DNS server
  • A DNS server that has forwarding set up to query either an AD-integrated DNS server or a DNS server with replicated records

כדי לוודא שהשרת DNS שאתה משתמש בו הוא אחד מהמעלה, הפעל את הפקודה הבאה בהפעלת PowerShell במחשב המצורף כבר לדומיין:

PS C:\> Get-DnsClientServerAddress

InterfaceAlias               Interface Address ServerAddresses
                             Index     Family
--------------               --------- ------- ---------------
Ethernet                             9 IPv4    {10.0.0.101}
Ethernet                             9 IPv6    {}
Loopback Pseudo-Interface 1          1 IPv4    {}
Loopback Pseudo-Interface 1          1 IPv6    {fec0:0:0:ffff::1, fec0:0:0:ffff::2, fec0:0:0:ffff::3}

שורות התגובה שאתה מקבל תחת עמודה ServerAddresses הן שרתי DNS המשמשים על ידי המחשב הזה. אם אין לך לקוח דומיין נוסף לבדיקה, יהיה עליך ליצור קשר עם צוות הרשת שלך למידע זה.

ניתן להשתמש בפקודת Set-DnsClientServerAddress של PowerShell כדי לשנות את הגדרות לקוח DNS של המחשב, או דרך תיקיית התכונות IPv4 עבור כרטיס הרשת של המחשב. ניתן לגשת אליה דרך לוח הבקרה –> רשת –> אינטרנט –> חיבורי רשת.

פעם שבחלון חיבורי רשת, לחץ ימנית על כרטיס הרשת, בחר תכונות, בחר ב- גרסה 4 של פרוטוקול האינטרנט (TCP/IPv4) ולאחר מכן לחץ על תכונות.

IPv4 properties dialog

אם הרשת משתמשת ב- פרוטוקול קבלת כתובת המארח הדינמית (DHCP), ודא שהאפשרויות לקבלת כתובת IP אוטומטית ו- לקבלת כתובת שרת DNS אוטומטית נבחרות.

אם הרשת שלך אינה משתמשת ב-DHCP, עדכן את הערכים של שרת DNS מועדף ו- שרת DNS אלטרנטיבי לאלו שנבחרו במעבר.

מצא את השגיאה האמית

אם אימתת שהמחשב שלך משתמש בשרתי DNS הנכונים, הגיע הזמן לחקוף עמוק יותר.

כאשר אתה מנסה להצטרף לדומיין, נתקלת בשגיאה " לא ניתן ליצור קשר עם שלט הדומיין של Active Directory " אך זו לא ההודעה "אמית". יש לך לחקוף קצת יותר עמוק.

תשים לב בתיבת השגיאה לכפתור פרטים >>. לחץ עליו. זה יחזיר מידע מפורט יותר שיעזור לך לפתור את השגיאה הזו בצורה טובה יותר.

Expanded details view of the error dialog

ניתן לבחור את תוכן תיבת הטקסט כדי להעתיק ולהדביק אותו לתצוגת טקסט, או ניתן למצוא את אותו מידע בקובץ C:\windows\debug\dcdiag.txt על המחשב הזה. קובץ זה נוצר על ידי Windows כאשר השגיאה מתרחשת.

טקסט השגיאה מכיל חלקים מרכזיים של מידע. סימנתי והודגשתי את כל אחד מהם בדוגמה למטה:

  • שם התחום שבעצמו המחשב חושב שביקשת ממנו להצטרף (1)
  • קוד השגיאה (2)
  • השאילתא DNS שבוצעה (3)
  • שרתי DNS שהמחשב חיפש (אם כלל) (4)

הערה: מידע זה מיועד למנהל רשת. אם אינך מנהל הרשת שלך, יש להודיע למנהל שקיבלת מידע זה, שהוא נרשם בקובץ C:\windows\debug\dcdiag.txt.

השגיאה הבאה התרחשה בעת שאילתת DNS לאיתור רשומת משאב מיקום שירות (SRV) אשר משמשת לאיתור שלט מתוך תחום ה-Active Directory Domain Controller (AD DC) לתחום "carisbrookelabs.local" (1)

השגיאה היא: "שם DNS אינו קיים." (קוד שגיאה 0x0000232B RCODE_NAME_ERROR) (2)

השאילתא הייתה לרשומת ה-SRV עבור _ldap._tcp.dc._msdcs.carisbrookelabs.local (3)

סיבות נפוצות לשגיאה זו כוללות את הבאות:

רשומות ה-DNS SRV הנדרשות לאיתור של AD DC עבור הדומיין אינן רשומות ב-DNS. רשומות אלו נרשמות באופן אוטומטי עם שרת DNS כאשר AD DC נוסף לדומיין. הן מתעדכנות על ידי AD DC בקצבים קבועים. מחשב זה מוגדר להשתמש בשרתי DNS עם כתובות IP הבאות:

8.8.4.4
8.8.8.8 (4)

אחד או יותר מהאזורים הבאים אינם כוללים הפקדה לאזור הילד שלהם: carisbrookelabs.local

local
. (אזור השורש)

0x0000267C DNS_ERROR_NO_DNS_SERVER

שגיאה זו מציינת שלא ניתן למצוא את שרת ה-DNS כדי לנסות את השאילתה. אפילו לא הייתה נסיון. בדרך כלל, זה קשור לחוסר תקשורת רשת עם שרת ה-DNS.

שים לב שאפשר להצטרף למחשב בלעדי חיבור רשת, שמכונה גם "הצטרפות לדומיין במצב לא מקוון" (offline domain join), אך זה נמצא מחוץ לטווח של מאמר זה.

איתור ופתרון בעיות בחיבור הרשת שלך

אם אתה רואה הודעת שגיאה זו, עליך להתחיל לבצע בדיקות ברשת.

  1. וודא שמתקן הרשת שלך מופעל ואתה יכול להתחבר למשאבי רשת אחרים.
  2. וודא שיש לך כתובת IP ושרתי DNS מוגדרים.

ניתן לבדוק כתובת IP ושרתי DNS על ידי הרצת ipconfig /all.

אם יש לך כתובת IP וניתן להגיע למשאבי רשת אחרים, יהיה עליך לבדוק את החיבור שלך בין המחשב ושרת ה-DNS.

לכן, תוכל להשתמש בפקודת ping ובפקודת Test-Connection של PowerShell. בדוק את התקשורת לשרתי ה-DNS באמצעות אחד משני הכלים הללו. אם תעבורת פרוטוקול בקרת ההודעות באינטרנט (ICMP) מאושרת ברשת, אתה אמור לקבל תגובה. אם יש שגיאה או פסק זמן, ייתכן כי יש לך בעיה כלשהי ברשת, כגון הפניה. דבר עם צוות הרשת כדי לפתור את הבעיה, ואז נסה שוב.

בדוק את התקשורת של DNS

אם אישרת שחיבור הרשת שלך עובד, עליך לוודא שהמחשב שלך יכול להתחבר באמצעות TCP/53 אל שרת ה-DNS.

נסה להשתמש בפקודת Resolve-DNSName של PowerShell עם ה-FQDN של הדומיין שאתה מנסה להצטרף אליו. זה צריך להחזיר רשומות שרת DNS אחת או יותר:

PS C:\> Resolve-DNSName carisbrookelabs.local


Name                                           Type   TTL   Section	IPAddress
----                                       	----   ---   -------	---------
carisbrookelabs.local                      	A  	600   Answer 	10.0.0.103
carisbrookelabs.local                      	A  	600   Answer 	10.0.0.102
carisbrookelabs.local                      	A  	600   Answer 	10.0.0.101

אם אתה מקבל שגיאה, אז כדאי לבדוק שאין דברים שחוסמים תעבורת IP על פורט 53 (הפורט המשמש לתעבורת DNS) בין המכונה שלך לשרתי ה-DNS.

אתה יכול לבצע בדיקת ניתוב פשוטה על פורט 53 באמצעות הפקודה Test-NetConnection (אל תתבלבל עם הפקודה Test-Connection):

PS C:\> Test-NetConnection -Port 53 -ComputerName <DNSSERVERHERE>
True

תקבל תשובה של True אם החיבור הצליח, או False אם יש כשלון. כשלון יכול להתרחש בשל חומת אש ברשת או במחשב השרת של ה-DNS.

0x0000232B RCODE_NAME_ERROR

שגיאה זו מעידה על כך שהוא הצליח למצוא את שרת ה-DNS אך לא נמצא הרשומות SRV. שגיאה זו מחייבת בדיקה נוספת יותר.

וודא שאתה משתמש ב-Domain FQDN

נראה פשוט, אך וודא שהשם שהקלדת תואם לשם המלא של הדומיין שאתה מנסה להצטרף אליו. זה צריך להיות רק שם דומיין, ולא שם שרת. לדוגמה, השתמש ב-carisbrookelabs.local ולא WIN-3467RQTHJH5.carisbrookelabs.local.

אם יש ספקות, בדוק את שם הדומיין של לקוח דומיין קיים. תוכל למצוא את שם הדומיין המתאים על ידי הרצת פקודת PowerShell זו על לקוח דומיין קיים.

PS51> (Get-CimInstance Win32_ComputerSystem).Domain
carisbrookelabs.local

אם תנסה להשתמש בשם NETBIOS (contoso) לעומת FQDN (contoso.local), המחשב יכול למצוא את הדומיין אך Windows תטפל בשם כ-FQDN בכל זאת.

אם תקליד שם NETBIOS ואין לך תשתית WINS במקום, תקבל את השגיאה שאנו מנסים לתקן. תמיד יש להשתמש ב-FQDN במקום בשם NETBIOS.

Typing an FQDN in the Computer/Domain Changes dialog

בדוק רשומות DNS

לשלב צעד זה, יש להשתמש שוב בפקודה Resolve-DNSName. הפעם עם הכתובת המדויקת של DNS הרשומה שלא נשגרה כאשר ניסית להצטרף לדומיין שלך. העתק והדבק את זה מתוך קובץ dcdiag.txt שהוזכר בהקדמה או מעת הקבלת הודעת השגיאה. זה ימנע טעויות כתיב עם קווים תחתונים ומקפים.

הפקודה שלך צריכה להיראות משהו כמו זה:

PS C:\> Resolve-DNSName _ldap._tcp.dc._msdcs.carisbrookelabs.local


Name                    	Type TTL   Section	PrimaryServer           	NameAdministrator       	SerialNumber
----                    	---- ---   -------	-------------           	-----------------       	------------
_msdcs.carisbrookelabs.loca SOA  3600  Authority  WIN-3467RQTHJH5.carisbrooke hostmaster.carisbrookelabs. 419
l                                             	labs.local              	local

השתמש בכלי הבדיקה Specops Password Auditor כדי לסרוק את ה-Active Directory שלך ולזהות חולשות הקשורות לסיסמאות, כולל למעלה מ-930 מיליון סיסמאות ידועות שנפגעו. הורד היום!

אם אתה מקבל שם DNS אינו קיים כתשובה לפקודה זו, אז הבעיה שלך היא עם DNS.

  • וודא שאתה משתמש בשרת DNS הנכון
  • וודא שהרשומות הרלוונטיות לא נמחקו

אם תקבל תשובה חיובית ל- Resolve-DNSName _msdcs.<domainname>, אך תקבל DNS name does not exist מתוך Resolve-DNSName _ldap._tcp.dc._msdcs.<domainname>, אז ייתכן שהרשומות חסרות.

רשום מחדש את רשומות ה-DNS של שלט התחברות באמצעות הפקודה ipconfig /registerdns על כל שלט. ייתכן ייקח כמה דקות עד שהרשומות יופיעו.

כשתוכל לאשר את קיומן של רשומות ה-DNS הנדרשות באמצעות Resolve-DNSName, אז כדאי לך להמשיך.

סיכום

במאמר זה, למדת כמה שלבים לנסות כאשר אתה פותר את הבעיה " An Active Directory Domain Controller Could not be Contacted". אי אפשר לכסות כל סיטואציה במאמר כמו זה, אך אני מקווה שהתהליך יעבוד עבורך ויביא אותך לנתיב הנכון!

קריאה נוספת

Source:
https://adamtheautomator.com/an-active-directory-domain-controller-could-not-be-contacted/