Routing آموزش CCNA

فصل سوم قسمت اول: مفاهیم پایه routing

حمیدرضا وطنی
نوشته شده توسط حمیدرضا وطنی

در ادامه مباحث آموزش CCNA به بخش سوم از این آموزش میرسیم ، جایی که وارد CCNA Routing میشویم. یه خبر خوب اینکه Routing خیلی جذاب تر از دوبخش دیگر یعنی Switching و Basic است. مباحث routing protocol ها و nat و access list و … . مطالب routing به مراتب راحت تر از switching است ، و تجربه نشان داده که معمولا دوستان از مباحث routing بیشتر استقبال کردند.

Router Basic Concept :

یادآوری : برای شروع فصل سوم یا routing ابتدا گریزی میزنیم به بخش اول و یادآوری میکنیم که برقراری ارتباط از PC1 به PC2 در شکل زیر به چه صورت انجام میگردد.

 

خب باتوجه به شکل بالا PC1 میخواهد یک بسته به PC2 بفرستد، در اینجا از روی PC1 ، ip متوجه میشود که destination ip متعلق به شبکه خودش (هم رنج) نمیباشد پس بسته را تحویل getaway یا R1 میدهد. بسته ای که تحویل R1 میخواهد بدهد به این شکل است: source ip=PC1 و destination ip=PC2 و source mac=PC1 و destination mac را ندارد پس ARP میزند تا destination mac را پیدا کند.

حالا بسته ARP را باز میکنیم. ابتدا ARP request را باز میکنیم ، که source ip=PC  و destination ip=R1 و source mac=PC1 میشود و destination mac=FFFFFFFFFFFF .پس بسته را به صورت broad cast ارسال میکند و بسته روی همه اینترفیس های سویچ ارسال میگردد از جمله  R1 که از روی ip متوجه میشود بسته متعلق به خود او است و بسته را تحویل میگیرد ، ۱۲ تا F را برمیدارد و mac address خودش را جای ۱۲ تا F میگذارد و جواب ARP را میدهد ، پس ARP reply به این صورت است:

source ip=R1 و destination ip=PC1 و source mac=R1 و destination mac=PC1 . بسته تحویل PC1 میشود و PC1 با استفاده از ARP متوجه میشود که destination mac=R1 است. پس بسته به صورت زیر است:

source ip=PC1 , destination ip=PC2 , source mac=PC1 , destination mac=R1.

بسته به R1 میرسد. حالا R1 بسته را به شکل روبرو هدایت میکند به PC2 ، پس source ip=PC1 و destination ip=PC1 و source mac=R1 و destination mac را ندارد پس ARP میزند تا destination mac را پیدا کند.

بسته را تحویل R2 میدهد و R2 نیز بسته را به PC2 میدهد. بسته به PC2 میرسد و PC2 جواب PC1 را با توجه به همین سناریو و ARP میدهد.

اما یک مساله ای که میماند این است که خب PC1 بسته را از روی getaway به R1 میدهد ولی R1 از کجا متوجه میشود که بسته را باید تحویل R2 بدهد ؟ با استفاده از Routing Table . داخل Routing Table که در شکل است چی هست ؟  باید بگم که چکیده بحث CCNA Routing از ۱۰۰ درصد ، ۷۰ درصد در رابطه با این موضوع است که جدول Routing Table چگونه پر میشود.

جدول Routing Table جدول مسیر یابی میباشد که هر روتر این جدول را در خود دارد ، همان گونه که در شکل مشاهده میکنید به عنوان مثال میگوید اگر میخواهید به ۱۹۲٫۱۶۸٫۲٫۰ network بروید ، باید از اینترفیس ۰/۲ fa به روتر R2 بروید و از آنجا به ۱۹۲٫۱۶۸٫۲٫۰ بروید. اساسا فرق بین روتر و سویچ در این است که سویچ اعتماد به نفس ندارد ، یعنی اگز مقصد بسته را نداند و در mac table خودش نباشد ، بسته را به صورت broad cast به همه ارسال میکند و میگوید شاید من بلد نیستم. اما روتر اینگونه نیست ، یعنی اگر مقصد بسته را نداند و در Routing Table روتر هم نباشد ، بسته را دور می اندازد یا به اصطلاح drop میکند.

