MPLS چگونه کار می کند؟ – بخش دهم

با یک مقاله دیگه از سری مقالات MPLS در خدمت شما دوستان عزیز هستیم:

Explicit NULL Label :


استفاده از implicit NULL label باعث افزایش بهره وری در ارسال بسته ها می شود. در این حالت بسته توسط LSR یکی مانده به اخر در یک LSP با یک label کمتر ارسال می شود. در کنار این label ، اطلاعات فیلد EXP نیز نگه داری می شود. زمانی که label حذف شود. فیلد EXP نیز به همراه آن حذف می شود. فیلد EXP برای مباحث (quality of service (QoS مورد استفاده قرار می گیرد و با حذف label این ویژگی همراه آن حذف می شود. در بعضی مواقع ما می خواهیم اطلاعات مربوط به QoS را داشته باشیم و همراه این اطلاعات بسته را تحویل egress LSR دهیم. در این حالت نمی توان از implicit NULL label استفاده کرد.
راه حل برای این مشکل استفاده explicit NULL label می باشد. در این روش egress LSR به همسایه های خود explicit NULL label را که دارای مقدار 0 است را اعلام می کند. سپس egress LSR بسته هایی با label 0 دریافت خواهد کرد. LSR با نگاه کردن به مقدار 0 و مقایسه آن با LFIB نمی تواند آنرا ارسال کند چون این مقدار می تواند به چند FEC اختصاص داده شده باشد. درنتیجه اینجا LSR فقط explicit NULL label را حذف می کند. بعد از اینکه explicit NULL label توسط LSR حذف شد یک lookup دیگر انجام می دهد اما مزیت آن وجود اطلاعات QoS در بسته دریافتی برای روتر می باشد. از اطلاعات EXP می توان برای QoS استفاده کرد یا در صورت داشتن چند label اطلاعات EXP را به label جدید که در بالای label stack قرار گرفته اضافه کرد.
نکته : مقدار explicit NULL label برای IPv6 مقدار 2 است.

Router Alert Label :


Router Alert label دارای مقدار 1 است. این label می تواند در هر جایی از label stack ، غیر پایین آن قرار بگیرد. در صورتی که این عدد در بالای lable stack باشد به LSR هشدار می دهد که این بسته نیاز به نگاه دقیق تر دارد. بنابراین این بسته مانند سایر بسته ها ارسال نمی شود و روی آن پردازش هایی انجام می گیرد. زمانی که این بسته بخواهد ارسال شود label 1 آن حذف می شود. سپس label بعدی آن در lable stack با جدول LFIB مقایسه می شود تا نحوی ارسال مشخص گردد سپس عملیات مورد نظر مانند (pop , swap , push) روی آن انجام می گیرد و مجدد label 1 را در بالای label stack قرار می دهد.
در تصویر زیر خروجی دستور debug mpls packet نمایش داده شده است که بسته دارای Router Alert label است :

Image

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

OAM Alert Label :


Label با مقدار 14 به عنوان Operation and Maintenance (OAM) Alert label شناخته می شود. OAM برای تشخیص خطا و کنترل عملکرد مورد استفاده قرار می گیرد. بسته های OAM با بسته های نرمال کاربران تفاوت دارد. IOS سیسکو عملیات MPLS OAM را انجام می دهد اما از label 14 استفاده نمی کند.

Unreserved Labels :


غیر از label های 0 الی 15 از تمام label برای ارسال بسته ها می توانید استفاده کنید. با توجه به 20 بیتی بودن فیلد شماره label مقداری که می توان به عنوان label برای ارسال بسته ها استفاده کرد از 16 تا 1,048,575 می باشد. به صورت پیش فرض در IOS سیسکو از 16 تا 100000 به عنوان label استفاده می شود و این مقدار نیاز شما را برای شبکه های IGP تامین خواهد کرد. اما برای شبکه های BGP این مقدار قابل توجهی نیست و می توانید با دستور mpls label range min max این مقدار را تغییر دهید.
در تصویر زیر این تغییرات توسط دستور mpls label range نمایش داده شده است:

Image

 

TTL در بسته های Label خورده :


در هدر IP فیلد 8 بیتی با نام (Time To Live (TTL وجود دارد و با استفاده از آن طول عمر مجاز بسته در شبکه مشخص می شود. زمانی که یک بسته ارسال می شود به طور معمول مقدار این فیلد 255 می باشد و به ازای عبور از هر hop در شبکه این یک واحد از این مقدار کم می شود و اگر مقدار به صفر برسد بسته drop می شود. در این صورت روتری که بسته با TTL 0 را drop کند یک پیام (Internet Control Message Protocol (ICMP با کد 0 و type 11 به مبدا بسته ارسال می کند. با معرفی MPLS ، به هدر بسته ها label اضافه شد. در اینجا مقدار TTL هدر IP در label stack کپی می شود تا مطمئن شویم که بسته برای همیشه در شبکه MPLS قرار نگیرد و طول عمر برای آن وجود داشته باشد.
نکته : در هنگامی که بسته بدون label می شود و یا از شبکه MPLS خارج می شود. مقدار TTL از label stack به هدر IP کپی می شود.

رفتار TTL در بسته های label خورده :


در MPLS ، استفاده از فیلد TTL مشابه فیلد TTL در هدر IP است. زمانی که یک بسته IP وارد شبکه MPLS می شود مانند ingress LSR که به عنوان ورودی به شبکه MPLS محسوب می شود مقدار TTLدر هدر IP بعد از کسر یک واحد به عنوان MPLS TTL برای آن بسته در نظر گرفته می شود. Label در egress LSR حذف می شود و هدر IP مجدد مورد استفاده قرار می گیرد در اینجا نیز مقدار MPLS TTL بسته بعد از کسر یک واحد در فیلد TTL در هدر IP کپی می شود. در IOS سیسکو ، برای حفاظت از routing loop احتمالی مقدار TTL هدر IP را با MPLS TTL مقایسه می کند و اگر مقدار MPLS TTL از TTL هدر IP بزرگتر بود آنرا کپی نمی کند.
در تصویر زیر نحوی تغییرات TTL در شبکه MPLS نمایش داده شده است :

Image

 

رفتار TTL در Label-to-Label :


اگر عمل swap برای یک بسته label خورده در LSR در نظر گرفته شود مقدار TTL یک واحد کم شده و مقدار آن در label جدید قرار می گیرد. اگر یک یا چند label به یک بسته push شود از مقدار TTL یک واحد کم شده و مقدار آن برای label که جایگزین شده و label های جدید در نظر گرفته می شود. اگر یک label را pop کنیم از TTL آن یک واحد کم شده و مقدار آن در label که بالای label stack قرار می گردید کپی می شود مگر اینکه مقدار TTL از TTL این label بزرگتر باشد که در این حالت کپی انجام نمی شود.
در تصویر زیر تغییر TTL را در عملیات های pop ، push و swap نشان داده شده است :

Image

نکته : intermediate LSR یا همان LSR های میانی تنها مقدار TTL را در label بالای label stack تغییر می دهند و نمی توانند TTL هدر IP یا TTL مربوط به label های پایین label stack را تغییر دهند.
نکته : رفتار و عملکرد TTL را که در اینجا توضیح داده شد در IOS سیسکو TTL operation نامیده می شود.

MPLS چگونه کار می کند؟ – بخش نهم

با یک مقاله دیگه از سری مقالات MPLS در خدمت شما دوستان عزیز هستیم:

Load Balancing Labeled Packets :


اگر برای یک شبکه IPv4 چند مسیر با هزینه یکسان وجود داشته باشد در IOS سیسکو این امکان وجود دارد که بسته های label خورده را بین این مسیرها تقسیم کنید یا به عبارتی Load Balancing را انجام دهید. در تصویر زیر خروجی LFIB یک روتر LSR را می بینید. همانطور که در تصویر می بینید برای بسته های ورودی با label 17 , 18 دو پورت خروجی وجود دارد. اگر بسته های label خورده load-balance شوند می توانند label خروجی یکسانی داشته باشند اما با یکدیگر متفاوت هستند. اگر دو لینک بین یک جفت روتر و هر دو لینک به یک platform label space تعلق داشته باشند Label خروجی یکسان خواهد بود. اگر چندین next-hop LSR داشته باشیم معمولا label خروجی برای هر مسیر متفاوت خواهد بود چون هر next-hop LSR به صورت مستقل برای هر شبکه label در نظر می گیرد.

Image

اگر یک شبکه از طریق مجموعه ای از مسیرهای با مکانیزم label زنی و مسیر های بدون مکانیزم label زنی (IP) قابل دسترسی باشد در IOS سیسکو برای load-balancing مسیرهای بدون مکانیزم label زنی را در نظر نمی گیرد. چون ترافیک از طریق مسیر بدون مکانیزم label زنی به مقصد نخواهد رسید.
در شبکه های IPv4-over-MPLS اگر بسته در مقطعی از شبکه بدون label ارسال شود بسته به مقصد می رسد. در زمانی که بسته در لینکی که MPLS روی آن فعال نیست بدون label شود با توجه به اینکه در این شبکه IPv4 فعال است باید بتواند به مقصد برسد. ولی در شبکه های MPLS VPN و AToM در صورتی که در شبکه MPLS ، بسته بدون label ارسال شود به مقصد نخواهد رسید.MPLS Payload در شبکه MPLS VPN یک بسته IPv4 است. اما P Router به صورت معمول روتینگ VPN را ندارند در نتیجه نمی توانند بسته را به مقصد برسانند.MPLS Payload در حالت AToM یک فریم لایه دو است. بنابراین اگر بسته ، label stack خود را در P Router از دست دهد ، P Router اطلاعات لازم برای ارسال این فریم لایه دو را ندارد.
این مواردی که عنوان شد دلایلی هستند که load-balancing در هر دو حالت label و بودن (label (IP استفاده نمی شود. به طور کلی نحوی ارسال و تصمیم گیری در روتر های Edge LSR یا همان PE Router انجام می گیرد درنتیجه در اکثر موارد P Router نمی توانند بسته های بدون label را ارسال کنند.
در تصویر زیر load balancing را توسط دو مسیر نمایش می دهد. سپس روی یکی از لینک های خروجی (Label Distribution Protocol (LDP غیرفعال می گردد و به عنوان next-hop از LFIB حذف می شود. از دستور no mpls ip برای غیرفعال کردن LDP در یک اینترفیس استفاده می شود.

Image

 

Unknown Label :


در حالت نرمال LSR باید بسته های label خورده دریافت کند و label بالای label stack را بشناسد و چون قبلا توسط خود LSR این label ها به همسایه های خود اعلام شده است. به هر حال این امکان وجود دارد که در شبکه MPLS مشکلی بوجود آید و LSR بسته هایی را دریافت کند که label بالای label stack آنرا در LIFB پیدا نکند. از نظر تئوری LSR در این مواقع می تواند دو کار انجام دهد: label بسته را حذف کرده و برای ارسال بسته تلاش کند یا اینکه بسته را drop کند. در سیسکو LSR ها بسته را drop می کنند این یک تصمیم درست است چون label بالای label stack توسط این LSR مشخص نشده است و این LSR نمی داند که پشت label چه نوع بسته ای قرار دارد. این بسته می تواند یک بسته IPv4 ، IPv6 ، فریم لایه دو یا سایر موارد باشد. LSR می تواند با بررسی MPLS Payload تلاش کند که بفهمد بسته از چه نوعی است اما امکان به وجود آمدن مشکلات دیگر که در بخش قبلی آنها را شرح دادیم به وجود آید : LSR اگر label بسته را حذف کند به احتمال زیاد قادر به ارسال بسته براساس مقصد آن نخواهد بود. حتی اگر LSR بسته را ارسال کند تضمینی وجود ندارد که این بسته توسط سایر روترها drop نشود. بهترین کار برای بسته های که دارای label ناشناخته هستند drop کردن آنهاست.

Reserved Labels :


Label شماره 0 الی 15 به عنوان label های رزور شده شناخته می شوند و LSR نمی تواند از این label ها برای عملیات معمول خود استفاده کند. LSR برای هر یک از این label ها یک عملکرد خاص در نظر گرفته است. label 0 به عنوان explicit NULL label می باشد. Label 1 به عنوان router alert label استفاده می شود. Label 3 به عنوان implicit NULL label می باشد. Label 14 به عنوان OAM alert label استفاده می شود. سایر label های بین 0 تا 15 هنوز وظیفه ای برای آنها مشخص نشده است.

Implicit NULL Label :


implicit NULL label با مقدار 3 مورد استفاده قرار می گیرد.یک egress LSR اگر نخواهد به یک FEC یک label اختصاص دهد از implicit NULL label برای آن FEC استفاده می کند در نتیجه از LSR های مجاور خود درخواست می کند که label بسته ها را pop کرده و به سمت او ارسال کنند. در شبکه IPv4-over-MPLS ، در حالتی که LDP وظیفه پخش label ها را برعهده دارد egress LSR که IOS سیسکو را اجرا می کند implicit NULL label را برای شبکه های connected و summarized در نظر می گیرد. اگر egress LSR برای این FEC ها یک label در نظر بگیرد باعث می شود که بسته هایی دریافت کند که دارای یک label می باشند و برای این بسته ها باید دو lookup انجام دهد. اولین lookup مربوط به label می شود که باید آنرا با LFIB مقایسه کند و متوجه شود که باید label حذف شود. دومین lookup مربوط به IP lookup می باشد. اگر دقت کنیم lookup اول لازم نیست انجام شود چون نتیجه حذف label است.
راه حل : egree LSR اخرین LSR یک LSP می باشد در اینجا egress LSR باید به LSR یکی مانده به آخر در LSP (همسایه egress LSR) اعلام کند که بسته ها را بدون label برای او ارسال کند. برای اینکار از implicit NULL label استفاده می کند تا LSR همسایه را متوجه این موضوع کند و این باعث می شود که egress LSR بسته های IP دریافت کرده و تنها نیاز به IP lookup برای ارسال بسته ها داشته باشد. این عمل باعث بهبود عملکرد در egress LSR می شود.
استفاده از implicit NULL label در انتهای یک LSP را (penultimate hop popping (PHP می نامند. عمل pop در LFIB در روتر PHP در نظر گرفته می شود. نمونه آنرا در تصویر زیر می بینید.

Image

نکته : در IOS سیسکو PHP به صورت پیش فرض فعال است و در شبکه IPv4-over-MPLS شبکه های Connected و summarized را با implicit NULL label به سایر همسایه ها اعلام می کند.
استفاده از implicit NULL label بسیار گسترده است و تنها محدود به مثال بالا نمی باشد. اینکار برای یک بسته که دارای چند label است نیز استفاده می شود به این صورت که label بالای label stack حذف شده و بسته به صورت label خورده و با یک label کمتر ارسال می شود در نتیجه egress LSR نیاز به انجام دوبار label lookup ندارد. استفاده از implicit NULL label به این معنی نیست که تمام label ها در label stack باید حذف شوند بلکه فقط یک label حذف می شود. در هر حالتی استفاده از implicit NULL label باعث می شود که egress LSR نیاز نداشته باشد که دوبار lookup انجام دهد. هر چند که مقدار 3 به عنوان label برای implicit NULL label مورد استفاده قرار می گیرد اما هرگز این مقدار به عنوان label در label stack مشاهده نمی شود و به این دلیل است که به آن implicit NULL label گفته می شود.

پیاده سازی تانل GRE در تجهیزات سیسکو

در قسمت قبل با مفاهیم تانل و کاربرد ها و ویژگی های آن آشنا شدیم و در این بخش می خواهیم به پیاده سازی تانل GRE بپردازیم با ما همراه باشید.

ایجاد تانل GRE :


ایجاد یک تانل GRE شامل چند مرحله می باشد که این مراحل به شرح زیر هستند :

  • مرحله 1 : در ابتدا یک اینترفیس تانل مجازی در Global Configuration با استفاده از دستور interface tunnel ID ایجاد کنید.
  • مرحله 2 : سپس در تنظیمات اینترفیس تانلی که ایجاد کرده اید یک آدرس IP با استفاده از دستور ip address ipaddress subnetmask اضافه کنید.
  • مرحله 3 : مبدا تانل را با استفاده از دستور tunnel source { interfaceid | ip address } براساس آدرس IP یا اینترفیس مشخص کنید.
  • مرحله 4 : مقصد تانل را با استفاده از دستور tunnel destination ip_address مشخص کنید.
  • مرحله 5 : مراحل ذکر شده را برای روتر مقابل تکرار کنید.

 

GRE Configuration Example :


برای اینکه با مراحل تنظیم تانل GRE بیشتر و بهتر آشنا شوید یک سناریو برای GRE را اجرا می کنیم.

Image

به تصویر بالا توجه کنید یک سازمان را در نظر بگیرید که دارای دو سایت است که از طریق Service Provider ارتباط بین این دو سایت را برقرار کرده است حال این سازمان می خواهد از یک پروتکل مسیریابی دینامیک مثل EIGRP برای شبکه خود استفاده کند. همانطور که در تصویر می بینید بین دو سایت چند روتر وجود دارد و ارتباط بین دو روتر سازمان به صورت مستقیم نیست و همانطور که می دانید یکی از شرایط برقراری رابطه همسایگی advertise یک شبکه تو هر دو روتر می باشد که در اینجا روتر R1 شبکه های 192.168.1.0 و 192.168.12.0 را دارد و روتر R4 شبکه های 192.168.4.0 و 192.168.34.0 را دارد و همانطور که می بینید این دو روتر شبکه مشترکی برای برقراری همسایگی خود ندارند. راه حل برطرف کردن این مشکل استفاده از تانل است که یک شبکه مجازی به صورت Point to Point بین دو روتر R1 و R4 ایجاد کند و باعث شود که هر دو روتر دارای یک شبکه مشترک شوند.
نکته : برای ایجاد تانل لازم است که دو روتر بتوانند با یکدیگر ارتباط داشته باشند برای اینکار می توان از Static route استفاده کرد که در این سناریو روی روتر R1 دستور زیر را برای ایجاد Static Route مورد نظر خود وارد می کنیم.

R1(config)#ip route 192.168.34.0 255.255.255.0 192.168.12.2

روی روتر R2 نیز برای Static Route دستور زیر را وارد می کنیم.

R4(config)#ip route 192.168.12.0 255.255.255.0 192.168.34.3

در ابتدا روتر R1 را تنظیم می کنیم که دستورات آن به صورت زیر است:

R1(config)#interface tunnel 1
R1(config-if)#ip address 192.168.14.4 255.255.255.0
R1(config-if)#tunnel source fastEthernet 1/0
R1(config-if)#tunnel destination 192.168.34.4

همانطور که می بینید در ابتدا یک اینترفیس تانل ایجاد شده است و به آن یک IP اختصاص داده شده است سپس مبدا این تانل را برابر اینترفیس fastethernet 1-0 قرار داده شده و مقصد تانل را برابر 192.168.12.1 قرار داده شده است این IP مربوط به اینترفیس fastethernet 1-0 روتر R4 است. نکته که اینجا حائز اهمیت است این است که این روتر بتواند با این IP ارتباط داشته باشد تا بتواند ارتباط تانل را برقرار کند.
سپس روتر R4 را با دستورات زیر تنظیم می کنیم :

R4(config)#interface tunnel 1
R4(config-if)#ip address 192.168.14.1 255.255.255.0
R4(config-if)#tunnel source fastEthernet 1/0
R4(config-if)#tunnel destination 192.168.12.1

دستورات استفاده شده برای روتر R4 مشابه روتر R1 است فقط تفاوت آن در IP مقصد تانل است که در اینجا IP اینترفیس fastethernet 1-0 روتر R1 استفاده می شود.
نکته : از دستور tunnel mode gre ip برای تعیین نوع GRE برای تانل استفاده می شود اما چون به صورت پیش فرض اینترفیس تانل که ایجاد می شود در این حالت قرار می گیرد نیاز به وارد کردن این دستور نیست.
حال تانل ایجاد شده است و همینطور که در تصویر زیر می بینیم در وضعیت UP قرار گرفته است.

Image

با استفاده از دستور show interface tunnel 1 می توانیم وضعیت تانل را با جزئیات بیشتری ببینیم.

Image

همانطور که در تصویر مشخص شده است وضعیت تانل در حالت UP قرار دارد. آدرس تانل 192.168.14.1 می باشد. پهنای باند آن 100 Kbps می باشد. نوع کپسوله تانل می باشد. مبدا و مقصد تانل مشخص شده است. پروتکل تانل GRE و پروتکل Transport را IP مشخص کرده است.
حال اگر پروتکل مسیریابی EIGRP را پیاده سازی کنیم دو روتر R1 و R4 می توانند از طریق تانل همسایه شوند. در تصویر زیر نشان داده شده است که روتر R1 از طریق Tunnel 1 با روتر R4 همسایه شده است.

Image

همچنین اگر از PC1 بخواهیم PC2 را trace بگیریم خروجی به شکل زیر خواهد بود.

Image

همانطور که در تصویر می بینید تنها روترهای R1 و R4 در مسیر ما نمایش داده شده است و روترهای R2 و R3 در اینجا دیده نمی شوند و دلیل آن استفاده از تانل می باشد.

آموزش راه اندازی GRE Tunnel در روترهای سیسکو

تانل این امکان را برای ما فراهم می کند که یک پروتکل را درون یک پروتکل دیگر کپسوله کنیم و آنرا منتقل کنیم این ویژگی باعث می شود حتی بتوانیم پروتکل هایی غیر IP را رو روی بستر IP منتقل کنیم. تانل به صورت یک اینترفیس مجازی اجرا می شود و به ما یک اینترفیس ساده برای تنظیم می دهد. اینترفیس تانل به پروتکل یا نحوی انتقال خاصی وابسته نیست و به عنوان یک معماری طراحی شده است که سرویس های لازم برای برقراری یک ارتباط point to point استاندارد را فراهم کند. تانل به عنوان یک لینک point to point باید هر دو نقطه انتهایی آن به تنظیم گردد.

Image

تانل زدن یک مکانیزم برای حمل یک بسته از یک پروتکل توسط یک پروتکل دیگر است. پروتکل های که حمل می شوند پروتکل های passenger (مسافر) نامیده می شود و پروتکل های که برای حمل این پروتکل های passenger ، استفاده می شوند را پروتکل های transport می نامند. GRE به عنوان یک مکانیزم قابل استفاده برای تانل است که از IP به عنوان پروتکل Transport استفاده می کند و می توان از آن برای حمل پروتکل های مختلف استفاده کرد تانل مانند یک لینک مجازی Point to Point عمل می کند که دارای دو نقطه انتهای است که توسط tunnel source و tunnel destination در هر دو سمت آن شناسایی می شود.
یک مثال برای تانل این است که ما یک سازمان با دفتر مرکزی و چند شعبه داریم برای این سازمان می خواهیم یک پروتکل مسیریابی مانند RIP ، OSPF یا EIGRP اجرا کنیم که بین شعبه ها و دفتر مرکزی عملی مسیریابی انجام شود. لینک ارتباطی بین دفتر مرکزی و شعبه ها از چند روتر Service Provider عبور می کند. در نتیجه با توجه به اینکه برای برقراری همسایگی پروتکل های مسیریابی ذکر شده به یک ارتباط مستقیم نیاز داریم همسایگی بین روترهای دفتر مرکزی و شعبه ها برقرار نمی شود. اما استفاده از تانل این مشکل را برطرف می کند. استفاده از تانل مانند این است که یک ارتباط Point to Point بین دو دستگاه ایجاد کنیم در نتیجه دو روتر می توانند رابطه همسایگی خود را برقرار کنند. GRE یک تکنیک تانل زنی ساده است که این کار را به راحتی برای ما انجام می دهد.
GRE یک پروتکل برای تانل زدن است که توسط سیسکو توسعه یافته است و می تواند پروتکل های مختلف لایه شبکه را در داخل یک لینک Point to Point روی بستر IP کپسوله کند. تانل (Generic Routing Encapsulation (GRE همانطور که از نامش پیداست می تواند تقریبا هر نوع دیتایی را encapsulate کرده و آنرا روی اینترفیس های فیزیکی روتر ارسال کند. در واقع GRE می تواند انواع پروتکل های لایه 3 را encapsulate کند که باعث می شود GRE بسیار انعطاف پذیر شود.

Image

نکته : با توجه به اضافه شدن هدر GRE بسته ما دو هدر لایه سه خواهد داشت که در تصویر زیر یک بسته با هدر GRE نمایش داده شده است:

Image

GRE به تنهایی مکانیزمی برای تامین امنیت دیتای که منتقل می کند ندارد اما بسته های GRE را می توان روی یک IPsec VPN ارسال کرد که باعث می شود بسته های GRE به صورت امن ارسال شوند. این نوع پیکربندی معمولا مورد استفاده قرار می گیرد اما IPsec تنها می تواند از بسته های unicast حفاظت کند. این محدودیت باعث مسائلی برای پروتکل های مسیریابی که از IP Multicast استفاده می کنند می شود. خوشبختانه تانل GRE می تواند بسته های IP Multicast را encapsulate کند. در نتیجه بسته های unicast و multicast توسط تانل GRE کپسوله می شوند و همچنین بسته های unicast توسط تانل IPsec محافظت می شوند.
به عنوان مثال تصویر 2-3 را در نظر بگیرید. روتر HQ و Branch نیاز دارند که یک ارتباط همسایگی برای OSPF از طریق شبکه Service Provider ایجاد کنند. علاوه بر این ترافیک ارسالی بین این دو روتر باید محافظت شود. IPsec می تواند از ترافیک IP unicast محافظت کند و OSPF به صورت IP Multicast ارتباط برقرار می کند. بنابراین تمام ترافیک بین HQ و Branch (شامل ترافیک OSPF به صورت Multicast) در تانل GRE کپسوله می شود. بسته های GRE که یک بسته IP unicast هستند به وسیله تانل IPsec ارسال و محافظت می شوند.

Image

 

مزایای GRE :


  • تانل GRE امکان انتقال ترافیک multicast را دارد.
  • تانل GRE اجازه برقراری VPN را روی شبکه های WAN را می دهد.
  • اتصال شبکه های جدا از هم
  • پیاده سازی ساده و آسان
  • به دلیل عدم استفاده از مکانیزم های رمزنگاری منابع کمتری مصرف می کند
  • عبور ترافیک با آدرس Private روی شبکه اینترنت
  • راه حلی برای شبکه هایی که از پروتکل هایی که محدودیت تعداد hop دارند مانند پروتکل RIP
  • امکان عبور پروتکل های مختلف مورد استفاده در شبکه local از طریق یک پروتکل در شبکه backbone
  • تانل GRE امکان انتقال ترافیک IPv6 را دارد.

802.1x و IBNS چیست و چگونه امنیت دسترسی به شبکه را فراهم می کند؟ – بخش پنجم

در ادامه مباحث 802.1x در خدمت شما دوستان هستیم.

EAP–Transport Layer Security :


EAP-TLS یک استاندارد است که توسط مایکروسافت توسعه یافت و توسط (Internet Engineering Task Force (IETF پذیرفته شد. این پروتکل بر پایه پروتکل (Transport Layer Security (TLS می باشد. همانند متد Cisco LEAP در EAP-TLS نیز هر دو کلاینت و سرور یکدیگر را تایید هویت می کنند. هرچند که در این روش پسورد مورد استفاده قرار نمی گیرد و بجای آن از RSA استفاده می شود. EAP-TLS از Certificate برای تایید هویت کلاینت و سرور استفاده می کند.
در فاز اول Radius Server برای کلاینت Certificate خود را ارسال میکند و کلاینت برای بررسی صحت Certificate ارسالی توسط Radius server محتوای Certificate را با صادر کننده آن یعنی (certificate authority (CA چک می کند. بعد از اینکه این مرحله با موفقیت انجام شد. در فاز دو کلاینت Certificate خود را برای Radius Server ارسال می کند Radius Server نیز محتوای Certificate دریافتی را با صادر کننده آن بررسی می کند. بعد از اینکه این مرحله نیز با موفقیت به اتمام رسید یک پیام EAP-Success به کلاینت ارسال می کند.
مزیت EAP-TLS امنیت بالای آن بخاطر استفاده از یکی از قویترین روش های تایید هویت حال حاضر است. مشکل آن پیچیده گی زیاد آن در راه اندازی است چون نیاز به اجزای بیشتری مانند (certificate authority (CA دارد و همچنین نیاز به پردازش بالاتری نسبت به سایر روش ها در هر دو سمت سرور و کلاینت دارد.
در تصویر زیر یک نمونه آن نمایش داده شده است :

Image

 

EAP–Tunneled Transport Layer Security :


EAP-TTLS یک توسعه برای EAP-TLS می باشد و به لحاظ عملکرد شبیه PEAP می باشد و دارای دو فاز است. EAP-TTLS همانند EAP-TLS از TLS برای ایجاد یک تانل بین authentication server و supplicant مورد استفاده قرار می گیرد که فاز یک را تشکیل می دهد. EAP-TTLS همانند PEAP از تانل TLS برای کپسوله کردن استفاده می کند اما تفاوت آن با PEAP پشتیبانی از روش هایی غیر از متدهای EAP مانند (PPP Authentication Protocol (PAP و (PPP Challenge Handshake Authentication Protocol (CHAP می باشد. EAP-TTLS بر خلاف EAP-TLS نیاز به تایید هویت هر دو سمت یعنی کلاینت و سرور ندارد که باعث می شود تنظیمات ساده تر شود.
در تصویر زیر نمونه آنرا می بینید :

Image

 

EAP–Flexible Authentication via Secure Tunneling :


(EAP–Flexible Authentication via Secure Tunneling (EAP-FAST توسط سیسکو ارائه شده است. سیسکو EAP-FAST را برای پشتیبانی از مشتریان که نیاز به سیاست های قوی در زمینه پسورد دارند و نیاز به راه اندازی Certificate ندارند ارائه کرده است. EAP-FAST حفاظت در برابر حملات مختلف را برای ما به ارمغان می آورد شامل حملاتی مانند man-in-themiddle و replay و dictionary attacks
فاز 1 یک تانل امن ایجاد می کند که کلاینت و سرور با استفاده (Protected Access Credential (PAC یکدیگر را تایید هویت کرده و این تانل امن را برقرار می کنند.
فاز 2 تایید هویت کلاینت را در تانل ایجاد شده انجام می دهد کلاینت یوزر و پسورد خود را برای تایید هویت ارسال می کند. در EAP-FAST برقراری تانل متکی به PAC و توسط authentication server مدیریت می گردد.
در تصویر زیر نمونه آنرا می بینید :

Image

دوستان مفاهیم و مباحث تئوری به اتمام رسیده و از قسمت بعد وارد مباحث پیاده سازی 802.1x خواهیم شد.

MPLS چگونه کار می کند؟ – بخش هشتم

در ادامه سری مقالات MPLS در خدمت شما دوستان هستیم.

Forwarding Labeled Packets :


در بخش های قبلی به MPLS label پرداختیم و فهمیدیم label چیست و چگونه مورد استفاده قرار می گیرد و حالا در این بخش می خواهیم نحوی ارسال بسته های label خورده را مورد بررسی قرار دهیم. نحوی ارسال بسته های label خورده نسبت به ارسال بسته های IP کاملا متفاوت است و فقط به بررسی label در LIFB به جای جدول مسیریابی بر نمی گردد. در بحث ارسال بسته های label خورده ، عملیات هایی روی label stack مانند pop ، push و swap انجام می گیرد. که در این قسمت به این عملیات ها می پردازیم.

Label Operation :


امکان اجرای سه عمل pop ، swap و push روی بسته های label خورده وجود دارد. که در تصویر زیر این عمل ها نمایش داده شده است.

Image

LSR با نگاه کردن به label بالای label stack بسته دریافتی و مقایسه آن با مقادیر LFIB متوجه می شود که بسته را چگونه باید ارسال کند. در اینجا LSR مشخص می کند که چه عملیاتی (pop , push , swap) روی بسته باید انجام گیرد و next hop بعدی که بسته باید به آن ارسال شود چیست؟ اگر عمل swap تعیین شود به این معنی است که یک label جدید جایگزین label بالای label stack می شود. در عمل push یک label جدید جایگزین label بالای label stack می شود و یک یا چند label دیگر به بالای label stack اضافه می شود. عمل pop باعث حذف label بالای label stack می شود.
نکته : LSR هنگام دریافت یک بسته label خورده 20 بیت اول label بالای label stack را نگاه می کند و مقدار بدست آمده را با local labels موجود در LFIB مقایسه می کند.

IP Lookup در برابر Label Lookup :


زمانی که روتر یک بسته IP دریافت کند برای بسته IP lookup انجام می دهد. در IOS سیسکو به این معنی است که آدرس مقصد IP در جدول CEF جستجو می شود. زمانی که روتر یک بسته label خورده دریافت می کند جستجو در LFIB روتر انجام می گیرد. روتر با نگاه کردن به فیلد پروتکل در هدر لایه دو متوجه می شود که بسته ای که دریافت کرده یک بسته IP یا یک بسته label خورده است. اگر بسته با هر یک از دو روش ( Cisco Express Forwarding (CEF یا LFIB ارسال شده باشد می تواند بعد از دریافت توسط روتر با label یا بدون label از روتر خارج شود. در تصویر زیر تفاوت بین CEF و LFIB نمایش داده شده است.

Image

اگر ingress LSR یک بسته IP دریافت کند آنرا lable زده و ارسال می کند که به آن IP-to-label گفته می شود. اگر egress LSR یک بسته label خورده را دریافت کند label آنرا حذف کرده و به عنوان یک بسته IP آنرا ارسال می کند که به آن label-to-IP گفته می شود. حالت دیگر این است که LSR یک بسته label خورده را دریافت و به صورت label زده آنرا ارسال می کند که به آن label-to-label گفته می شود.
در تصویر زیر حالت IP-to-label نمایش داده شده است که ارسال براساس جدول CEF انجام می شود.

Image

بسته های IP به مقصد 10.200.254.4 که وارد LSR شوند با label 18 از پورت ethernet0 خارج می شوند. Next-hop برای این بسته ها 10.200.200.2 می باشد. در اینجا IP-to-label انجام می شود. در IOS سیسکو فقط از CEF Switching برای label بسته ها می توان استفاده کرد و از سایر روش های IP Switching مانند fast switching نمی توان استفاده کرد چون fast switching حافظه ای برای نگه داری اطلاعات مربوط به label ندارد و CEF switching تنها روش IP switching است که قابلیت پشتیبانی از MPLS را دارد به همین خاطر زمانی که از MPLS استفاده می کنیم باید CEF را در روترهای مورد نظر فعال کنیم.
تصویر زیر محتویات LFIB را با دستور show mpls forwarding-table نمایش داده است.

Image

Local label توسط LSR ایجاد و به سایر LSR ها ارسال می شود. به طور مثال این LSR انتظار دارد که بسته های دریافتی یکی از این label ها را در بالای label stack خود داشته باشند. اگر این LSR یک بسته با label 22 دریافت کند آنرا با label 17 جایگزین کرده (swap) و روی پورت Ethernet 0 ارسال می کند. که در این حالت label-to-label انجام می گیرد.
اگر LSR یک بسته با label 16 دریافت کند تمام label های آنرا حذف می کند (pop) چون untag (بودن label) به عنوان label خروجی برای این label در LFIB در نظر گرفته شده است. که label-to-IP انجام می گیرد. اگر LSR یک بسته با label 18 دریافت کند label بالای label stack را حذف می کند و آنرا ارسال می کند اگر این label تنها label موجود label stack باشد بسته به عنوان یک بسته IP ارسال می شود در غیر اینصورت به عنوان یک بسته label خورده ارسال می شود. در تصویر زیر یک عمل push نمایش داده شده است که یک در اینجا label 20 بسته جایگزین label 23 می شود و label 16 به بسته push می شود.

Image

برای مشاهده تمام تغییرات ایجاد شده در label بسته از دستور show mpls forwarding-table [network] detail می توانید استفاده کنید. در تصویر بالا تفاوت خروجی دستور در صورت استفاده از کلید detail را مشاهده می کنید. در صورت استفاده از کلید detail ، تمام تغییرات در label stack را می توانید مشاهده کنید. از سمت چپ به راست ، می توانید اولین label را ببینید label 20 جایگزین label 23 می شود و سپس label 16 به label stack اضافه می شود. اما بدون کلید detail تنها label 16 را می بینیم که به label stack اضافه می شود.
غیر از سه عملی که قبلا آنها را شرح دادیم یک عمل دیگر تحت عنوان aggregate وجود دارد. زمانی که شما یک تجمیع یا summarization در یک LSR انجام می دهید LSR برای این شبکه های تجمیع شده یک label خاص منتشر می کند اما aggregate در LFIB به عنوان label خروجی نمایش داده می شود چون LSR یک رنج از شبکه ها را تجمیع کرده است و بسته های label خورده دریافتی را نمی تواند با swap کردن label ارسال کند. Label خروجی Aggregate نمایش داده می شود که به این معنی است که LSR باید label بسته دریافتی را حذف کرده و IP lookup برای دقیق تر مشخص کردن شبکه انجام دهد تا بسته ارسال شود. در تصویر زیر محتوای LFIB را در یک روتر egress PE در شبکه MPLS VPN نمایش می دهد.
Egress LSR یک بسته با label 23 دریافت می کند و باید label آنرا حذف کرده و براساس ادرس مقصد IP بسته برای آن IP lookup انجام دهد.

Image

حالا شما متوجه شدید که چگونه یک next-hop خاص را برای یک بسته label خورده تعیین کنید. جدول CEF adjacency نحوی کپسوله کردن در لایه data link را مشخص می کند. این جدول اطلاعات لازم برای ارسال بسته ها در لایه دوم برای LSR بعدی را فراهم می کند.
در تصویر زیر این جدول در یک LSR نمایش داده می شود. این جدول اطلاعات لازم برای ارسال فریم ها را در خود نگه می دارد.

Image

خلاصه ای از عملیات هایی که روی label انجام می شود :

  • Pop : در اینجا label بالای label stack حذف می شود و بسته با label یا بدون آن به عنوان یک بسته IP ارسال می شود.
  • Swap : در اینجا label بالای label stack با یک label جدید جایگزین می شود.
  • Push : در اینجا label بالای label stack با یک label جدید جایگزین می شود و یک یا چند label به بالای label stack اضافه می شود.
  • Untagged/No Label : در اینجا label stack حذف شده و بسته بدون label ارسال می شود.
  • Aggregate : در اینجا label stack حذف شده و برای بسته IP lookup انجام می گیرد.

(Cisco Identity Services Engine (ISE نسل جدید سیستم شناسایی و کنترل دسترسی

شبکه های امروزی به سرعت در حالت تغییر هستند بخصوص زمانی که کاربران یا کارمندان متحرک دارید که یک دستگاه یا مکان خاص ندارند و از هر جایی به روش هایی مختلف مانند اینترنت می خواهند به شبکه متصل می شوند و برای این اتصال از دستگاه های مختلف مانند لپ تاپ ، تبلت ، گوشی هوشمند و … استفاده می کنند. این اتصال به شبکه از نقاط مختلف و دسترسی به منابع شبکه باعث افزایش بهره وری می شود اما از سوی دیگر باعث کاهش امنیت و افزایش تهدیدات می شود چون وضعیت امنیتی دستگاه هایی که به شبکه متصل می شوند کنترل نمی شود. نگهداری و ردیابی تمام دستگاه هایی که به شبکه دسترسی پیدا می کند یک کار بزرگ است و هر چه این میزان دسترسی بیشتر شود مدیریت و کنترل آن سخت تر می شود.

Image

(Cisco Identity Services Engine (ISE نسل جدید سیستم شناسایی و کنترل دسترسی است که شبکه را قادر می سازد سرویس دهی را ساده تر انجام دهد و وضعیت امنیت زیرساخت را بهبود ببخشد. معماری منحصر به فرد Cisco ISE این امکان را می دهد که به صورت Real time اطلاعات شبکه ، کاربران و دستگاه ها را جمع آوری کند. سپس مدیر می تواند با استفاده از این اطلاعات برای شناسایی دسترسی به عناصر مختلف شبکه مانند سوئیچ ها ، WLAN ، VPN و … اقدام کند.
Cisco ISE محصولی جدید است که راه حل ها و سرویس های مختلف امنیتی را در یک محصول به صورت یکجا برای ما فراهم می کند. این محصول کنترل دسترسی و راه حل های امنیتی را برای ارتباطات کابلی ، وایرلس و VPN را به صورت ساده و خودکار فراهم می کند.

ویژگی های کلیدی Cisco ISE :


  • AAA protocols : سیسکو ISE برای Authentication ، Authorization و Accounting از پروتکل RADIUS استفاده می کند.
  • Authentication protocols : از پروتکل های تایید هویت مختلفی پشتیبانی می کند که شامل PAP, MS-CHAP, EAP-MD5, PEAP, EAP-FAST, EAP-TLS می باشند.
  • Access control : سیسکو ISE دامنه وسیعی از مکانیزم های کنترل دسترسی را برای ما فراهم می کند مانند URL Redirect ، Vlan Assignment ، downloadable access control lists (dACL) وSGA tagging
  • Posture : سیسکو ISE با استفاده از NAC-client-Agent یا web agent وضعیت دستگاه هایی که به شبکه متصل می شوند را بررسی می کند. یک مدیر شبکه می تواند شرایط مختلفی را برای بررسی تعیین کند مانند آنتی ویروس ، وضعیت سیستم عامل و …
  • Profiling : Profiling برای شناسایی و آنالیز دستگاه های شبکه مورد استفاده قرار می گیرد. این دستگاه ها می تواند هر نوع دستگاهی که می خواهد به شبکه دسترسی پیدا کند مانند iPhone ، iPad ، laptop ، printers و … باشد. ISE به صورت پیش فرض دارای چندین Profiling برای این دستگاه ها می باشد. همچنین ما می توانیم Profiling مورد نظر خود را ایجاد کنیم و برای آن سیاست های خاصی درنظر بگیریم.
  • Policy model : Policy model این امکان را فراهم می کند که با استفاده از ویژگی ها و رول ها ، کنترل دسترسی انعطاف پذیرتری داشته باشیم.
  • Guest lifecycle management : با این قابلیت می توان در ISE یوزر با دسترسی خاص داشته باشیم و از آن برای کنترل کاربران مهمان استفاده کنیم.
  • Platform options : می توان ISE را در دو پلتفرم می توان استفاده کرد. پلتفرم اول به عنوان یک دستگاه متصل می باشد و پلتفرم دوم به عنوان یک دستگاه مجازی قابل استفاده است. ISE را می توان روی VMware نصب کرد.
  • Monitoring ، Troubleshooting و Reporting: در ISE مانیتورینگ ، خطایابی و گزارش گیری به سادگی و با محیط کاربر پسند انجام می شود.

نکته : ISE از پروتکل TACACS+ در حال حاضر پشتیبانی نمی کند و احتمالا در نسخه 2 این پروتکل اضافه خواهد شد.

Image

 

Identity-Based Network Access :


Cisco ISE در بخش های زیر مدیریت تشخیص هویت را به صورت آگاهانه انجام می دهد :

  • Cisco ISE تعیین می کند که کاربرانی که به شبکه دسترسی دارند توسط یک دستگاه با سیاست های مشخص به شبکه دسترسی پیدا کرده اند.
  • Cisco ISE تاریخچه شناسایی کاربر ، محلی که کاربر از آن به شبکه متصل شده است و همچنین دسترسی های کاربر را نگه داری می کند و از آن برای گزارش گیری می توان استفاده کرد.
  • Cisco ISE می تواند دسترسی کاربر را تنها به یک بخش از شبکه یا سرویس و نرم افزار خاص فراهم کند که اینکار براساس احراز هویت کاربر انجام می شود.
  • Cisco ISE می تواند سرویس دهی به کاربر را براساس شرایط مختلف تعیین کند مانند عضویت در گروه خاص ، نوع دستگاه و …
Image

Device Functionality Planes چیست؟ و چرا در بحث امنیت از اهمیت ویژه ای برخوردار است؟

در معماری زیرساخت ارتباطی شبکه سه بخش اصلی وجود دارد هر بخش یک نقش حیاتی را بر عهده دارد که یک زیرساخت مطمئن برای شبکه داشته باشیم. هر کدام به نوبه خود باعث ارائه مستمر خدمات می شوند. این ارائه مستمر خدمات نیاز به یک زیر ساخت دارد که بتواند ترافیک را مسیردهی ، ارسال و مدیریت کند.
سه بخش اصلی به شرح زیر می باشند :

  • Control plane : با توابع و عملکرد خود امکان مسیردهی ترافیک را فراهم می کند.
  • Data plane : امکان ارسال ترافیک را فراهم می کند.
  • Management plane : به منظور مدیریت تجهیزات مورد استفاده قرار می گیرد.

نکته : control plane و management plane در واقع به data plane سرویس می دهند.

Image

محافظت از هر یک از این بخش ها برای داشتن یک زیرساخت ارتباطی مطمئن امری حیاتی است. هر سه بخش دارای اهمیت ویژه هستند و از امنیت و حافظت هیچ کدام از این بخش ها نباید غافل شد زیرا هر مشکلی که برای یک بخش به وجود آید سایر بخش ها را نیز تحت تاثیر می گذارد.

Control Plane :


Control Plane با پروتکل های سیگنالی سروکار دارد و در واقع برای جمع آوری و ایجاد اطلاعات مورد نیاز برای ارسال ترافیک مورد استفاده قرار می گیرد. جدول هایی مانند Routing Table ، MAC Table توسط این بخش ایجاد می گردد.
حفاظت از این بخش به دو دسته اصلی تقسیم می شود :

  • دسته اول شامل استفاده از پروتکل های استاندارد در راه نادرست است. این پروتکل های عمومی یا سیگنالی برای جمع آوری و ساخت اطلاعات مورد نیاز برای ارسال ترافیک مورد استفاده قرار می گیرد. که شامل پروتکل های مسیر یابی ، (Spanning Tree Protocol(STP) ، VLAN ، Trunking Protocol (VTP و … می شود. جدول زیر به شما در حفاظت از این بخش کمک شایانی می کند. به طور مثال استفاده از ماکنیزم های احراز هویت و فیلتر کردن route ها برای پروتکل های مسیریابی ، محافظت از STP با پیاده سازی مناسب آن و استفاده از ماکنیزم هایی مانند BPDU Guard
  • دسته دوم اساسا به حملات DoS که به Control Plane انجام می شود می پردازد. ارسال حجم انبوهی از بسته ها مرتبط با Control Plane می تواند باعث درگیر شدن CPU و عدم توانایی آن در اداره ترافیک نرمال شود و باید با روش هایی مانند استفاده از (Access Control List (ACL مانع این حملات شد.

جدول زیر به صورت اجمالی حملات عمومی این بخش و نحوی مقابله با آنها را برای دو قسمت روتر و سوئیچ نمایش داده است :

Image

 

Data Plane :


Data plane بخشی از شبکه است که وظیفه حمل ترافیک کاربران را بر عهده دارد. data plane داده ها را قادر می سازد که از کلاینتی به کلاینت دیگر حمل شوند و اداره ارتباطات متعدد را به وسیله پروتکل های مختلف را بر عهده دارد. همیچنین قادر است سرویس مختلف مانند مباحث امنیتی ، QoS و … را روی ترافیک اعمال کند.
در این بخش همانند Control Plane راهکارهای مناسب و خاصی را می طلبد تا بتواند عملکرد مناسب و درستی ارائه دهد.
حملات این بخش نیز به دو دسته تقسیم می شوند:

  • دسته اول شامل حملاتی است که روی لینک ها با ارسال حجم انبوهی از ترافیک ایجاد می گردد و با روش هایی مانند ACL ، Qos و .. قابل پیشگیری است.
  • دسته دوم حملات Spoofing یا جعل می باشد که توسط روش هایی مانند Port Security ،DHCP Snooping و … قابل پیشگیری است.

جدول زیر به صورت اجمالی حملات عمومی این بخش و نحوی مقابله با آنها را برای دو قسمت روتر و سوئیچ نمایش داده است :

Image

 

Management Plane :


Management Plane شامل پردازش هایی است که در سطح CPU انجام می گیرد. این پردازش ها به منظور مدیریت دستگاه و کنترل دسترسی به تجهیزات صورت می گیرد.
جدول زیر به صورت اجمالی حملات عمومی این بخش و نحوی مقابله با آنها را نمایش داده است :

Image

حملات این بخش برای روترها و سویچ ها مشابه هم است. یکی از حملات این بخش به منظور دسترسی غیر مجاز به تجهیزات می باشد بدون استفاده از AAA ، شما یک مکانیزم مناسب ندارید که بفهمید چه کسی به تجهیزات متصل شده است و یا اینکه بتوانید عمکلرد یک کاربر را محدود کنید. از مرایای دیگر استفاده از AAA کنترل و ضبط گزارش عملکرد کاربر می باشد.
محافظت از دسترسی به تجهیزات شبکه به معنی محافظت از مسیر عبور ترافیک می باشد که این کنترل دسترسی به دو صورت local و remote باید انجام گیرد. پروتکل هایی دسترسی در تجهیزات سیسکو به شرح زیر می باشند :

  • (Secure Shell (SSH
  • Telnet
  • (Simple Network Management Protocol (SNMP
  • HTTP
  • HTTPS

هر یک از این دسترسی ها اگر مورد نیاز نیست آنها را غیر فعال کنید و یا اگر مسیر ارتباطی امن نیست از روش های رمز شده استفاده کنید و همچنین دسترسی به تجهیزات توسط این روش ها را محدود کنید.

802.1x و IBNS چیست و چگونه امنیت دسترسی به شبکه را فراهم می کند؟ – بخش چهارم

در ادامه مباحث 802.1x در خدمت شما دوستان هستیم.

Port Authentication Host Modes :


802.1x برای port authentication از چند host mode مختلف پشتیبانی می کند که این mode ها به شرح زیر است :

  • Single-Host Only : در این حالت برای هر پورت تنها یک host می تواند تایید هویت شود و اگر بیشتر از یک host برای تایید هویت تلاش کند یک پیغام خطا تولید می شود.
  • Multi-Host : در این حالت یک میزبان تایید هویت می شود و سایر میزبان ها بدون نیاز به تایید هویت می توانند از پورت استفاده کنند. اگر میزبانی که تایید هویت شده ارتباط خود را قطع کند پورت در وضعیت unauthorized قرار می گیرد و سایر میزبان ها نمی توانند دیگر از پورت استفاده کنند مگر اینکه یکی از آنها اقدام به تایید هویت کند.
  • Multi-Domain : این امکان را فراهم می کند تایید هویت برای دو دامین data و voice انجام گیرد. این حالت زمانی استفاده می شود که به یک پورت یک IP Phone و یک Computer متصل باشد.
  • Multi-Auth : در این حالت کامپیوترهایی که به یک پورت متصل هستند هر کدام به صورت مستقل تایید هویت می شوند. در این حالت همه کامپیوترهای متصل به این پورت در یک زمان واحد در یک VLAN قرار می گیرند و VLAN براساس اولین کامپیوتری که به پورت متصل شود تعیین می گردد. برای در نظر گرفتن مسائل امنیتی در این حالت بهترین راه استفاده از ACL می باشد.
  • Open : در این حالت هیچ محدودیتی برای دسترسی به شبکه وجود ندارد.

 

EAP Type Selection :


چندین روش مختلف برای تایید هویت به وسیله EAP برای شبکه های سیمی و بیسیم وجود دارد. که پرکاربرد ترین روش های آن به شرح زیر است :

  • EAP-MD5
  • PEAPv0-MSCHAPv2
  • LEAP
  • EAP-TLS
  • EAP-TTLS
  • EAP-FAST

در ادامه این روش های را مورد بررسی قرار می دهیم.

EAP–Message Digest Algorithm 5 :


EAP-MD5 براساس (message digest algorithm 5 (MD5 تایید هویت را انجام می دهد. در این روش هویت کلاینت به صورت hash شده روی شبکه ارسال می شود. در این روش سرور یک رشته به صورت تصادفی تولید می کند و آنرا به کلاینت ارسال می کند کلاینت رشته دریافتی را با استفاده از پسورد خود که به عنوان کلید در نظر گرفته می شود hash کرده و به سرور ارسال می کند. سرور نیز رشته ای که تولید کرده را با پسورد مربوط به کلاینت که از قبل در دیتابیس خود داشته hash می کند سپس hash خود را با hash ارسالی توسط کلاینت مقایسه می کند.
این روش به خوبی پشتیبانی می شود و یک مکانیزم تایید هویت ساده را با استفاده از یوزر و پسورد فراهم می کند. همچنین این روش بار پردازشی زیادی به سرور یا کلاینت تحمیل نمی کند چون پردازش آن ساده و راحت است.
نقطه ضعف این روش به عملکرد MD5 برمی گردد که باید پسورد تمام کاربران را به صورت clear-text در authentication server ذخیره گردد.
نکته : این روش یک مکانیزم استاندارد است و در ویندوز XP این مکانیزم را داریم اما در ویندوز 7 و بعد از آن این روش حذف شده است.
نکته : در این روش احراز هویت به صورت یکطرفه انجام می گیرد و فقط authentication server امکان احراز هویت کلاینت را دارد و کلاینت نمی تواند authentication server را احراز هویت کند.
در تصویر زیر نمونه آن نمایش داده شده است :

Image

 

Protected EAP w/MS-CHAPv2 :


(Protected EAP (PEAP به صورت مشترک توسط Cisco Systems ، Microsoft و RSA Security ارائه شده است و از روش های مختلف کپسوله کردن EAP به همراه تانل (Transport Layer Security (TLS پشتیبانی می کند.
PEAP از مجموعه از روش های تایید هویت کاربران پشتیبانی می کند. در سمت سرور از Certificate برای تایید هویت استفاده می شود که بر پایه (public-key infrastructure (PKI می باشد. PEAP میتواند برای تایید هویت از یوزر و پسورد های ویندوزی استفاده کند که این یوزر و پسوردها می توانند دامینی یا به صورت local باشد.
PEAP برای عملکرد خود از دو فاز استفاده می کند :

  • فاز 1 : در این فاز یک تانل امن توسط سرور ایجاد می گردد. که این تانل برای حمل بسته های تایید هویت EAP بین کاربر و Radius Server مورد استفاده قرار می گیرد.
  • فاز 2 : Radius Server کلاینت را به وسیله MS-CHAP version 2 از طریق تانل امنی که ایجاد شده تایید هویت می کند.

نکته : در این روش احراز هویت به صورت دو طرفه انجام می گیرد که کلاینت با استفاده از Cetificate سرور را تایید هویت می کند. در ابتدا کلاینت سرور را تایید هویت می کند.
نکته : در این روش Radius Server ما نیاز به Certificate دارد. نرم افزار ACS سیسکو قابلیت ایجاد Certificate به صورت Self-sign را دارد.
در تصویر زیر نمونه آن نمایش داده می شود :

Image

 

Cisco Lightweight EAP :


(Cisco Lightweight EAP (LEAP توسط سیسکو ارائه شده است و مکانیزم آن شبیه EAP-MD5 است با این تفاوت که کلاینت و سرور هر دو یکدیگر را تایید هویت می کند. کلاینت برای تایید هویت از shared secret استفاده می کند و سرور از پسورد کاربر برای این کار بهره می گیرد. در اینجا سرور یک رشته تولید و برای کلاینت ارسال می کند و این رشته به وسیله پسورد کاربر توسط کلاینت hash می شود و به سرور ارسال می شود سرور رشته را با پسورد مربوط به کاربر که در دیتابیس خود دارد hash می کند و این دو hash را با یکدیگر مقایسه می کند. بعد از اینکه تایید هویت کاربر توسط سرور انجام شد اینبار کلاینت هویت سرور مورد بررسی قرار می دهد به اینصورت که یک رشته تولید می کند و برای سرور ارسال می کند و سرور رشته را با shared secret خود hash می کند و برای کلاینت ارسال می کند. کلاینت نیز رشته ای که تولید کرده را به وسیله shared secret که از قبل برای آن مشخص کرده اند hash می کند و دو hash را با هم مقایسه می کند و به اینصورت سرور توسط کلاینت تایید هویت می شود.

MPLS چگونه کار می کند؟ – بخش هفتم

در ادامه مباحث MPLS در خدمت شما دوستان هستیم.

MPLS Payload :


MPLS label فیلد Network Level Protocol identifier ندارند. این فیلد در فریم های لایه دو وجود دارد و مشخص می کند پروتکل مورد استفاده در لایه سوم چیست. چگونه LSR ها متوجه می شوند که چه پروتکلی پشت label Stack قرار گرفته است یا به عبارتی چگونه LSR ها متوجه می شوند MPLS payload چیست؟ اکثرا LSR ها نیاز به دانستن MPLS Payload ندارند چون آنها یک بسته label خورده را دریافت کرده label بالایی label stack را swap کرده و بسته را روی لینک خروجی خود ارسال می کنند که اینکار مربوط به intermediate LSR یا P Router ها است.
intermediate LSR یا همان LSR های میانی نیاز به دانستن MPLS payload ندارند چون کلیه اطلاعات مورد نیاز برای سوئیچ کردن بسته ها را با نگاه کردن به label بالایی label stack بدست می آورد. اگر label stack بیشتر از یک label داشته باشد ، label های زیر label بالای label stack شاید توسط LSR اختصاص داده نشده باشند و شاید intermediate LSR هیچ شناختی از آنها نداشته باشند و علاوه بر آن LSR شاید نداند که چه MPLS payload در حال انتقال است. چون intermediate LSR تنها به label بالای label stack نگاه می کنند و برای ارسال تصمیم گیری می کنند و این عملکرد هیچ مشکلی به وجود نمی آورد. این روش درست برای ارسال ، براساس label بالایlabel stack است و روترهای میانی باید label از نوع local و remote برای label بالایی بسته دریافتی داشته باشند.
اما egress LSR که تمام label های بسته را حذف می کند باید MPLS payload را بداند. چون باید بسته را براساس MPLS payload بعد از حذف label ها ارسال کند. Egress LSR باید بداند از چه مقدار برای فیلدNetwork Level Protocol identifier برای فریم های خروجی خود استفاده کند. Egress LSR است که local binding را انجام می دهد به این معنی اختصاص local label به یک FEC توسط این LSR انجام می شود و از این label به عنوان label ورودی بسته ها استفاده می کند. بنابراین egress LSR با نگاه کردن به label متوجه می شود که MPLS payload چیست چون این egress LSR است که label برای FEC در نظر می گیرد و متوجه می شود که FEC چیست.

MPLS Label Spaces :


در شکل زیر ، LSR A می تواند label L1 را برای FEC 1 به LSR B اعلام کند و label L1 را برای FEC 2 به LSR C اعلام کند. اما در چه صورتی LSR A می تواند تشخیص دهد که بسته با label L1 را از کدام LSR دریافت کرده است. در این مثال LSR B و LSR C به صورت مستقیم به LSR A توسط یک لینک Point to Point متصل هستند که باعث می شود به سادگی توسط MPLS تشخیص داده شود. با توجه به دریافت بسته روی اینترفیس خاص ، این label توسط اینترفیس منحصر به فرد می شود که به آن per-interface label space گفته می شود. اگر per-interface label space مورد استفاده قرار گیرد بسته فقط براساس label ارسال نمی شود و در واقع براساس label و اینترفیس ورودی عمل ارسال انجام می گیرد.

Image

احتمال دیگر این است که label توسط interface منحصربفرد نمی شود. این حالت per-platform label space نامیده می شود. به تصویر زیر توجه کنید در این مثال ، label L1 توسط LSR A برای FEC1 به LSR A,B اعلام می شود. LSR A برای FEC 2 باید Label غیر از label L1 در نظر بگیرد. در صورت استفاده از per-platform label space بسته ها بودن در نظر گرفتن اینترفیس وردوی تنها براساس label ارسال می شوند.

Image

در IOS سیسکو از per-interface label space برای cell mode و از per-platform label space برای farme mode استفاده می کند.

Different MPLS Modes :


عملیات مربوط به label ها در MPLS به بخش های مختلفی تقسیم می شود که عملکرد LSR ها را در این سه بخش مورد بحث قرار می دهیم :

  • Label distribution mode
  • Label retention mode
  • LSP control mode

هر روش ویژگی های خاص خودش را دارد که به آنها می پردازیم.

Label Distribution Modes :


معماری MPLS برای پخش label دو روش دارد:

  • Downstream-on-Demand (DoD) label distribution mode
  • Unsolicited Downstream (UD) label distribution mode

در روش DoD ، هر LSR در یک LSP از Next-hop LSR خود یک label برای FEC در خواست می کند. Next-hop LSR را Downstream LSR می نامند و همان Next-hop Router در جدول مسیریابی است.
در روش UD ، هر LSR به LSR های همسایه خود label ها را اعلام می کند بودن اینکه برای آنها درخواستی شده باشد. در این روش LSR از همسایه های خود remote label دریافت می کند.
در صورت استفاده از روش DoD در LIB تنها یک remote label می بینید در صورتی که در روش UD ، در LIB احتمالا بیش از یک remote label خواهید دید. روش پخش label به اینترفیس و نحوی عملکرد آن بستگی دارد.

Label Retention Modes :


این بخش به نحوی نگه داری label ها می پردازد و دو Label Retention Modes وجود دارد :

  • Liberal Label Retention (LLR) mode
  • Conservative Label Retention (CLR) mode

در روش LLR ، یک LSR همه remote label دریافتی را در LIB نگه داری می کند. این remote label ها در LFIB مورد استفاده قرار می گیرند اما فقط یک remote label مورد استفاده قرار می گیرد. در نتیجه تمام این remote label ها مورد استفاده قرار نمی گیرند. پس دلیل نگه داری از remote label هایی که مورد استفاده قرار نمی گیرند چیست؟ مسیریابی در شبکه بصورت پویا است و هر زمان احتمالا تغییر در توپولوژی مسیریابی شبکه وجود دارد. به طور مثال ، قطع شدن یک لینک ارتباطی یا خراب شدن یک روتر باعث تغییر در توپولوژی مسیریابی می شود که نتیجه آن احتمال تغییر next-hop برای یک FEC می شود. در این زمان remote label برای next-hop جدید در LIB وجود دارد و LFIB به سرعت بروز می شود و label جدید برای خروجی مشخص می شود.
در روش CLR ، یک LSR همه remote label را در LIB نگه داری نمی کند و تنها remote lable که به یک FEC اختصاص داده را نگه داری می کند.
به طور خلاصه ، روش LLR امکان تطبیق سریع با جدول مسیریابی را می دهد در حالیکه روش CLR تعداد کمتری label نگه داری می کند که نتیجه آن مصرف کمتر از حافظه روتر می باشد.

LSP Control Modes :


این قسمت به نحوی ساخت local label می پردازد که از دو طریق قابل انجام است :

  • Independent LSP Control mode
  • Ordered LSP Control mode

LSR می تواند local label را برای FEC به صورت مستقل از سایر LSR ها ایجاد کنند. که به آن Independent LSP Control mode گفته می شود. در این روش به محض اینکه هر LSR یک FEC را تشخیص دهد برای آن remote label ایجاد می کند. معمولا زمان اضافه شدن یک شبکه به جدول مسیریابی اینکار انجام می شود.
در Ordered LSP Control mode یک LSR فقط زمانی local label برای یک FEC درست می کند که تشخیص دهد برای آن FEC به عنوان egress LSR است یا LSR از next-hop این FEC یک remote label برای آن دریافت کند.
اشکال روش Independent LSP Control این است که LSR ها قبل از اینکه تنظیمات LSP کامل شده باشد شروع به label زدن و ارسال بسته ها می کنند در نتیجه بسته ها به طریقی که باید ارسال شوند ارسال نمی شوند. اگر تنظیمات LSP کامل نشده باشد امکان دارد بسته ها به روشی که ما مد نظرمان است ارسال نشوند و یا حتی اصلا به مقصد نرسیده و drop شوند.
یک مثال برای این دو روش ، به LDP به عنوان روش پخش label ها برای یک شبکه IGP توجه کنید. اگر LSR از روش Independent LSP Control mode استفاده کند باید به هر شبکه موجود در جدول مسیریابی خود یک local label اختصاص دهد. اگر LSR از روش Ordered LSP Control mode استفاده کند. LSR در صورتی به شبکه های IGP جدول مسیریابی خود local label اختصاص می دهد که آن شبکه به عنوان Connected خود در جدول مسیریابی مشخص شده باشد یا برای آن شبکه ، از روتر next-hop آن ، remote lablel دریافت کند. IOS سیسکو از Independent LSP Control mode استفاده می کند.