| ISNS_CONFIG(5) | File Formats Manual | ISNS_CONFIG(5) |
نام (NAME)
isns_config - پرونده پیکربندی iSNS
خلاصه (SYNOPSIS)
/etc/isns/isnsadm.conf
/etc/isns/isnsd.conf
/etc/isns/isnsdd.conf
توضیحات (DESCRIPTION)
تمام ابزارهای Open-iSNS پیکربندی خود را از پروندهای در /etc/isns میخوانند. یک پرونده پیکربندی مجزا برای هر برنامه وجود دارد: isnsd، isnsadm و isnsdd. ساختار دستوری و مجموعه گزینههای پشتیبانیشده یکسان است، اگرچه برخی گزینهها مختص مواردی مانند کارساز هستند. گزینهها، مگر در مواردی که مشخص شده باشد، برای تمام ابزارها کاربرد دارند.
یک پرونده پیکربندی Open-iSNS شامل جفتهای کلیدواژه-آرگومان است، یک مورد در هر خط. تمامی کلیدواژهها به بزرگی و کوچکی حروف حساس نیستند.
نویسه # نشاندهنده کامنت است که تا انتهای خط ادامه دارد. خطوط خالی نادیده گرفته میشوند.
ادامه خط مجاز نیست، و نمیتوان اطراف آرگومانها از نقلقول استفاده کرد.
برخی گزینهها مقادیر مهلت زمانی را مشخص میکنند که بهطور پیشفرض بر حسب ثانیه داده میشوند. با این حال میتوانید یک واحد صریح را تعیین کنید، مانند d (روز)، h (ساعت)، m (دقیقه)، یا s (ثانیه).
گزینههای عمومی (Generic Options)
- HostName
- بهطور پیشفرض، برنامههای Open-iSNS نام میزبان ماشین را با استفاده از فراخوانی سیستمی gethostname(3) دریافت کرده و از یک جستجوی DNS برای یافتن نام متعارف استفاده میکنند. با استفاده از گزینه HostName میتوانید این رفتار را تغییر دهید. این گزینه بهندرت مورد نیاز است.
- SourceName
- این گزینه برای تمام برنامههای Open-iSNS الزامی است. این مقدار باید نامی باشد که کلاینت را بهطور یکتا مشخص کند. دو برداشت از RFC 4171 وجود دارد؛ یکی مستلزم آن است که این مقدار یک نام واجد شرایط iSCSI مانند iqn.2001-04.com.example.host باشد، در حالی که متن دیگر در RFC بیان میکند که این رشته قالبی آزاد دارد و تنها باید یکتا باشد (برای نمونه استفاده از نام دامنه کاملاً واجد شرایط کلاینت).
- هنگام استفاده از احراز هویت DSA، در حال حاضر Open-iSNS نیاز دارد که نام مبدأ با شناسه کلید (SPI) مربوط به کلید عمومی کلاینت مطابقت داشته باشد.
- در صورت خالی ماندن، نام مبدأ یا از initiatorname پیشفرض در /etc/iscsi/initiatorname.iscsi مشتق میشود، یا در صورت عدم موفقیت، از نام میزبان کلاینت با استفاده از گزینه IQNPrefix برای تولید یک نام واجد شرایط iSCSI ایجاد میگردد.
- IQNPrefix
- پیشوند نام واجد شرایط iSCSI را مشخص میکند؛ باید به فرمت iqn.YYYY-MM باشد که در آن YYYY سال و MM ماه است.
- ServerAddress (کلاینت):
- این گزینه نام میزبان یا آدرس کارساز iSNS را برای ارتباط مشخص میکند. بهطور اختیاری میتواند یک دونقطه و یک شماره پورت به دنبال آن بیاید.
- به جای نام میزبان، میتوان از آدرسهای IPv4 یا IPv6 استفاده کرد. برای جلوگیری از ابهام، آدرسهای تحتاللفظی IPv6 باید داخل براکت قرار گیرند، مانند [2001:4e5f::1].
- هنگام تعیین شماره پورت، میتوانید از پورت عددی یا نام رشتهای برای جستجو در /etc/services استفاده کنید. اگر پورت حذف شود، مقدار پیشفرض آن 3205 خواهد بود که شماره پورت اختصاصیافته توسط IANA برای iSNS است.
- اگر از رشته خاص SLP: استفاده شود، کلاینت تلاش خواهد کرد تا کارساز iSNS را از طریق SLP پیدا کند.
- SLPRegister (کارساز):
- اگر روی 1 تنظیم شود، دیمن iSNS خود را در سرویس SLP ثبت میکند. این به کلاینتها امکان میدهد بدون نیاز به پیکربندی ایستا برای آدرس کارساز، با آن ارتباط برقرار کنند.
- PIDFile (کارساز):
- این گزینه نام پرونده PID کارساز را مشخص میکند که بهطور پیشفرض /var/run/isnsd.pid است.
گزینههای مربوط به پایگاه داده (Database Related Options)
این گزینهها فقط برای کارساز iSNS اعمال میشوند و عملکرد پایگاه داده iSNS را کنترل میکنند.
- Database
- این گزینه برای مشخص کردن نحوه ذخیرهسازی پایگاه داده استفاده میشود. تنظیم این گزینه روی یک مسیر مطلق باعث میشود که isnsd پایگاه داده خود را در دایرکتوری مشخصشده نگهداری کند.
- اگر این گزینه را خالی بگذارید، isnsd پایگاه داده خود را در حافظه نگهداری خواهد کرد. این همچنین تنظیم پیشفرض است.
- DefaultDiscoveryDomain
- سرویس iSNS دیداری بودن سایر گرهها را با استفاده از اصطلاحاً دامنههای کشف (Discovery Domains) محدود میکند. یک گره ذخیرهسازی A تنها در صورتی گره ذخیرهسازی B را میبیند که هر دو عضو یک دامنه کشف یکسان باشند.
- بنابراین اگر یک گره ذخیرهسازی ثبت شود که عضو هیچ دامنه کشفی نیست، هیچ گره دیگری را نخواهد دید.
- با تنظیم DefaultDiscoveryDomain=1، میتوانید به isnsd بگویید که یک دامنه کشف پیشفرض مجازی ایجاد کند که شامل تمام گرههایی باشد که عضو هیچ دامنه کشف پیکربندیشده بهصورت مدیریتی نیستند.
- بهطور پیشفرض، هیچ دامنه کشف پیشفرضی وجود ندارد.
- RegistrationPeriod
- کارساز iSNS میتواند موجودیتهای ثبتشده را پس از دوره مشخصی از عدم فعالیت پاکسازی کند. این دوره، دوره ثبت نامیده میشود. کلاینتهایی که اشیاء را ثبت میکنند باید ثبت خود را در این دوره تجدید نمایند.
- مقدار پیشفرض 1 ساعت است. تنظیم آن روی 0 انقضای موجودیتها از پایگاه داده را غیرفعال میکند.
- ESIRetries
- سامانه Open-iSNS قادر است با استفاده از قابلیتی در پروتکل به نام ESI (استعلام وضعیت موجودیت یا Entity Status Inquiry)، دسترسپذیری گرههای ذخیرهسازی و پورتالهای آنها را نظارت کند. کلاینتها با ثبت یک پورت ESI همراه با هر پورتال، درخواست نظارت ESI میدهند. کارساز پیامهای ESI را در فواصل منظم به این پورتالها ارسال میکند. اگر پورتال چندین بار متوالی پاسخ ندهد، از کار افتاده تلقی شده و از پایگاه داده حذف خواهد شد.
- گزینه ESIRetries حداکثر تعداد تلاشهایی را که کارساز برای برقراری ارتباط با پورتال پیش از قطع امید از آن انجام میدهد، مشخص میکند. اگر روی 0 تنظیم شود، کارساز ESI را غیرفعال کرده و هرگونه ثبت نامی را که پورت ESI مشخص کرده باشد با کد خطای «ESI not supported» رد میکند.
- مقدار پیشفرض 3 است.
- ESIMinInterval
- این مقدار مهلت زمانی حداقل بازه زمانی ESI را مشخص میکند. اگر کلاینتی بازه ESI کمتر از این مقدار درخواست کند، مقدار آن بدون هشدار به سمت بالا گرد میشود.
- مقدار پیشفرض 60 ثانیه است.
- ESIMaxInterval
- این مقدار مهلت زمانی حداکثر بازه زمانی ESI را مشخص میکند. اگر کلاینتی بازه ESI بیشتر از این مقدار درخواست کند، مقدار آن بدون هشدار به سمت پایین گرد میشود.
- مقدار پیشفرض 10 دقیقه است.
- حداکثر بازه ESI نباید از نیمی از مقدار دوره ثبت بیشتر باشد.
- SCNRetries
- کلاینتهای iSNS میتوانند برای دریافت پیامهای اعلان تغییر وضعیت (SCN) ثبتنام کنند تا از تغییرات پایگاه داده iSNS مطلع شوند. این مقدار مشخص میکند که کارساز چند بار تلاش به ارسال مجدد پیام SCN میکند تا در نهایت متوقف شود.
- مقدار پیشفرض 3 است.
- SCNCallout
- این مسیر یک برنامه کمکی است که isnsdd هر زمان که یک اعلان تغییر وضعیت را از کارساز پردازش کند، آن را فراخوانی خواهد کرد. برنامه کمکی با آرگومانی فراخوانی میشود که نوع رویداد را نشان میدهد و یکی از مقادیر add، update یا remove است. به دنبال آن فهرستی از صفتها در قالب name=value ارائه میشود که از نامها و قواعد توصیفشده در isnsadm(8) استفاده میکند.
گزینههای مربوط به امنیت (Security Related Options)
استاندارد iSNS یک روش احراز هویت مبتنی بر الگوریتم DSA تعریف میکند. طرفهای تبادل پیام با افزودن یک «بلوک احراز هویت» شامل برچسب زمانی، رشتهای برای شناسایی کلید مورداستفاده، و یک امضای دیجیتال از پیام، پیامها را احراز هویت میکنند. همین روش توسط SLP (پروتکل مکانیابی سرویس) نیز استفاده میشود.
رشته موجود در بلوک احراز هویت با نام شاخص خطمشی امنیت (SPI) شناخته میشود. این رشته میتواند توسط کارساز برای جستجوی کلید عمومی کلاینت از طریق هر سازوکاری استفاده شود؛ بنابراین این رشته میتواند به عنوان نام یک پرونده کلید عمومی در یک دایرکتوری استفاده شود، یا برای بازیابی یک گواهی X509 از LDAP به کار رود.
از دیدگاه برنامههای کلاینت Open-iSNS، تنها دو کلید وجود دارد: کلید اختصاصی (خصوصی) خود کلاینت که برای امضای پیامهای ارسالی به کارساز استفاده میشود، و کلید عمومی کارساز که برای تایید امضای پیامهای دریافتی از کارساز به کار میرود.
کارساز iSNS، علاوه بر کلید خصوصی خود، نیازمند دسترسی به تمام کلیدهای عمومی کلاینتهایی است که با آن ارتباط برقرار میکنند. این کلیدها در محلی به نام مخزن کلید نگهداری میشوند. مخازن کلید و نحوه عملکرد آنها در بخش مخازن کلید و خطمشی در زیر مورد بحث قرار خواهد گرفت.
گزینههای پیکربندی زیر احراز هویت را کنترل میکنند:
- Security
- این گزینه احراز هویت DSA را فعال یا غیرفعال میکند. اگر روی 1 تنظیم شود، کلاینت تمام پیامها را امضا خواهد کرد و انتظار دارد تمام پیامهای کارساز نیز امضا شده باشند.
- هنگام فعالسازی امنیت در کارساز، پیامهای دریافتی برای وجود بلوک احراز هویت بررسی میشوند. اگر هیچ بلوکی وجود نداشته باشد، یا اگر کارساز نتواند کلید عمومی مربوط به SPI را پیدا کند، با پیام بهصورت یک منبع ناشناس برخورد میشود. اگر SPI شناختهشده باشد اما امضا نادرست باشد، پیام بدون اعلام خطا دور انداخته میشود.
- به پیامهای حاصل از یک منبع ناشناس، یک خطمشی بسیار محدودکننده اختصاص داده میشود که تنها اجازه پرسوجو از پایگاه داده را میدهد.
- تنظیم این گزینه روی 0 احراز هویت را خاموش میکند.
- مقدار پیشفرض -1 است که به iSNS میگوید در صورت نصب بودن کلیدهای مورد نیاز از احراز هویت استفاده کند و در غیر این صورت از iSNS بدون احراز هویت استفاده نماید.
- AuthName
- این رشتهای است که به عنوان SPI در تمام پیامهای خروجی دارای بلوک احراز هویت استفاده خواهد شد. مقدار پیشفرض آن نام میزبان است (لطفاً به گزینه HostName مراجعه کنید).
- AuthKeyFile
- این مسیر پروندهای شامل یک کلید DSA با کدگذاری PEM است. این کلید برای امضای پیامهای خروجی استفاده میشود. مقدار پیشفرض /etc/isns/auth_key است.
- ServerKeyFile
- این گزینه فقط توسط برنامههای کلاینت استفاده میشود و مسیر پروندهای شامل یک کلید DSA با کدگذاری PEM را مشخص میکند. این کلید برای احراز هویت پاسخهای کارساز استفاده میشود. مقدار پیشفرض /etc/isns/server_key.pub است.
- KeyStore
- این گزینه سمت کارساز، مخزن کلید مورد استفاده را مشخص میکند که در بخش بعدی شرح داده شده است.
دو گزینه زیر نحوه تایید برچسب زمانی موجود در بلوک احراز هویت توسط iSNS را کنترل میکنند که قرار است از حملات بازپخش جلوگیری کند.
- Auth.ReplayWindow
- برای جبران اختلاف ساعت میان دو میزبان تبادلکننده پیامهای iSNS، سامانه Open-iSNS هنگام مقایسه برچسب زمانی موجود در پیام با زمان سیستم محلی، مقداری تلورانس اعمال میکند. اگر اختلاف میان برچسب زمانی و زمان سیستم محلی کمتر از تعداد ثانیههای تعیینشده توسط این گزینه باشد، پیام پذیرفته میشود. در غیر این صورت، رد خواهد شد.
- مقدار پیشفرض 5m است.
- Auth.TimestampJitter
- هنگام تایید پیامهای دریافتی، Open-iSNS بررسی میکند که برچسبهای زمانی ارسالی توسط طرف مقابل بهصورت یکنواخت صعودی باشند. برای جبران تغییر ترتیب پیامها توسط شبکه (مانند زمانی که از UDP به عنوان پروتکل انتقال استفاده میشود)، مقداری نوسان برچسب زمانی پذیرفته میشود. اگر برچسب زمانی یک پیام دریافتی زودتر از TimestampJitter ثانیه قبل از آخرین برچسب زمانی دریافتی نباشد، پیام پذیرفته میشود. در غیر این صورت، رد خواهد شد.
- مقدار پیشفرض 1s است.
مخازن کلید و خطمشی (Key Stores and Policy)
پیادهسازی فعلی از دو نوع مخزن کلید پشتیبانی میکند.
مخزن کلید ساده از یک دایرکتوری مسطح برای ذخیره کلیدهای عمومی استفاده میکند، به طوری که هر کلید در پروندهای جداگانه قرار دارد. انتظار میرود پرونده شامل کلید عمومی با کدگذاری PEM کلاینت باشد و باید از SPI کلاینت به عنوان نام پرونده استفاده کند. این نوع مخزن کلید چندان توصیه نمیشود، زیرا هیچگونه اطلاعات خطمشی را ذخیره نمیکند.
یک مخزن کلید ساده را میتوان با تنظیم گزینه KeyStore به مسیر دایرکتوری پیکربندی کرد.
رویکرد توصیهشده استفاده از پایگاه داده به عنوان مخزن کلید است. این رویکرد از اشیاء خطمشی ویژه سازنده برای پیوند دادن رشته SPI، کلید عمومی، نام موجودیت، نام مبدأ و سایر اجزای خطمشی به یکدیگر و ذخیره پایدار آنها استفاده میکند.
مخزن کلید پایگاه داده با تنظیم گزینه KeyStore به مقدار رزروشده DB:، که مقدار پیشفرض نیز هست، پیکربندی میشود.
در حال حاضر، اشیاء خطمشی Open-iSNS علاوه بر SPI، دارای ویژگیهای زیر هستند:
- Source:
- این نام گره مبدأ است که کلاینت باید استفاده کند. بهطور پیشفرض رشته SPI است.
- Functions:
- این یک نقشه بیتی است که مشخص میکند کلاینت مجاز به فراخوانی کدام توابع است. نام بیتها با نامهای اختصاری استفادهشده در RFC 4171 مطابقت دارد، مانند DevAttrReg، DevAttrQry و غیره. مقدار پیشفرض، اجازه ثبت، پرسوجو و لغو ثبت و همچنین SCNRegister است.
- Entity name:
- این نام موجودیتی است که به کلاینت اختصاص یافته است. در صورت تنظیم، ثبت توسط کلاینت مجاز به استفاده از نام موجودیت متفاوتی نیست. اگر کلاینت درخواستی برای ثبت بدون شناسه Entity ارسال کند، کارساز نام موجودیت ارائهشده در خطمشی را اختصاص خواهد داد. مقدار پیشفرض عدم اعمال محدودیت بر نام موجودیت است.
- Object access:
- این یک فیلد بیتی است که مجوزهای دسترسی را برای هر نوع شیء توصیف میکند. برای هر نوع شیء، میتوانید مجوزهای خواندن یا نوشتن را اعطا کنید. دسترسی خواندن برای فراخوانیهای Query و GetNext اعمال میشود؛ سایر عملیات نیازمند مجوز نوشتن هستند. مقدار پیشفرض، مجوز خواندن و نوشتن را به اشیاء از نوع Entity ،Storage Node ،Portal و Portal Group؛ و دسترسی خواندن را به Discovery Domains اعطا میکند.
- Node types:
- این فیلد بیتی مشخص میکند که یک کلاینت مجاز به ثبت کدام نوع از گرههای ذخیرهسازی است؛ نامهای بیت معتبر عبارتند از target، initiator و control. پیشفرض این است که گرهها فقط به ثبت initiator محدود شوند.
گزینههای مربوط به شبکه (Network Related Options)
- Network.MaxSockets
- این تعداد اتصالات ورودی پذیرفتهشده است و پیشفرض آن 1024 است. این معمولاً فقط در سمت کارساز اعمال میشود، اما اگر یک سوکت پذیرنده TCP برای ESI یا SCN ایجاد کنید، مرتبط خواهد بود.
- Network.ConnectTimeout
- این یک مقدار مهلت زمانی است که مدت انتظار برای برقراری اتصال TCP را مشخص میکند. مقدار پیشفرض آن 60s است.
- Network.ReconnectTimeout
- هنگامی که تلاش برای اتصال با شکست مواجه میشود، قبل از تلاش مجدد برای اتصال، مدت کوتاهی صبر میکنیم. این کار برای کاهش بار روی کارسازهای شلوغ طراحی شده است. مقدار پیشفرض 10s است.
- Network.CallTimeout
- کل مدت زمانی که باید قبل از انقضای مهلت زمانی یک فراخوانی به کارساز iSNS صبر کرد. مقدار پیشفرض 60s است.
همچنین ببینید (SEE ALSO)
RFC 4171, isnsd(8), isnsadm(8).
نویسندگان (AUTHORS)
Olaf Kirch <olaf.kirch@oracle.com>
| 11 May 2007 |