نکته : همه روتر ها اینترفیس های directly connected یا اینترفیس هایی که مستقیم از خودشون به سویچ و شبکه مثلا ۱۹۲٫۱۶۸٫۱٫۰ وصل است را با پسوند C یا Connected در جدول Routing Table خود می آورد.

برای درک بهتر این نکته به مثال زیر توجه کنید:

 

Routing Table به دو طریق پر میشود:

در مثال اولی که در این بخش زدیم و شکل آن هم در بالا هست ، PC2 مستقیما به R1 متصل نیست یا به اصطلاح PC1 در این مثال Directly Connected R1 نیست و خب قطعا به صورت دیفالت R1 هیچ اطلاعی از PC2 ندارد و اگر کاری نکنیم به صورت دیفالت بسته ای که از PC1 به PC2 میخواهد برود ، Drop میشود و نمیرود چرا که PC1 بسته را به R1 میدهد و چون R1 هیچ اطلاعی از PC2 ندارد که کجا هست ، بسته را Drop میکند.

به دوصورت routing table پر میشود : یک به صورت Static Routing و دو به صورت Dynamic Routing .

static routing یعنی ادمین به روتر مسیرها را یاد بدهد و dynamic routing به protocol هایی میگن که به صورت dynamic مسیر هایی که بلد هستند را به روتر یاد میدهند.پس ما در شبکه های کوچک ، شبکه هایی که محدود است معمولا از static routing استفاده میکنیم. البته برای شبکه های بزرگ هم برای یک جاهای خاص از static routing استفاده میکنیم به یک دلایل خاصی که در دوره CCNP میخوانیم اما معمولا برای شبکه های بزرگ از     dynamic routing protocol استفاده میکنیم.

بریم سر موقت Static Routing و ببینیم چطور میتوانیم Static Routing استفاده کنیم.

Static Routing :

static routing چیست؟ بله یعنی مسیر ها به صورت دستی وارد و تعریف میشوند.

برای درک بهتر مطلب به سناریو زیر توجه کنید.

 

Routing Basic Trouble Shooting :

در router ما یک سری دستورات داریم که برای trouble shooting به کار میروند. دستور ping و  traceroute و show ip interface brief و icmp massage .

show ip interface brief# :

اولین گام در اجرای هر سناریویی Assign کردن ip روی اینترفیس های روتر است و اینکه آیا لینک های هر اینترفیس به صورت فیزیکی و up ، line protocol شده است و یا خیر.

با اجرای دستور show ip interface brief میتوان وضعیت فیریکی و line protocol هر اینترفیس را چک کرد. همچنین آدرس ip نیز قابل مشاهده است.

توضیحاتline protocolوضعیت فیزیکی
اینترفیس به صورت
shut down , manually
شده است.(پیش فرض روترها)
downadmin down
مدیای فیزیکی متصل نشده است.downdown
وضعیت غیرنرمالdownup
وضعیت نرمالupup
غیر ممکنupdown

اصلی ترین دلیل اینکه ممکن است روی اینترفیس های point to point وضعیت physically up و line protocol down به وجود بیاید ، یکی نبودن پروتکل لایه اینترفیس در دو اینترفیس متصل به هم است.

ping :

ping یکی از مهمترین ابزارهای trouble shooting جهت تست ارتباط تا لایه ۳ است.به عبارت دیگر اگر اینترفیسی بتواند اینترفیس دیگری را ping کند، به این معنی است که ارتباط بین دو اینترفیس از لایه ۱ تا لایه ۳ برقرار میباشد.

