الخلاصة

  • ينشئ تجميع المسارات إعلاناً أقل تحديداً من عدة مسارات أكثر تحديداً. في نموذج RFC 9774 الحديث، لا يعود AS_SET هو الناتج العادي؛ تعلن ATOMIC_AGGREGATE فقدان معلومات من AS_PATH، بينما تسمي AGGREGATOR آخر speaker أنشأ الملخص.
  • لا يثبت وجود التجميع، ولا ROA صالح، ولا جلسة Established أن كل وجهة مغطاة قابلة للوصول. قد يكون الإسقاط المحلي هو النتيجة الصحيحة لمسار مساهم غائب بينما لا يتغير الإعلان العام.
  • ينبغي ألا تأذن القيادة بهذا الفقد إلا مع origin AS مختار، ومرشحات خاصة بكل مساهم، وسجل سابق للضغط، واختبارات RIB وFIB وحزم، وخطة rollback تعيد العقد كله.

عند 02:13 أنشأ AS 64505 المسار 203.0.112.0/22 من أربعة مسارات عملاء /24. كان الهدف تقليل UPDATE وتقديم إعلان مستقر إلى مزودي المنبع. سمح ROA للرقم 64505 بإصدار /22، وحمل الإعلان ATOMIC_AGGREGATE وAGGREGATOR.

عند 03:07 اختفى 203.0.114.0/24 خلال صيانة لدى العميل. بقيت ثلاثة مسارات مساهمة، فأبقت المنصة /22. لم يشاهد public collector سحباً، وظل RPKI-ROV في حالة Valid، والجلسة Established، والمسار موجوداً في FIB.

لكن probe إلى عنوان داخل /24 الغائب وصل إلى AS 64505، ولم يجد تطابقاً أطول، وانتهى عند discard route الخاصة بالتجميع. هذا الإسقاط يمنع الحزمة من الخروج عبر مسار أقل تحديداً ثم العودة في حلقة. إنه احتواء صحيح، لكنه ليس تقديم خدمة ناجحاً. لوحة تقيس «التجميع موجود» فقط لا تفرق بين الحالتين.

الحادثة افتراضية، أما الآليات فحقيقية. لا تمنح ATOMIC_AGGREGATE ضمان وصول. إنها تقول إن AS_PATH المنشور لا يستطيع سرد كل المسارات التي ساهمت في تكوين الإعلان.

التجميع ادعاء توجيه جديد

لا يختصر BGP سطراً في واجهة فحسب. فهو يجمع وجهات أكثر تحديداً في NLRI أقل تحديداً لها سماتها وشروط تنشيطها وسياسة تصديرها ونتيجتها في forwarding. وقد تبقى بعد زوال أحد مكوناتها.

كان إجراء RFC 4271 الأصلي يحتفظ بأطول تسلسل أولي مشترك بين AS_PATH للمساهمين، ثم يستطيع وضع أرقام AS الباقية في AS_SET غير مرتب. احتفظت المجموعة ببعض المشاركة، لكنها فقدت ترتيب العبور وجعلت origin AS ملتبساً، وهو أمر سيئ لتقنيات الأمن التي تحتاج منشأ واحداً أو مساراً مرتباً.

أوصت RFC 6472 في 2011 بعدم استخدام AS_SET وAS_CONFED_SET. وفي مايو 2025 نقلت RFC 9774 هذه التوصية إلى متطلب معياري وأبطلت الوثيقة السابقة. ما لم يضبط المشغل استثناءً صريحاً، مثل مرحلة انتقالية، يجب ألا يعلن speaker مقاطع set، وأن يعامل المسارات المستلمة المحتوية عليها كمسحوبة.

لم يختف التجميع. انتقلت المسؤولية إلى منشأ محدد عن قصد، ونسبة واضحة لفعل التجميع، وتحذير صريح بأن معلومات حُذفت.

سمة بطول صفر تحدد ما لا نعرفه

