آشنایی با شبکه های اترنت

اترنت
 
اترنت یک خانواده از فناوری های لایه ی Physical و Data Link است که برای انتقال جریان داده ها استفاده می شود. ایده ی اترنت در اصل بر اساس برقرار کردن ارتباط بین دستگاه های مختلف بر روی یک سیم مشترک (کابل های Coaxial) شکل گرفت.
 
تاریخچه
 

- در یک زمان مشترک تنها یک دستگاه می تواند دیتایی را بر روی سیم ارسال کند و دیگر دستگاه ها باید صبر کنند تا ارسال دیتا توسط دستگاه اول پایان یابد در غیر این صورت Collision رخ می دهد. 

- Collision به معنای برخورد دو دیتا به یکدیگر و از بین رفتن دیتا ها می باشد. زمانی که دو دستگاه بصورت همزمان دیتایی را بر روی یک سیم مشترک ارسال کنند، دیتاها باهم برخورد کرده و از بین می روند که اصطلاحا می گوییم کالیژن رخ داده است.

- بنابراین یک دستگاه می تواند دیتا را دریافت کند اما نمی تواند همزمان دیتا ارسال کند ، مگر اینکه هیچ دیتایی بر روی سیم در حال ارسال نباشد. این مبحث تحت عنوان Half-duplex یا ارتباط یک طرفه شناخته می شود.

-  اترنت در طول تاریخ از شبکه هایی تحت عنوان Local Area Network (LAN) استفاده کرده و می کند. 

- شبکه ی LAN دستگاه هایی را تعریف می کند که در یک Broadcast Domain قرار می گیرند.

 
مروری بر اترنت
 

- اترنت با تقسیم دیتاها به فریم ها ، امکان انتقال ارتباط را از طریق سیم فراهم می کند. 

- ساختار قالب فریم های اترنت بصورت زیر می باشد:

    - 16 بیت فیلد EtherType

    - 48 بیت فیلد Destination MAC Address (آدرس مک مقصد)

    - 48 بیت فیلد Source MAC Address (آدرس مک مبدا)

    - 64-1500 بایت فیلد Payload Data (دیتای واقعی)

    - 32 بیت فیلد FCS با استفاده از الگوریتم CRC برای تشخیص خطا

    - قسمت Ethertype برای نشان دادن نوع پروتکل استفاده شده در دیتا به دستگاه مقصد استفاده می شود.

    - برخی از مقادیر معروف و شناخته شده ی EtherType عبارتند از: (توجه داشته باشید این مقادیر در راهنمای دستور IOS ذکر نشده است ، بنابراین آنها را بخاطر بسپارید).

        - 0x0806 0x0 – معادل پروتکل ARP می باشد.

        - 0x0800 0x0 – معادل پروتکل IPv4 می باشد.

        - 0x86DD 0x0 – معادل پروتکل IPv6 می باشد.

        - 0x8847 0x0 – معادل پروتکل MPLS Unicast می باشد.

        - 0x8848 0x0 – معادل پروتکل MPLS Multicast می باشد.

        - 0x4242 0x0 – معادل پروتکل CST می باشد.

        - 0xAAAA 0x0 – معادل پروتکلهای سیسکو (PAgP،VTP،PVST+،CDP،DTP و UDLD) می باشد.

 
MAC Address
 

- یک آدرس 48 بیتی (6 بایت) منحصر به فرد است که NIC (کارت رابط شبکه) را شناسایی می کند.

- آدرس MAC برای شناسایی مبدا ارسال کننده فریم و مقصد فریم در یک Segment لایه 2 استفاده می شود.

- 3 بایت اول از آدرس مک تحت عنوان Organization Unit Identifier (OUI) شناخته می شود که به طور منحصر به فرد سازنده ی NIC یا همان کارت شبکه را شناسایی می کند.

- 3 بایت آخر توسط سازنده ی کارت شبکه به دلخواه تعیین می شود.

