در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

Port Rule در NLB Clustering چیست و چگونه تعریف می شود ؟

همانطور که قبلا هم اشاره کردیم Port Rule ها مهمترین قسمت و طبیعتا مهمترین تظیمات را در بین تنظیمات مربوط به NLB دارد. این Port Rule ها هستند که تعیین کنننده نوع ترافیک و همچنین چگونگی انجام شدن Load Balancing در بین NLB Cluster هستند. هر Port Rule برای خودش یک ترافیک ورودی یا Incoming Traffic تعریف شده به همراه محدوده ای از پورت های UDP و TCP یا آدرس IP به عنوام مقصد دارد.

قبلا هم گفته ایم یکی از نکات مهم در خصوص Port Rule ها این است که شما هیچوقت نمی توانید دو عدد Port Rule با یک نوع Incoming Traffic یا ترافیک ورودی ایجاد کنید بنابراین شما هیچوقت میان Port Rule های خود مشکلات تداخل ، اولویت بندی و یا ترتیب را نخواهید داشت. فقط و فقط یک Rule می توانید به یک Packet ورودی به NLB Cluster عمل کند و همانطور که در شکل زیر مشاهده می کنید مایکروسافت در NLB Cluster خود یک Rule پیشفرض دارد که به شکل زیر است :

Port Rule در تنظیمات NLB Clustering

همانطور که در تصویر بالا مشاهده می کنید این Port Rule پیشفرض تقریبا همه ترافیک های TCP//IP که از تمامی پورت های TCP و UDP بین 0 تا 65535 وجود دارند را در بر می گیرد. توجه کنید که در محیط های وافعی شما معمولا به این قسمت از ماجرا اصلا دست نمی زنید و پیشهاد مایکروسافت هم هست که همیشه این Port Rule پیشفرض را داشته باشید ، به قول یکی از دوستان ITPRO ای هر جا دیدید مایکروسافت چیزی را Recommend کرده انجام دهید و هر جا دیدید سیسکو چیزی را Recommend کرده هیچوقت انجام ندهید ، در اینجا هم شما لازم نیست تغییری بدهید اما به عنوان یک کارشناس ITPRO باید بدانید که این Port Rule ها چه هستند و چگونه پیکربندی می شوند. بعد از کلیک کردن بر روی دکمه Add به تصویر زیر مواجه خواهید شد :

Port Rule در تنظیمات NLB Clustering

