نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

کلاین راک در مصاحبه ای گفت: "ما یک ارتباط تلفنی بین خود و بچه های SRI برقرار کردیم..."
ما L را تایپ کردیم و در تلفن پرسیدیم: "L را می بینی؟"
پاسخ آمد: "بله، ما L را می بینیم."
«O» را تایپ کردیم و پرسیدیم «آیا O را می‌بینی؟»
"بله، ما O را می بینیم."
"سپس ما G را تایپ کردیم و سیستم از کار افتاد"...

با این حال انقلابی شروع شده بود…

آغاز اینترنت.


خوش آمدید!

نام من الکساندر است، من یک مهندس شبکه در Linxdatacenter هستم. در مقاله امروز ما در مورد نقاط تبادل ترافیک (نقاط تبادل اینترنت، IXP) صحبت خواهیم کرد: چه چیزی قبل از ظاهر آنها، چه کارهایی را حل می کنند و چگونه ساخته می شوند. همچنین در این مقاله من اصل عملکرد IXP را با استفاده از پلت فرم EVE-NG و روتر نرم افزار BIRD نشان خواهم داد تا درک درستی از نحوه عملکرد آن در "زیر هود" داشته باشید.

کمی از تاریخ

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

این وضعیت نه تنها بر هزینه تحویل ترافیک ترانزیت، بلکه بر کیفیت کانال ها و تأخیر تأثیر گذاشت. تعداد کاربران اینترنت افزایش یافت، اپراتورهای جدید ظاهر شدند، حجم ترافیک افزایش یافت و اینترنت به بلوغ رسید. اپراتورها در سراسر جهان متوجه شدند که یک رویکرد منطقی تر برای سازماندهی تعامل بین اپراتورها مورد نیاز است. چرا من، اپراتور A، باید هزینه ترانزیت از طریق کشور دیگری را بپردازم تا ترافیک را به اپراتور B، که در خیابان بعدی قرار دارد، تحویل دهم؟ این تقریباً سؤالی است که اپراتورهای مخابراتی در آن زمان از خود پرسیدند. بنابراین، نقاط تبادل ترافیک در نقاط مختلف جهان در نقاط تمرکز اپراتور ظاهر شد:

  • 1994 - LINX در لندن،
  • 1995 - DE-CIX در فرانکفورت،
  • 1995 - MSK-IX، در مسکو و غیره.

اینترنت و روزهای ما

از نظر مفهومی، معماری اینترنت مدرن شامل بسیاری از سیستم‌های مستقل (AS) و ارتباطات بسیار فیزیکی و منطقی بین آنها است که مسیر ترافیک از یک AS به دیگری را تعیین می‌کند.

AS ها معمولا اپراتورهای مخابراتی، ارائه دهندگان اینترنت، CDN ها، مراکز داده و شرکت های بخش سازمانی هستند. AS ها اتصالات منطقی (پیرینگ) را بین خود سازماندهی می کنند، معمولاً از پروتکل BGP استفاده می کنند.

نحوه سازماندهی سیستم های خودمختار این اتصالات توسط تعدادی از عوامل تعیین می شود:

  • جغرافیایی،
  • اقتصادی،
  • سیاسی،
  • توافقات و منافع مشترک بین مالکان AS،
  • غیره

البته این طرح ساختار و سلسله مراتب خاصی دارد. بنابراین، اپراتورها به ردیف 1، ردیف 2 و ردیف 3 تقسیم می شوند و اگر مشتریان یک ارائه دهنده اینترنت محلی (سطح 3) معمولاً کاربران عادی باشند، برای مثال، برای ردیف 1 اپراتورهای سطح مشتریان اپراتورهای دیگر هستند. اپراتورهای ردیف 3 ترافیک مشترکین خود را جمع می کنند، اپراتورهای مخابراتی ردیف 2 به نوبه خود ترافیک اپراتورهای ردیف 3 و سطح 1 - تمام ترافیک اینترنت را جمع می کنند.

به صورت شماتیک می توان آن را به صورت زیر نشان داد:

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود
این تصویر نشان می دهد که ترافیک از پایین به بالا جمع شده است، یعنی. از کاربران نهایی تا اپراتورهای ردیف 1. همچنین یک تبادل افقی از ترافیک بین AS وجود دارد که تقریباً معادل یکدیگر هستند.

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

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

