شبکه‌های ستون فقرات سازمانی با پهنای باند گسترده و بسترهای توزیع‌شده Anycast VPN نیازمند هدایت هوشمند ترافیک و بازیابی پیوندها در کسری از ثانیه هستند. به مدت دو دهه، پروتکل سوئیچینگ برچسب چندپروتکلی (MPLS) به عنوان شالوده اصلی مهندسی ترافیک و شبکه‌های خصوصی مجازی لایه ۳ (L3VPN) ایفای نقش کرده است.

با این حال، ساختار MPLS پیچیدگی‌های عملیاتی سنگینی را به همراه دارد. نگهداری همزمان پروتکل توزیع برچسب (LDP)، پروتکل رزرو منابع برای مهندسی ترافیک (RSVP-TE) و نشست‌های هدفمند BGP، روترهای میانی ترانزیت را وادار می‌سازد تا هزاران وضعیت ارتباطی موقت را در حافظه سخت‌افزاری ذخیره کنند.

برای رفع این مانع بزرگ ساختاری، کارگروه مهندسی اینترنت (IETF) پروتکل روتینگ سگمنت روی بستر IPv6 (موسوم به SRv6) را بر پایه استانداردهای RFC 8402، RFC 8754 و RFC 8986 توسعه داد. این پروتکل با ادغام صفحه کنترل و صفحه انتقال داده درون بسته‌های استاندارد IPv6، امکان مسیریابی از مبدا بدون وضعیت، برنامه‌ریزی‌پذیری شبکه و حفاظت قطعی زیر ۵۰ میلی‌ثانیه را از طریق فناوری TI-LFA فراهم می‌سازد.

بحران پیچیدگی MPLS: ضرورت ادغام صفحه داده در ساختار IPv6

شبکه‌های مرسوم MPLS فرآیند انتقال برچسب را از مسیریابی پایه IP جدا می‌کنند. در زیرساخت‌های چندابری نوین، این تفکیک دوگانه چالش‌های شدیدی را رقم می‌زند:

  1. انباشت پروتکل‌های لایه‌ای: مهندسان شبکه ناچار به راه‌اندازی پروتکل‌های داخلی IGP (نظیر OSPF یا IS-IS)، پروتکل LDP برای نگاشت برچسب‌ها، پروتکل RSVP-TE برای حفاظت از تونل‌ها و پروتکل MP-BGP برای انتشار مسیرهای کاربران هستند.
  2. اشباع وضعیت در روترهای ترانزیت: در پروتکل RSVP-TE، تمامی روترهای در طول مسیر باید وضعیت هر تونل را نگهداری کنند. با افزایش تعداد تونل‌ها به ده‌ها هزار مورد، حافظه روترها دچار کمبود شده و فرآیند همگرایی در هنگام بروز اختلال با کندی شدید مواجه می‌شود.
  3. شکستگی کپسوله‌سازی: بسته‌های MPLS بدون کپسوله‌سازی درون تونل‌های مکمل نظیر GRE یا UDP توانایی عبور از شبکه‌های عمومی IP را ندارند که این امر نظارت یکپارچه بر ترافیک را مخدوش می‌کند.

پروتکل SRv6 این لایه‌های متعدد و سنگین را با یک پروتکل بومی واحد جایگزین می‌کند: نسخه استاندارد IPv6. در این شیوه، بسته‌ها دستورالعمل‌های مسیر خود را در قالب یک سرایند الحاقی به همراه دارند و روترهای میانی بسته‌ها را بر مبنای تطبیق طولانی‌ترین پیشوند (LPM) در IPv6 پردازش می‌کنند.

معماری برنامه‌نویسی شبکه SRv6: مبانی بنیادین استاندارد RFC 8986

استاندارد RFC 8986 مفهوم برنامه‌نویسی شبکه را تثبیت می‌کند: اینکه یک مسیر انتقال و توابع مرتبط با آن می‌توانند به صورت فهرستی از دستورات مرتب درون یک آدرس ۱۲۸ بیتی IPv6 کدگذاری شوند.

