آموزش BGP و قابلیت Only-to-Customer (OTC) در RFC 9234 برای Cisco IOS XR
مقدمه
1.1 نمای کلی (Overview)
ویژگی BGP Only-to-Customer (OTC) که در RFC 9234 تعریف شده است، به پیشگیری و شناسایی نشت مسیر (Route Leak) بین سیستمهای خودمختار (ASes) کمک میکند و ریسک انتقال ناخواسته ترافیک توسط یک AS بین ارائهدهندگان (Providers) یا همتایان (Peers) خود را کاهش میدهد. ویژگی OTC قوانین نشت مسیر را بر اساس نقش BGP در هر نشست eBGP اعمال میکند. اپراتور، نقش را از دیدگاه AS محلی پیکربندی میکند و همسایه نیز نقش خود را برای همان نشست تنظیم مینماید؛ برای مثال، یک سمت از نقش Provider و سمت دیگر از نقش Customer استفاده میکند.
قابلیت OTC مکمل مکانیزم Autonomous System Provider Authorization (ASPA) است که در آموزش بعدی BGP در XRdocs به آن پرداخته شده، اما جایگزین آن نمیشود. همچنین OTC جایگزین سیاستهای مسیریابی (Route Policy)، فیلترینگ پیشوند (Prefix Filtering) یا اعتبارسنجی مبدأ مسیر (Route Origin Validation) در زیرساخت کلید عمومی منابع (RPKI) نیست، زیرا این قابلیتها اهداف متفاوتی دارند. اعتبارسنجی مبدأ مسیر (Route Origin Validation) بررسی میکند که آیا یک مجوز مبدأ مسیر (ROA) به یک AS اجازه میدهد تا یک پیشوند (Prefix) را ایجاد کند یا خیر. قابلیت OTC از نقشهای پیکربندیشده BGP (BGP Roles) برای جلوگیری یا شناسایی تبلیغات (Advertisements) در جهتی که مجاز نیست، استفاده میکند.
1.2 OTC چیست؟
ویژگی Only-to-Customer (OTC) یک ویژگی مسیر (Path Attribute) اختیاری و انتقالی در BGP است که برای جلوگیری و شناسایی نشت مسیر (Route-leak) استفاده میشود. این ویژگی از کد نوع ویژگی مسیر (Path Attribute Type Code) استفاده میکند35و شامل یک شماره AS چهار اکتتی (Four-octet AS number) است.
هنگامی که یک روتر eBGP یک پیشوند (Prefix) را به یک مشتری (Customer) پاییندست تبلیغ میکند، آن پیشوند را با OTC علامتگذاری میکند. اگر یک همسایه eBGP مسیر علامتگذاری شده با OTC را از مشتری پاییندست خود دریافت کند، آن مسیر را به عنوان یک نشت مسیر (Route Leak) شناسایی میکند.

شکل 1. ویژگی OTC یک مسیر مرتبط با مشتری (Customer-facing) را علامتگذاری کرده و از تبلیغ (Advertisement) آن به یک ارائهدهنده (Provider) دیگر جلوگیری میکند.
نقشهای محلی 1.3 OTC
OTC از یک نقش محلی (Local Role) برای هر نشست eBGP استفاده میکند. این نقش، نوع رابطه AS محلی با AS راه دور را تعیین میکند.
قابلیت نقش BGP (BGP Role Capability) نقش محلی پیکربندیشده را حمل میکند. این قابلیت از کد قابلیت (Capability code) استفاده میکند.9همسایههای eBGP این قابلیت را در پیامهای BGP OPEN خود هنگام شروع نشست (Session) مبادله میکنند. هر همسایه نقش محلی خود را ارسال میکند.
جدول زیر تمامی نقشهای محلی OTC و معانی آنها را نشان میدهد:
| نقش محلی | معنا |
|---|---|
| ارائهدهنده (Provider) | سیستم خودمختار (AS) محلی، سرویس ترانزیت را برای AS راه دور فراهم میکند. |
| مشتری (Customer) | سیستم خودمختار (AS) محلی، سرویس ترانزیت را از AS راه دور دریافت میکند. |
| همتا (Peer) | دو سیستم خودمختار (AS) مسیرهای منتخب را بدون ارائه سرویس ترانزیت به یکدیگر، مبادله میکنند. |
| سرور مسیر (Route Server) | سیستم محلی یک سرور مسیر (Route Server) است. |
| کلاینت سرور مسیر (RS-Client) | سیستم خودمختار (AS) محلی، کلاینت یک سرور مسیر (Route Server) است. |
جفتنقشهای محلی و از راه دور (Remote) زیر معتبر هستند:
| نقش محلی (Local role) | نقش از راه دور (Remote role) |
|---|---|
| ارائهدهنده (Provider) | مشتری (Customer) |
| مشتری (Customer) | ارائهدهنده (Provider) |
| همتا (Peer) | همتا (Peer) |
| سرور مسیر (Route Server) | کلاینت سرور مسیر (Route Server Client) |
| کلاینت سرور مسیر (Route Server Client) | سرور مسیر (Route Server) |
ارائهدهنده (Provider) و مشتری (Customer) یک جفت معتبر هستند. برای برقراری رابطه همتا (Peer)، هر دو روتر از نقش همتا (Peer) استفاده میکنند. ارائهدهنده (Provider) و همتا (Peer) یک جفت معتبر نیستند، زیرا نقشها با یکدیگر مطابقت ندارند.
اگر هر دو همسایه این قابلیت (Capability) را ارسال کنند، دو نقش باید یک جفت معتبر تشکیل دهند. اگر تنها یکی از همسایهها آن را ارسال کند، نتیجه به استفاده از حالت آزاد (Loose mode) یا سختگیرانه (Strict mode) بستگی دارد. بخش 1.4 هر دو حالت را توضیح میدهد.
1.4 حالتهای Loose و strict
قابلیت OTC از دو حالت برای بررسی نقشهای تبادلشده بین همسایههای eBGP پشتیبانی میکند: حالت آزاد (loose mode) و حالت سختگیرانه (strict mode).
حالت Loose نیازی به ارسال BGP Role Capability توسط همسایه راه دور ندارد. اگر تنها یکی از همسایهها این قابلیت را ارسال کند، نشست (Session) eBGP همچنان میتواند برقرار شود. همسایهای که قابلیت OTC در آن فعال است، از نقش محلی پیکربندیشده خود برای پردازش OTC استفاده میکند. نقش راه دور از روی نقش محلی استنباط میشود؛ برای مثال، نقش محلی Provider به معنای نقش راه دور Customer است. نقش استنباطشده، پیکربندی موجود در همسایه راه دور را تأیید نمیکند.
حالت سختگیرانه (Strict mode) مستلزم آن است که همسایه راه دور، قابلیت نقش BGP (BGP Role Capability) را ارسال کند. در هر دو حالت، هنگامی که هر دو همسایه این قابلیت را ارسال میکنند، دو نقش باید یک جفت معتبر تشکیل دهند. فقدان قابلیت در حالت سختگیرانه یا وجود یک جفت نقش نامعتبر، منجر به اعلان عدم تطابق نقش (Role Mismatch Notification) میشود (خطای پیام OPEN،کد 2, زیرکد 11). در هر دو مورد، نشست eBGP برقرار نمیشود.