بیایید فرض کنیم که در یک شهر بزرگ 5 اپراتور مخابراتی وجود دارد که همتاسازی بین آنها، به هر دلیلی، مطابق شکل بالا سازماندهی شده است.

اگر کاربر Petya که به Go ISP متصل است بخواهد به سرور متصل به ارائه دهنده ASM دسترسی پیدا کند، ترافیک بین آنها مجبور می شود از 5 سیستم مستقل عبور کند. این تاخیر را افزایش می دهد زیرا تعداد دستگاه‌های شبکه‌ای که ترافیک از طریق آن‌ها انجام می‌شود، و همچنین حجم ترافیک ترانزیت در سیستم‌های مستقل بین Go و ASM افزایش می‌یابد.

چگونه می توان تعداد AS های ترانزیت را که ترافیک مجبور به عبور از آنها می شود کاهش داد؟ درست است - نقطه تبادل ترافیک.

امروزه، ظهور IXP های جدید با همان نیازهایی که در اوایل دهه 90 تا 2000 وجود داشت، تنها در مقیاس کوچکتر، در پاسخ به افزایش تعداد اپراتورهای مخابراتی، کاربران و ترافیک، حجم فزاینده محتوای تولید شده توسط شبکه های CDN هدایت می شود. و مراکز داده

نقطه مبادله چیست؟

نقطه تبادل ترافیک مکانی با زیرساخت شبکه ویژه است که در آن شرکت کنندگان علاقه مند به تبادل ترافیک متقابل، همتای متقابل را سازماندهی می کنند. شرکت کنندگان اصلی نقاط تبادل ترافیک: اپراتورهای مخابراتی، ارائه دهندگان اینترنت، ارائه دهندگان محتوا و مراکز داده. در نقاط تبادل ترافیک، شرکت کنندگان مستقیماً با یکدیگر ارتباط برقرار می کنند. این به شما امکان می دهد مشکلات زیر را حل کنید:

  • کاهش تأخیر،
  • کاهش حجم ترافیک حمل و نقل،
  • بهینه سازی مسیریابی بین AS

با توجه به اینکه IXP ها در بسیاری از شهرهای بزرگ در سراسر جهان وجود دارند، همه اینها تأثیر مفیدی بر روی اینترنت به طور کلی دارد.

اگر وضعیت فوق با Petya با استفاده از IXP حل شود، چیزی شبیه به این خواهد شد:

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

یک نقطه تبادل ترافیک چگونه کار می کند؟

به عنوان یک قاعده، یک IXP یک AS جداگانه با بلوک آدرس های عمومی IPv4/IPv6 خود است.

شبکه IXP اغلب از یک دامنه L2 پیوسته تشکیل شده است. گاهی اوقات این به سادگی یک VLAN است که میزبان همه مشتریان IXP است. وقتی صحبت از IXPهای بزرگتر و با توزیع جغرافیایی می شود، فناوری هایی مانند MPLS، VXLAN و غیره می توانند برای سازماندهی دامنه L2 استفاده شوند.