همیشه باید تصور کنید که Port Rule پیشفرض وجود ندارد و شما بایستی همه تنظیمات را بصورت دستی خودتان انجام دهید. بنابراین شما باید با تمامی مواردی که در تصویر بالا مشاهده می کنید به خوبی آشنایی پیدا کنید تا در ایجاد کردن Port Rule ها مشکلی نداشته باشید و بتوانید آن را دلخواه سازی کنید. با انتخاب کردن دکنه Add یا Edit شما با مواردی که در تصویر بالا مشاهده می کنید مواجه خواهید شد که در پایین توضیحاتی در خصوص آنها ارائه کرده ایم :

  • Cluster IP Address : همانطور که قبلا هم اشاره کردیم یک Cluster ممکن است چندین Cluster IP Address داشته باشد و یا اینکه شما چندین Cluster در یک مجموعه داشته باشید. با استفاده از این قسمت شما می توانید یک Port Rule بنویسید که ترافیک ورودی را صرفا برای یک آدرس Cluster خاص ارسال کند و هدایت ترافیک را به سمت این آدرس IP انجام دهد. بصورت پیشفرض یک Port Rule جدید تمامی آدرس های IP موجود در Cluster ها را شامل می شود.
  • Port Range and Protocols : شما می توانید در این قسمت ترافیک ورودی بر اساس شماره پورت های تعریف شدن و یا نوع ترافیک از نظر UDP یا TCP یا هر دوی آنها را تعریف کنید و با توجه به این شرایط ترافیک ورودی به Cluster خود را به آدرس مقصد هدایت کنید. به این نکته توجه کنید که شما نمی توانید دو عدد Port Rule مشابه داشته باشید که محدوده پورت های آن با همدیگر یکسان باشند در چنین حالتی Overlap پیش می آید که NLB Clustering به شما اجازه ایجاد کردن این Rule جدید را نخواهد داد.
  • Filtering Mode : این قسمت در واقع به شما می گوید که درخواست ها چگونه در بین Host های موجود در مجموعه تقسیم می شوند. شما می توانید از بین گزینه های Multiple Host ، Single Host و Disable this port range انتخاب کنید. حالت Multiple Host بصورت پیشفرض انتخاب شده است ، با استفاده از قابلیت Multiple Host شما می توانید هم قابلیت Load Balancing و هم قابلیت Fault Tolerance را برای درخواست های ورودی که با Port Rule شما تناسب دارند ایجاد کنید. درخواست های کلاینت هایی که با Port Rule شما تناسب دارند بین Node های فعال NLB Cluster شما در یک Farm توزیع می شوند. زمانیکه شما گزینه Multiple Host Filtering را انتخاب می کنید ، شما باید یک نوع Affinity را نیز انتخاب کنید ، در واقع Affinity روش برخورد Host با درخواستی است که از طرف کلاینت در هنگام برقراری Session انجام می شود ، به زبان ساده تر Affinity به معنی چه کسی مسئول است ؟ می باشد. در این قسمت شما سه گزینه به نامهای Single ، Network و None را دارید که در ادامه در خصوص تک تک آنها صحبت خواهیم کرد :
  1. None : در این حالت ترافیک هر کلاینت ورودی به NLB Cluster شما به سمت هر سرور یا هر Node ای که Load کمتری روی آن هست هدایت می شود. ادامه ترافیکی که از طرف همین کلاینت به سمت NLB Cluster ارسال شود نیز مجددا همین برخورد انجام می شود ، یعنی Node ای که Load کمتری روی آن است به درخواست پاسخ می دهد. در چنین حالتی هر سرور یا Node ای که کمترین Load را در NLB Cluster داشته باشد به درخواست کاربران پاسخ می دهد ، اما توجه کنید که در خواست یک کلاینت ممکن است بار اول توسط ITPRO-NLB1 و بار دوم توسط ITPRO-NLB2 پاسخ داده شود.
  2. Single : با استفاده از این تنظیمات زمانیکه یک کلاینت به نام ITPRO-Client1 در اولین ارتباط خود با NLB Cluster درخواستی به یک Node در کلاستر ما به نام ITPRO-NLB1 ارسال می کند ، کلاینت ما در آینده نیز اگر درخواستی داشته باشد همیشه برای این سرور یا Node مشخص در NLB Cluster درخواست را ارسال خواهد کرد. همینطور اگر یک کلاینت دیگر به نام ITPRO-Client2 درخواست جدیدی به NLB Cluster ارسال کند و Node ای به نام ITPRO-NLB2 پاسخ آن را بدهید در آینده نیز تمامی درخواست های این کلاینت توسط همین سرور انجام خواهد شد و به همین ترتیب ادامه ماجرا طی می شود. مزیت این روش در این است که داده های وضعیت ارتباطی هر کلاینت که در یک Session ارتباطی وجود دارد در Local Node یا همان Node ای که به درخواست کاربر پاسخ داده است ذخیره می شود. این پیشفرض قرارگرفتن حالت Affinity است.
  3. Network : با استفاده از این پیکربندی NLB Cluster ما بر اساس یک Subnet تعریف شده به درخواست ها پاسخ می دهد ، برای مثال اگر کلاینتی با آدرس IP به شماره 172.16.1.150 درخواست خود را به یکی از Host های موجود در NLB Cluster ارسال کنید ، اگر کلاینت دیگری به آدرس 172.16.1.151 نیز درخواست جدیدی به این NLB Cluster ارسال کند همان Node ای پاسخگو خواهد بود که برای ادرس IP قبلی نی مورد استفاده قرار گرفته است ، در چنین شرایطی به دلیل اینکه NetID این دو عدد آدرس IP یکسان است فقط یکی از سرورهای موجود در NLB به درخواست های همه پاسخ می دهد.