شکل 2. تبادل قابلیت نقش BGP بین یک ارائهدهنده (Provider) و یک مشتری (Customer) در حالت سختگیرانه (Strict mode).
روترها تنها زمانی نقشهای خود را تغییر میدهند که نشست (Session) آغاز شود. هرگونه تغییر در نقش پیکربندیشده OTC، نشست eBGP را بازنشانی (Reset) میکند. سپس روترها پیامهای OPEN جدیدی را با نقشهای جدید ارسال میکنند.
پیادهسازی IOS XR
ویژگی OTC که در این راهنما شرح داده شده است، از نسخه Cisco IOS XR 26.4.1 به بعد پشتیبانی میشود.عملکرد عمومی سرور مسیر (Route Server) BGP در IOS XR پشتیبانی نمیشود، بنابراین نقش محلیroute-server
2.1 پیکربندی نقشهای OTC
برای فعالسازی OTC در یک نشست eBGP در IOS XR، دستورotc-local-roleرا در تنظیمات BGP neighbor پیکربندی کنید. این مقدار نقش محلی نسبت به آن همسایه را تعیین میکند. هر سمت را از دیدگاه خودش پیکربندی کنید. برای رابطه ارائهدهنده به مشتری (Provider-to-Customer)، ارائهدهنده از نقش محلیproviderو مشتری از نقش محلیcustomer.
نمونههای پیکربندی (Configuration) از شمارههای AS استفاده میکنند65540, 65545، و65550از محدوده RFC 5398 که برای مستندسازی رزرو شده است.
مثال پیکربندی (Configuration):
router bgp 65540
neighbor X.X.X.X
remote-as 65545
otc-local-role { customer | provider | peer | route-server-client} [strict]