روترهای ورودی به جای ایجاد جداول تونل پیچیده در هر دستگاه، مسیر کامل را به زنجیره‌ای از شناسه‌های بخش (Segment Identifiers - SID) تبدیل می‌کنند. با عبور بسته در ستون فقرات شبکه، هر گره پشتیبانی‌کننده از SRv6 شناسه فعال فعلی را خوانده، دستور مرتبط با آن را اجرا کرده و پردازش را به بخش بعدی می‌سپارد.

کالبدشکافی SID ۱۲۸ بیتی: تحلیل اجزای Locator، Function و Arguments

هر شناسه سگمنت در SRv6 دقیقا منطبق بر قالب یک آدرس استاندارد ۱۲۸ بیتی IPv6 بوده و به بخش‌های کاربردی زیر تقسیم می‌شود:

$$ ext{SRv6 SID (128 bits)} = ext{Locator} ,|, ext{Function} ,|, ext{Arguments}$$

  • بخش Locator ($L$ بیت): پیشوند IPv6 اختصاص یافته به یک گره مشخص در شبکه. روترهای ترانزیت میانی بسته را از طریق کوتاه‌ترین مسیر استاندارد IGP به این گره هدایت می‌کنند، حتی اگر خود از SRv6 پشتیبانی نکنند.
  • بخش Function ($F$ بیت): کد عملیاتی (opcode) که دستور مشخصی را تعریف می‌کند (مانند ارسال به پیوند فیزیکی معین، باز کردن بسته و تحویل به جدول VRF مشخص، یا ارسال به فایروال).
  • بخش Arguments ($A$ بیت): پارامترهای اختیاری جهت اجرای دستور، نظیر شناسه جریان ارتباطی یا برچسب کیفیت خدمات.

به عنوان نمونه، در محیطی با پیشوند مکان‌یاب /64 و تابع ۱۶ بیتی، آدرس 2001:db8:acad:1:: دروازه لبه را مشخص ساخته و مقدار 2001:db8:acad:1:0042:: به دروازه دستور می‌دهد تا تابع 0x0042 (مانند هدایت بسته به یک جدول ایزوله VPN) را به اجرا درآورد.

سرایند روتینگ سگمنت (SRH): بررسی ساختار بسته بر اساس RFC 8754

جهت حمل زنجیره‌ای از شناسه‌های سگمنت، استاندارد RFC 8754 سرایند الحاقی جدیدی موسوم به Segment Routing Header (Routing Type 4) را ارائه داده است:

+-------------------------------------------------------------------+
| Next Header (8) | Hdr Ext Len (8) | Routing Type (4) | Segments Left (8) |
+-------------------------------------------------------------------+
| Last Entry (8)  | Flags (8)       | Tag (16)                             |
+-------------------------------------------------------------------+
| Segment List[0] (128 بیت - شناسه سگمنت مقصد نهایی)                |
+-------------------------------------------------------------------+
| Segment List[1] (128 بیت - شناسه سگمنت دستور میانی)               |
+-------------------------------------------------------------------+
| Segment List[2] (128 بیت - شناسه سگمنت گام نخست)                 |
+-------------------------------------------------------------------+

فیلدهای عملیاتی مهم عبارتند از:

  • فیلد Segments Left (SL): نشانگری که ایندکس شناسه سگمنت فعال کنونی در فهرست را مشخص می‌سازد.
  • فیلد Segment List: آرایه‌ای معکوس از آدرس‌های ۱۲۸ بیتی IPv6 (سگمنت ثبت شده در Last Entry ابتدا پردازش شده و سگمنت ایندکس 0 در انتها به عنوان مقصد نهایی اجرا می‌شود).

در طول مسیر، آدرس مقصد بیرونی در بسته IPv6 همواره حاوی سگمنت فعال است. با رسیدن بسته به آن گره، روتر مقدار Segments Left را یک واحد کاهش داده، آدرس بعدی را از Segment List[SL] در مقصد IPv6 جایگزین کرده و بسته را ارسال می‌نماید.

الگوی مسیریابی از مبدا: حذف وضعیت‌های میانی در شبکه‌های ترانزیت

فناوری SRv6 تمام پردازش‌های هوشمند را به لبه ورودی شبکه منتقل می‌سازد. دروازه ورودی بسته به داده‌های دورسنجی، تاخیر زمانی یا توافق‌های سطح خدمات، سیاست ارسال را تنظیم نموده و فهرست سگمنت‌های لازم را به بسته می‌افزاید.