عناصر IXP

  • SKS. هیچ چیز غیرعادی در اینجا وجود ندارد: قفسه ها، اتصالات متقابل نوری، پچ پنل ها.
  • سوئیچ ها - اساس IXP. پورت سوئیچ نقطه ورود به شبکه IXP است. سوئیچ ها همچنین بخشی از عملکردهای امنیتی را انجام می دهند - آنها ترافیک ناخواسته ای را که نباید در شبکه IXP وجود داشته باشد فیلتر می کنند. به عنوان یک قاعده، سوئیچ ها بر اساس الزامات عملکردی - قابلیت اطمینان، سرعت پورت پشتیبانی شده، ویژگی های امنیتی، پشتیبانی sFlow و غیره انتخاب می شوند.
  • سرور مسیر (RS) - بخشی جدایی ناپذیر و ضروری از هر نقطه تبادل ترافیک مدرن. اصل کار بسیار شبیه به بازتاب دهنده مسیر در iBGP یا روتر تعیین شده در OSPF است و همان مشکلات را حل می کند. با افزایش تعداد شرکت کنندگان در یک نقطه تبادل ترافیک، تعداد جلسات BGP که هر شرکت کننده باید از آن پشتیبانی کند، افزایش می یابد، به عنوان مثال. این یادآور توپولوژی کلاسیک تمام مش در iBGP است. RS مشکل را به روش زیر حل می کند: یک جلسه BGP با هر شرکت کننده IXP علاقه مند برقرار می کند و آن شرکت کننده به مشتری RS تبدیل می شود. RS با دریافت آپدیت BGP از یکی از کلاینت های خود، این به روز رسانی را برای تمامی کلاینت های دیگر خود ارسال می کند، البته به استثنای موردی که این به روز رسانی از آن دریافت شده است. بنابراین، RS نیاز به ایجاد یک شبکه کامل بین تمام اعضای IXP را حذف می کند و مشکل مقیاس پذیری را به زیبایی حل می کند. شایان ذکر است که سرور مسیر به طور شفاف مسیرها را از یک AS به دیگری بدون ایجاد تغییراتی در ویژگی های ارسال شده توسط BGP منتقل می کند، به عنوان مثال، شماره موجود در AS خود را به مسیر AS اضافه نمی کند. همچنین در RS فیلتر اساسی مسیرها وجود دارد: به عنوان مثال، RS شبکه های مریخی و پیشوندهای خود IXP را نمی پذیرد.

    یک روتر نرم افزار منبع باز، BIRD (شیب مسیریابی اینترنت پرنده)، اغلب به عنوان راه حل سرور مسیر استفاده می شود. خوبی آن این است که رایگان است، به سرعت در اکثر توزیع‌های لینوکس مستقر می‌شود، مکانیزم انعطاف‌پذیری برای تنظیم خط‌مشی‌های مسیریابی/فیلتر دارد، و برای منابع محاسباتی نیازی ندارد. همچنین یک روتر سخت افزاری/مجازی از سیسکو، جونیپر و غیره را می توان به عنوان RS انتخاب کرد.

  • امنیت از آنجایی که یک شبکه IXP تمرکزی از تعداد زیادی AS است، سیاست امنیتی که همه شرکت کنندگان باید از آن پیروی کنند باید به خوبی نوشته شود. به طور کلی، همه مکانیسم‌های مشابهی که هنگام ایجاد مجاورت BGP بین دو همتای BGP مجزا در خارج از یک IXP اعمال می‌شوند، در اینجا به‌علاوه برخی ویژگی‌های امنیتی اضافی اعمال می‌شوند.

    به عنوان مثال، تمرین خوبی است که اجازه دهید ترافیک فقط از یک آدرس مک خاص شرکت کننده IXP، که از قبل با آن مذاکره شده است، مجاز باشد. رد کردن ترافیک با فیلدهای اترتایپ غیر از 0x0800 (IPv4)، 0x08dd (IPv6)، 0x0806 (ARP). این کار به منظور فیلتر کردن ترافیکی انجام می شود که به همتاسازی BGP تعلق ندارد. از مکانیسم هایی مانند GTSM، RPKI و ... نیز می توان استفاده کرد.

شاید موارد فوق بدون توجه به مقیاس، اجزای اصلی هر IXP باشند. البته، IXP های بزرگتر ممکن است فناوری ها و راه حل های بیشتری را در اختیار داشته باشند.
اتفاق می افتد که IXP همچنین خدمات اضافی را به شرکت کنندگان خود ارائه می دهد:

  • روی سرور IXP TLD DNS قرار داده شده است،
  • نصب سرورهای سخت افزاری NTP، به شرکت کنندگان اجازه می دهد زمان را به طور دقیق همگام کنند،
  • محافظت در برابر حملات DDoS و غیره

اصل عمل

بیایید به اصل عملکرد یک نقطه تبادل ترافیک با استفاده از مثال یک IXP ساده که با استفاده از EVE-NG مدل شده است نگاه کنیم و سپس تنظیمات اولیه یک روتر نرم افزار BIRD را در نظر بگیریم. برای ساده کردن نمودار، موارد مهمی مانند افزونگی و تحمل خطا را حذف می کنیم.

توپولوژی شبکه در شکل زیر نشان داده شده است.

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

بیایید فرض کنیم که ما یک نقطه تبادل کوچک را مدیریت می کنیم و گزینه های مشابه زیر را ارائه می کنیم:

  • همتای عمومی،
  • همتای خصوصی،
  • همتاسازی از طریق سرور مسیر

شماره AS ما 555 است، ما دارای بلوکی از آدرس های IPv4 هستیم - 50.50.50.0/24، که از آن آدرس های IP را برای کسانی که می خواهند به شبکه ما متصل شوند صادر می کنیم.

