نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

"لقد أنشأنا اتصالاً هاتفيًا بيننا وبين الرجال في SRI..."، قال كلاينروك... في مقابلة:
"لقد كتبنا حرف L وسألنا على الهاتف: "هل ترى حرف L؟"
وجاء الرد: "نعم، نرى حرف L".
"لقد كتبنا حرف O، وسألنا: "هل ترى حرف O.""
"نعم، نرى O."
"ثم قمنا بكتابة حرف G، وتعطل النظام"...

ومع ذلك فقد بدأت الثورة..

بداية الإنترنت.


مرحبا بالجميع!

اسمي ألكسندر، أنا مهندس شبكات في Linxdatacenter. في مقال اليوم سنتحدث عن نقاط تبادل حركة المرور (Internet Exchange Points, IXP): ما الذي سبق ظهورها وما هي المهام التي تحلها وكيف يتم بناؤها. سأوضح أيضًا في هذه المقالة مبدأ تشغيل IXP باستخدام منصة EVE-NG وجهاز توجيه برنامج BIRD، بحيث يكون لديك فهم لكيفية عمله "تحت الغطاء".

القليل من التاريخ

إذا نظرتم هناإذن يمكنك أن ترى أن النمو السريع في عدد نقاط تبادل الحركة بدأ في عام 1993. ويرجع ذلك إلى حقيقة أن معظم حركة مرور مشغلي الاتصالات الموجودة في ذلك الوقت كانت تمر عبر الشبكة الأساسية للولايات المتحدة. لذا، على سبيل المثال، عندما انتقلت حركة المرور من مشغل في فرنسا إلى مشغل في ألمانيا، فقد انتقلت أولاً من فرنسا إلى الولايات المتحدة الأمريكية، وبعد ذلك فقط من الولايات المتحدة الأمريكية إلى ألمانيا. وكانت الشبكة الأساسية في هذه الحالة بمثابة نقطة عبور بين فرنسا وألمانيا. وحتى حركة المرور داخل دولة واحدة لا تمر في كثير من الأحيان بشكل مباشر، ولكن من خلال الشبكات الأساسية للمشغلين الأمريكيين.

لم يؤثر هذا الوضع على تكلفة توصيل حركة المرور العابر فحسب، بل أثر أيضًا على جودة القنوات والتأخير. زاد عدد مستخدمي الإنترنت، وظهر مشغلون جدد، وزاد حجم حركة المرور، ونضجت الإنترنت. بدأ المشغلون في جميع أنحاء العالم يدركون أن هناك حاجة إلى نهج أكثر عقلانية لتنظيم التفاعل بين المشغلين. "لماذا يجب علي، أنا، المشغل "أ"، أن أدفع مقابل العبور عبر دولة أخرى من أجل توصيل حركة المرور إلى المشغل "ب"، الموجود في الشارع التالي؟" هذا هو السؤال الذي طرحه مشغلو الاتصالات على أنفسهم في ذلك الوقت. وهكذا بدأت تظهر نقاط تبادل الحركة في أنحاء مختلفة من العالم في نقاط تركز المشغلين:

  • 1994 – لينكس في لندن،
  • 1995 – DE-CIX في فرانكفورت،
  • 1995 – MSK-IX، في موسكو، الخ.

الإنترنت وأيامنا

من الناحية النظرية، تتكون بنية الإنترنت الحديثة من العديد من الأنظمة المستقلة (AS) والعديد من الاتصالات بينها، المادية والمنطقية، والتي تحدد مسار حركة المرور من نظام مستقل إلى آخر.

عادةً ما يكون ASs هم مشغلي الاتصالات ومقدمي خدمات الإنترنت وشبكات CDN ومراكز البيانات وشركات قطاع المؤسسات. تنظم ASes الاتصالات المنطقية (التناظر) فيما بينها، عادةً باستخدام بروتوكول BGP.

يتم تحديد كيفية تنظيم الأنظمة الذاتية لهذه الاتصالات من خلال عدد من العوامل:

  • جغرافي,
  • اقتصادي،
  • سياسي،
  • الاتفاقيات والمصالح المشتركة بين أصحاب AS،
  • إلخ