توجه کنید که هر تصمیمی که شما در خصوص نحوه قرار دادن Affinity در این قسمت انجام دهید مستلزم این است که Application ای که شما در این NLB Cluster استفاده می کنید نیز قابلیت پشتیبانی از آن را داشته باشد. برای مثال برخی از Application ها هستند که از حالت Affinity که بصورت None باشد پشتیبانی می کنند و اما برخی از آنها نمی توانند با این حالت کار کنند. حالت فیلترینگ Single Host تمامی ترافیک ورودی به یک NLB Cluster را به سمت Host ای که دارای بالاترین اولویت یا Priority باشد هدایت می کندو اگر این Host از بین برود یا در دسترس نباشد ترافیک به Host بعدی که دارای بالاترین اولویت می باشد هدایت می شود. اگر به خاط داشته باشید این دقیقا همان کاری است که پیشفرض در NLB Cluster انجام می شود. بنابراین چرا باید بتوانیم یک Port Rule جدید ایجاد کنیم ؟ مزیت اصلی پیکربندی Port Rule ها در حالت Single Host در این است که با استفاده از Port Rule شما می توانید بعدا یک اولویت بندی دلخواه برای سرورها و البته برای یک نوع خاص ترافیک از طریق Handling Priority در Network Load Balancing Manager تعریف کنید.

تنظیمات مربوط به Timeout باعث می شود که در صورت بروز تغییرات در پیکربندی NLB Cluster ساختار Affinity ما به میزان دقایقی که در Timeout تعریف شده است تغییر نکند. برای مثال اگر NLB Cluster شما برای سرویس دهی به یک وب سایت در نظر گرفته شده است و این وب سایت یک وب سایت خرید و فروش آنلاین باشد ، کاربر ابتدا اطلاعات کارت اعتباری خود را در این وب سایت وارد می کند ، در صورتیکه بار دیگر کاربر وارد همین وب سایت شود متوجه می شود که ارتباط قبلی آن از بین رفته است و اطلاعات کارت خرید خود را بایستی مجددا وارد کنید ، با استفاده از Timeout شما می توانید کاری کنید که اطلاعات این کاربر که مثلا تعداد درخواست های خرید وی بوده است در طی مدت زمانی که برای Timeout در نظر گرفته شده است در وب سایت و در Host اصلی باقی بماند و connection جدیدی ایجاد نشود.

اگر تنظیمات مربوط به Timeout نبودند با ورود مجدد درخواست کاربر به NLB Cluster یک سرور یا Host جدید درخواست وی را پاسخ می داد و اطلاعات قبلی کاربر از بین می رفت. گزینه Disable Port Range به شما این اجازه را می دهد که به NLB Cluster خود بگویید که ترافیک های خاصی را بر اساس Port Rule های تعریف شده Drop یا مسدود کند و به آنها پاسخ ندهد. توجه کنید که برخی از تنظیمات مانند Load Weight و Handling Priority تنها زمانی به شما نمایش داده می شوند که شما گزینه Edit یا New را در Host های موجود در NLB Cluster وارد کرده باشید ، به تصویر زیر نگاه کنید :

Port Rule در تنظیمات NLB Clustering

