smith-mundt's

Split Horizon چیست ؟

پروتکل‌های مسیریابی Distance Vector مثل RIP و EIGRP ، مسیرها را «به حرف همسایه» یاد می‌گیرند: هر روتر فقط می‌داند همسایه‌اش گفته از طریق او می‌شود به یک شبکه رسید. این اعتماد، اگر کنترل نشود، به Routing Loop ختم می‌شود: دو روتر مسیری را که از بین رفته، مدام به هم برمی‌گردانند و بسته‌ها بین آن‌ها دور می‌زنند تا TTL تمام شود. Split Horizon ساده‌ترین و قدیمی‌ترین قانون برای جلوگیری از این مشکل است.

در این مطلب قانون Split Horizon ، Poison Reverse ، جایی که باید آن را خاموش کرد (Hub-and-Spoke ، DMVPN ، Frame Relay) ، دستورهای RIP و EIGRP (کلاسیک و Named Mode) و اینکه چرا OSPF و BGP قانون متفاوتی دارند را مرور می‌کنیم.

قانون Split Horizon
Split Horizon : مسیر به همان اینترفیسی که از آن یاد گرفته شده برنمی‌گردد

Split Horizon در یک نگاه

قانون مسیری که از یک اینترفیس یاد گرفته شده، از همان اینترفیس دوباره اعلام نمی‌شود
پروتکل‌ها Distance Vector : RIP و EIGRP ؛ پیش‌فرض روشن
Poison Reverse نوع شدیدتر: مسیر به همان اینترفیس، اما با متریک بی‌نهایت اعلام می‌شود
خاموش کردن روی Hub در شبکه‌های Hub-and-Spoke روی یک اینترفیس (DMVPN ، Frame Relay چندنقطه‌ای)
OSPF Link-State است و Split Horizon ندارد
iBGP قانون مشابه خودش را دارد (مسیر iBGP به iBGP دیگر اعلام نمی‌شود)

Routing Loop چطور ساخته می‌شود

R1 به شبکه 192.168.1.0/24 مستقیم وصل است و آن را به R2 اعلام می‌کند. R2 یاد می‌گیرد «از طریق R1 با فاصله ۱». حالا اگر لینک R1 به آن شبکه قطع شود و R2 پیش از رسیدن خبر قطعی، مسیر را به R1 برگرداند («من از طریق خودم با فاصله ۲ به آن می‌رسم») ، R1 فکر می‌کند راه دیگری پیدا شده و بسته‌ها را به R2 می‌فرستد و R2 دوباره به R1. این همان مشکل Count to Infinity است که متریک هر بار یکی زیاد می‌شود تا به بی‌نهایت (در RIP عدد ۱۶) برسد.

قانون Split Horizon

قانون ساده است: هیچ شبکه‌ای که در یک به‌روزرسانی از یک اینترفیس دریافت شده، از همان اینترفیس دوباره اعلام نمی‌شود. در مثال بالا، چون R2 مسیر را از اینترفیس رو به R1 یاد گرفته، هرگز آن را به R1 برنمی‌گرداند و loop ساخته نمی‌شود.

Poison Reverse

Poison Reverse نسخه صریح‌تر همین قانون است: به‌جای سکوت، روتر مسیر را به همان اینترفیس اعلام می‌کند، اما با متریک بی‌نهایت (unreachable). یعنی صراحتاً می‌گوید «از طریق من به این شبکه نرس». پیام‌ها کمی بیشتر می‌شوند اما همگرایی در بعضی سناریوها سریع‌تر است. EIGRP هنگام خرابی مسیر از همین رفتار استفاده می‌کند.

جایی که Split Horizon مشکل می‌سازد

در شبکه‌های Hub-and-Spoke که همه Spokeها روی یک اینترفیس Hub هستند، مثل DMVPN یا Frame Relay چندنقطه‌ای، این قانون دردسر درست می‌کند. Hub مسیر شبکه Spoke 1 را از اینترفیس Tunnel یاد می‌گیرد و به‌خاطر Split Horizon ، آن را از همان Tunnel به Spoke 2 اعلام نمی‌کند؛ نتیجه اینکه Spokeها شبکه هم را نمی‌شناسند.

Split Horizon در شبکه Hub and Spoke
در Hub-and-Spoke ، Split Horizon جلوی اعلام مسیر یک Spoke به Spoke دیگر را می‌گیرد

راه‌حل: خاموش کردن Split Horizon فقط روی اینترفیس Hub. این کار امن است چون در این توپولوژی Spokeها مسیر را از Hub می‌گیرند نه از هم.

دستورها

EIGRP (کلاسیک)

Hub(config)# interface Tunnel10
Hub(config-if)# no ip split-horizon eigrp 100

EIGRP (Named Mode ؛ روش توصیه‌شده امروز)

Hub(config)# router eigrp DMVPN
Hub(config-router)# address-family ipv4 unicast autonomous-system 100
Hub(config-router-af)# af-interface Tunnel10
Hub(config-router-af-interface)# no split-horizon

RIP

Hub(config)# interface Serial0/0/0
Hub(config-if)# no ip split-horizon

روی اینترفیس‌های Frame Relay با کپسوله‌سازی فیزیکی (نه subinterface نقطه‌به‌نقطه) ، Split Horizon برای RIP به‌طور پیش‌فرض خاموش است. در شبکه‌های امروزی Frame Relay عملاً کنار رفته و این رفتار بیشتر در DMVPN اهمیت دارد.

بررسی

Hub# show ip interface Tunnel10 | include Split
  Split horizon is disabled
Hub# show ip eigrp interfaces detail Tunnel10

OSPF و BGP

  • OSPF یک پروتکل Link-State است: هر روتر نقشه کامل توپولوژی را دارد و مسیرها را خودش با الگوریتم SPF حساب می‌کند. پس Split Horizon ندارد و در DMVPN به تنظیم آن نیازی نیست (اما نوع شبکه OSPF روی تانل باید درست انتخاب شود).
  • iBGP قانون مشابه خود را دارد: مسیر یادگرفته از یک همسایه iBGP به همسایه iBGP دیگر اعلام نمی‌شود. راه‌حل آن Full Mesh یا Route Reflector است.

پرسش‌های متداول

خاموش کردن Split Horizon خطرناک است؟
روی اینترفیس‌هایی که چند مسیر متفاوت به یک شبکه دارند، بله؛ ممکن است loop ایجاد کند. فقط روی اینترفیس Hub در توپولوژی Hub-and-Spoke خاموشش کنید.

در DMVPN Phase 3 هم لازم است؟
اگر Hub فقط خلاصه یا default به Spokeها می‌دهد، ضروری نیست؛ در Phase 2 که Spokeها به مسیرهای دقیق یکدیگر نیاز دارند، ضروری است. جزئیات را در DMVPN و NHRP ببینید.

Split Horizon در STP هم هست؟
نه؛ STP در لایه ۲ با بلاک کردن پورت‌ها جلوی loop را می‌گیرد. Split Horizon مفهومی در پروتکل‌های مسیریابی است.

منابع

مشاوره با AKA NET

برای طراحی مسیریابی شعب، DMVPN و EIGRP یا OSPF با آکانت (AKA NET) تماس بگیرید.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

2 فکر می‌کنند “Split Horizon چیست ؟”

  1. Mehdi Odoumizadeh

    سلام .وقت بخیر. متشکرم از داده های اطلاعاتی . چندین سال است که در شیراز سیستم های کامپیوتری وشبکه را خراب وبعد یاد و بعدش هم پشتیبانی میکنم. اگر دوست داشتید یک تماس جهت همکاری بزنید. متشکرممهدی عدومی

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *