فیلد Next-hop به صورت پیش فرض در پروتکل EIGRP، 0.0.0.0 است و هنگام ارسال مسیرهای EIGRP نیز تغییری نمی کند. به همین دلیل آدرس Next-hop در جدول توپولوژی EIGRP و همچنین جدول مسیریابی همواره روتری است که مسیر را ارسال نموده است.
این قانون در شبکه های DMVPN که گاها باید ارتباط مستقیم بین Spoke ها وجود داشته باشد مشکل ایجاد می کند زیرا مسیر Spoke ها از طریق HUB یاد گرفته می شود و بنابراین از دید Spoke آدرس Next-hop روتر HUB است. در حالی که روتر Spoke می خواهد ترافیک را مستقیما تحویل Spoke مقصد بدهد.
قبل از اینکه به راه حل رفع این مشکل بپردازیم، برای درک این مساله بهتر است با یک مثال در شبکه FrameRelay که در آن ارتباط بین Spoke ها از طریق HUB است، صورت مساله را بهتر تحلیل نمائیم.
در شکل زیر بین Spoke ها و HUB، VC وجود دارد که شماره DLCI آنها در شکل آمده است اما هیج VC ای بین Spoke ها وجود ندارد و ارتباط بین Spoke ها از طریق HUB صورت می گیرد.
دستکاری next-hop در EIGRP
در این مثال با اجرای پروتکل EIGRP می بینیم که در جدول مسیریابی هر یک از Spoke ها، مسیر شبکه دیگر Spoke، به HUB اشاره می کند. به عبارت دیگر آدرس Next-hop برای همه مسیرها در جدول مسیریابی SPOKE روتر HUB است. همانطور که گفته شد این پروتکل EIGRP نبود که آدرس Next-hop را معرفی کرد بلکه روتر Spoke همان روتری را به عنوان Next-hop در نظر گرفته است که مسیر را ارسال نموده است. همچنین در این سناریو دیده می شود که در روتر HUB قانون Split-horizon غیرفعال شده است تا HUB مسیری که از Spoke یاد می گیرد را بتواند به دیگر Spoke ها یاد بدهد.
!!! HUB ! no shutdown encapsulation frame-relay ! interface Serial1/0.1 multipoint no ip split-horizon eigrp 1 ip address 192.168.1.1 255.255.255.0 frame-relay map ip 192.168.1.3 103 broadcast frame-relay map ip 192.168.1.2 102 broadcast ! router eigrp 1 no aut-summary network 0.0.0.0 !!! SPOKE1 ! interface Serial1/0 no shutdown encapsulation frame-relay ! interface Serial1/0.1 point-to-point ip address 192.168.1.2 255.255.255.0 frame-relay interface-dlci 201 ! router eigrp 1 no aut-summary network 0.0.0.0 ! !!! SPOKE2 ! interface Serial1/0 no shutdown encapsulation frame-relay ! interface Serial1/0.1 point-to-point ip address 192.168.1.3 255.255.255.0 frame-relay interface-dlci 201 ! router eigrp 1 no aut-summary network 0.0.0.0 ! !!! SPOKE1 SPOKE1#sh ip route eigrp !!! بخشی از خروجی حذف شده است !!! همانطور که دیده می شود از دید Spoke مسیر شبکه 172.16.3.0/24 که به دیگر Spoke متصل است، از طریق HUB است 172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks D 172.16.0.0/24 [90/2297856] via 192.168.1.1, 00:06:12, Serial1/0.1 D 172.16.3.0/24 [90/2809856] via 192.168.1.1, 00:01:56, Serial1/0.1 ! SPOKE1#sh ip eigrp topology 172.16.0.0 255.255.255.0 EIGRP-IPv4 Topology Entry for AS(1)/ID(172.16.1.1) for 172.16.0.0/24 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2297856 Descriptor Blocks: 192.168.1.1 (Serial1/0.1), from 192.168.1.1, Send flag is 0x0 Composite metric is (2297856/128256), route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 25000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 1 Originating router is 172.16.0.1 ! SPOKE1#sh ip eigrp topology 172.16.3.0 255.255.255.0 EIGRP-IPv4 Topology Entry for AS(1)/ID(172.16.1.1) for 172.16.3.0/24 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2809856 Descriptor Blocks: 192.168.1.1 (Serial1/0.1), from 192.168.1.1, Send flag is 0x0 Composite metric is (2809856/2297856), route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 45000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 Originating router is 172.16.3.1 |
چگونگی محاسبه فیلد next-hop در EIGRP به صورت پیش فرض
خروجی منطقی است و مشکل خاصی هم وجود ندارد. مشکل از آنجا ناشی می شود که Spoke ها بخواهند به صورت مستقیم و بدون واسطه HUB ترافیک داده بین یکدیگر ارسال نمایند. البته در مثال فوق این امر میسر نسیت زیرا بین Spoke ها هیچگونه VC وجود ندارد.
در شبکه DMVPN همانند Framerelay مسیر بین Spoke ها از طریق HUB جابجا می شود اما در آنجا امکان ارسال مستقیم ترافیک داده بین Spoke ها وجود دارد. در چنین شرایطی حتما آدرس Next-hop در یک Spoke باید به دیگر Spoke ها اشاره کند تا امکان ارسال مستقیم ترافیک داده بین Spoke ها بدون دخالت HUB ایجاد گردد.
برای ایجاد چنین شرایطی در EIGRP از دستور no ip next-hop-self eigrp در محیط اینترفیس استفاده می شود که در این صورت EIGRP برخلاف معمول آدرس Next-hop را تغییر می دهد البته مشروط بر آنکه آدرس Next-hop با آدرس IP اینترفیس خروجی در یک شبکه مشترک باشند. در مثال فوق وقتی مسیر Spoke2 از طریق HUB به Spoke1 یاد داده می شود، آدرس Next-hop، آدرس Spoke2 یا 192.168.1.2 است که با آدرس اینترفیس خروجی HUB یعنی 192.168.1.1 در یک شبکه قرار دارند.
در خروجی زیر نشان داده شده است که با اعمال دستور no ip next-hop-self eigrp آدرس Next-hop برای مسیر شبکه 172.16.3.0/24 متصل به Spoke2 از دید Spoke1 همان Spoke2 است و به HUB اشاره نمی کند. همچنین در بخش آخر این خروجی نشان داده شده است که در جدول مسیریابی آدرس ارسال کننده مسیر با آدرس next-hop متفاوت است
!!! HUB HUB(config)#interface serial 1/0.1 HUB(config-subif)#no ip next-hop-self eigrp 1 ! !!! SPOKE1 SPOKE1#show ip route eigrp !!! بخشی از خروجی حذف شده است 172.16.0.0/16 is variably subnetted, 4 subnets, 2 masks D 172.16.0.0/24 [90/2297856] via 192.168.1.1, 00:00:50, Serial1/0.1 D 172.16.3.0/24 [90/2809856] via 192.168.1.3, 00:00:50, Serial1/0.1 ! SPOKE1#show ip eigrp topology 172.16.3.0 255.255.255.0 EIGRP-IPv4 Topology Entry for AS(1)/ID(172.16.1.1) for 172.16.3.0/24 State is Passive, Query origin flag is 1, 1 Successor(s), FD is 2809856 Descriptor Blocks: 192.168.1.3 (Serial1/0.1), from 192.168.1.1, Send flag is 0x0 Composite metric is (2809856/2297856), route is Internal Vector metric: Minimum bandwidth is 1544 Kbit Total delay is 45000 microseconds Reliability is 255/255 Load is 1/255 Minimum MTU is 1500 Hop count is 2 Originating router is 172.16.3.1 ! !!! خروجی جدول مسیریابی به وضوح نشان می دهد که آدرس Next-hop که در اینجا 192.168.1.3 است با آدرس ارسال کننده مسیر که در اینجا 192.168.1.1 است، تفاوت دارد SPOKE1#show ip route 172.16.3.0 Routing entry for 172.16.3.0/24 Known via "eigrp 1", distance 90, metric 2809856, type internal Redistributing via eigrp 1 Last update from 192.168.1.3 on Serial1/0.1, 00:02:38 ago Routing Descriptor Blocks: * 192.168.1.3, from 192.168.1.1, 00:02:38 ago, via Serial1/0.1 Route metric is 2809856, traffic share count is 1 Total delay is 45000 microseconds, minimum bandwidth is 1544 Kbit Reliability 255/255, minimum MTU 1500 bytes Loading 1/255, Hops 2 |
دستکاری فیلد next-hop در EIGRP