- CRC الگوریتمی است که امکان شناسایی داده های خراب را در کل فریم فراهم می کند.

 
HUBs
 

- هاب ها تکرار کننده های سیگنال می باشند که چندین دستگاه را به یکدیگر متصل می کنند. هاب شبیه به یک سیم عمل کرده و زمانیکه یک سیگنال بر روی یکی از پورت های خود دریافت کند آن سیگنال را بر روی تمامی پورت های دیگر خود ارسال می کند. 

- تمامی پورت های یک هاب عضو یک Collision Domain می باشند.

- هاب پکت ها را بر روی تمامی اینترفیس های خود ارسال می کند.

 
Switches
 

- سوییچ ها شبیه به هاب ها می باشند با این تفاوت که نسبت به هاب ها هوشمند تر بوده و می توانند بر اساس آدرس های مک انتقال فریم ها را انجام دهند.

- سوییچ ها در لایه ی دو یعنی لایه ی Data Link از مدل OSI فعالیت دارند.

- اگر سوییچ فریمی دریافت کند از روی فیلد Source MAC Address آدرس مک فرستنده را یاد گرفته و در جدولی تحت عنوان MAC Address Table ذخیره می کند.

- سوییچ انتقال فریم ها را بر اساس رکورد هایی که در داخل جدول خود دارد انجام می دهد.

- اگر سوییچ فریمی دریافت کند که آدرس مک مقصد را در داخل جدول خود نداشته باشد، آن فریم را Flood می کند.

- Flood به این معنی می باشد که سوییچ فریمی که دریافت کرده است برا بر روی تمامی پورت های خود به غیر از پورتی که از آن فریم را دریافت کرده ارسال می کند.

- در سوییچ بر خلاف هاب، هر پورت محدود به Collision Domain می باشد، بنابراین زمانی که می گوییم یک سوییچ 24 پورت داریم یعنی 24 Collision Domain داریم.

 
Content Addressable Memory (CAM) Table
 

- جدول CAM امروزه در همه سوئیچ های Cisco Catalyst / Nexus استفاده می شود.

- جدول CAM نگه دارنده ی آدرس های مک به همراه پورت مربوط به آنها می باشد. زمانیکه یک سوییچ فریمی دریافت کند، از فیلد Source MAC Address موجود در فریم آدرس مک فرستنده را برداشته به همراه شماره پورتی که آن فریم بر روی آن دریافت شده است در داخل جدول CAM قرار می دهد.

- علاوه بر این، VLAN مربوط به فریمی که دریافت شده نیز در CAM برای هر ورودی مک ذخیره می شود.

- اگر فریمی به سوییچ برسد که از قبل آدرس مک آن در داخل جدول CAM وجود داشته باشد اما اینبار فریم بر روی پورت دیگری از سوییچ دریافت شده باشد، سوییچ ورودی جدول CAM را با آدرس و پورت جدید آپدیت کرده و ورودی قبلی را حذف می کند. 

- هر ورودی که در داخل جدول CAM قرار دارد بعد از یک طول عمر حذف می شود. این طول عمر تحت عنوان Aging time شناخته می شود و بصورت پیش فرض 300 ثانیه یا 5 دقیقه می باشد. 

- زمانی که یک یا چند آدرس مک بصورت مداوم بر روی یک یا چند پورت سوییچ یاد گرفته شود اصطلاحا می گویند MAC Flapping رخ داده است، این کار باعث میشود جدول CAM بصورت مداوم بروز شود. 

- MAC Flapping می تواند تاثیرات جدی و مهمی را بر روی عملکرد سوییچ در محیط های عملیاتی بگذارد و می تواند به شدت CPU سوییچ را درگیر کند. 

- MAC Flapping در سوییچینگ نامتقارن یا تغییرات مداوم توپولوژی، پورت چنل هایی که بصورت اشتباه پیکربندی شده اند و یا تنظیمات اشتباه NIC Teaming ممکن است رخ دهد.