وبطبيعة الحال، هذا المخطط له هيكل معين والتسلسل الهرمي. وبالتالي، يتم تقسيم المشغلين إلى الطبقة 1 والطبقة 2 والطبقة 3، وإذا كان عملاء مزود الإنترنت المحلي (الطبقة 3) هم، كقاعدة عامة، مستخدمين عاديين، على سبيل المثال، للطبقة 1 مشغلي المستوى العملاء هم مشغلون آخرون. يقوم مشغلو المستوى 3 بتجميع حركة مرور المشتركين لديهم، ويقوم مشغلو الاتصالات من المستوى 2 بدورهم بتجميع حركة مرور مشغلي المستوى 3، والمستوى 1 - كل حركة مرور الإنترنت.

من الناحية التخطيطية يمكن تمثيلها على النحو التالي:

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك
توضح هذه الصورة أن حركة المرور مجمعة من الأسفل إلى الأعلى، أي. من المستخدمين النهائيين إلى مشغلي المستوى 1. يوجد أيضًا تبادل أفقي لحركة المرور بين ASs المتكافئة تقريبًا مع بعضها البعض.

جزء لا يتجزأ وفي الوقت نفسه عيب هذا المخطط هو وجود ارتباك معين في الاتصالات بين الأنظمة المستقلة الموجودة بالقرب من المستخدم النهائي، داخل منطقة جغرافية. تأمل الصورة أدناه:

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

لنفترض أنه يوجد في مدينة كبيرة 5 مشغلي اتصالات، ويتم تنظيم التناظر بينهم، لسبب أو لآخر، كما هو موضح أعلاه.

إذا كان المستخدم Petya، المتصل بـ Go ISP، يريد الوصول إلى خادم متصل بموفر ASM، فسيتم إجبار حركة المرور بينهما على المرور عبر 5 أنظمة مستقلة. وهذا يزيد من التأخير لأن يزداد عدد أجهزة الشبكة التي ستنتقل من خلالها حركة المرور، وكذلك حجم حركة المرور العابرة على الأنظمة المستقلة بين Go وASM.

كيف يمكن تقليل عدد أنظمة النقل التي تضطر حركة المرور إلى المرور عبرها؟ هذا صحيح - نقطة تبادل حركة المرور.

اليوم، ظهور نقاط تبادل الإنترنت الجديدة مدفوع بنفس الاحتياجات التي كانت موجودة في أوائل التسعينيات والعقد الأول من القرن الحادي والعشرين، فقط على نطاق أصغر، استجابة للعدد المتزايد من مشغلي الاتصالات والمستخدمين وحركة المرور، والكمية المتزايدة من المحتوى الناتج عن شبكات CDN ومراكز البيانات.

ما هي نقطة التبادل؟

نقطة تبادل حركة المرور هي مكان به بنية تحتية خاصة للشبكة حيث يقوم المشاركون المهتمون بتبادل حركة المرور المتبادل بتنظيم التناظر المتبادل. المشاركون الرئيسيون في نقاط تبادل حركة المرور: مشغلو الاتصالات ومزودو الإنترنت ومقدمو المحتوى ومراكز البيانات. وفي نقاط تبادل حركة المرور، يتواصل المشاركون مباشرة مع بعضهم البعض. هذا يسمح لك بحل المشاكل التالية:

  • تقليل الكمون،
  • تقليل حجم حركة المرور العابر ،
  • تحسين التوجيه بين AS.

وبالنظر إلى أن نقاط تبادل الإنترنت موجودة في العديد من المدن الكبرى حول العالم، فإن كل هذا له تأثير مفيد على الإنترنت ككل.

إذا تم حل الموقف أعلاه مع Petya باستخدام IXP، فسوف يتحول إلى شيء مثل هذا:

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

كيف تعمل نقطة تبادل حركة المرور؟

كقاعدة عامة، IXP هو AS منفصل مع كتلة خاصة به من عناوين IPv4/IPv6 العامة.

تتكون شبكة IXP غالبًا من مجال L2 مستمر. في بعض الأحيان تكون هذه مجرد شبكة محلية ظاهرية (VLAN) تستضيف جميع عملاء IXP. عندما يتعلق الأمر بنقاط تبادل الإنترنت الأكبر حجمًا والموزعة جغرافيًا، يمكن استخدام تقنيات مثل MPLS وVXLAN وما إلى ذلك لتنظيم مجال L2.