زمانیکه شما یک Port Rule را Edit می کنید ، همانطور که در تصویر بالا مشاهده می کنید ، می توانید دو گزینه جدید به نامهای Load Weight و Handling Priority را نیز تعریف کنید ، در ادامه در خصوص این دو مورد توضیحاتی را ارائه خواهیم کرد :

  • Load Weight : شما می توانید با استفاده از این گزینه به Host ای که در حال ویرایش تنظیمات Port Rule آن هستید بگویید که چه میزان از حجم کاری یا Workload این NLB Cluster با توجه به Port Rule موجود را سرویس دهی کند. بصورت پیشفرض گزینه Equal یا برابر برای همه Host های موجود در Cluster تعریف شده است و این بدین معناست که Workload شبکه در بین تمامی Host های موجود در NLB Cluster بصورت یکسان توزیع می شوند. توجه کنید که اگر شما گزینه Equal را غیرفعال کنید به صورت دستی می توانید به Cluster بگویید که این Host چه میزان از ترافیک را سرویس دهی کند ، شما می توانید عددی بین 0 تا 100 در این قسمت وارد کنید و فرض کنید که این عدد درصد ترافیکی است که این Host می تواند در شبکه سرویس دهی کند. به این نکته توجه کنید که تنظیمات این قسمت فقط زمانی کاربردی است که شما گزینه Multiple Host را انتخاب کرده باشید در غیر اینصورت این گزینه برای شما کاری انجام نخواهد داد. بصورت پیشفرض همگی Host ها ترافیک را بصورت یکسان سرویس دهی می کنند.
  • Handling Priority : این گزینه صرفا زمانی قابل پیکربندی است که شما Single Host را انتخاب کرده باشید در غیر اینصورت غیرفعال خواهد بود. در حالت Single Host سروری که دارای بالاترین اولویت یا Priority باشد همیشه ترافیک شبکه را بر اساس Port Rule تعریف شده دریافت می کند. مزایای استفاده از این قسمت این است که شما می توانید ترافیک مربوط به یک Port Rule خاص را در حالت Single برای سرورهایی با اولویت های متفاوت تعریف کنید. برای مثال شما می توانید برای این Host تعریف کنید که در صورتیکه ترافیک HTTP دریافت شد اولویت اجرا شدن این ترافیک بر اساس Port Rule تعریف شده برای ITPRO-NLB1 باشد.

در انتها فقط به این نکته اشاره می کنیم که زمانیکه صحبت از Host Priority می شود در واقع ما تعیین می کنیم که کدام سرور در NLB Cluster ترافیکی را که در Port Rule ها تعریف نشده است را مدیریت و دریافت کند. اما زمانیکه صحبت از Handling Priority می شود شما در خصوص ترافیکی صحبت می کنید که در Port Rule ها تعریف شده است و می خواهید ترافیک موجود در یک Port Rule با اولویتی که شما تعیین می کنید بر روی Host مورد نظر شما اجرا شود. امیدوارم مورد توجه شما قرار گرفته باشد ، اگر مقاله را کپی می کنید حق تالیف نویسنده و وب سایت انجمن تخصصی فناوری اطلاعات ایران را فراموش نکنید. ITPRO باشید

نویسنده : محمد نصیری

منبع : جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#port_rule_در_nlb #تنظیمات_port_rule_در_nlb_clustering #مفاهیم_load_weight_و_handling_priority #پیاده_سازی_nlb_clustering #راه_اندازی_nlb_در_سرور_2012 #nlb_clustering_چیست #منظور_از_single_و_network_در_nlb #آموزش_راه_اندازی_nlb_clustering #Clustering_و_NLB_روی_DNS_سرور #تعریف_port_rule_در_nlb_clustering
8 نظر
مهدی باقری

تشکر فراوان جناب مهندس

مهدی باقری

باتشکر

جناب آقای نصیری عزیز دوتا سوال که یجورایی به هم مرتبطن برام پیش اومده

1) در قسمت Cluster IP Address ما محدود به دو انتخاب all یا یک ip هستیم یا اینکه میتونیم دو یا سه ip انتخاب کنیم ؟

2) آیا میشود یک Cluster خود نقش یک host در یک کلاستر دیگر را بازی کند یعنی Cluster در Cluster ؟