- تغییرات مداوم توپولوژی (Topology Change) ها باعث بی اعتبار شدن ورودی های موجود در جدول CAM می شوند که این باعث می شود حجم ترافیک های Unknown unicast در داخل شبکه برای یادگیری آدرس های مک جدید افزایش پیدا کند.

- ترافیک های Unknown Unicast ترافیک هایی می باشند که سوییچ آدرس مک مقصد آنها را در داخل جدول CAM خود ندارد.

 
Full Duplex
 

- Full duplex به معنای ارتباط همزمان دو طرفه می باشد.

- در حالت Full duplex دو دستگاه می توانند بصورت همزمان بر روی یک لینک هم ارسال و هم دریافت فریم، بدون ایجاد کالیژن داشته باشند.

- Full duplex نیاز به مکانیزم CSMA/CD یا همان مکانیزم تشخیص کالیژن را حذف می کند، بنابراین بر روی لینک های Full duplex این مکانیزم غیر فعال می باشد.

- در ارتباطات Full duplex در دو سمت یک لینک باید ویژگی Full duplex پیکربندی گردد و هر دو سمت توافق کنند که بصورت Full duplex کار می کنند.

 
فریم های Unicast، Broadcast و Multicast
 

- Unicast

    - یونیکست به معنای ارسال دیتا به یک مقصد خاص می باشد.

    - یک فریم با آدرس مک Known unicast تنها بر روی پورتی که در داخل جدول CAM به آن اشاره شده است ارسال می شود.

    - یک فریم با آدرس مک Unknown unicast بر روی تمامی پورت ها به غیر پورتی که از آن دریافت شده است ارسال می شود.

- Broadcast

    - برادکست به معنای ارسال دیتا به تمامی دستگاه های موجود در یک Broadcast domain می باشد. 

    - Broadcast Domain به محدوده ای گفته می شود که پیام های Broadcast می توانند در آن جریان پیدا کنند.

    - پیام های برادکست بر روی تمامی پورت ها به غیر از پورتی که از آن دریافت شده اند ارسال می شود.

    - برادکست از آدرس مک FFFF.FFFF.FFFF به عنوان آدرس مقصد استفاده می کند.

    - مقدار زیادی از پیام های برادکست تحت عنوان Broadcast Storm یا طوفان برادکست شناخته می شوند که می توانند یک شبکه را Down کنند. 

- Multicast

    - مالتیکست به معنای ارسال دیتا به یک گروه خاص در شبکه می باشد.

    - پیام های مالتیکست نمونه ی خاصی از پیام های برادکست می باشند.

    - در ارسال برادکست تمامی دستگاه ها پیام را دریافت می کنند حتی دستگاه هایی که آن پیام را نمی خواهند، اما در ارسال مالتیکست تنها دستگاه هایی که پیام را می خواهند دریافت می کنند.

    - برخی از آدرس های معروف مالتیکست لایه 2 عبارتند از :

         - 0100.0CCC.CCCC – آدرس مالتیکست پروتکل CDP و VTP

         - 0100.0CCC.CCCD – آدرس مالتیکست پروتکل PVST+

         - 0180.C200.0000 – آدرس مالتیکست پروتکل CST

         - 0100.5Exx.xxxx – آدرس مالتیکست IPv4

         - 3333.xxxx.xxxx – آدرس مالتیکست IPv6

    - رفتار انتقال پیام های مالتیکست لایه 2 نسبت به پیام های مالتیکست لایه 3 بسیار متفاوت می باشد.

         - در لایه ی 2 ترافیک های مالتیکست بر روی تمامی پورت ها ارسال می شوند تا زمانیکه مقصد مشخص شود.

         - در لایه ی 3 ترافیک های مالتیکست دور ریخته می شوند تا زمانیکه مقصد مشخص شود.