نگارش یافته توسط شاهین غرقی
یکی از مهمترین مسائل یک سرویس دهنده اینترنت برای پایداری خاصیت Failover بودن آن است. زیرا خواه ناخواه قطعی لینک و از کار افتادن یک دستگاه وجود دارد، و اگر ما برای این مسیر پشتیبانی در نظر نگیریم هرگز سرویس پایداری نخواهیم داشت.
این امر حتی برای بزرگترین سرویس دهنده های دنیا همچون AT&T نیز وجود دارد. به عنوان مثال سروری آشنا مانند 4.2.2.4 هم از کار خواهد افتاد اما وجود سرور و لینک پشتیبان مانع این احساس می شود که خللی در سرویس دهی آن به وجود آمده است و آن را به یک سرور با Uptime 99.9% تبدیل میکند.
من در این آموزش می خواهم نحوه Failover کزدن 2 لینک اینترنت را آموزش دهم:
Failover چیست؟
به زبان ساده Failover یعنی ارتباطی را از طریق یک لینک با کیفیت برقرار نموده و یک لینک دیگری را به صورت standby نگه داریم. که در مواقع قطعی لینک اول به صورت اتوماتیک بر روی لینک دوم switch شود.
این کار با platform های Linux, Mikrotik و Cisco قابل اجراست اما ما در این آموزش بر روی Cisco توضیح خواهم داد.
با یک مثال عملی شروع میکنیم که هم اکنون آن را زیر بار دارم:
یک لینک وایرلس 90 کیلومتری وجود دارد که روی آن 15 مگ اینترنت ارائه داده میشود. به دلیل اینکه این اینترنت متعلق به یک دانشگاه است و روی آن web server قرار دارد 2M لینک پشتیبان بر روی بستر مخابراتی برای آن تعبیه گردیده است .
در سمت سرویس دهنده که سایت A مینامیم یک عدد روتر 3845 و در سمت سرویس گیرنده که سایت B مینامیم یک عدد 2811 وجود دارد. هر کدام دارای 2 Fast Ethernet است که یکی به لینک وایرلس و دیگری به خط مخابراتی متصل است.
آدرس های لینک مخابراتی 2.2.2.1 و 2.2.2.2 و لینک وایرلس 1.1.1.1 و 1.1.1.2 میباشند.
و رنج آدرس 24/ 109.74.224.0 به سمت سایت B رووت شده است.
میبایست روتر ها به گونه ای تنظیم گردند که کیفیت لینک وایرلس مرتبا چک شود و در صورت قطعی بیش از 10 ثانیه ارتباط به لینک مخابراتی منتقل گردد و اگر کیفیت لینک وایرلس به حالت اول برگشت مجددا ارتباط بر دوش آن باشد.
برای روتر سایت A مینویسیم:
ابتدا یک روول برای مانیتورینگ ایجاد میکنیم:
سپس نحوه چک up بودن لینک را مشخص میکنیم. که در این مثال آدرس 1.1.1.2 را مرتبا ping میکند. اگر طی 10 بار هر کدام زیر 4 ثانیه جوابی برگشت خط up بوده وگرنه خط down محسوب می گردد.
کد PHP:
Type echo protocol ipIcmpEcho 1.1.1.2
Frequency 10
Timeout 4000
در دستور زیر زمان اجرا و طول عمر فرایند بالا محاسبه میگردد. که مشخص کرده ایم از هم اکنون و برای همیشه اجرا شود.
کد PHP:
ip sla monitor schedule 1 life forever start-time now
سپس میبایست یک track برای آن بنویسیم تا بتوان بر اساس آن route نوشت.
کد PHP:
Track 1 rtr 1 reachability
سپس نوبت نوشتن route است. ابتدا route را بر روی لینک اصلی مینویسیم و در آخر route , شماره آن track را که رووت مادام up بودن آن track میبایست فعال باشد مینویسیم:
کد PHP:
Ip route 109.74.224.0 255.255.255.0 1.1.1.2 track 1
اکنون باید route لینک backup را با metric 254 یعنی بالاترین metric بنویسیم تا در صورت غیر فعال شده route اول اتوماتیک این route فعال شود.
کد PHP:
Ip route 109.74.224.0 255.255.255.0 2.2.2.2 254
حالا نوبت سایت B رسیده:
دستورات مثل router A هستند اما با تفاوت آدرسها و رووت ها:
در اینجا آدری سایت A باید چک شود:
کد PHP:
type echo protocol ipIcmpEcho 1.1.1.1
frequency 10
timeout 4000
ip sla monitor schedule 1 life forever start-time now
track 1 rtr 1 reachability
default route هنگام OK بودن وضعیت:
کد PHP:
ip route 0.0.0.0 0.0.0.0 1.1.1.1 track 1
Default route هنگام قطعی لینک اصلی:
کد PHP:
ip route 0.0.0.0 0.0.0.0 2.2.2.1 254
تنظیمات به پایان رسید. برای آزمایش میتوان آدرس 109.74.224.1 را روی پینگ گذاشت و لینک وایرلس را قطع کرد.
خواهیم دید که پس از 2 request timed out ارتباط از طریق لینک backup برقرار می شود.
برای مشاهده وضعیت failover میتوان از دستور زیر استفاده کرد:
کد PHP:
Show ip sla monitor statistics
که اینچنین خروجی خواهد داد:
کد PHP:
Round trip time (RTT) Index 1
Latest RTT: 8 ms
Latest operation start time: *23:38:31.073 UTC Fri Mar 5 2010
Latest operation return code: OK
Number of successes: 18
Number of failures: 0
Operation time to live: Forever
و در حالت قطعی:
کد PHP:
Round trip time (RTT) Index 1
Latest RTT: NoConnection/Busy/Timeout
Latest operation start time: *23:40:31.073 UTC Fri Mar 5 2010
Latest operation return code: Timeout
Number of successes: 29
Number of failures: 1
Operation time to live: Forever Rased#sh ip sla monitor statistics
Round trip time (RTT) Index 1
Latest RTT: 8 ms
Latest operation start time: *23:49:21.072 UTC Fri Mar 5 2010
Latest operation return code: OK
Number of successes: 42
Number of failures: 41
Operation time to live: Forever
دستوری دیگر برای چک کردن وضعیت:
کد PHP:
sh ip sla monitor operational-state
Entry number: 1
Modification time: *22:35:31.072 UTC Fri Mar 5 2010
Number of Octets Used by this Entry: 2264
Number of operations attempted: 445
Number of operations skipped: 0
Current seconds left in Life: Forever
Operational state of entry: Active
Last time this entry was reset: Never
Connection loss occurred: FALSE
Timeout occurred: FALSE
Over thresholds occurred: FALSE
Latest RTT (milliseconds): 12
Latest operation start time: *23:49:31.072 UTC Fri Mar 5 2010
Latest operation return code: OK
RTT Values:
RTTAvg: 12 RTTMin: 12 RTTMax: 12
NumOfRTT: 1 RTTSum: 12 RTTSum2: 144
نظرات شما در نوشتن آموزشهای بعدی قطعا بی تاثیر نخواهد بود.