این معماری مزایای عملیاتی بنیادینی به همراه دارد:

  • هسته شبکه کاملا بدون وضعیت: روترهای ترانزیت تنها مسیرهای معمول IPv6 را برای مکان‌یاب‌ها حفظ می‌کنند. آن‌ها نیازی به نگهداری وضعیت نشست‌ها، رزرو پهنای باند یا جداول برچسب MPLS ندارند.
  • اعمال آزادانه سیاست‌ها: دروازه ورودی می‌تواند با درج شناسه‌های مربوطه، ترافیک را از مسیرهای فیبر نوری کم‌تاخیر یا ایستگاه‌های نظارتی خاص عبور دهد.
  • سازگاری طبیعی با بستر موجود: دستگاه‌هایی که از SRv6 پشتیبانی نمی‌کنند، بر اساس پیشوند آدرس مقصد بسته را هدایت کرده و ارتقای تدریجی شبکه را میسر می‌سازند.

بازمسیردهی سریع TI-LFA: جایگزینی قطعی زیر ۵۰ میلی‌ثانیه بدون RSVP-TE

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

فناوری Topology-Independent Loop-Free Alternate (TI-LFA) حفاظتی کاملا خودکار و قطعی را در زمانی کمتر از ۵۰ میلی‌ثانیه بر روی تمام ساختارهای شبکه به ارمغان می‌آورد:

  1. محاسبه پیش‌دستانه مسیرهای جایگزین: روترها مسیرهای پشتیبان را از پیش با الگوریتم دایکسترا با احتساب وضعیت پس از همگرایی تعیین می‌کنند.
  2. پایداری قطعی مسیر: بر خلاف روش قدیمی LFA (RFC 5286) که در شبکه‌های پیچیده با احتمال ایجاد حلقه مواجه بود، TI-LFA مستقیما گره رهایی پس از همگرایی (گره $Q$) را پیدا می‌کند.
  3. تغییر مسیر با سگمنت‌ها: روتر در صورت قطعی پیوند، با افزودن شناسه‌های SRv6 بسته را از کناره بخش آسیب‌دیده به سمت گره $Q$ می‌فرستد تا بدون حلقه به مقصد برسد.

در لحظه رخداد خطا، برد سخت‌افزاری روتر بلافاصله بسته‌ها را درون فهرست سگمنت‌های پشتیبان TI-LFA قرار می‌دهد. این انتقال در زمانی زیر ۵۰ میلی‌ثانیه در سخت‌افزار صورت می‌گیرد و از بروز حلقه‌های موقت و افت بسته ممانعت به عمل می‌آورد.

نگاشت سرویس‌های SRv6: کپسوله‌سازی شبکه‌های همپوشان L3VPN و Anycast

استاندارد RFC 9252 شیوه انتشار سرویس‌های همپوشان VPN را توسط پروتکل MP-BGP روی شبکه SRv6 مشخص می‌کند. به‌جای انتشار برچسب‌های ۳۲ بیتی، پیام‌های BGP شناسه‌های کاربردی SRv6 را توزیع می‌نمایند:

  • توابع End.DT4 و End.DT6: دروازه مقصد پوسته خارجی IPv6 را حذف کرده و بسته داخلی IPv4 یا IPv6 را به جدول مسیریابی مجازی (VRF) مرتبط تحویل می‌دهد.
  • توابع End.DX4 و End.DX6: پوسته را برداشته و ترافیک را به یک رابط اختصاصی کاربر نقطه به نقطه هدایت می‌نماید.
  • شناسه‌های Anycast SID: یک مکان‌یاب مشترک که از مراکز داده متعددی منتشر می‌شود. ترافیک به سمت شناسه Anycast به نزدیک‌ترین دروازه سالم از منظر شبکه ارسال می‌گردد.

این رویکرد یکپارچه، پیاده‌سازی ستون فقرات VPN چندکاربره را ساده ساخته، پروتکل‌های اضافی را حذف کرده و تفکیک امن داده‌ها را تضمین می‌کند.

سربار MTU و میکرو-SID (uSID): غلبه بر تورم سرایندهای الحاقی IPv6

