پروتکلهای مسیریابی 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 در یک نگاه
| قانون | مسیری که از یک اینترفیس یاد گرفته شده، از همان اینترفیس دوباره اعلام نمیشود |
| پروتکلها | 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. این کار امن است چون در این توپولوژی 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 مفهومی در پروتکلهای مسیریابی است.
منابع
- Cisco – Enhanced Interior Gateway Routing Protocol (EIGRP)
- RFC 2453 – RIP Version 2 (Split Horizon and Poison Reverse)
مشاوره با AKA NET
برای طراحی مسیریابی شعب، DMVPN و EIGRP یا OSPF با آکانت (AKA NET) تماس بگیرید.
تلفن: 09121308444 | ایمیل: aka@aka.ir | aka.ir
سلام .وقت بخیر. متشکرم از داده های اطلاعاتی . چندین سال است که در شیراز سیستم های کامپیوتری وشبکه را خراب وبعد یاد و بعدش هم پشتیبانی میکنم. اگر دوست داشتید یک تماس جهت همکاری بزنید. متشکرممهدی عدومی
ان شاالله که موفق باشید …
ممنون از توجهتون