50.50.50.254 - آدرس IP که در رابط سرور مسیر پیکربندی شده است، با این سرویس گیرندگان IP یک جلسه BGP را در صورت همتاسازی از طریق RS ایجاد می کند.

همچنین، برای همتاسازی از طریق RS، ما یک خط مشی مسیریابی ساده بر اساس جامعه BGP ایجاد کرده‌ایم که به شرکت‌کنندگان IXP اجازه می‌دهد تنظیم کنند به چه کسی و چه مسیرهایی ارسال کنند:

جامعه BGP
شرح

LOCAL_AS:PEER_AS
پیشوندها را فقط به PEER_AS ارسال کنید

LOCAL_AS:IXP_AS
پیشوندها را به همه شرکت کنندگان IXP منتقل کنید

3 مشتری می خواهند به IXP ما متصل شوند و ترافیک را مبادله کنند. فرض کنید اینها ارائه دهندگان اینترنت هستند. همه آنها می خواهند همتاسازی را از طریق یک سرور مسیر سازماندهی کنند. در زیر یک نمودار با پارامترهای اتصال مشتری وجود دارد:

مشتری
شماره AS مشتری
پیشوندهای تبلیغ شده توسط مشتری
آدرس IP صادر شده برای مشتری برای اتصال به IXP

ISP شماره 1
AS 100
1.1.0.0/16
50.50.50.10/24

ISP شماره 2
AS 200
2.2.0.0/16
50.50.50.20/24

ISP شماره 3
AS 300
3.3.0.0/16
50.50.50.30/24

راه اندازی اولیه BGP در روتر مشتری:

router bgp 100
 no bgp enforce-first-as
 bgp log-neighbor-changes
 neighbor 50.50.50.254 remote-as 555
address-family ipv4
  network 1.1.0.0 mask 255.255.0.0
  neighbor 50.50.50.254 activate
  neighbor 50.50.50.254 send-community both
  neighbor 50.50.50.254 soft-reconfiguration inbound
  neighbor 50.50.50.254 route-map ixp-out out
 exit-address-family

ip prefix-list as100-prefixes seq 5 permit 1.1.0.0/16
route-map bgp-out permit 10
 match ip address prefix-list as100-prefixes
 set community 555:555

شایان ذکر است که تنظیم no bgp enforce-first-as در اینجا. به طور پیش‌فرض، BGP مستلزم آن است که مسیر as-path یک به‌روزرسانی BGP دریافتی، شامل شماره bgp همتا باشد که به‌روزرسانی از آن دریافت شده است. اما از آنجایی که سرور مسیر تغییراتی در مسیر as-path ایجاد نمی کند، شماره آن در مسیر as-path قرار نمی گیرد و به روز رسانی حذف می شود. این تنظیم برای نادیده گرفتن این قانون توسط روتر استفاده می شود.

همچنین می بینیم که مشتری جامعه bgp 555:555 را روی این پیشوند تنظیم کرده است، که طبق خط مشی ما به این معنی است که مشتری می خواهد این پیشوند را برای همه شرکت کنندگان دیگر تبلیغ کند.

برای روترهای دیگر کلاینت ها، تنظیمات مشابه هستند، به استثنای پارامترهای منحصر به فرد آنها.

نمونه پیکربندی BIRD:

define ixp_as = 555;
define ixp_prefixes = [ 50.50.50.0/24+ ];

template bgp RS_CLIENT {
  local as ixp_as;
  rs client;
}

در زیر فیلتری را توضیح می دهیم که پیشوندهای مریخی ها و همچنین پیشوندهای خود IXP را نمی پذیرد:

function catch_martians_and_ixp()
prefix set martians;
prefix set ixp_prefixes;
{
  martians = [ 
  0.0.0.0/8+,
  10.0.0.0/8+,
  100.64.0.0/10+,
  127.0.0.0/8+,
  169.254.0.0/16+,
  172.16.0.0/12+,
  192.0.0.0/24+,
  192.0.2.0/24+,
  192.168.0.0/16+,
  198.18.0.0/15+,
  198.51.100.0/24+,
  203.0.113.0/24+,
  224.0.0.0/4+,
  240.0.0.0/4+ ];

  if net ~ martians || net ~ ixp_prefixes then return false;

  return true;
}

این تابع خط مشی مسیریابی را که قبلا توضیح دادیم پیاده سازی می کند.