محمد نصیری
  1. جواب سئوال یک : خیر شما نمی تونید در متن هم اشاره کردیم نمیشه دو Rule یکسان داشت مگر اینکه Rule های جداگانه با Port های جداگانه تعریف کنید که در هر صورت باز هم نمیشه چند آدرس IP رو انتخاب کرد
  2. جواب سئوال دو : چرا که نه ... بله میشه اصلا تو سناریویی که ما انجام دادیم همه مراحل رو روی ITPRO-NLB1 انجام دادیم که خودش جزوی از NLB Cluster هست ..
مهدی باقری

مرسی مهندس ولی من دومی رو متوجه نشدم منظورم اینه که مثلا این NLB Cluster ای که توی سناریو درست کردیم خودش بشه یه host توی یه کلاستر دیگه که host های دیگه ای ( Cluster های دیگه ای ) تو اون Cluster بزرگتر باشه ؟

محمد نصیری

من اینکار رو انجام ندادم ، یعنی اینکه یک Host در دو کلاستر قرار بگیره ... بعید نمیدونم بشه اما باید جستجو کنم چون در چنین شرایطی حتما باید کارت شبکه جداگونه برای اون کلاستر جدید داشته باشیم ، البته کلاستر در کلاستر نمیشه ، اما احتمالش هست که یک Host که دارای مثلا دو کارت شبکه هست بتونه در دو کلاستر مجزا فعالیت کنه ، اگه اینکار رو انجام بدیم آدرس های MAC کارت شبکه ها باید تفکیک شده باشند ... نمیتونم جواب قطعی بدم اما حتما جستجو می کنم در این خصوص ...

مهدی باقری

یه سوال دیگه هم برام پیش اومده شما فرمودید:

حالت فیلترینگ Single Host تمامی ترافیک ورودی به یک NLB Cluster را به سمت Host ای که دارای بالاترین اولویت یا Priority باشد هدایت می کند و اگر این Host از بین برود یا در دسترس نباشد ترافیک به Host بعدی که دارای بالاترین اولویت می باشد هدایت می شود

خوب پس هیچ Load Balancing ای انجام نشده فقط ما در این حالت تحمل خطا در مقابل خرابی داریم ؟

یه تشکر ویژه هم بخاطر مفاهیم Host Priority و Handling Priority و Load Weight و اختلافاشون همینجا میکنم چون واقعا خیلی از استادهای شبکه هستند که متاسفانه تو درک و انتقال این مفهوم ها مشکل دارند

محمد نصیری

در خصوص Single Host بله درست می فرمایید اما به این موضوع هم توجه کنید که همه این موارد وابسته به Port Rule ای هست که شما می نویسید ، دیگه تعاریف در این حوزه بر میگرده به اینکه چه نوع Port Rule ای نوشتید ، حالا من اینجا یه چیزی رو صادقانه می گم به نظر من سرویس NLB Clustering فقط یک سرویسی هست که باید بدونیم چیکار می کنه و ساده ترین حالت پیاده سازیش چی هست ، اونقدر اولویتی نداره ، معمولا در سازمان های بزرگ نمیان چند تا سرور رو فدای یه سرویس ساده بکنن مخصوصا اینکه سرویسی که دارید ارائه میدید Dynamic هم نباشه و پایگاه داده نداره ، میان روی Failover Clustering سرمایه گذاری می کنن ، من خودم تا حالا بارها Failover Clustering رو پیاده سازی کردم اما تا حالا برام پیش نیومده که NLB Cluster راه اندازی کرده باشم مگر در محیط مجازی ... به هر حال در خصوص Port Rule ها واقعا مثال عملی نمیتونم بزنم چون کار نکردم باهاش و اگر واقعا کسی هست که تو ایران کار کرده خوشحال میشم به منم یاد بده دقیقا چه مواقعی این Port rule رو استفاده می کنیم چون من هر چقدر جستجو کردم همه همین حرفای من رو می زنن و هیچکدوم نمیگن Best Practice این سناریو چی هست ... سعی کنید به اصول بیشتر بپردازید وگرنه تب به تب بخاین برین جلو فقط براتون حاشیه ایجاد می کنه ... موفق باشید

amir_ras

عالی بود استاد ممنون

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....