فیزمو | FSMO یا Operation Master در اکتیودایرکتوری چه هستند و چگونه آنها را مدیریت کنیم؟ در این مقاله از میان بیشمار موضوع مهم،زیبا و دوست داشتنی موجود در شبکه و اکتیودایرکتوری، FSMO ها را برای نوشتن انتخاب کرده ام.FSMO که مخفف Flexible Single Master Operations میباشد ، از نقش هایی تشکیل شده است که در بردارنده برخی وظایف مهم و اساسی در اکتیودایرکتوری میباشد . لازم به ذکر است که جناب مهندس نصیری در مورد FSMO ها ، این اجزای حیاتی در اکتیو دایرکتوری در مقاله زیر صحبت کرده اند:
بنده در این مقاله قصد دارم وارد بحث عملی FSMO ها شده و نحوه ی دیدن و منتقل کردن آنها در اکتیودایرکتوری را به خدمت شما دوستان عزیز ارائه دهم.قبل از آن به طور مختصر به معرفی عملکردشان خواهم پرداخت.FSMO ها در بردارنده 5 نقش در اکتیودایرکتوری میباشد که 3 تای آنها Per Domain و 2 تای آنها Per Forest میباشند:
Per Domain: PDC Emulator Relative ID Master Infrastructure Master Per Forest: Schema Master Domain Naming Master
این نقش که در سال 2000 معرفی شد و در ویندوز NT دارای نقش اساسی بود. اما امروزه در کار نبودن ویندوز NT به معنای از کار افتادن PDC Emulator نمی باشد.اتفاقا این نقش یکی از نقش های اساسی در دامین مطرح میشود که نبود یا از کار افتادن آن می تواند آسیب های جبران ناپذیری در اکتیو دایرکتوری را ایجاد کند.از وظایفی که این رفیق دوست داشتنی اکتیو دایرکتوری بر عهده دارد عبارت است از:
همانطور که ملاحظه کردید این رول نقش بسزایی در فارست ایفا میکند،از اینرو دامینی که این رول یا نقش را در بر دارد بسیار حائز اهمیت میباشد.
کلیه ی آبجکتهایی که در سطح اکتیودایرکتوری تولید میشوند بر اساس SID یا Security Identifier در سطح دامین فعالیت میکنند. SID یک شناسه س منحصر به فرد هست که هر آبجکت در سطح دامین یا فارست با استفاده از این شناسه س منحصر به فرد شناسایی و در نهایت فعالیت میکند.درست مانند شماره ملی افراد در جامعه.به صورت کلی این شناسه های منحصر بفرد در دو سطح تعریف میشوند:یکی در سطح دامین و دیگری در سطح جهان.به شناسه ی منحصر بفرد در سطح دامین SID و به شناسه ی منحصر بفرد در سطح جهان GUID یا Global Unique Identifier میگویند.
خوب بدیهی است که در هر دامین یک نفر باید مسئولیت ایجاد این SID ها را برعهده بگیرد.چرا که کلیه ی تنظیمات امنیتی و غیر امنیتی در سطح دامین یا فارست بر روی این SID ها اعمال میشود،در صورت ایجاد خلل یا مشکلی در تولید SID ها یا یکسان بودن آنها ممکن است دردسرهای بزرگی ایجاد شود ( تصور کنید که 2 نفر دارای کد ملی مشترک باشند،در این صورت کلیه ی اسناد آنها در هر اداره یا سازمانی دچار میکل خواهد شد ! ). RID Master مدیریت و مسئولیت SID ها در سطح دامین را برعهده گرفته است.این نقش (در طول حیات شرافتمندانه خویش ! ) SID تولید میکند و در اختیار دامین قرار میدهد تا در صورت ایجاد آبجکتهای جدید،مشکلی ایجاد نشود یا تشابه SID ی در سطح دامین نداشته باشیم.
این رول ساختار دامین را در بر دارد و در صورت ایجاد هر گونه تغییری در سطح دامین ،این تغییرات را به کلیه ی دامینهای سطح فارت اطلاع رسانی میکند.به عنوان مثال ایجاد،یا حذف یکی از دامینها از طریق این رول به اطلاع دیگر دامینها خواهد رسید.
حتما تا به حال بر روی اجزا و آبجکتهای ( user,computer,OU,…. ) راست کلیک کرده اید.بعد از راست کلیک پنجره ای برای شما باز خواهد شد که دارای چندین تب میباشد.این پنجره به همراه کلیه ی تب هایش از یک ساختار کلی پیروی میکنند که با ایجاد هر آبجکت در اکتیو دایرکتوری ، به آن ساختار مراجعه شده و پنجره و تب های تعریف شده متناسب با آن آبجکت ،برایش ایجاد میشود.این ساختار چیزی نیست جز schema master...
در کل ساختار فارست یک schema master بیشتر وجود ندارد.ساختار schema ساختار ثابت و تغییر ناپذیری نیست و با نصب برخی نرم افزارها یا سرورها در سطح دامین یا فارست،این ساختار تغییر خواهد کرد.در صورت ایجاد تغییر در ساختار schema master این رول تغییرات را در سطح فارست replicate میکند.این رول در ریشه ی فارست ( اولین دامینی که در سطح فارست ایجاد میشود ) قرار دارد.
تنظیمات مربوط به اسمی دامینها را در سطح فارست را کنترل و در صورت ایجاد child Domain یا additional Domain و یا RODC Domain ، اسامی آنها را مدیریت و در سطح فارست replicate میکند.
خوب در اینجا این سوال برایتان به وجود می آید که از کجا باید فهمید که کدام رولها در کدام سرورها قرار گرفته اند؟! همانطور که در بالا اشاره کردم،سه نقش اول در سطح دامین تعریف میشوند یعنی به ازای هر دامین ما باید سه نقش اول را داشته باشیم،اما دو نقش آخر در سطح فارست وجود دارند .برای مشاهده سه نقش اول یعنی PDC Emulator ،RID Master و Insrastrucure Master مسیر زیر را دنبال کنید:
در Run عبارت زیر را تایپ کنید تا وارد کنسول Active Directory Users and Computers شوید:
بر روی دامین کنترلر مورد نظر راست کلیک کرده و گزینه ی Operations Masters را انتخاب کنید:
در این پنجره می توانید سه روز اول یا رولهای در سطح دامین را مشاهده کنید:
Domain Naming Master: در Run عبارت زیر را وارد کنید تا وارد کنسول Active Directory Domains and Trusts شوید:
بر روی Active Directory Domians and Trusts راست کلیک کنید و گزینه ی Operation Master را انتخاب کنید:
Schema Master: مشاهده و پیدا کردن این رول نسبت به 2 رول قبلی دردسر بیشتری دارد، در ابتدا باید عبارت زیر را در Run وارد کنید تا این رول ریجیستر شود :
سپس مجددا در Run عبارت MMC را وارد کنید:
بر روی فایل کلیک کرده و گزینه ی Add or Remove Snap-ins را انتخاب کنید:
سپس در کنسول باز شده بر روی Active Directory Schema راست کلیک کنید و گزینه ی Change Active Directory Domain Controller را انتخاب کنید:
برای دیدن Schema Master گزینه ی This Domian Controller or AD LDS instance را انتخاب کنید:
بر روی Active Directory Schema راست کلیک کرده و گزینه ی Operations Master را انتخاب کنید:
و در نهایت در پنجره ی باز شده رول مورد نظر را میتوانید مشاهده کنید:
در ادامه قصد دارم به نحوه ی انتقال FSMO ها از دومین یا سروری که بر روی آن قرار دارند به دومین یا سروری دیگر بپردازم و توضیح دهم که در صورتی که دومین حاوی FSMO ها ،Fail شود به چه صورت میتوانیم آنها را بر روی سروری دیگر بازگردانی و به عبارتی زنده کنیم . برای توضیح موارد فوق و تفهیم هرچه بهتر آن به شما دوستان عزیزم،سناریویی طراحی کرده ام:
در این سناریو فرض کنید در مجموعه ای که مشغول هستید دو سرور وجو دارد:یک سرور اصلی یا PDC و یک سرور ثانویه دیگر با عنوان SDC که حاوی دومین کنترلر Additional میباشد.کلیه ی FSMO های بر روی سرور اصلی قرار دارد.در قسمت اول سناریو نحوه ی انتقال FSMO ها از سرور اصلی به ثانویه رو مورد بررسی قرار میدهم و در قسمت دوم فرض را براین میگزاریم که دومین کنترلر اصلی از کار می افتد یا سرور آن دچار مشکل میشود و ما باید FSMO ها را بر روی یک سرور دیگر زنده یا تعریف کنیم تا اکتیودایرکتوری بقای عمر دوباره خود را بازیابد !
همانطور که در قسمت قبل بررسی کردیم ،به صورت کلی ما 5 رول داریم که 3 تای آنها Per Domian و 2 تای آنها Per Forest میباشند.نحوه ی مشاهده ی 5 رول را به شما دوستان در قسمت قبلی نشان دادم.حال میخواهیم FSMO ها را از سرور اصلی ( PDC ) به سرور ثانویه (SDC ) منتقل کنیم .برای انتقال FSMO ها از یک سرور به سروری دیگر 3 راه پیش رو دارید:
راه اول این است که در سرور ثانویه و دومین ادیشنال لاگین کنید و مراحل لازم برای دیدن FSMO ها را دنبال کنید،سپس در پنجره ی زیر بر روی change کلیک کنیدو سپس گزینه ی yes را نتخاب کنید:
و در نهایت رول مورد نظر بر روی دومین کنترلر ثانویه قرار میگیرد:
و بدین ترتیب همین کار را برای دیگر رولها انجام خواهید داد.فقط برای دیدن رول Schema Master فراموش نکنید که ابتدا باید آن را ریجستر و سپس منتقل کرد.
در روش دوم برای انتقال FSMO ها ، در سرور اولیه یا همان دومین کنترلی که رولها بر روی آن قرار دارند ،لاگین کرده و در کنسول Active Directory Users and Computers بر روی دومین کنترلر اصلی راست کلیک کرده و گزینه Change Domain Controller رو انتخاب کنید و سپس دومین کنترلی که میخواهید رولها بر روی منتقل شود را انتخاب میکنید:
هم اکنون بر روی دومین کنترلر ثانویه قرار دارید:
حال روند همیشگی برای مشاهده FSMO های Per Domian را دنبال میکنیم،یعنی راست کلیک بر روی دومین کنترلر و انتخاب گزینه operation master :
حال کافی است برای انتقال FSMO ها از PDC.ITPRO به SDC.ITPRO بر روی گزینه change کلیک کنیدو سپس گزینه Yes را انتخاب کنید:
همینکار را برای دو رول دیگر نیز انجام دهید.در مورد Domain Naming Master نیز روند کار بهمین صورت است ( همانطور که میدانید برای مشاهده این رول باید به کنسول Active Directory Domains and Trusts مراجعه کنیدو برای مشاهده رول Schma Master ابتدا باید آن را ریجستر کرد و سپس بعد از مشاهده آن، همین مراحل را برای آن نیز هم دنبال کرد.
راه سوو و راه آخر استفاده از Command Line میباشد. برای اینکار از دستورات زیر به ترتیب باید پیروی کرد:
1- Ntdsutil 2- Roles 3- Connections 4- Conect to server “domain controller”
به جای domain controller نام دومین کنترلی رو مینویسیم که میخواهیم رولها را به روی آن منتقل کنیم که در سناریو ی ما این دومین کنترلر SDC میباشد.
5- Quit 6- Transfer domain naming master 7- Transfer PDC 8- Transfer infrastructure master 9- Transfer schema master
و بدین ترتیب میتوانید کلیه رولها را به دومین کنترلر مورد نظرتان منتقل کنید.
حال به سراغ قسمت دوم سناریو ی خود میرویم.فرض کنید سرور حاوی کلیه رولهای FSMO ها بسوزد یا به دلیل برخی مشکلات دومین کنترلر آن از بین برود.در همچین مواردی شما با عکس زیر مواجه خواهید شد و به عنوان ادمین ممکن است دو دسته بر سر خود بزنید چرا که قطعا اکتیودایرکتوری شما نیز دچار مشکل شده است( البته در مواردی هم میتوان دستها را به روی آسمان بلند کرد :d )
خوب نگران نباشید در اینجا ادمینی که کار خود را خیلی خوب بلد است نه دو دسته بر سر خود میکوبد و نه اینکه دستهایش ره رو به آسمان بلند میکند،بلکه در این موارد آستینهای خود را بالا میزند و شروع به انجام عملیات Seize میکند.
با استفاده از فرمان Seize شما میتوانید کلیه FSMO ها را از سرور سوخته ی خود دوباره تعریف کنید . برای انجام این عملیات دستورات زیر را باید در Command Line به ترتیب اجرا کرد : ( دقت داشته باشید که این فرآیند ،فرآیند حساسی است و در صورتی که به درستی دنبال نشود مشکلتان دو چندان خواهد شد ! )
و حال فرآیند Seize کردن به صورت زیر میباشد، در command prompt بعد از تایپ cmd ، فرمانهای زیر را به ترتیب اجرا کنید:
1- NTDSUTIL 2- Roles 3- Connections 4- Connect to server” servername” 5- Quit 6- Seize PDC 7- Seize RID master 8- Seize infrastructure master 9- Seize schema master 10- Seize naming master 11- Quit 12- Quit
در زیر این فرآیند را به صورت عملی انجام گرفته شده است:
و بدین ترتیب کلیه رولها از سرور سوخته به سروری دیگر منتقل میشود .فراموش نکنید که یک ادمین موفق همیشه احتمال اتفاقات پیش بینی نشده را میدهد از اینرو همواره خود را آماده حل هر مشکلی در شبکه می دارد ، به همین دلیل هیچگاه Back up گرفتن از سرورو اکتیودایرکتوری در بازه های زمانی مناسب را فراموش نمیکن.
کارشناس شبکه و مجازی سازی
کارشناس شبکه و مدیریت شبکه های مایکروسافتی ، دارای مدارک MCITP ، CCNA و VCP و علاقمند به مجازی سازی و توسعه شبکه های مجازی مبتنی بر VMware می باشم .