نکته : وقتی از دستور ping استفاده مینمایید ، بسته تولید شده دارای آدرس ذکر شده در جلوی دستور ping میباشد ، اما آدرس مبدا بسته تولید شده همواره آدرس اینترفیس خروجی است. اما میتوان آدرس مبدا بسته را با دستور زیر تغییر داد.

ping X source Y # مثلا ping 192.168.2.2 source 192.168..1.2 #.

کاربرد ping : کاربری ادعا میکند که ارتباطش با Netx قطع شده است. شما از روی روتر بسته ICMP به مقصد Netx اما با مبدا اینترفیسی از روتر که به طرف user است تولید مینمایید تا ارتباط را چک کند.

پارامترهای دیگری در دستور ping قابل تنظیم است که عبارتند از :

نکته : بافشردن کلیدهای ترکیبی ctrl+shift+6 اجرای دستور ping متوقف میشود.

Traceroute :

جهت توضیح دستور traceroute ابتدا در خصوص TTL در IP Header و کاربرد آن صحبت میکنیم . سپس خواهیم دید که چگونه ابزار Traceroute از این فیلد استفاده بهینه جهت trouble shooting نموده است.

در اترنت جهت ممانعت از loop از پروتکل STP استفاده میشود.

(TTL (Time To Live :

هر بسته ip که تولید میشود در هدر ip فیلد TTL آن با مقداری که به vendor وابسته است جایگذاری میشود.( ۳۲ ، ۶۴ ، ۱۲۸ ، ۲۵۶ ) بسته ip به هر روتری که میرسد از عدد TTL آن یکی کم میشود و در صورتی که عدد TTL ، صفر نباشد ، forward خواهد شد.

در بزرگترین شبکه ها (اینترنت) نیز با طراحی درست ، نباید بین مبدا و مقصد بیش از ۳۰ عدد hop (روتر) وجود داشته باشد. لذا صفر شدن TTL به معنی ایجاد Loop برای بسته مورد نظر است.در صورت صفر شدن TTL روتر پیغامی به مبدا بسته مبنی بر expire
شدن TTL ارسال میکند و سپس بسته را discard مینماید.
حالا ببینیم که tracerout چگونه از ماهیت TTL جهت trouble shooting بهره برده است.
بسته ای با شرایط زیر تولید میشود:
tracerout IPX #
1) TTL=1 و ICPM/UPD
بسته فوق در اولین روتر drop میشود و پیغامی مبنی بر expire شدن TTL در مبدا دریافت میشود . از روی آدرس ip مبدا پیغام فوق ، آدرس اولین روتر را بدست آورده ایم.
۱) TTL=2 و ICPM/UPD
آدرس دومین روتر را بدست می آورد.
۱) TTL=32 و ICPM/UPD
آدرس سی و دومین روتر را بدست می آورد.
نتیجه ۱ : تمامی روتر های بین راه قابل شناسایی است.
نتیجه ۲ : اگر به هر دلیلی بسته به درستی forward نشود ، (ایجاد Loop ، عدم وجود route برای مقصد بسته در یک روتر ، route اشتباه روی یک روتر و مسیر اشتباه) با ابزار traceroute به راحتی میتوانیم نوع مشکل را شناسایی کنیم.

 

ICMP Massage (Internet work Control Massage Protocol) :

این پروتکل با هدف trouble shooting توسعه داده شده است. هر اینترفیسی که ICMP را ساپورت کند ، (که معمولا همه اینترفیس های ip ساپورت میکنند) در زمان رخداد اتفاق خاص پیغام متناسب با آن را که از قبل در ICMP تعریف شده است ، تولید میکند.مدیر شبکه از روی نوع پیغام دریافتی به نوع رخداد پی میبرد.

در کل ICMP یک سری massage ها برای ما ارسال میکند ، مثلا وقتی TTL بسته صفر میشود، پیغامی مبنی بر TTL Expire برای ما ارسال میگردد.

انواع massage های ICMP :