شکل 3. نقشهای محلی OTC در یک نشست eBGP بین ارائهدهنده و مشتری (Provider-to-Customer).
R1 به عنوان ارائهدهنده (Provider) به سمت R2 پیکربندی شده است:
router bgp 65545
neighbor 10.10.10.2
otc-local-role provider
!
!
R2 به عنوان مشتری (Customer) نسبت به R1 پیکربندی شده است:
router bgp 65540
neighbor 10.10.10.1
otc-local-role customer
!
!
R3 به عنوان مشتری (Customer) نسبت به R5 پیکربندی شده است:
router bgp 65540
neighbor 11.11.11.4
otc-local-role customer
!
!
R5 به عنوان ارائهدهنده (Provider) به سمت R3 پیکربندی شده است:
router bgp 65550
neighbor 11.11.11.3
otc-local-role provider
!
!
2.2 تأیید نقش پایه (Basic role verification)
از دستور detailed neighbor بر روی هر دو روتر استفاده کنید. خروجی زیر در R1، جفت نقش ارائهدهنده به مشتری (Provider-to-Customer) را تأیید میکند:
RP/0/0/CPU0:R1# show bgp neighbor 10.10.10.2 detail
BGP neighbor is 10.10.10.2
Remote AS 65540, local AS 65545, external link
Remote router ID 192.168.0.2
BGP state = Established
OTC Local Mode: Loose
OTC Local Role: Provider
OTC Remote Role: Customer (received)
Neighbor capabilities: Adv Rcvd
4-byte AS: Yes Yes
Address family IPv4 Unicast: Yes Yes
OTC Role: Yes Yes
نقشهای محلی و از راه دور باید یک جفت معتبر تشکیل دهند.دریافت شدبه این معنی است که همسایه نقش خود را ارسال کرده است.بله/بلهبه این معنی است که هر دو روتر قابلیت نقش BGP (BGP Role Capability) را ارسال کردهاند.
پیکربندی و خروجی حالت Loose mode
حالت Loose mode پیشفرض است، بنابراین به هیچ کلمه کلیدی (keyword) اضافی نیاز نیست. در این مثال، R3 به عنوان مشتری (Customer) نسبت به R5 پیکربندی شده است، اما هیچ نقش OTC بر روی R5 نسبت به R3 پیکربندی نشده است.
router bgp 65540
neighbor 11.11.11.4
otc-local-role customer
!
!
اگر R5 نقش BGP را ارسال نکند، R3 میتواند نشست (Session) را فعال نگه دارد. R3 نقش راه دور را به صورت استنباطشده (Inferred) نمایش میدهد:
RP/0/0/CPU0:R3# show bgp neighbor 11.11.11.4 detail
BGP neighbor is 11.11.11.4
Remote AS 65550, local AS 65540, external link
Remote router ID 11.11.11.4
BGP state = Established
OTC Local Mode: Loose
OTC Local Role: Customer
OTC Remote Role: Provider (inferred)
Neighbor capabilities: Adv Rcvd
4-byte AS: Yes Yes
Address family IPv4 Unicast: Yes Yes
OTC Role: Yes No
حالت Loose میتواند پردازش OTC را زمانی اعمال کند که تنها یک روتر قابلیت BGP Role را تبلیغ میکند. فقدان این قابلیت به این معناست که هیچ نقش محلی (Local Role) برای همسایه پیکربندی نشده است، که لزوماً به معنای عدم پشتیبانی همسایه از BGP Roles نیست. نقش محلی پیکربندیشده، پردازش OTC را در R3 کنترل میکند.
پیکربندی حالت سختگیرانه (Strict mode) و بازنشانی نشست (Session reset)
حالت سختگیرانه (Strict mode) به صورت محلی پیکربندی میشود. این حالت مستلزم آن است که همسایه eBGP از راه دور، قابلیت نقش BGP (BGP Role Capability) را ارسال کند. نقشهای اعلامشده باید یک جفت معتبر تشکیل دهند. در این مثال، حالت سختگیرانه (Strict mode) روی هر دو همسایه پیکربندی شده است.
پیکربندی R1:
router bgp 65545
neighbor 10.10.10.2
otc-local-role provider strict
!
!
پیکربندی R2:
router bgp 65540
neighbor 10.10.10.1
otc-local-role customer strict
!
!
پس از اعمال تنظیمات (Commit)، سیستمعامل IOS XR نشست eBGP را بازنشانی (Reset) میکند. این بازنشانی به این دلیل ضروری است که همسایهها نقشهای خود را در پیام BGP OPEN مبادله میکنند.
%ROUTING-BGP-5-ADJCHANGE: neighbor 10.10.10.2 Down - OTC local role changed (CEASE notification sent - configuration change)
%ROUTING-BGP-5-ADJCHANGE: neighbor 10.10.10.2 Up
پس از برقراری نشست (Session)، حالت (Mode) و نقشها (Roles) را بررسی کنید:
RP/0/0/CPU0:R1# show bgp neighbor 10.10.10.2 detail
BGP neighbor is 10.10.10.2
Remote AS 65540, local AS 65545, external link
Remote router ID 192.168.0.2
BGP state = Established
OTC Local Mode: Strict
OTC Local Role: Provider
OTC Remote Role: Customer (received)
Neighbor capabilities: Adv Rcvd
4-byte AS: Yes Yes
Address family IPv4 Unicast: Yes Yes
OTC Role: Yes Yes
در حالت سختگیرانه (Strict mode)، اگر قابلیت (Capability) از راه دور وجود نداشته باشد، نشست (Session) برقرار نمیشود. در هر دو حالت، اگر نقشها (Roles) یک جفت معتبر تشکیل ندهند، نشست برقرار نخواهد شد. برای مثال، تغییر R2 به Provider در حالی که R1 نیز Provider است، باعث ایجاد عدم تطابق (Mismatch) میشود:
router bgp 65540
neighbor 10.10.10.1
otc-local-role provider strict
!
!
R1 عدم تطابق (Mismatch) حاصل را گزارش میدهد:
RP/0/0/CPU0:R1# show bgp neighbor 10.10.10.2 detail | include "Last reset"
Last reset 00:00:06, due to BGP Notification sent: OTC role mismatch
قوانین 2.5 OTC
قوانین OTC نحوه پردازش ویژگی OTC توسط روتر را بر اساس نقش همسایه eBGP تعیین میکنند. سه قانون ورودی (Ingress) هنگام دریافت مسیر اعمال میشوند. دو قانون خروجی (Egress) هنگام تبلیغ مسیر اعمال میشوند. این قوانین مشخص میکنند که OTC چه زمانی اضافه شود، چه زمانی یک مسیر غیرقابل استفاده (Ineligible) شود و چه زمانی یک مسیر نباید تبلیغ شود.
| قانون | جهت | شرط | اقدام مورد نیاز |
|---|---|---|---|
| IR1 | ورودی (Ingress) | مقدار OTC در مسیری از سمت مشتری (Customer) یا RS-Client وجود دارد. | مسیر نشتیافته برای انتخاب مسیر BGP پذیرفته نمیشود و به سایر همسایگان BGP تبلیغ (Advertise) نمیگردد. |
| IR2 | ورودی (Ingress) | مقدار OTC در مسیری از سمت همتا (Peer) وجود دارد و با شماره AS راه دور برابر نیست. | مسیر نشتیافته برای انتخاب مسیر BGP پذیرفته نمیشود و به سایر همسایگان BGP تبلیغ (Advertise) نمیگردد. |
| IR3 | ورودی (Ingress) | مقدار OTC در مسیری از سمت ارائهدهنده (Provider)، همتا (Peer) یا RS وجود ندارد. | افزودن OTC با شماره AS راه دور. |
| ER1 | خروجی (Egress) | مقدار OTC در مسیری که به سمت مشتری (Customer)، همتا (Peer) یا RS-Client ارسال میشود، وجود ندارد. | افزودن OTC با شماره AS محلی. |
| ER2 | خروجی (Egress) | مقدار OTC در مسیری که به سمت ارائهدهنده (Provider)، همتا (Peer) یا RS ارسال میشود، وجود دارد. | مسیر را تبلیغ (Advertise) نکن. |
استاندارد RFC 9234 این رویههای ورودی (Ingress) و خروجی (Egress) را تنها برای خانوادههای آدرس یونیکست (Unicast) IPv4 و IPv6 (با AFI 1 و AFI 2 و SAFI 1) اعمال میکند. این رویهها بهصورت پیشفرض برای سایر خانوادههای آدرس اعمال نمیشوند. هنگامی که OTC تنظیم شود، مقدار آن بدون تغییر حفظ میگردد.
2.5.1 قانون ورودی 1 (Ingress Rule 1 – IR1)
هنگامی که یک پیشوند (Prefix) دارای OTC از یک مشتری (Customer) یا RS-Client دریافت شود، به عنوان نشت مسیر (Route Leak) شناسایی میشود. مسیر نشتیافته برای انتخاب مسیر BGP پذیرفته نمیشود و به سایر همسایگان BGP نیز تبلیغ (Advertise) نمیگردد.
R4 و R3 به عنوان ارائهدهنده (Provider) پیکربندی شدهاند. R5 تنها به سمت R3 به عنوان مشتری (Customer) پیکربندی شده است؛ هیچ نقش OTC بر روی R5 به سمت R4 پیکربندی نشده است:
! R5
router bgp 65550
neighbor 11.11.11.3
otc-local-role customer
!
!
! R4
router bgp 65540
neighbor 12.12.12.4
otc-local-role provider
address-family ipv4 unicast
soft-reconfiguration inbound always
!
!
!
! R3
router bgp 65540
neighbor 11.11.11.4
otc-local-role provider
!
!