تحمل ATOMIC_AGGREGATE الرمز 6، وهي well-known discretionary وطول قيمتها صفر. لا توجد داخلها قائمة AS محذوفة، ولا hash للمساهمين، ولا توقيت، ولا توقيع.

حين يُحذف AS_SET فتغيب أرقام كانت موجودة في المسارات الأصلية، ينبغي أن يحمل التجميع السمة. على المستلم ألا يزيلها عند التمرير، وألا يصنع من NLRI إعلاناً أكثر تحديداً. وعليه أن يدرك أن الطريق الفعلي قد يمر عبر ASes لا تظهر في AS_PATH.

إنها حدود للمعرفة، لا شهادة جودة. تؤكد وجود حذف من دون كشف المحذوف؛ لا توثق هوية المجمع، ولا تمنح إذناً للبادئة، ولا تثبت التسليم. وإذا حمل أحد المسارات المساهمة السمة مسبقاً وجب أن يرثها التجميع الجديد. لا تمحو طبقة ضغط جديدة فقداً أقدم.

البيان العام الرقيق مفيد للتنسيق، لكنه لا يكتسب سلطة على الحقائق التي استبعدها. المسار الأقصر أقل احتواءً للدليل، لا أكثر قوة فيه.

AGGREGATOR تنسب الفعل الأخير ولا تسجل سلسلة حيازة

AGGREGATOR، ذات الرمز 7، optional transitive. يستطيع speaker المنشئ للتجميع إضافة رقم AS الخاص به وعنوان IP، ويكون عادة BGP Identifier. وفي consistent brief aggregation وفق RFC 9774 تظهر مع ATOMIC_AGGREGATE.

تعلن الأولى الفقد، وتسمي الثانية منفذ آخر فعل تجميع ممثل في المسار. لا تسجل أي منهما قائمة المساهمين أو نسخة policy أو كل عمليات التجميع السابقة. كما لا تُنسخ قيم AGGREGATOR الموجودة في المسارات المساهمة ببساطة إلى المسار الجديد.

وهي ليست مصادقة تشفيرية. ظهور AS وعنوان في collector لا يثبت السيطرة على فضاء العناوين أو صحة السياسة. أما دعم ASN بأربعة octets فيحفظ التمثيل: يستخدم speakers الحديثون AGGREGATOR بطول ثمانية octets، وقد يستخدم المسار عبر speaker قديم AS_TRANS وAS4_AGGREGATOR. البتات تحفظ الرقم ولا تمنحه شرعية.

تطلب RFC 7606 التخلص من ATOMIC_AGGREGATE أو AGGREGATOR المشوهة بدلاً من reset للجلسة كلها. يحد ذلك من أثر العطل، لكنه قد يترك المسار حياً من دون التحذير أو النسبة. لذلك يجب حفظ حدث الخطأ خارج مؤشر الجلسة الأخضر.

ينبغي أن يكون المنشأ قراراً لا نتيجة مصادفة

تحفظ brief aggregation أطول تسلسل أولي مشترك وتحذف الباقي. إذا تغيرت مجموعة المساهمين تغير التسلسل. قد ينتج مساران منفصلان AS_PATH فارغاً؛ وعندما يختفي أحدهما قد يصبح AS للمسار الباقي هو المنشأ الظاهر.

بهذا تتحول حالة جلسة إلى قرار غير مقصود عن المسؤولية العامة. كما يحتاج مالك المورد إلى ROA لكل منشأ محتمل كي يتجنب تقلبات RPKI-ROV.

تعالج consistent brief aggregation ذلك بقص AS_PATH بعد أبعد ظهور إلى اليمين لـ origin AS مختار. وقد يكون هو AS المجمع نفسه. ويجب أن يسمح ROA الخاص بالبادئة المجمعة بهذا المنشأ. يصبح الرقم 64505 مسؤولاً لأن المشغل اختاره، لا لأنه بقي أخيراً في عملية الحساب.