هر شناسه سگمنت ۱۲۸ بیتی در سرایند SRH به میزان ۱۶ بایت سربار به بسته اضافه می‌کند. چنانچه یک مسیر به ۴ شناسه سگمنت نیاز داشته باشد، اندازه بسته ۷۲ بایت افزایش می‌یابد.

برای پیشگیری از تکه‌تکه شدن بسته‌ها و مصرف بهینه پهنای باند، دو راهکار مهندسی اعمال می‌گردد:

  1. به‌کارگیری میکرو-SID (uSID): بر اساس مشخصات فشرده‌سازی در IETF، چندین دستور کوتاه ۱۶ یا ۳۲ بیتی درون یک آدرس منفرد ۱۲۸ بیتی IPv6 بسته‌بندی می‌شوند. به این ترتیب یک سرایند می‌تواند تا ۶ دستور را حمل کند و سربار الحاقی را بیش از ۷۵ درصد کاهش دهد.
  2. تنظیم خودکار مقادیر MSS در TCP: دروازه‌ها در مرحله تبادل اوليه TCP SYN مقدار بیشینه اندازه قطعه داده را کنترل می‌کنند تا اندازه کل بسته هرگز از MTU فیزیکی فراتر نرود.

الزامات امنیتی: محدودسازی قلمرو مورد اعتماد SRv6 در لبه ورودی شبکه

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

استانداردهای RFC 8754 و RFC 8986 مرز قلمرو مورد اعتماد SRv6 (SRv6 Trusted Domain) را تعریف می‌کنند؛ حوزه‌ای کاملا مدیریت‌شده که بسته‌های SRv6 در آن تولید، اعتبارسنجی و پردازش می‌شوند.

اعتبارسنجی امضای HMAC و جلوگیری از دستکاری سرایند SRH

بخش ۲.۱ از استاندارد RFC 8754 امکان استفاده از فیلد اختیاری HMAC TLV را درون سرایند SRH پیش‌بینی کرده است. با استفاده از کلیدهای رمزنگاری از پیش تعیین‌شده، دروازه‌های لبه امضای دیجیتال ایجاد می‌کنند:

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

فیلترینگ مرزی مبتنی بر BCP 38 برای ممانعت از تزریق خارجی SID

روترهای مرزی و فایروال‌های پیرامونی باید ضوابط امنیتی زیر را به کار بندند:

  1. فیلتر ورودی: مسدودسازی و حذف هرگونه بسته دریافتی از اینترنت یا طرف‌های خارجی که حاوی سرایند SRH باشد یا پیشوندهای داخلی شبکه را هدف قرار دهد.
  2. پاکسازی خروجی: حذف کامل سرایندهای SRH پیش از خروج بسته از قلمرو امن جهت عدم افشای ساختار شبکه داخلی.
  3. مقابله با جعل آدرس: اجرای دستورالعمل‌های BCP 38 / RFC 2827 به منظور جلوگیری از جعل آدرس‌های IP متعلق به دروازه‌های داخلی.

شبکه ستون فقرات Anycast رابرد RiceGuard: مهندسی مش قطعی SRv6

سامانه VPNRice از لایه مش RiceGuard در لایه ۳ جهت اتصال مراکز Anycast در مقیاس جهانی از طریق اپراتورهای تراز اول Tier-1 بهره می‌گیرد. در شبکه‌های توزیع‌شده متراکم، اختلالات شرکت‌های ترانزیت می‌تواند تعادل ارتباطات را متزلزل سازد.

معماری RiceGuard با ادغام قابلیت‌های بومی SRv6 پایداری پیوندها و حداقل تاخیر را تضمین می‌کند:

  • پشتیبانی TI-LFA زیر ۳۵ میلی‌ثانیه: روترهای ستون فقرات با فعال‌سازی خودکار TI-LFA، در صورت قطعی پیوند، ترافیک را در کمتر از ۳۵ میلی‌ثانیه به مسیرهای نوری پشتیبان هدایت می‌کنند.
  • مهندسی ترافیک بدون وضعیت: سامانه به شکلی پویا شناسه‌های uSID را به جریان‌های Anycast تزریق می‌کند تا مسیرهای متراکم بدون نیاز به بارگذاری حافظه روترهای هسته دور نگاه داشته شوند.
  • انتقال یکنواخت در رویدادهای تعمیراتی: ترافیک کاربران در زمان تعمیرات دوره‌ای با شناسه‌های ویژه به آرامی و بدون قطع شدن نشست‌ها به مراکز همجوار منتقل می‌گردد.
  • پایش مستمر مشخصات اتصال: سیستم‌های دورسنجی به صورت بلادرنگ وضعیت مسیر و حدود MTU را بررسی می‌کنند. کاربران می‌توانند شاخص‌های اتصال خود را از طریق بخش /what-is-my-ip ارزیابی نمایند.