عناصر اكس بي

  • إس كي إس. لا يوجد شيء غير عادي هنا: الرفوف، والوصلات الضوئية، ولوحات التوصيل.
  • مفاتيح - أساس IXP. يعد منفذ التبديل هو نقطة الدخول إلى شبكة IXP. تؤدي المحولات أيضًا جزءًا من وظائف الأمان - حيث تقوم بتصفية حركة المرور غير المرغوب فيها التي لا ينبغي أن تكون موجودة على شبكة IXP. كقاعدة عامة، يتم تحديد المحولات بناءً على المتطلبات الوظيفية - الموثوقية، وسرعات المنافذ المدعومة، وميزات الأمان، ودعم sFlow، وما إلى ذلك.
  • خادم الطريق (RS) - جزء لا يتجزأ وضروري من أي نقطة تبادل حركة المرور الحديثة. مبدأ التشغيل مشابه جدًا لعاكس المسار في iBGP أو جهاز التوجيه المعين في OSPF ويحل نفس المشكلات. مع تزايد عدد المشاركين في نقطة تبادل حركة المرور، يزداد عدد جلسات BGP التي يحتاج كل مشارك إلى دعمها، أي. وهذا يذكرنا بطوبولوجيا الشبكة الكاملة الكلاسيكية في iBGP. تحل RS المشكلة بالطريقة التالية: تنشئ جلسة BGP مع كل مشارك مهتم في IXP، ويصبح هذا المشارك عميلاً لـ RS. عند تلقي تحديث BGP من أحد عملائها، تقوم RS بإرسال هذا التحديث إلى جميع عملائها الآخرين، بالطبع، باستثناء العميل الذي تم تلقي هذا التحديث منه. وبالتالي، فإن RS يلغي الحاجة إلى إنشاء شبكة كاملة بين جميع أعضاء IXP ويحل مشكلة قابلية التوسع بشكل أنيق. تجدر الإشارة إلى أن خادم المسار ينقل المسارات بشفافية من AS إلى آخر دون إجراء تغييرات على السمات المرسلة بواسطة BGP، على سبيل المثال، لا يضيف الرقم الموجود في AS الخاص به إلى مسار AS. يوجد أيضًا في RS تصفية أساسية للمسارات: على سبيل المثال، لا تقبل RS شبكات المريخ وبادئات IXP نفسها.

    غالبًا ما يتم استخدام جهاز توجيه برمجي مفتوح المصدر، BIRD (البرنامج الخفي لتوجيه الإنترنت على الطيور)، كحل لخادم التوجيه. والشيء الجيد فيه هو أنه مجاني، ويتم نشره بسرعة على معظم توزيعات Linux، ولديه آلية مرنة لإعداد سياسات التوجيه/التصفية، ولا يتطلب موارد حاسوبية. كما يمكن تحديد جهاز توجيه/جهاز توجيه افتراضي من Cisco وJuniper وما إلى ذلك باعتباره RS.

  • الأمن. نظرًا لأن شبكة IXP عبارة عن تركيز لعدد كبير من الأنظمة الأساسية، فإن سياسة الأمان التي يجب على جميع المشاركين اتباعها يجب أن تكون مكتوبة بشكل جيد. بشكل عام، جميع الآليات نفسها التي يتم تطبيقها عند إنشاء تقارب BGP بين نظيرين BGP منفصلين خارج IXP تنطبق هنا، بالإضافة إلى بعض ميزات الأمان الإضافية.

    على سبيل المثال، من الممارسات الجيدة السماح بحركة المرور فقط من عنوان mac محدد لمشارك IXP، والذي يتم التفاوض عليه مسبقًا. رفض حركة المرور باستخدام حقول ethertype غير 0x0800(IPv4)، 0x08dd(IPv6)، 0x0806(ARP)؛ يتم ذلك من أجل تصفية حركة المرور التي لا تنتمي إلى نظير BGP. ويمكن أيضًا استخدام آليات مثل GTSM وRPKI وما إلى ذلك.

ولعل ما ورد أعلاه هو المكونات الرئيسية لأي 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 بتنظيم من وإلى أي طرق يتم الإرسال:

مجتمع بي جي بي
وصف

LOCAL_AS:PEER_AS
إرسال البادئات فقط إلى PEER_AS

LOCAL_AS:IXP_AS
نقل البادئات إلى جميع المشاركين في IXP