function bgp_ixp_policy(int peer_as)
{
  if (ixp_as, ixp_as) ~ bgp_community then return true;
  if (ixp_as, peer_as) ~ bgp_community then return true;

  return false;
}

filter reject_martians_and_ixp
{
  if catch_martians_and_ixp() then reject;
  if ( net ~ [0.0.0.0/0{25,32} ] ) then {
    reject;
  }
  accept;


}

همتاسازی را پیکربندی می‌کنیم، فیلترها و خط‌مشی‌های مناسب را اعمال می‌کنیم.

protocol as_100 from RS_CLIENT {
  neighbor 50.50.50.10 as 100;
  ipv4 {
    export where bgp_ixp_policy(100);
    import filter reject_martians_and_ixp;
  }
}

protocol as_200 from RS_CLIENT {
  neighbor 50.50.50.20 as 200;
  ipv4 {
    export where bgp_ixp_policy(200);
    import filter reject_martians_and_ixp;
  }
}

protocol as_300 from RS_CLIENT {
  neighbor 50.50.50.30 as 300;
  ipv4 {
    export where bgp_ixp_policy(300);
    import filter reject_martians_and_ixp;
  }
}

شایان ذکر است که در سرور مسیر، قرار دادن مسیرها از همتایان مختلف در RIB های مختلف، تمرین خوبی است. BIRD این امکان را به شما می دهد. در مثال ما، برای سادگی، تمام به روز رسانی های دریافت شده از همه کلاینت ها به یک RIB مشترک اضافه می شوند.

بنابراین، بیایید بررسی کنیم که چه چیزی به دست آورده ایم.

در سرور مسیر می بینیم که یک جلسه BGP با هر سه مشتری برقرار شده است:

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

می بینیم که از همه مشتریان پیشوند دریافت می کنیم:

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

در روتر as 100، می بینیم که اگر تنها یک جلسه BGP با سرور مسیر وجود داشته باشد، پیشوندهایی را از 200 و 300 دریافت می کنیم، در حالی که ویژگی های BGP تغییر نکرده اند، گویی که همتاسازی بین کلاینت ها مستقیماً انجام شده است:

نقطه تبادل ترافیک: از مبدا تا ایجاد IX خود

بنابراین، می بینیم که وجود یک سرور مسیر سازماندهی همتا بر روی IXP را بسیار ساده می کند.

امیدوارم این نمایش به شما کمک کرده باشد که درک بهتری از نحوه عملکرد IXP و نحوه عملکرد سرور مسیر در یک IXP داشته باشید.

Linxdatacenter IX

در Linxdatacenter، ما IXP خود را بر اساس یک زیرساخت مقاوم در برابر خطا از 2 سوئیچ و 2 سرور مسیر ساخته ایم. IXP ما اکنون در حالت تست در حال اجرا است و از همه دعوت می‌کنیم به Linxdatacenter IX متصل شده و در آزمایش شرکت کنند. در صورت اتصال، یک پورت با پهنای باند 1 گیگابیت بر ثانیه، امکان همتا کردن از طریق سرورهای مسیر ما و همچنین دسترسی به حساب شخصی خود در پورتال IX در اختیار شما قرار می گیرد که در آدرس ix.linxdatacenter.com.

برای دسترسی به تست در نظرات یا پیام های خصوصی بنویسید.

نتیجه

نقاط تبادل ترافیک در طلوع اینترنت به عنوان ابزاری برای حل مسئله جریان ترافیک غیربهینه بین اپراتورهای مخابراتی به وجود آمد. در حال حاضر، با ظهور خدمات جدید جهانی و افزایش میزان ترافیک CDN، نقاط مبادله به بهینه سازی عملکرد شبکه جهانی ادامه می دهند. افزایش تعداد IXP در جهان هم به نفع کاربر نهایی سرویس و هم اپراتورهای مخابراتی، اپراتورهای محتوا و غیره است. برای شرکت‌کنندگان IXP، این مزیت در کاهش هزینه‌های سازمان‌دهی همتای خارجی، کاهش میزان ترافیکی که اپراتورهای سطح بالاتر باید برای آن پرداخت کنند، بهینه‌سازی مسیریابی، و توانایی داشتن رابط مستقیم با اپراتورهای محتوا بیان می‌شود.

لینک های مفید

منبع: www.habr.com

اضافه کردن نظر