کاربران گرامی برای تجربه اتصالی پایدار در بسترهای مختلف می‌توانند نرم‌افزارهای رسمی را از بخش /download دریافت کنند. تحلیل فنی اثرات عدم تعادل ترافیک در شبکه‌های چندمسیره در مقاله /news/gre-in-udp-rfc-8086-geneve-ecmp-hash-polarization-vpn و جزئیات پایداری Anycast در هنگام راه‌اندازی مجدد BGP در گزارش /news/bgp-graceful-restart-rfc-4724-llgr-anycast-resilience تشریح شده است.

پیاده‌سازی کاربردی: پیکربندی نقاط پایانی SRv6 و کپسوله‌سازی در لینوکس

هسته لینوکس به صورت پیش‌فرض از قابلیت‌های برنامه‌نویسی شبکه SRv6 و کپسوله‌سازی مسیرها از طریق ابزار iproute2 پشتیبانی می‌کند. مدیران شبکه می‌توانند تنظیمات مربوطه را با دستورات استاندارد اعمال کنند.

فعال‌سازی فورواردینگ IPv6 و ماژول روتینگ سگمنت:

ارسال بسته‌های IPv6 و پردازش seg6 را روی دروازه A فعال سازید:

# فعال‌سازی هدایت IPv6 و ماژول seg6 روی کارت‌های شبکه
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.conf.all.seg6_enabled=1
sysctl -w net.ipv6.conf.eth0.seg6_enabled=1

پیکربندی کپسوله‌سازی SRv6 در لبه ورودی:

هدایت ترافیک خروجی به سمت یک خط‌مشی SRv6 با درج سرایند IPv6 حاوی سگمنت‌ها:

# بسته‌بندی ترافیک ارسالی به مقصد 10.100.0.0/16 در مسیر SRv6
ip -6 route add 10.100.0.0/16 encap seg6 mode encap     segs 2001:db8:beef:2::,2001:db8:acad:1::     dev eth0

در این فرمان، بسته‌های خروجی درون یک پوسته IPv6 قرار می‌گیرند که گام نخست آن 2001:db8:acad:1:: و مقصد نهایی 2001:db8:beef:2:: خواهد بود.

پیکربندی دستور End.DT4 در لبه خروجی:

در دروازه B، نقطه پایانی مکان‌یاب را برای باز کردن بسته و تحویل داده‌های IPv4 به جدول VRF تنظیم کنید:

# اختصاص رفتار End.DT4 به شناسه مکان‌یاب برای تحویل به VRF
ip -6 route add 2001:db8:acad:1::/64 encap seg6local action End.DT4     vrftable 100     dev eth0

بررسی وضعیت مسیرهای SRv6 از طریق دورسنجی:

مشاهده مسیرهای فعال دارای کپسوله‌سازی seg6:

ip -6 route show encap seg6
10.100.0.0/16  encap seg6 mode encap segs 2 [ 2001:db8:beef:2:: 2001:db8:acad:1:: ] dev eth0 metric 1024

بررسی ساختار بسته‌های عبوری با ابزار tcpdump جهت مشاهده سرایند Routing Type 4:

tcpdump -ni eth0 'ip6[6] == 43' -vv
07:18:22.410928 IP6 2001:db8:feed:1:: > 2001:db8:acad:1::: HBH, routing (type 4, segleft 1, [2] 2001:db8:beef:2::, [1] 2001:db8:acad:1::)

خروجی نشان‌دهنده حضور فعال سرایند SRH و جابه‌جایی منظم سگمنت‌ها در طول انتقال بوده و اجرای دقیق مسیریابی از مبدا را در بستر شبکه اثبات می‌کند.