3 عملاء يريدون الاتصال بـ IXP الخاص بنا وتبادل حركة المرور؛ لنفترض أن هؤلاء هم مزودو خدمة الإنترنت. إنهم جميعًا يريدون تنظيم التناظر من خلال خادم المسار. يوجد أدناه رسم تخطيطي لمعلمات اتصال العميل:

زبون
رقم AS الخاص بالعميل
البادئات المعلن عنها من قبل العميل
عنوان IP الذي تم إصداره للعميل للاتصال بـ IXP

مزود خدمة الإنترنت رقم 1
AS 100
1.1.0.0/16
50.50.50.10/24

مزود خدمة الإنترنت رقم 2
AS 200
2.2.0.0/16
50.50.50.20/24

مزود خدمة الإنترنت رقم 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 force-first-as هنا. افتراضيًا، يتطلب BGP أن يحتوي المسار as لتحديث BGP المستلم على رقم bgp للنظير الذي تم تلقي التحديث منه. ولكن بما أن خادم المسار لا يقوم بإجراء تغييرات على المسار، فلن يكون رقمه في المسار وسيتم تجاهل التحديث. يُستخدم هذا الإعداد لجعل جهاز التوجيه يتجاهل هذه القاعدة.

نرى أيضًا أن العميل قد قام بتعيين مجتمع 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;
  }
}

تجدر الإشارة إلى أنه من الممارسات الجيدة على خادم المسار وضع المسارات من أقران مختلفين في RIBs مختلفة. BIRD يسمح لك بالقيام بذلك. في مثالنا، من أجل البساطة، تتم إضافة كافة التحديثات المستلمة من جميع العملاء إلى RIB واحد مشترك.

لذا، دعونا نتحقق مما حصلنا عليه.

على خادم المسار، نرى أنه قد تم إنشاء جلسة BGP مع جميع العملاء الثلاثة:

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

نرى أننا نتلقى البادئات من جميع العملاء:

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

على جهاز التوجيه كـ 100، نرى أنه إذا كانت هناك جلسة BGP واحدة فقط مع خادم المسار، فإننا نتلقى بادئات من كل من 200 و300، بينما لم تتغير سمات BGP، كما لو تم تنفيذ التناظر بين العملاء مباشرة:

نقطة تبادل حركة المرور: من الأصول إلى إنشاء IX الخاص بك

وهكذا، فإننا نرى أن وجود خادم المسار يبسط إلى حد كبير تنظيم النظير على IXP.

آمل أن يساعدك هذا العرض التوضيحي على فهم أفضل لكيفية عمل IXPs وكيفية عمل خادم المسار على IXP.

مركز بيانات لينكس التاسع

في Linxdatacenter، قمنا ببناء IXP الخاص بنا استنادًا إلى بنية تحتية متسامحة مع الأخطاء مكونة من محولين وخادمين للمسار. يعمل IXP الخاص بنا الآن في وضع الاختبار، ونحن ندعو الجميع للاتصال بـ Linxdatacenter IX والمشاركة في الاختبار. عند الاتصال، سيتم تزويدك بمنفذ بعرض نطاق ترددي يبلغ 2 جيجابت/ثانية، والقدرة على النظير عبر خوادم المسار الخاصة بنا، بالإضافة إلى الوصول إلى حسابك الشخصي لبوابة IX، المتوفر على ix.linxdatacenter.com.

اكتب في التعليقات أو الرسائل الخاصة لتتمكن من الوصول إلى الاختبار.

إنتاج

نشأت نقاط تبادل حركة المرور مع فجر الإنترنت كأداة لحل مشكلة تدفق حركة المرور دون المستوى الأمثل بين مشغلي الاتصالات. الآن، مع ظهور خدمات عالمية جديدة وزيادة حجم حركة مرور CDN، تستمر نقاط التبادل في تحسين تشغيل الشبكة العالمية. إن الزيادة في عدد نقاط تبادل الإنترنت في العالم تفيد كلاً من المستخدم النهائي للخدمة ومشغلي الاتصالات ومشغلي المحتوى وما إلى ذلك. بالنسبة للمشاركين في IXP، يتم التعبير عن الفائدة في تقليل تكاليف تنظيم النظير الخارجي، وتقليل حجم حركة المرور التي يتعين على المشغلين ذوي المستوى الأعلى الدفع مقابلها، وتحسين التوجيه، والقدرة على الحصول على واجهة مباشرة مع مشغلي المحتوى.

وصلات مفيدة

المصدر: www.habr.com

إضافة تعليق