ICMP Echo and Echo Reply : زمانی که دستور ping به مقصدی وارد میکنید ، در واقع پیغام ICMP از نوع Echo ایجاد نموده اید و مقصد با (Echo Reply ) ( ICMP Type=0 ) به پیغام Echo پاسخ میدهد.

نکته : پیغام ICMP متناسب با رخداد تولید میشود ، اما برای مشاهده آن گاهی (اکثرا) مجبور به sniff کردن و debug کردن بسته های ICMP هستیم.

ICMP TTL Expier : در صورت صفر شدن TTL ، روتر پیغام ICMP مبنی بر Expire شدن TTL به مبدا بسته ارسال مینماید

ICMP Destination Unreachable : اگر روتر به هر دلیلی نتواند بسته را forward نماید ، ( به دلیل نداشتن route و filtering ) پیغامی به مبدا بسته به معنی عدم توانایی ارسال بسته ( Destination Unreachable ) ارسال مینماید. پنج دلیل عدم توانایی ارسال بسته به شرح زیر میباشد:

  1. Destination Network Unreachable : اگر روتر برای شبکه آدرس مقصد بسته ورودی در جدول مسیریابی هیچ route ای نداشته باشد و یا اینکه برای شبکه مقصد بسته ها فیلتر شوند ، روتر پیغامی به مبدا بسته ارسال مینماید مبنی بر اینکه “شبکه مقصد غیر قابل دسترسی است.”
  2. Destination Host Unreachable : اگر بسته ارسالی تا آخرین روتری که شبکه مقصد به آن متصل است برسد اما آخرین روتر نتواند آدرس ip مقصد را به آدرس لایه ۲ ای (mac) Resolve نماید (مثلا به دلیل خاموش بودن مقصد) آنگاه روتر پیغامی مبنی بر اینکه “کامپیوتر مقصد غیر قابل دسترسی است” به مبدا بسته ارسال مینماید.
  3. Destination Protocol Unreachable : اگر بسته به مقصد برسد اما مقصد پروتکل لایه Transport را support نکند ، ( TCP یا  UDP ) آنگاه host مقصد به ارسال کننده بسته پیغامی مبنی بر “protocol unreachable” ارسال مینماید.
  4. Destination Port Unreachable : اگر بسته ارسالی به مقصد برسد اما مقصد Application مورد نظر را support نکند (به عنوان مثال درخواست وب (HTTP Request ) را به کامپیوتری ارسال کنید که وب سرور نیست) یا روی پورت مورد نظر Application سوار نشده باشد آنگاه host مقصد پیغامی مبنی بر “port unreachable” به مبدا ارسال مینماید.
  5. Fragmentation Needed But Not Allowed : اگر سایز بسته ای که قرار است روی یک اینترفیس روتر ارسال گردد ، از MTU اینترقیس بزرگتر باشد ، روتز بسته را به چند بخش با سایز حداکثر MTU ، بیبیFragment نموده و هر بسته را مستقلا روی اینترفیس ارسال مینماید.حال اگر روتر مجاز به عمل Fragment نباشد ، و یا آنکه Packet مجاز به بخش بندی یا Fragmentation نیاشد ، روتر به مبدا بسته پیغامی مبنی بر “Fragmentation Needed But Not Allowed” ارسال مینماید.

Time Exceeded : اگر بسته دریافتی روی روتر پس از کم کردن یک واحد از TTL ، مقدار آن به صفر برسد ، پیغامی مبنی بر TTL Expired و یا Time Exceeded به مبدا ارسال مینماید. traceroute از این پیغام ICMP با هدف Trouble Shooting و پیدا کردن مسیر استفاده مینماید.

بقیه مطالب ccna routing را در قسمت بعدی توضیح میدهیم.

قسمت بعد فهرست آموزش CCNA
[تعداد رای:1]

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

حمیدرضا وطنی

حمیدرضا وطنی

درج دیدگاه