ويجب الفصل بين origin AS وسمة BGP المسماة ORIGIN. الأول يُستنتج من الطرف الأيمن لـAS_PATH؛ والثانية تصف IGP أو EGP أو INCOMPLETE وتأخذ القيمة الأقل تفضيلاً عند التجميع. كذلك لا تعني Valid تسليم الحزم. تعرف RFC 9582 الـROA كإذن من حامل العنوان لـAS بإصدار بادئات محددة، لا إثباتاً للمسار المحذوف أو AGGREGATOR أو NEXT_HOP أو FIB.

إزالة AS_SET تنقل منع الحلقة إلى السياسة

كان AS_SET يستطيع حمل رقم AS المساهم. فإذا عاد إليه التجميع رفضه كشف الحلقة المعتاد. بعد إزالة المجموعة تختفي هذه الذاكرة من المسار.

لذلك تقول RFC 9774 إنه لا ينبغي إعلان التجميع إلى ASes المساهمة. يتلقى كل مساهم المسارات الأكثر تحديداً الأخرى المناسبة، مع استثناء ما تعلمه النظام منه. هذه policy خاصة بالجار والاتجاه. إذا تقادم سجل المساهمين فلن يملك AS_PATH المضغوط سياقاً يكفي لإصلاح الخطأ.

هناك حاجز ثان في data plane. تلزم RFC 4632 المولد بإسقاط الحزم التي تطابق التجميع ولا تطابق أي مسار أكثر تحديداً قابل للوصول. تنفذ ذلك عادة null route. من دونها قد تخرج الحزمة عبر default أو peer ثم تعود تحت الإعلان المجمع لتنشئ حلقة.

يثبت discard الاحتواء، لا التوافر. الحزمة التي تنتهي هناك تقول إن مانع الحلقة نجح وإن الوجهة بلا مساهم نشط. لا يجوز دمج هاتين الحقيقتين في مقياس واحد اسمه «aggregate healthy».

يجب إنشاء الدليل قبل ضغطه

يرى public collector النتيجة النهائية فقط. لا يستطيع رؤية مسار رُفض قبل policy أو peer صامت أو أرقام AS المحذوفة. لذلك يحتاج المشغل إلى ledger سابق للتجميع.

لكل ملخص، يسجل البادئة، والمساهمين الإلزاميين والاختياريين، والـpeer، ومسارات pre-policy وaccepted، والتسلسل المشترك المحسوب، والمنشأ المختار، وحالة ROA، ونسخة policy، والـspeaker المنفذ. ثم يحفظ Loc-RIB وAdj-RIB-Out قبل policy وبعدها، والسمات، وNEXT_HOP وORIGIN وحالة suppression للمسارات الأكثر تحديداً.

تكتمل السلسلة في RIB وhardware FIB واختبار الحزم. يُختبر عنوان من كل مساهم نشط وعنوان في جزء غائب عمداً. يجب أن يصل الأول وأن يُسقط الثاني محلياً. ويجب فصل أربع حالات: مساهم حاضر؛ مساهم غائب مع تجميع مشروع؛ تجميع غائب؛ تجميع حاضر من دون discard. الأخيرة تبدو سليمة للعالم وقد فقدت مانع الحلقة.

الـcanary والـrollback للعقد كله

يغير قرار التجميع NLRI وشروط المساهمة والمنشأ وROA والتحذير والنسبة والتصدير وsuppression وdiscard معاً. لذلك لا يكفي فحص الأمر أو المسار العام.

يختبر canary حالة إيجابية وسلبية. يصل عنوان في /24 نشط. وبعد سحب مساهم تجريبي بصورة محكومة، ينتهي عنوان من نطاقه داخل AS المجمع ولا يخرج إلى جار. في الوقت نفسه تُلتقط AS_PATH وATOMIC_AGGREGATE وAGGREGATOR وحالة ROV وإعلانات more-specific.

يعيد rollback الاستيراد وsuppression وتوليد التجميع والمنشأ وROA والمرشحات وnull route كوحدة واحدة. إعادة سطر إعداد من دون إعادة المسارات التي تحمل الوصول ليست عودة إلى الحالة السابقة.