.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "GDNSD-PLUGIN-SIMPLEFO 8" .TH GDNSD-PLUGIN-SIMPLEFO 8 2026-04-04 "gdnsd 3.8.3" gdnsd .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" gdnsd\-plugin\-simplefo \- پلاگین تغییر مسیر اضطراری (failover) ساده در gdnsd .SH "خلاصه (SYNOPSIS)" .IX Header "SYNOPSIS" نمونه‌ای از قطعه‌پیکربندی gdnsd با استفاده از این پلاگین: .PP .Vb 10 \& plugins => { \& simplefo => { \& service_types => [ www ], \& pubwww => { \& primary => 192.0.2.1 \& secondary => 192.0.2.100 \& } \& www6 => { \& primary => 2001:DB8::1 \& secondary => 2001:DB8::100 \& } \& mixed => { \& service_types => [ www, xmpp ] \& addrs_v4 => { \& primary => 192.0.2.1 \& secondary => 192.0.2.100 \& } \& addrs_v6 => { \& service_types => up \& primary => 2001:DB8::1 \& secondary => 2001:DB8::100 \& } \& } \& } \& } .Ve .PP نمونه‌ای از رکوردهای منبع (RR) در zonefile: .PP .Vb 3 \& www 180 DYNA simplefo!pubwww \& www6 180 DYNA simplefo!www6 \& mix 180 DYNA simplefo!mixed .Ve .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBgdnsd\-plugin\-simplefo\fR برای انجام تغییر مسیر اضطراری (failover) ساده از نوع فعال/غیرفعال (active/passive) بین یک نشانی اصلی (primary) و یک نشانی ثانویه (secondary) طراحی شده است. وضعیت نشانی‌ها با نظارت استاندارد \&\f(CW\*(C`service_types\*(C'\fR در gdnsd بررسی می‌شود. اگر به چیزی بیش از یک فهرست تغییر مسیر اضطراری ساده دو نشانی نیاز دارید، پلاگین \&\f(CW\*(C`metafo\*(C'\fR مناسب‌تر است. .SH "پیکربندی سطح بالای پلاگین (TOP-LEVEL PLUGIN CONFIG)" .IX Header "TOP-LEVEL PLUGIN CONFIG" در بالاترین سطح از بخش پیکربندی پلاگین، پارامتر ویژه \&\f(CW\*(C`service_types\*(C'\fR پشتیبانی می‌شود. این پارامتر مقدار پیش‌فرض \&\f(CW\*(C`service_types\*(C'\fR را برای تمام منابع به ازای هر منبع تعیین می‌کند. مقدار پیش‌فرضِ پیش‌فرض برای \&\f(CW\*(C`service_types\*(C'\fR برابر با \&\f(CW\*(C`[ up ]\*(C'\fR است که به‌سادگی وضعیت همه آن‌ها را به صورت ایستا روی \&\f(CW\*(C`UP\*(C'\fR تنظیم می‌کند. .PP باقی مدخل‌های هش در سطح بالا، نام منابعی هستند که شما تعریف می‌کنید. به هر منبع یک هش پیکربندی اختصاصی برای نگهداری اطلاعات نشانی مختص آن منبع داده می‌شود. .SH "پیکربندی منبع (RESOURCE CONFIG)" .IX Header "RESOURCE CONFIG" درون یک منبع، مجدداً پارامتر \&\f(CW\*(C`service_types\*(C'\fR پشتیبانی می‌شود تا نوع یا انواع سرویس‌های پایش‌شده را برای این منبع خاص تنظیم کند. .PP اگر \&\f(CW\*(C`addrs_v4\*(C'\fR تعریف شده باشد، باید هشی شامل دو کلید باشد: \&\f(CW\*(C`primary\*(C'\fR و \&\f(CW\*(C`secondary\*(C'\fR، که مقدار هر یک یک رشته نشانی IPv4 است. .PP به همین ترتیب، اگر \&\f(CW\*(C`addrs_v6\*(C'\fR تعریف شده باشد، باید هشی شامل دو کلید باشد: \&\f(CW\*(C`primary\*(C'\fR و \&\f(CW\*(C`secondary\*(C'\fR، که مقدار هر یک یک رشته نشانی IPv6 است. .PP اگر هیچ‌کدام از این دو زیربخش تعریف نشده باشند، باید یک جفت نشانی واحد \&\f(CW\*(C`primary\*(C'\fR و \&\f(CW\*(C`secondary\*(C'\fR برای کل منبع تعریف کنید. این نشانی‌ها می‌توانند از هر یک از خانواده‌های نشانی باشند، به شرط آنکه هر دو از یک خانواده باشند. .PP هنگامی که \&\f(CW\*(C`addrs_v4\*(C'\fR و/یا \&\f(CW\*(C`addrs_v6\*(C'\fR استفاده می‌شوند، می‌توان \&\f(CW\*(C`service_types\*(C'\fR را در درون هر یک نیز بازنویسی کرد تا رفتار متفاوتی به ازای هر خانواده نشانی اعمال شود (به‌عنوان مثال اجبار یک پروتکل به اینکه همیشه up یا down باشد). .SH "مکانیزم‌های عملیاتی (OPERATIONAL MECHANICS)" .IX Header "OPERATIONAL MECHANICS" برای هر خانواده نشانی که داده‌های آن را ارائه داده‌اید، منطق زیر به صورت مستقل اعمال می‌شود: .IP \(bu 4 ابتدا بدترین وضعیت نظارت‌شده از میان تمام بررسی‌های \&\f(CW\*(C`service_types\*(C'\fR برای نشانی اصلی به‌دست می‌آید. اگر این وضعیت \&\f(CW\*(C`UP\*(C'\fR باشد، نشانی اصلی استفاده می‌شود. .IP \(bu 4 اگر نشانی اصلی \&\f(CW\*(C`DOWN\*(C'\fR بود، نشانی ثانویه بررسی می‌شود: اگر نشانی ثانویه \&\f(CW\*(C`UP\*(C'\fR باشد، از آن استفاده خواهد شد. اگر نشانی ثانویه نیز \&\f(CW\*(C`DOWN\*(C'\fR باشد، مجدداً از نشانی اصلی استفاده می‌شود. .IP \(bu 4 در هر حالتی غیر از وضعیت دقیقاً \&\f(CW\*(C`UP\*(C'\fR برای نشانی اصلی، مقدار TTL مجموعه رکوردهای منبع (RR-set) پاسخ از فایل منطقه (zonefile) برای هر دو خانواده نشانی نصف خواهد شد. .PP اگر هر دو نشانی \&\f(CW\*(C`primary\*(C'\fR و \&\f(CW\*(C`secondary\*(C'\fR برای \&\fBهر یک\fR از خانواده‌های نشانی در وضعیت \&\f(CW\*(C`DOWN\*(C'\fR باشند، این پلاگین وضعیت شکست کامل منبع را به هر ماژول بالادستی (مانند geoip یا metafo) اعلام می‌کند. نصف شدن TTL برای تمامی رکوردهای نشانی تنها یک‌بار رخ می‌دهد، حتی اگر هر دو خانواده نشانی دارای نشانی اصلی در وضعیتی غیر از \&\f(CW\*(C`UP\*(C'\fR باشند. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBgdnsd.config\fR\|(5), \fBgdnsd.zonefile\fR\|(5), \fBgdnsd\fR\|(8), \&\fBgdnsd\-plugin\-multifo\fR\|(8) .PP راهنمای gdnsd. .SH "حق نشر و مجوز (COPYRIGHT AND LICENSE)" .IX Header "COPYRIGHT AND LICENSE" Copyright (c) 2012 Brandon L Black .PP این پرونده بخشی از gdnsd است. .PP نرم‌افزار gdnsd یک نرم‌افزار آزاد است: می‌توانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License) منتشرشده توسط بنیاد نرم‌افزار آزاد، نگارش ۳ مجوز یا (به انتخاب خودتان) هر نگارش بالاتری بازتوزیع کرده و/یا تغییر دهید. .PP نرم‌افزار gdnsd به این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف مشخص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید. .PP باید همراه با gdnsd نسخه‌ای از مجوز عمومی همگانی گنو را دریافت کرده باشید. در غیر این صورت، نشانی را ببینید.