شکل 4. دستگاه R4 یک مسیر با علامت OTC که از مشتری R5 دریافت شده است را به عنوان نشت مسیر (Route Leak) شناسایی میکند.
R5 یک پیشوند (Prefix) با علامت OTC را به R4 ارسال میکند. R4 این پیشوند را از مشتری (Customer) خود دریافت کرده و آن را به عنوان یک نشت مسیر (Route Leak) شناسایی میکند. این مسیر پذیرفته نمیشود و به هیچ همسایه BGP دیگری نیز تبلیغ (Advertise) نمیگردد.
آزمایشگاه عمداً اجازه داد تا همان AS دوباره دریافت شود تا بتوان نشت (Leak) را بازتولید کرد.allowas-inدر R4 تحت خانواده آدرس همسایه (Neighbor Address Family) فعال شد و R5 بررسی حلقه (Loop Check) درAS_PATHخروجی را غیرفعال کرد:
! R4
router bgp 65540
neighbor 12.12.12.4
address-family ipv4 unicast
allowas-in
!
!
!
! R5
router bgp 65550
address-family ipv4 unicast
as-path-loopcheck out disable
!
!
توجه:این استثنائات جلوگیری از حلقه (loop-prevention) صرفاً برای تستهای آزمایشگاهی هستند و نباید در شبکه عملیاتی (production network) استفاده شوند.
شمارندههای همسایه (Neighbor counters) و دیباگ (Debug) پروتکل BGP، دلیل رد شدن را IR1 شناسایی میکنند:
RP/0/0/CPU0:R4# show bgp ipv4 unicast neighbors 12.12.12.4 detail | include "OTC ingress|denied"
Exact no. of prefixes denied: 56
Cumulative no. of prefixes denied: 112
By OTC ingress rule 1: 112, By OTC ingress rule 2: 0
RP/0/0/CPU0:R4# debug bgp update in
Prefix 18.18.18.0/24 received from 12.12.12.4 DENIED due to OTC ingress rule 1: route leak from Customer/RS-Client
مسیر میتواند به صورتفقط-دریافتی (received-only)زمانی که پیکربندی مجدد نرم (soft reconfiguration) ورودی آن را ذخیره میکند، ظاهر شود. این مسیر نباید واجد شرایط شود.
RP/0/0/CPU0:R4# show bgp 18.18.18.0/24 detail
Paths: (3 available, best #1)
Path #2: Received by speaker 0
Not advertised to any peer
65550 65540, (received-only)
12.12.12.4 from 12.12.12.4 (11.11.11.4)
Origin incomplete, localpref 100, valid, external
OTC-AS: 65540
2.5.2 قانون ورودی 2 (Ingress Rule 2 – IR2)
هنگامی که یک پیشوند (Prefix) دارای OTC از یک همتا (Peer) دریافت میشود، شماره AS مربوط به OTC باید با شماره AS همتای راه دور (Remote Peer) برابر باشد. اگر این مقادیر متفاوت باشند، پیشوند به عنوان نشت مسیر (Route Leak) شناسایی شده و غیرقابل استفاده (Ineligible) میشود.
برای این تست، R4 از نقش Peer محلی در حالت loose استفاده میکند و R5 هیچ نقش BGP (BGP Role) را به سمت R4 تبلیغ نمیکند. بنابراین، R4 پردازش ورودی (Ingress processing) مربوط به Peer را بر روی مسیر دریافت شده از R5 اعمال میکند:
! R4
router bgp 65540
neighbor 12.12.12.4
otc-local-role peer
!
!
! R5
router bgp 65550
neighbor 12.12.12.5
no otc-local-role customer
!
!

شکل 5. دستگاه R4 یک مسیر همتا (Peer route) را رد میکند، زیرا مقدار OTC با شماره سیستم خودمختار (AS) راه دور 65550 برابر نیست.
روتر R5 مسیری را تبلیغ میکند که مقدار OTC آن برابر است با65540. از آنجایی که R5 در AS راه دور قرار دارد65550، روتر R4 این مسیر را تحت قانون IR2 رد میکند:
RP/0/0/CPU0:R4# show bgp ipv4 unicast neighbors 12.12.12.4 detail | include "OTC ingress|denied"
Exact no. of prefixes denied: 56
Cumulative no. of prefixes denied: 56
By OTC ingress rule 1: 0, By OTC ingress rule 2: 56
RP/0/0/CPU0:R4# debug bgp update in
Prefix 18.18.18.0/24 received from 12.12.12.4 DENIED due to OTC ingress rule 2: OTC AS mismatch from Peer
RP/0/0/CPU0:R4# show bgp 18.18.18.0/24 detail
Paths: (3 available, best #1)
Path #2: Received by speaker 0
Not advertised to any peer
65550 65540, (received-only)
12.12.12.4 from 12.12.12.4 (11.11.11.4)
Origin incomplete, localpref 100, valid, external
OTC-AS: 65540
اگر شماره AS در OTC با شماره AS از راه دور (Remote AS) برابر نباشد،65550مسیر غیرقابل استفاده میشود. مسیری باOTC-AS: 65550قانون IR2 را با موفقیت پشت سر میگذارد.
2.5.3 قانون ورودی 3 (Ingress Rule 3 – IR3)
هنگامی که یک پیشوند (Prefix) بدون OTC از یک ارائهدهنده (Provider)، همتا (Peer) یا سرور مسیر (RS) دریافت میشود، روتر دریافتکننده OTC را اضافه میکند. شماره AS مربوط به OTC بر روی شماره AS راه دور تنظیم میشود.
دستگاه R2 با نقش محلی Customer نسبت به R1 پیکربندی شده است. هیچ نقش OTC بر روی R1 تنظیم نشده است. بنابراین در حالت loose، دستگاه R2 نقش راه دور R1 را به عنوان Provider استنباط میکند. دستگاه R1 مسیر (Route) را بدون ویژگی (Attribute) OTC ارسال میکند:
router bgp 65540
neighbor 10.10.10.1
otc-local-role customer
!
!
! R1 has no configured OTC role toward R2.

شکل 6. روتر R2، شماره سیستم خودمختار (AS) 65545 را به یک مسیر بدون برچسب (unmarked route) که از Provider R1 دریافت کرده است، اضافه میکند.
جدول BGP در R2 تأیید میکند که IR3 شماره سیستم خودمختار (AS number) ارائهدهنده استنباطشده را در OTC ذخیره کرده است:
RP/0/0/CPU0:R2# show bgp 192.168.0.1/32 detailمسیرها: (1 موجود، بهترین #1) 65545 10.10.10.1 از 10.10.10.1 (10.10.10.1)مبدأ ناقص (Origin incomplete)، متریک 0، اولویت محلی (localpref) 100، معتبر، خارجی (external)، بهترین، بهترینِ گروهOTC-AS: 65545
پیام UPDATE بدون OTC دریافت شد. مسیر ذخیرهشده شامل شماره AS راه دور است65545. این تأیید میکند که R2 قانون IR3 را اعمال کرده است. اگر OTC از قبل موجود باشد، روتر مقدار آن را تغییر نمیدهد.
2.5.4 قانون خروجی 1 (Egress Rule 1 – ER1)
هنگامی که یک پیشوند (Prefix) به یک مشتری (Customer)، همتا (Peer) یا کلاینت سرویسدهنده مسیر (RS-Client) تبلیغ میشود، در صورتی که ویژگی OTC وجود نداشته باشد، آن را اضافه کنید. شماره AS مربوط به OTC را بر روی شماره AS محلی تنظیم نمایید.
R3 به عنوان ارائهدهنده (Provider) به سمت R5 پیکربندی شده است و R5 به عنوان مشتری (Customer) به سمت R3 پیکربندی شده است:
! R3
router bgp 65540
neighbor 11.11.11.4
otc-local-role provider
!
!
! R5
router bgp 65550
neighbor 11.11.11.3
otc-local-role customer
!
!

شکل 7. روتر R3 قبل از ارسال مسیر به مشتری R5، شماره AS محلی خود را اضافه میکند.
هیچ نقش OTC برای نشست R1-R2 در این تست پیکربندی نشده است، بنابراین پیشوند (Prefix) بدون OTC به AS 65540 میرسد و هیچ قانون ورودی (Ingress rule) آن را علامتگذاری نمیکند. هنگامی که R3 پیشوند را به مشتری خود یعنی R5 تبلیغ میکند، ER1 مقدار OTC را با شماره AS محلی R3 اضافه میکند. R5 پیشوند را با مشخصات زیر دریافت میکند:OTC-AS: 65540.
نکته:اگر R2 نقش مشتری (Customer) استفاده شده در مثال IR3 را حفظ کند، R2 مقدار
OTC-AS: 65545را در ورودی (Ingress) اضافه میکند. سپس R3 به جای افزودن مقدار اختصاصی خود، آن مقدار را حفظ خواهد کرد، زیرا ER1 تنها زمانی OTC را اضافه میکند که این ویژگی (Attribute) وجود نداشته باشد.
خروجی مسیر (Route output) روی R5، مسیر کامل AS و مقدار OTC را نشان میدهد:
RP/0/0/CPU0:R5# show bgp 192.168.0.1/32 detail
Paths: (2 available, best #1)
65540 65545
11.11.11.3 from 11.11.11.3 (192.168.0.3)
Origin incomplete, localpref 100, valid, external, best, group-best
OTC-AS: 65540
ویژگی OTC به مسیری که از R3 به R5 تبلیغ (Advertise) میشود، اضافه شده است. مسیری که روی R3 ذخیره شده است، لزوماً نباید حاوی OTC باشد.
2.5.5 قانون خروجی 2 (Egress Rule 2 – ER2)
هنگامی که یک پیشوند (Prefix) دارای OTC به یک ارائهدهنده (Provider)، همتا (Peer) یا سرور مسیر (RS) تبلیغ (Advertise) میشود، این تبلیغ مسدود میگردد. این امر از تبدیل شدن ناخواسته AS محلی به یک AS ترانزیت (Transit AS) جلوگیری میکند.
R3 و R4 به عنوان ارائهدهنده (Provider) به سمت R5 پیکربندی شدهاند. R5 به عنوان مشتری (Customer) نسبت به هر دو روتر پیکربندی شده است:
پیکربندی R3:
router bgp 65540
neighbor 11.11.11.4
otc-local-role provider
!
!
پیکربندی R5:
router bgp 65550
neighbor 11.11.11.3
otc-local-role customer
!
neighbor 12.12.12.5
otc-local-role customer
!
!
پیکربندی R4:
router bgp 65540
neighbor 12.12.12.4
otc-local-role provider
!
!
روتر R3 پیشوند (Prefix) را به مشتری R5 با مشخصه OTC-AS: 65540 تبلیغ میکند.قانون خروجی (Egress Rule) شماره 2، روتر R5 را از تبلیغ پیشوند دارای علامت OTC به ارائهدهنده دیگر خود، یعنی R4، باز میدارد.قانون Egress 2 از تبلیغ پیشوند (Prefix) دارای علامت OTC توسط R5 به ارائهدهنده دیگر خود، یعنی R4، جلوگیری میکند.

شکل 8. روتر R5 یک مسیر با علامت OTC را به دیگر ارائهدهنده (Provider) خود، یعنی R4، تبلیغ (Advertise) نمیکند.
تأیید کنید که R5 مسیر دارای برچسب OTC را از R3 دریافت کرده است. R5 همچنان میتواند از این مسیر استفاده کند، اما ER2 از تبلیغ (Advertising) این مسیر به R4 جلوگیری میکند:
RP/0/0/CPU0:R5# show bgp 192.168.0.1/32 detail
Paths: (2 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
65540 65545
11.11.11.3 from 11.11.11.3 (192.168.0.3)
Origin incomplete, localpref 100, valid, external, best, group-best
OTC-AS: 65540
Path #2: Received by speaker 0
Not advertised to any peer
65540 65545
12.12.12.5 from 12.12.12.5 (192.168.0.5)
Origin incomplete, localpref 100, valid, external
OTC-AS: 65540
مسیر شماره 1 بهترین مسیری است که از R3 دریافت شده، بنابراین R5 میتواند آن را نصب و استفاده کند. هر دو مسیر دارایOTC-AS: 65540هستند که تأیید میکند آنها با برچسب OTC مشخص شدهاند.به هیچ همتایی (Peer) تبلیغ نشده استنشان میدهد که R5 مسیر دارای برچسب OTC را به دیگر ارائهدهنده (Provider) خود، یعنی R4، تبلیغ نمیکند. این رفتار مورد انتظار برای ER2 است.
جدول قوانین OTC 2.6
جدول زیر تمامی ترکیبات، با و بدون OTC، را در حالتی که هر دو نقش پیکربندی شده باشند یا یک نقش در حالت loose استنباط شده باشد، پوشش میدهد. ستون اول مسیر را پیش از پردازش خروجی (egress) توصیف میکند.پیکربندیشده (Configured)به این معنی است که روتر دارای یک نقش محلی است و قوانین OTC را اعمال میکند.استنباطشده (Inferred)به این معنی است که روتر دیگر، این نقشِ مفقود را از نقش پیکربندیشده خود استخراج میکند؛ روتری که نقش استنباطشده دارد، پردازش OTC مبتنی بر نقش را اعمال نمیکند.
| آیا OTC موجود است؟ | نقش فرستنده (Sender) | نقش گیرنده (Receiver) | عملکرد فرستنده | عملکرد گیرنده |
|---|---|---|---|---|
| No | ارائهدهنده (پیکربندی شده) | مشتری (پیکربندی شده) | افزودن شماره AS محلی به عنوان OTC (طبق قانون ER1). | پذیرش مسیر (Route) با OTC. |
| بله | ارائهدهنده (پیکربندی شده) | مشتری (پیکربندی شده) | تبلیغ (Advertise) و حفظ OTC. | پذیرش مسیر با OTC بدون تغییر. |
| No | ارائهدهنده (پیکربندی شده) | مشتری (استنباط شده) | افزودن شماره AS محلی به عنوان OTC (طبق قانون ER1). | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر با OTC. |
| بله | ارائهدهنده (پیکربندی شده) | مشتری (استنباط شده) | تبلیغ (Advertise) و حفظ OTC. | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر با OTC. |
| No | ارائهدهنده (استنباط شده) | مشتری (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ بدون OTC. | افزودن شماره AS ارائهدهنده راه دور به عنوان OTC (طبق قانون IR3). |
| بله | ارائهدهنده (استنباط شده) | مشتری (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ با OTC بدون تغییر. | پذیرش مسیر با OTC بدون تغییر. |
| No | مشتری (پیکربندی شده) | ارائهدهنده (پیکربندی شده) | تبلیغ بدون افزودن OTC. | پذیرش مسیر بدون OTC. |
| بله | مشتری (پیکربندی شده) | ارائهدهنده (پیکربندی شده) | عدم تبلیغ مسیر (طبق قانون ER2). | اگر برخلاف ER2 دریافت شد، مسیر را غیرقابل استفاده (Ineligible) کنید (طبق قانون IR1). |
| No | مشتری (پیکربندی شده) | ارائهدهنده (استنباط شده) | تبلیغ بدون افزودن OTC. | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر بدون OTC. |
| بله | مشتری (پیکربندی شده) | ارائهدهنده (استنباط شده) | عدم تبلیغ مسیر (طبق قانون ER2). | هیچ مسیری دریافت نمیشود. |
| No | مشتری (استنباط شده) | ارائهدهنده (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ بدون OTC. | پذیرش مسیر بدون OTC. |
| بله | مشتری (استنباط شده) | ارائهدهنده (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ با OTC بدون تغییر. | غیرقابل استفاده کردن مسیر (طبق قانون IR1). |
| No | همتا (Peer) (پیکربندی شده) | همتا (Peer) (پیکربندی شده) | افزودن شماره AS محلی به عنوان OTC (طبق قانون ER1). | پذیرش مسیر به دلیل برابری OTC با AS راه دور. |
| بله | همتا (Peer) (پیکربندی شده) | همتا (Peer) (پیکربندی شده) | عدم تبلیغ مسیر (طبق قانون ER2). | اگر برخلاف ER2 دریافت شد، فقط زمانی بپذیرید که OTC با AS همتای راه دور برابر باشد؛ در غیر این صورت، آن را غیرقابل استفاده کنید (طبق قانون IR2). |
| No | همتا (Peer) (پیکربندی شده) | همتا (Peer) (استنباط شده) | افزودن شماره AS محلی به عنوان OTC (طبق قانون ER1). | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر با OTC. |
| بله | همتا (Peer) (پیکربندی شده) | همتا (Peer) (استنباط شده) | عدم تبلیغ مسیر (طبق قانون ER2). | هیچ مسیری دریافت نمیشود. |
| No | همتا (Peer) (استنباط شده) | همتا (Peer) (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ بدون OTC. | افزودن شماره AS همتای راه دور به عنوان OTC (طبق قانون IR3). |
| بله | همتا (Peer) (استنباط شده) | همتا (Peer) (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ با OTC بدون تغییر. | فقط زمانی بپذیرید که OTC با AS همتای راه دور برابر باشد؛ در غیر این صورت، آن را غیرقابل استفاده کنید (طبق قانون IR2). |
| No | RS (پیکربندی شده) | RS-Client (پیکربندی شده) | افزودن شماره AS محلی به عنوان OTC (طبق قانون ER1). | پذیرش مسیر (Route) با OTC. |
| بله | RS (پیکربندی شده) | RS-Client (پیکربندی شده) | تبلیغ (Advertise) و حفظ OTC. | پذیرش مسیر با OTC بدون تغییر. |
| No | RS (پیکربندی شده) | RS-Client (استنباط شده) | افزودن شماره AS محلی به عنوان OTC (طبق قانون ER1). | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر با OTC. |
| بله | RS (پیکربندی شده) | RS-Client (استنباط شده) | تبلیغ (Advertise) و حفظ OTC. | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر با OTC. |
| No | RS (استنباط شده) | RS-Client (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ بدون OTC. | افزودن شماره AS مربوط به RS راه دور به عنوان OTC (طبق قانون IR3). |
| بله | RS (استنباط شده) | RS-Client (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ با OTC بدون تغییر. | پذیرش مسیر با OTC بدون تغییر. |
| No | RS-Client (پیکربندی شده) | RS (پیکربندی شده) | تبلیغ بدون افزودن OTC. | پذیرش مسیر بدون OTC. |
| بله | RS-Client (پیکربندی شده) | RS (پیکربندی شده) | عدم تبلیغ مسیر (طبق قانون ER2). | اگر برخلاف ER2 دریافت شد، مسیر را غیرقابل استفاده (Ineligible) کنید (طبق قانون IR1). |
| No | RS-Client (پیکربندی شده) | RS (استنباط شده) | تبلیغ بدون افزودن OTC. | بدون عملکرد ورودی مبتنی بر نقش؛ دریافت مسیر بدون OTC. |
| بله | RS-Client (پیکربندی شده) | RS (استنباط شده) | عدم تبلیغ مسیر (طبق قانون ER2). | هیچ مسیری دریافت نمیشود. |
| No | RS-Client (استنباط شده) | RS (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ بدون OTC. | پذیرش مسیر بدون OTC. |
| بله | RS-Client (استنباط شده) | RS (پیکربندی شده) | بدون عملکرد خروجی مبتنی بر نقش؛ تبلیغ با OTC بدون تغییر. | غیرقابل استفاده کردن مسیر (طبق قانون IR1). |
هر دو نقش نمیتوانند به طور همزمان در یک نشست (Session) استنباط شوند. حداقل یک روتر باید قبل از اینکه بتواند نقش مقابل (Remote Role) را استنباط کند، دارای یک نقش محلی (Local Role) پیکربندیشده باشد.استنباطشده (Inferred)یک قرارداد نمایش محلی است: هیچ قابلیت نقشی (Role Capability) دریافت نشده است و همسایه پیکربندینشده، پردازش OTC را برای خود اعمال نمیکند. یک نقش استنباطشده، پیکربندی یا رفتار همسایه مقابل را تأیید نمیکند.
3. RPL: نقش OTC به ازای هر پیشوند (Prefix)
نقشotc-local-roleپیکربندی شده تحت یک همسایه (neighbor)، نقش پیشفرض برای تمامی پیشوندها (prefixes) در نشست eBGP است. زبان سیاست مسیریابی (RPL) میتواند نقش پیشفرض را برای پیشوندهایی که با یک سیاست مسیریابی مطابقت دارند، بازنویسی (override) کند. این قابلیت به گروههای پیشوندی مختلف در همان نشست اجازه میدهد تا از پردازش OTC متفاوتی استفاده کنند. یک سیاست مسیریابی ورودی (inbound route policy)، نقش محلی مورد استفاده توسط قوانین OTC ورودی (ingress) را برای هر پیشوند منطبق انتخاب میکند. یک سیاست مسیریابی خروجی (outbound route policy)، نقش محلی مورد استفاده توسط قوانین OTC خروجی (egress) را انتخاب مینماید.
این جایگزینی (Override) تنها برای پردازش محلی OTC اعمال میشود. قابلیت نقش BGP (BGP Role Capability) همچنان یک بار در هر نشست (Session) مذاکره میشود، بنابراین نقش به ازای هر پیشوند (Per-prefix) با همسایه (Neighbor) تأیید نمیشود. بخش 6 از RFC 9234 این بدهبستان (Trade-off) را توصیف میکند: نقشهای BGP نباید در نشستی با رابطه همتای پیچیده (Complex peering relationship) پیکربندی شوند و اپراتوری که به جای آن از سیاستهای به ازای هر پیشوند استفاده میکند، هیچ روش درونباندی (In-band) برای بررسی توافق هر دو طرف ندارد.
3.1 پیکربندی (Configuration)
نقطه اتصال RPL در زیر پیکربندی خانواده آدرس (address-family) همسایه قرار دارد. یک خطمشی مسیر (route policy) میتواند به صورت ورودی (inbound) یا خروجی (outbound) متصل شود:
router bgp (local-as-number)
neighbor (neighbor-address)
address-family (ipv4-or-ipv6) unicast
route-policy (route-policy-name) (in-or-out)
!
!
!
عمل RPL از این نقشهای محلی پشتیبانی میکند و در داخل یک خطمشی مسیر (Route Policy) استفاده میشود:
route-policy otc_out
if...
set otc-local-role { customer | provider | peer | route-server-client}
else
...
endif
end-policy
یک خروجی (Outbound)تنظیم otc-local-roleاین عمل نقش محلی مورد استفاده برای قانون خروجی 1 (Egress Rule 1) و قانون خروجی 2 (Egress Rule 2) را انتخاب میکند. برای یک پیشوند (Prefix) منطبق، نقش RPL بر otc-local-role پیکربندی شده در زیر همسایه (Neighbor) اولویت دارد.نقش محلی otcپیکربندی شده در زیر همسایه (neighbor).
مثال زیر نشان میدهد که چگونه RPL نقش همسایه را برای یک پیشوند (Prefix) تغییر میدهد. R5 نقش محلی Customer را نسبت به هر دو دستگاه R3 و R4 دارد. این نقش پیشفرض برای پیشوندهایی است که با سیاستها مطابقت ندارند. برای192.168.0.1/32، سیاست ورودی (Inbound policy) نقش محلی R5 را هنگامی که R5 مسیر را از R3 دریافت میکند، از Customer به Provider تغییر میدهد. سیاست خروجی (Outbound policy) نیز نقش را هنگام ارسال مسیر توسط R5 به سمت R4، از Customer به Peer تغییر میدهد.

شکل 9. یک خطمشی مسیریابی (Route Policy)، نقش مشتری (Customer role) در سطح همسایه (Neighbor-level) را روی R5 برای یک پیشوند (Prefix) خاص نادیده میگیرد.
مرحله 1: نقشها و رفتار پیشفرض را بررسی کنید
R5 نقش مشتری (Customer) در سطح همسایه را نسبت به هر دو روتر دارد:
RP/0/0/CPU0:R5# show running-config formal | include otc
router bgp 65550 neighbor 11.11.11.3 otc-local-role customer
router bgp 65550 neighbor 12.12.12.5 otc-local-role customer
پیش از آنکه سیاستهای RPL اعمال شوند، مسیرهای دارای نشان OTC تبلیغ (Advertise) نمیشوند، زیرا R5 از نقش پیشفرض مشتری (Customer role) خود استفاده میکند:
RP/0/0/CPU0:R5# show bgp 192.168.0.1/32
Paths: (2 available, best #1)
Not advertised to any peer
Path #1: Received by speaker 0
Not advertised to any peer
65540 65545
11.11.11.3 from 11.11.11.3 (192.168.0.3)
Origin incomplete, localpref 100, valid, external, best, group-best
OTC-AS: 65540
Path #2: Received by speaker 0
Not advertised to any peer
65540 65545
12.12.12.5 from 12.12.12.5 (192.168.0.5)
Origin incomplete, localpref 100, valid, external
OTC-AS: 65540
مرحله 2: نقش Provider را روی R3 حذف کنید.
حذف نقش Provider در سطح همسایه (neighbor-level) برای R3:
router bgp 65540
neighbor 11.11.11.4
no otc-local-role provider
!
!
اگر این نقش (Role) حذف نشود، R3 قبل از ارسال مسیر (Route) به R5، مقدار OTC را به آن اضافه میکند. در نتیجه، R5 یک مسیر از پیش علامتگذاری شده دریافت میکند و این آزمایش به وضوح عملکرد RPL ورودی را نشان نمیدهد.
مرحله 3: پیکربندی و پیوست کردن سیاستهای RPL
پیشوند پیچیده OTCانتخاب میکند192.168.0.1/32. سیاست ورودی باعث میشود R5 برای آن پیشوند، هنگام دریافت از R3، از نقش محلی Provider استفاده کند. سیاست خروجی باعث میشود R5 برای همان پیشوند، هنگام تبلیغ (Advertise) به سمت R4، از نقش محلی Peer استفاده کند:
prefix-set OTC_complex_pfx
192.168.0.1/32
end-set
!
route-policy OTC_complex_in
if destination in OTC_complex_pfx then
set otc-local-role provider
else
pass
endif
end-policy
!
route-policy OTC_complex_out
if destination in OTC_complex_pfx then
set otc-local-role peer
else
pass
endif
end-policy
!
router bgp 65550
neighbor 11.11.11.3
address-family ipv4 unicast
route-policy OTC_complex_in in
!
!
neighbor 12.12.12.5
address-family ipv4 unicast
route-policy OTC_complex_out out
!
!
!
این خطمشی قوانین زیر را اعمال میکند:
| مسیر و همسایه | تطبیق (Match) | نقش محلی مؤثر | نحوه پردازش مسیر (Route treatment) |
|---|---|---|---|
ورودی از R3 (11.11.11.3) |
192.168.0.1/32 |
ارائهدهنده (Provider) | دستگاه R5، همسایه R3 را برای این پیشوند (Prefix) به عنوان یک مشتری (Customer) در نظر میگیرد. مسیر بدون علامت، بدون افزودن OTC پذیرفته میشود. |
خروجی به R4 (12.12.12.5) |
192.168.0.1/32 |
همتا (Peer) | دستگاه R5، همسایه R4 را به عنوان یک همتا (Peer) در نظر میگیرد، مقدارOTC-AS: 65550را اضافه کرده و مسیر را تبلیغ (Advertise) میکند. |
ورودی از R3 (11.11.11.3) |
هر پیشوند (Prefix) دیگر | مشتری (پیشفرض همسایه) | دستگاه R5، همسایه R3 را به عنوان یک ارائهدهنده (Provider) در نظر میگیرد. اگر OTC موجود نباشد، R5 مقدارOTC-AS: 65540. |
خروجی به R4 (12.12.12.5) |
هر پیشوند (Prefix) دیگر | مشتری (پیشفرض همسایه) | را اضافه میکند. دستگاه R5، همسایه R4 را به عنوان یک ارائهدهنده (Provider) در نظر میگیرد. دستگاه ER2 مسیر دارای علامت OTC را مسدود میکند. |
پس از اعمال سیاستها، هم پیشوند (Prefix) غیرمنطبق و هم پیشوند منطبق را بررسی کنید. پیشوند غیرمنطبق192.168.1.1/32همچنان از نقش پیشفرض Customer استفاده میکند و تبلیغ (Advertise) نمیشود. پیشوند منطبق192.168.0.1/32از نقشهای RPL استفاده کرده و به سمت R4 تبلیغ میشود:
RP/0/0/CPU0:R5# show bgp 192.168.1.1/32 detail
Paths: (2 available, best #1)
Not advertised to any peer
RP/0/0/CPU0:R5# show bgp 192.168.0.1/32
Paths: (2 available, best #1)
Advertised IPv4 Unicast paths to peers (in unique update groups):
12.12.12.5
Path #1: Received by speaker 0
65540 65545
11.11.11.3 from 11.11.11.3 (192.168.0.3)
Origin incomplete, localpref 100, valid, external, best, group-best
مرحله 4: ویژگیهای خروجی را تأیید کنید
پردازش عادی eBGP، شماره AS مربوط به R5 را به ابتدای AS path اضافه میکند.65550سپس نقش همتا (Peer role) انتخاب شده توسط سیاست خروجی (outbound policy)، باعث میشود ER1 مقدار زیر را اضافه کند:OTC-AS: 65550:
RP/0/0/CPU0:R5# show bgp advertised neighbor 12.12.12.5
192.168.0.1/32 is advertised to 12.12.12.5
Path info:
neighbor: 11.11.11.3 neighbor router id: 192.168.0.3
valid external best
Attributes after inbound policy was applied:
next hop: 11.11.11.3
origin: incomplete neighbor as: 65540
aspath: 65540 65545
Attributes after outbound policy was applied:
next hop: 12.12.12.4
origin: incomplete neighbor as: 65540
aspath: 65550 65540 65545
OTC-AS: 65550
خروجی تأیید میکند که RPL نقش OTC در سطح همسایه (neighbor-level) را تنها برای پیشوند (prefix) انتخابشده بازنویسی میکند. دستگاه R4 همچنان نقش محلی پیکربندیشده خود را در ورودی (ingress) اعمال میکند، بنابراین نقش آن تعیینکننده پذیرش یا عدم پذیرش مسیر دریافتی است.
4. حفظ معاملات خارج از بورس (OTC) در سراسر شبکهها
استاندارد RFC 9234 الزامی میکند که پس از تنظیم ویژگی OTC، این ویژگی باید بدون تغییر باقی بماند. این ویژگی به هر همسایه eBGP پاییندست (downstream) اعلام میکند که مسیر (route) تنها میتواند به مشتریان (Customers) تبلیغ شود. اگر OTC حذف یا تغییر یابد، ممکن است یک همسایه eBGP دیگر، مسیر را به یک ارائهدهنده (Provider) یا همتا (Peer) تبلیغ کرده و باعث نشت مسیر (route leak) شود. حذف آن همچنین اطلاعاتی را که سایر شبکهها برای شناسایی نشت استفاده میکنند، پنهان میسازد. به همین دلیل، فیلتر کردن یا تغییر OTC، محافظت ارائهشده توسط RFC 9234 را تضعیف میکند، همانطور که در مقاله Cloudflare در مورد مدل نقش BGP در RFC 9234 توضیح داده شده است.