Automation

شبکه‌سازی خودکار با Cisco Crosswork: مدیریت چرخه حیات تجهیزات و سرویس‌ها، Segment Routing و عملیات آماده سازی برای هوش مصنوعی

ژوئن 26, 202622 دقیقه مطالعهبدون دیدگاه

شبکه‌سازی خودکار (Autonomous networking) به یک حلقه عملیاتی بسته وابسته است: موجودی دقیق، دید کامل بر انتقال (Transport visibility)، تأمین سرویس مبتنی بر قصد (Intent-based)، اعتبارسنجی در سمت دستگاه و تله‌متری سلامت سرویس که مورد اعتماد اپراتورها و سیستم‌های اتوماسیون باشد. این مقاله نشان می‌دهد که چگونه Cisco Crosswork Network Controller 7.2 می‌تواند در یک محیط چندفروشنده‌ای (Multivendor) با روترهای لبه ارائه‌دهنده (Provider edge) مبتنی بر IOS XR، یک روتر لبه ارائه‌دهنده Juniper vMX و Cisco SR-PCE عمل کند.

این گردش کار، کشف موجودی (Inventory Discovery)، مهندسی ترافیک Segment Routing، تأمین سرویس L3VPN، افزونه‌های سلامت سرویس (Service Health) مختص Junos و اعتبارسنجی نهایی علائم را به یکدیگر متصل می‌کند. نتیجه این فرآیند، نه تنها یک سرویس VPN تحت نظارت، بلکه یک مدل عملیاتی آماده برای هوش مصنوعی (AI-ready) است که در آن Crosswork می‌تواند وضعیت نرمال‌سازی شده را در میان فروشندگان مختلف ارائه دهد و افت کیفیت واقعی سرویس را از شکاف‌های موجود در جمع‌آوری داده یا بسته‌ها متمایز کند.

سپاسگزاری‌ها

تشکر ویژه از Krishnan Thirukonda، Michael Maddern و Nicola Martino بابت همکاری، راهنمایی و مشارکت‌هایشان در پروژه چند-فروشنده‌ای (Multivendor) CNC 7.2 که در این مقاله شرح داده شده است.

چرا این موضوع اهمیت دارد

در یک شبکه تک‌فروشنده (Single-vendor)، موجودی، توپولوژی، هدف سرویس و تله‌متری سلامت (Health telemetry) اغلب به طور طبیعی با هم همسو هستند، زیرا هر لایه مدل‌های دستگاه و خروجی‌های دستور یکسانی را درک می‌کند. در یک شبکه چندفروشنده (Multivendor)، این همسویی باید مهندسی شود. کار با Junos در این آزمایشگاه، قطعات مورد نیاز برای کارآمد کردن Crosswork جهت عملیات خودکار (Autonomous operations) را نشان می‌دهد:

  • DLM باید دستگاه را با نوع نرم‌افزار (Software Type)، نسخه نرم‌افزار (Software Version) و قابلیت‌های مدیریتی (Management Capabilities) صحیح شناسایی کند.
  • توپولوژی و SR-PCE باید اطمینان حاصل کنند که زیرساخت انتقال (Transport Underlay) و نشست‌های PCEP از سلامت کامل برخوردار هستند.
  • ارائه خدمات (Service provisioning) باید وضعیت سرویس مشابهی را در IOS XR و Junos ایجاد کند.
  • سلامت سرویس (Service Health) باید معیارهای (Metrics) صحیح gNMI، SNMP و CLI را برای هر فروشنده جمع‌آوری کند.
  • هشدارهای باقی‌مانده باید نشان‌دهنده علائم واقعی سرویس باشند، نه خطاهای جمع‌آوری (Collection errors).

این مقاله به بررسی یک آزمایشگاه چندفروشنده‌ای (Multivendor) با استفاده از Cisco Crosswork Network Controller 7.2 می‌پردازد که در آن یک سرویس L3VPN بر روی روترهای لبه ارائه‌دهنده (Provider Edge) با سیستم‌عامل IOS XR و یک روتر لبه ارائه‌دهنده Juniper vMX پیکربندی می‌شود. تمرکز این مقاله تنها بر ارائه سرویس نیست، بلکه بر کل زنجیره مورد نیاز برای کاربردی‌سازی عملیاتی سرویس جهت اتوماسیون در Crosswork و عملیات‌های آینده با کمک هوش مصنوعی (AI-assisted operations) است:

  • شناسایی موجودی دستگاه (Device inventory) و قابلیت‌های آن (Capability discovery)
  • کشف توپولوژی و مهندسی ترافیک (Traffic-Engineering)
  • ارائه سرویس L3VPN
  • اعتبارسنجی سمت دستگاه (Device-side validation)
  • توسعه سلامت سرویس (Service Health) سفارشی برای Junos
  • شکاف‌های شناخته‌شده و درخواست‌های بهبود (Enhancement) مشاهده‌شده در طول این تمرین

این مقاله چه موضوعاتی را پوشش می‌دهد

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

حوزه (Area) موارد اعتبارسنجی شده (What is validated)
موجودی (Inventory) متادیتای Junos DLM، نوع نرم‌افزار، قابلیت‌ها، ابزارهای کمکی موجودی SNMP/CLI و رفتار آپلود بسته (Package)
مهندسی ترافیک (Traffic engineering) پروتکل‌های SR-PCE، BGP-LS، PCEP، SR-TE ODN و مسیریابی آگاه از رنگ (Color-aware path resolution)
تأمین سرویس (Service provisioning) مدل L3VPN VPN-4003، رنگ‌بندی سیاست مسیر (Route-policy color) 4003، ایجاد VRF/اینترفیس و اعتبارسنجی سمت دستگاه
سلامت سرویس (Service health) قوانین سفارشی HP، معیارهای Junos gNMI/SNMP/CLI، بسته دستگاه PCEP و وضعیت نهایی نظارت‌شده
شکاف‌های شناخته‌شده (Known gaps) بهبودهای خط لوله (Pipeline) برای دسته‌بندی PROTO/gNMI و مدیریت انواع پیچیده JSON

توپولوژی آزمایشگاه (Lab Topology)

این آزمایشگاه از Cisco Crosswork Network Controller 7.2 به همراه روترهای Cisco IOS XR، یک روتر Juniper vMX و یک گره (Node) Cisco SR-PCE استفاده می‌کند.

نقش دستگاه یادداشت‌ها
CNC Crosswork Network Controller CNC 7.2
SR-PCE node-10 آدرس PCE198.19.1.10
IOS XR PE node-3 IOS XR 25.3.1
IOS XR PE node-4 IOS XR 25.3.1
Junos PE node-19 Junos 22.3R1.11 vMX

شکل 1: نمای کلی توپولوژی آزمایشگاه (Lab topology)

موجودی دستگاه (Device Inventory) و آماده‌سازی (Onboarding)

اولین پیش‌نیاز این است که نرم‌افزار CNC Device Lifecycle Manager دستگاه Juniper را با متادیتای نرم‌افزاری و قابلیت‌های دسترسی صحیح شناسایی کند. برایnode-19، DLM نمایش داد:

فیلد مقدار
نام میزبان (Hostname) node-19
آدرس IP 172.20.163.40/25
خانواده محصول روترها (Routers)
سری محصول روترهای Juniper Networks vMX
تامین‌کننده Juniper Networks
نوع نرم‌افزار Junos
نسخه نرم‌افزار 22.3R1.11
قابلیت‌ها (Capabilities) SNMP;YANG_CLI;GNMI

این جزئیات نوع نرم‌افزار اهمیت داشت. بسته سلامت سفارشی اصلی دارای برخی پیاده‌سازی‌های متریک Junos بود که با کلیدJUNOSمشخص شده بودند، در حالی که DLM دستگاه را به عنوانJunosشناسایی کرد. فضای نام (Namespace) سفارشی به‌روزرسانی شد تا قوانین HP با نوع نرم‌افزار شناسایی‌شده توسط DLM مطابقت داشته باشد.

اعتبارسنجی دستگاه Junos

On node-19, نسخه روتر و مسیرهای تله‌متری (Telemetry) OpenConfig اعتبارسنجی شدند:

cisco@node-19> show version | no-more
Hostname: node-19
Model: vmx
Junos: 22.3R1.11
JUNOS Openconfig [22.3R1.11]
JUNOS na telemetry [22.3R1.11]
JUNOS RPD Telemetry Application [22.3R1.11]

شناسه شیء سیستم SNMP، پلتفرم را به عنوان vMX شناسایی کرد:

cisco@node-19> show snmp mib walk sysObjectID | no-more
sysObjectID.0 = jnxProductNameVMX
cisco@node-19> show snmp mib walk jnxContentsDescr | no-more
jnxContentsDescr.1.1.0.0 = midplane
jnxContentsDescr.7.1.0.0 = FPC: Virtual FPC @ 0/*/*
jnxContentsDescr.8.1.1.0 = PIC: Virtual @ 0/0/*
jnxContentsDescr.9.1.0.0 = Routing Engine 0
jnxContentsDescr.20.1.1.0 = MIC: Virtual @ 0/0/*
cisco@node-19> show chassis hardware | no-more
Hardware inventory:
Item Version Part number Serial number Description
Chassis VM67C8CD0653 VMX
Routing Engine 0 RE-VMX
CB 0 VMX SCB
FPC 0 Virtual FPC
MIC 0 Virtual
PIC 0 Virtual

عملیات موجودی‌گیری از یک بسته نرم‌افزاری سفارشی Juniper برای دستگاه‌ها در CNC استفاده کرد تا نحوه جمع‌آوری موجودی فیزیکی و منطقی (Logical Inventory) از دستگاه‌های شخص ثالث Juniper را فرا بگیرد. این بسته به جای تکیه بر یک منبع واحد، از ابزارهای CLI و SNMP استفاده می‌کند.

ورودی‌های کمکی موجودی Juniper عبارت بودند از:

CLI:
show lacp interfaces
show interfaces terse
SNMP:
Juniper-specific MIBs:
JUNIPER-MIB
Common MIBs:
ENTITY-MIB
ENTITY-STATE-MIB
IEEE8023-LAG-MIB
IF-MIB
IP-MIB

شکل 2: ورودی‌های بسته موجودی (Inventory) جونیپر

کشف رابط (Interface Discovery)

شکل 3: رابط‌های (Interfaces) شناسایی‌شده Junos

نمای کلی سلامت دستگاه (Device Health Snapshot)

شکل 4: نمای سلامت دستگاه (Device health) برای node-19

گره 19 (Node-19) با شناسه سیستم IS-IS به صورت 0010.0100.0019.00 به همراه لوپ‌بک (Loopback) و پیشوند NLRI ظاهر شد: خروجی زیر از SR-PCE است

RP/0/RP0/CPU0:node-10# show bgp link-state link-state | include 0010.0100.0019.00
*> [V][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0019.00]]/328
*> [T][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0019.00]][P[p198.19.1.19/32]]/400
*> [T][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0019.00]][P[p2010::19/128]]/544
*> [T][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0019.00]][P[p2011::19/128]]/544
The database also included node-19 links to node-7 and node-9, including IPv4 and IPv6 adjacency information:
*> [E][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0007.00]][R[c65000][b0.0.0.0][s0010.0100.0019.00]][L[i17.17.17.7][n17.17.17.19]]/696
*> [E][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0019.00]][R[c65000][b0.0.0.0][s0010.0100.0007.00]][L[i17.17.17.19][n17.17.17.7][i2001::7:19:19][n2001::7:19:7]]/1016
*> [E][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0009.00]][R[c65000][b0.0.0.0][s0010.0100.0019.00]][L[i19.19.19.9][n19.19.19.19]]/696
*> [E][L2][I0x0][N[c65000][b0.0.0.0][s0010.0100.0019.00]][R[c65000][b0.0.0.0][s0010.0100.0009.00]][L[i19.19.19.19][n19.19.19.9][i2001::9:19:19][n2001::9:19:9]]/1016

اتصالات لایه 3 (L3 links) بین node-9 و node-19 توسط CNC و SR-PCE شناسایی شدند. دید مشابهی برای اتصال بین node-7 و node-19 نیز تأیید شد.

شکل 5: کشف لینک لایه 3 (L3) بین گره‌های Junos و IOS XR

مهندسی ترافیک (Traffic Engineering)

مهندسی ترافیک CNC، نمای عملیاتی از زیرساخت (Underlay) مبتنی بر SR را فراهم می‌کند. این قابلیت، توپولوژی دریافت شده از طریق BGP-LS، وضعیت نشست PCEP از SR-PCE، هدف سیاست‌های SR-TE، مسیرهای محاسبه‌شده و معیارهای پایش عملکرد (Performance-monitoring metrics) را با یکدیگر مرتبط می‌سازد. این امر به اپراتورها یک نقطه واحد برای تأیید سلامت انتقال آگاه از رنگ (Color-aware transport) پیش از عیب‌یابی علائم سرویس‌های VPN ارائه می‌دهد.

پیکربندی SR-PCE

SR-PCE دارای همتایان (Peers) فعال PCEP بود، که شامل گره (Node) Junos نیز می‌شد:

RP/0/RP0/CPU0:node-10# show pce ipv4 peer
Peer address: 198.19.1.3
State: Up
Capabilities: Stateful, Segment-Routing, Update, Instantiation, SRv6, SR-P2MP
Peer address: 198.19.1.4
State: Up
Capabilities: Stateful, Segment-Routing, Update, Instantiation, SRv6, SR-P2MP
Peer address: 198.19.1.19
State: Up
Capabilities: Stateful, Segment-Routing, Update, Instantiation

پایگاه داده PCE LSP همچنین دارای LSPهای عملیاتی برای node-19 بود:

RP/0/RP0/CPU0:node-10# show pce lsp summary
All peers:
Number of LSPs: 91
Operational: Up: 72 Down: 19
Setup type: RSVP: 2 Segment routing: 89
Peer 198.19.1.19:
Number of LSPs: 3
Operational: Up: 3 Down: 0
Setup type: RSVP: 0 Segment routing: 3

PCEP از Junos به SR-PCE

On node-19, Junos یک نشست PCE فعال را گزارش کرد:

cisco@node-19> show path-computation-client active-pce | no-more
PCE ID: pce-10
PCE IP address: 198.19.1.10
Local IP address: 198.19.1.19
PCE status: PCE_STATE_UP
Session type: PCE_TYPE_STATEFULACTIVE
LSP provisioning allowed: On

این همان اعتبارسنجی کلیدی در سمت دستگاه بود که نشان می‌داد پروتکل PCEP از سمت Junos PE عملیاتی است.

ارائه سرویس SR-TE ODN و L3VPN

تکنولوژی T-SDN FP برای Junos به سمت جنوب (Southbound) توسعه یافت. پیاده‌سازی مرجع در آدرس زیر موجود است:maddn/tsdn-tme-multi-vendor.

VPN-4003به عنوان یک سرویس L3VPN در سراسر node-3، node-4 و node-19 پیکربندی (Provision) شد. مدل سرویس، پیکربندی‌های VRF، اینترفیس (Interface)، مسیر هدف (Route-target) و سیاست مسیر (Route-policy) را تولید کرد.

قالب ODN:

Show ODN template JSON
{
 "cisco-sr-te-cfp:sr-te": {
 "cisco-sr-te-cfp-sr-odn:odn": {
 "odn-template": [
 {
 "name": "odn_low_latency_4003",
 "performance-measurement": {
 "delay-measurement": {
 "profile": "2wayDelay"
 }
 },
 "head-end": [
 {
 "name": "node-19"
 },
 {
 "name": "node-3"
 },
 {
 "name": "node-4"
 }
 ],
 "color": 4003,
 "dynamic": {
 "pce": {},
 "metric-type": "latency"
 }
 }
 ]
 }
 }
}

محتوای بارگذاری (Payload) سرویس VPN-4003 به همراه خط‌مشی مسیریابی (Route Policy)

Show VPN-4003 service payload JSON
{
 "cisco-l3vpn-routing-policy:l3vpn-routing-policy": {
 "defined-sets": {
 "prefix-sets": {
 "dest-prefix-set": [
 {
 "name": "dest_4003",
 "prefixes": {
 "prefix-list": [
 {
 "ip-prefix": "140.43.3.0/24"
 },
 {
 "ip-prefix": "140.43.4.0/24"
 },
 {
 "ip-prefix": "140.43.19.0/24"
 }
 ]
 }
 }
 ]
 },
 "tag-sets": {
 "tag-set": [
 {
 "name": "color_4003",
 "tag-value": [
 4003
 ]
 }
 ]
 }
 },
 "policy-definitions": {
 "policy-definition": [
 {
 "name": "VPN-4003-ROUTE-POLICY",
 "statements": {
 "statement": [
 {
 "name": "stmnt_4003",
 "conditions": {
 "match-dest-prefix-set": {
 "prefix-set": "dest_4003"
 }
 },
 "actions": {
 "bgp-actions": {
 "set-ext-community": {
 "ext-community-set-ref": "color_4003"
 }
 }
 }
 }
 ]
 }
 }
 ]
 }
 }
}
{
 "ietf-l3vpn-ntw:l3vpn-ntw": {
 "vpn-services": {
 "vpn-service": [
 {
 "vpn-id": "VPN-4003",
 "vpn-service-topology": "ietf-vpn-common:any-to-any",
 "vpn-instance-profiles": {
 "vpn-instance-profile": [
 {
 "profile-id": "VPN-4003-profile",
 "rd": "0:65000:4003",
 "address-family": [
 {
 "address-family": "ietf-vpn-common:ipv4",
 "vpn-targets": {
 "vpn-target": [
 {
 "id": 1,
 "route-targets": [
 {
 "route-target": "0:65000:4003"
 }
 ],
 "route-target-type": "both"
 }
 ],
 "vpn-policies": {
 "export-policy": "VPN-4003-ROUTE-POLICY"
 }
 }
 }
 ]
 }
 ]
 },
 "vpn-nodes": {
 "vpn-node": [
 {
 "vpn-node-id": "node-19",
 "active-vpn-instance-profiles": {
 "vpn-instance-profile": [
 {
 "profile-id": "VPN-4003-profile"
 }
 ]
 },
 "vpn-network-accesses": {
 "vpn-network-access": [
 {
 "id": "vmx-9-vpn4003",
 "interface-id": "HundredGigE0/0/3",
 "connection": {
 "encapsulation": {
 "type": "ietf-vpn-common:dot1q",
 "dot1q": {
 "cvlan-id": 4003
 }
 }
 },
 "ip-connection": {
 "ipv4": {
 "local-address": "140.43.19.1",
 "prefix-length": 24
 }
 },
 "routing-protocols": {
 "routing-protocol": [
 {
 "id": "0",
 "type": "ietf-vpn-common:bgp-routing",
 "bgp": {
 "peer-as": 65002,
 "address-family": "ipv4",
 "neighbor": [
 "140.43.19.2"
 ],
 "redistribute-connected": [
 {
 "address-family": "ietf-vpn-common:ipv4",
 "enable": true
 }
 ],
 "cisco-l3vpn-ntw:mpls-deactivation": false
 }
 }
 ]
 }
 }
 ]
 }
 },
 {
 "vpn-node-id": "node-3",
 "active-vpn-instance-profiles": {
 "vpn-instance-profile": [
 {
 "profile-id": "VPN-4003-profile"
 }
 ]
 },
 "vpn-network-accesses": {
 "vpn-network-access": [
 {
 "id": "node-3-vpn4003",
 "interface-id": "TenGigE0/0/0/13",
 "connection": {
 "encapsulation": {
 "type": "ietf-vpn-common:dot1q",
 "dot1q": {
 "cvlan-id": 4003
 }
 }
 },
 "ip-connection": {
 "ipv4": {
 "local-address": "140.43.3.1",
 "prefix-length": 24
 }
 },
 "routing-protocols": {
 "routing-protocol": [
 {
 "id": "0",
 "type": "ietf-vpn-common:bgp-routing",
 "bgp": {
 "peer-as": 65000,
 "address-family": "ipv4",
 "neighbor": [
 "140.43.3.2"
 ],
 "redistribute-connected": [
 {
 "address-family": "ietf-vpn-common:ipv4",
 "enable": true
 }
 ],
 "cisco-l3vpn-ntw:mpls-deactivation": false
 }
 }
 ]
 }
 }
 ]
 }
 },
 {
 "vpn-node-id": "node-4",
 "active-vpn-instance-profiles": {
 "vpn-instance-profile": [
 {
 "profile-id": "VPN-4003-profile"
 }
 ]
 },
 "vpn-network-accesses": {
 "vpn-network-access": [
 {
 "id": "node-4-vpn4003",
 "interface-id": "TenGigE0/0/0/16",
 "connection": {
 "encapsulation": {
 "type": "ietf-vpn-common:dot1q",
 "dot1q": {
 "cvlan-id": 4003
 }
 }
 },
 "ip-connection": {
 "ipv4": {
 "local-address": "140.43.4.1",
 "prefix-length": 24
 }
 },
 "routing-protocols": {
 "routing-protocol": [
 {
 "id": "0",
 "type": "ietf-vpn-common:bgp-routing",
 "bgp": {
 "peer-as": 65000,
 "address-family": "ipv4",
 "neighbor": [
 "140.43.4.2"
 ],
 "redistribute-connected": [
 {
 "address-family": "ietf-vpn-common:ipv4",
 "enable": true
 }
 ],
 "cisco-l3vpn-ntw:mpls-deactivation": false
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
 ]
 }
 }
}

تأیید سرویس VPN

شکل 6: تأیید سرویس VPN-4003

جزئیات رابط (Interface) بین PE و CE در Node-19

شکل 7: جزئیات رابط (Interface) PE-CE در node-19

پیکربندی (Configuration) تأمین‌شده توسط Junos که توسط CNC ارسال شده است

رابط سرویس‌دهنده Junos به عنوان واحد منطقی (logical unit) پیکربندی شد4003 on et-0/0/3:

<device>
 <name>node-19</name>
 <config>
 <configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm">
 <interfaces>
 <interface>
 <name>et-0/0/3</name>
 <vlan-tagging/>
 <unit>
 <name>4003</name>
 <vlan-id>4003</vlan-id>
 <family>
 <inet>
 <address>
 <name>140.43.19.1/24</name>
 </address>
 </inet>
 </family>
 </unit>
 </interface>
 </interfaces>
 <routing-options>
 <dynamic-tunnels>
 <dynamic-tunnel>
 <name>dynamic-tunnel-odn</name>
 <spring-te>
 <source-routing-path-template>
 <name>odn_low_latency_4003</name>
 <color>4003</color>
 </source-routing-path-template>
 <destination-networks>
 <name>0.0.0.0/0</name>
 </destination-networks>
 </spring-te>
 </dynamic-tunnel>
 </dynamic-tunnels>
 </routing-options>
 <policy-options>
 <policy-statement>
 <name>VPN-4003-ROUTE-POLICY-export-add-color</name>
 <term>
 <name>color-4003</name>
 <from>
 <protocol>direct</protocol>
 </from>
 <then>
 <community>
 <key1>add</key1>
 <community-name>color-4003</community-name>
 </community>
 </then>
 </term>
 </policy-statement>
 <policy-statement>
 <name>VPN-4003-export</name>
 <term>
 <name>ipv4</name>
 <from>
 <family>inet</family>
 <protocol>bgp</protocol>
 <protocol>direct</protocol>
 </from>
 <then>
 <community>
 <key1>add</key1>
 <community-name>VPN-4003-ipv4-community-export</community-name>
 </community>
 <accept/>
 </then>
 </term>
 </policy-statement>
 <policy-statement>
 <name>VPN-4003-import</name>
 <term>
 <name>ipv4</name>
 <from>
 <family>inet</family>
 <protocol>bgp</protocol>
 <community>VPN-4003-ipv4-community-import</community>
 </from>
 <then>
 <accept/>
 <resolution-map>map-ip-color</resolution-map>
 </then>
 </term>
 </policy-statement>
 <community>
 <name>VPN-4003-ipv4-community-export</name>
 <members>target:41:41</members>
 <members>target:65000:4003</members>
 </community>
 <community>
 <name>VPN-4003-ipv4-community-import</name>
 <members>target:41:41</members>
 <members>target:65000:4003</members>
 </community>
 <community>
 <name>color-4003</name>
 <members>color:0:4003</members>
 </community>
 <resolution-map>
 <name>map-ip-color</name>
 <mode>ip-color</mode>
 </resolution-map>
 </policy-options>
 <class-of-service>
 <interfaces>
 <interface>
 <name>et-0/0/3</name>
 <unit>
 <name>4003</name>
 </unit>
 </interface>
 </interfaces>
 </class-of-service>
 <routing-instances>
 <instance>
 <name>VPN-4003</name>
 <instance-type>vrf</instance-type>
 <interface>
 <name>et-0/0/3.4003</name>
 </interface>
 <route-distinguisher>
 <rd-type>65000:4003</rd-type>
 </route-distinguisher>
 <vrf-import>VPN-4003-import</vrf-import>
 <vrf-export>VPN-4003-ROUTE-POLICY-export-add-color</vrf-export>
 <vrf-export>VPN-4003-export</vrf-export>
 <vrf-table-label/>
 <routing-options>
 <autonomous-system/>
 </routing-options>
 <protocols>
 <bgp>
 <group>
 <name>external-peers</name>
 <type>external</type>
 <neighbor>
 <name>140.43.19.2</name>
 <peer-as>65002</peer-as>
 </neighbor>
 </group>
 </bgp>
 <source-packet-routing>
 <compute-profile>
 <name>odn_low_latency_4003-profile</name>
 <maximum-computed-segment-lists>1</maximum-computed-segment-lists>
 <metric-type>
 <delay>
 <minimum/>
 </delay>
 </metric-type>
 </compute-profile>
 <source-routing-path-template>
 <name>odn_low_latency_4003</name>
 <lsp-external-controller>pccd</lsp-external-controller>
 <primary>
 <name>odn_low_latency_4003-dynamic</name>
 <compute>
 <compute-profile-name>odn_low_latency_4003-profile</compute-profile-name>
 </compute>
 </primary>
 </source-routing-path-template>
 </source-packet-routing>
 </protocols>
 </instance>
 </routing-instances>
 </configuration>
 </config>
</device>

تأیید Node-19

جدول مسیریابی (Route table)، قابلیت دسترسی (Reachability) به سایر سایت‌های VPN را از طریق هسته SR نشان می‌داد:

cisco@node-19> show route table VPN-4003.inet.0 | no-more
VPN-4003.inet.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
140.43.3.0/24 *[BGP/170] via 198.19.2.6
Label operation: Push 25623, Push 15003(top)
140.43.4.0/24 *[BGP/170] via 198.19.2.6
Label operation: Push 25622, Push 15009, Push 15003(top)
140.43.19.1/32 *[Local/0] Reject
140.43.19.19/32 *[Direct/0] via lo0.4003
Finally, the VPN routes in VPN-4003.inet.0 were resolved to the color-specific protocol next hops:
140.43.3.0/24
Communities: target:41:41 target:65000:4003 color:0:4003
Protocol next hop: 198.19.1.3-4003<c>
Label operation: Push 25623, Push 15003(top)
140.43.4.0/24
Communities: target:41:41 target:65000:4003 color:0:4003
Protocol next hop: 198.19.1.4-4003<c>
Label operation: Push 25622, Push 15009, Push 15003(top)

پیکربندی (Configuration) آماده‌سازی شده در IOS XR

در node-3، پروتکل VRF و سیاست مسیر خروجی (export route-policy) پیکربندی شدند:

RP/0/RP0/CPU0:node-3# show running-config vrf VPN-4003
vrf VPN-4003
address-family ipv4 unicast
import route-target
41:41
65000:4003
!
export route-policy VPN-4003-ROUTE-POLICY
export route-target
41:41
65000:4003
!
!
!

سیاست مسیریابی (route-policy) پیشوندهای VPN مربوطه را با رنگ (color) برچسب‌گذاری کرد4003، که منجر به ایجاد سیاست BGP ODN SR-TE شد:

RP/0/RP0/CPU0:node-3# show running-config route-policy VPN-4003-ROUTE-POLICY
route-policy VPN-4003-ROUTE-POLICY
if destination in (140.43.19.0/24, 140.43.3.0/24, 140.43.4.0/24) then
set extcommunity color COLOR_4003
endif
end-policy
!

Node-4 دارای همان مدل VRF و سیاست مسیریابی (route-policy) بود:

RP/0/RP0/CPU0:node-4# show running-config vrf VPN-4003
vrf VPN-4003
address-family ipv4 unicast
import route-target
41:41
65000:4003
!
export route-policy VPN-4003-ROUTE-POLICY
export route-target
41:41
65000:4003
!
!
!
RP/0/RP0/CPU0:node-4# show running-config route-policy VPN-4003-ROUTE-POLICY
route-policy VPN-4003-ROUTE-POLICY
if destination in (140.43.19.0/24, 140.43.3.0/24, 140.43.4.0/24) then
set extcommunity color COLOR_4003
endif
end-policy
!

زیر-اینترفیس‌های (subinterfaces) سرویس‌دهنده IOS XR نیز از طریق پیکربندی در حال اجرا (running configuration) مورد اعتبارسنجی قرار گرفتند.

گره-3 (Node-3)

RP/0/RP0/CPU0:node-3# show running-config interface TenGigE0/0/0/13.4003
interface TenGigE0/0/0/13.4003
description T-SDN Interface
vrf VPN-4003
ipv4 address 140.43.3.1 255.255.255.0
encapsulation dot1q 4003
!

گره-4:

RP/0/RP0/CPU0:node-4# show running-config interface TenGigE0/0/0/16.4003
interface TenGigE0/0/0/16.4003
description T-SDN Interface
vrf VPN-4003
ipv4 address 140.43.4.1 255.255.255.0
encapsulation dot1q 4003
!

اعتبارسنجی SR-TE ODN

پس از اعمال رنگ سیاست مسیریابی (route-policy color)، سیستم عامل IOS XR سیاست‌های BGP ODN SR-TE را برای دسترسی (reachability) به VPN ایجاد کرد.

در گره-3 (node-3)، سیاست (policy) مربوط به نقطه پایانی (endpoint) Junos PE198.19.1.19فعال بود:

Color: 4003, End-point: 198.19.1.19
Name: srte_c_4003_ep_198.19.1.19
Status:
Admin: up Operational: up
Candidate-paths:
Preference: 100 (BGP ODN) (active)
Dynamic (pce 198.19.1.10) (valid)
Metric Type: LATENCY
Path Accumulated Metric: 14
Attributes:
Binding SID: 25636
Path Type: SRMPLSv4

در node-4، سیاست (Policy) مربوط به نقطه پایانی (Endpoint) Junos PE نیز فعال بود:

Color: 4003, End-point: 198.19.1.19
Name: srte_c_4003_ep_198.19.1.19
Status:
Admin: up Operational: up
Candidate-paths:
Preference: 100 (BGP ODN) (active)
Dynamic (pce 198.19.1.10) (valid)
Metric Type: LATENCY
Path Accumulated Metric: 25
Attributes:
Binding SID: 25631
Path Type: SRMPLSv4
cisco@node-19> show spring-traffic-engineering lsp | no-more
To State LSPname
198.19.1.3-4003<c> Up 198.19.1.3:fa3:dt-srte-dynamic-tunnel-odn
198.19.1.4-4003<c> Up 198.19.1.4:fa3:dt-srte-dynamic-tunnel-odn
Total displayed LSPs: 3 (Up: 3, Down: 0)

جدولinetcolor.0تأیید کرد که گام‌های بعدی (next hops) آگاه از رنگ برای node-3 و node-4 از طریق SPRING-TE حل شده‌اند:

cisco@node-19> show route table inetcolor.0 | no-more
198.19.1.3-4003<c>/64
*[SPRING-TE/8] metric 20, metric2 30
> to 17.17.17.7 via et-0/0/0.0, Push 15003
198.19.1.4-4003<c>/64
*[SPRING-TE/8] metric 30, metric2 30
> to 17.17.17.7 via et-0/0/0.0, Push 15009, Push 15003(top)
cisco@node-19> show spring-traffic-engineering lsp color 4003 detail
Name: 198.19.1.3:fa3:dt-srte-dynamic-tunnel-odn
Tunnel-source: Dynamic Tunnel Module(DTM)
Tunnel Forward Type: SRMPLS
Tunnel-template: odn_low_latency_4003
To: 198.19.1.3-4003<c>
State: Up
Path: odn_low_latency_4003-dynamic
Path Status: NA
Outgoing interface: NA
Delegation info:
Control-status: Externally controlled
Routing-status: Externally routed
Auto-translate status: Disabled Auto-translate result: N/A
BFD status: N/A BFD name: N/A
Segment ID: 128
ERO Valid: true
SR-ERO hop count: 2
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 17.17.17.19 -> 17.17.17.7
SID type: 20-bit label, Value: 19
Hop 2 (Strict):
NAI: IPv4 Adjacency ID, 10.3.7.7 -> 10.3.7.3
SID type: 20-bit label, Value: 15003
Name: 198.19.1.4:fa3:dt-srte-dynamic-tunnel-odn
Tunnel-source: Dynamic Tunnel Module(DTM)
Tunnel Forward Type: SRMPLS
Tunnel-template: odn_low_latency_4003
To: 198.19.1.4-4003<c>
State: Up
Path: odn_low_latency_4003-dynamic
Path Status: NA
Outgoing interface: NA
Delegation info:
Control-status: Externally controlled
Routing-status: Externally routed
Auto-translate status: Disabled Auto-translate result: N/A
BFD status: N/A BFD name: N/A
Segment ID: 128
ERO Valid: true
SR-ERO hop count: 3
Hop 1 (Strict):
NAI: IPv4 Adjacency ID, 17.17.17.19 -> 17.17.17.7
SID type: 20-bit label, Value: 19
Hop 2 (Strict):
NAI: IPv4 Adjacency ID, 10.3.7.7 -> 10.3.7.3
SID type: 20-bit label, Value: 15003
Hop 3 (Strict):
NAI: IPv4 Adjacency ID, 10.3.4.3 -> 10.3.4.4
SID type: 20-bit label, Value: 15009
Total displayed LSPs: 2 (Up: 2, Down: 0)
cisco@node-19>

اندازه‌گیری عملکرد (Performance Measurement) پروتکل SR روی Node-3

اندازه‌گیری عملکرد SR تأیید می‌کند که خط‌مشی (Policy) SR-TE نه تنها ایجاد شده، بلکه به‌طور فعال تأخیر مسیر (Path Delay) و اتلاف بسته (Packet Loss) را اندازه‌گیری می‌کند. در این آزمایشگاه، node-3 اندازه‌گیری‌های تأخیر را برای خط‌مشی‌های با رنگ (Color) 4003 به سمت نقطه پایانی (Endpoint) Junos و نقطه پایانی IOS XR گزارش کرد که ثابت می‌کند تله‌متری انتقال (Transport Telemetry) برای اعتبارسنجی مهندسی ترافیک CNC در دسترس بوده است. همچنین خروجی مشابهی برای node-4 مشاهده می‌شود.

RP/0/RP0/CPU0:node-3# show performance-measurement sr-policy color 4003
Thu Jun 25 22:49:31.839 UTC
----------------------------------------------------------------------------------------------------------------------------------------------------------------
0/RP0/CPU0
----------------------------------------------------------------------------------------------------------------------------------------------------------------
SR Policy name: srte_c_4003_ep_198.19.1.19
Color: 4003
SRv6 Encap Source Address: 2010::3
Endpoint: 198.19.1.19
Number of candidate-paths: 1
Candidate-Path:
Instance: 6
Preference: 100
Protocol-origin: BGP (20)
Discriminator: 100
Profile Keys:
Profile name: 2wayDelay
Profile type: Generic Delay Measurement
Source address: 198.19.1.3
Number of segment-lists: 1
Timestamp source: Hardware (local)
Timestamp format: PTP
Last advertisement:
Advertised at: Jun 25 2026 22:36:36.117 (775.759 seconds ago)
Advertised delays (uSec): avg: 412, min: 99, max: 18246, variance: 313
Packets sent: 2000, received: 1999, lost: 1
Min-Max A flag set: False
Anomaly-Loss A flag set: False
Next advertisement:
Check scheduled at the end of the current computation (roughly every 60 seconds)
No probes completed
Rolling average (uSec): 415
Last computation:
Packets sent: 2000, received: 2000, lost: 0
Measured delays (uSec): avg: 409, min: 116, max: 18877, variance: 293
Min-Max A flag set: False
Anomaly-Loss A flag set: False
Current computation:
Started at: Jun 25 2026 22:48:57.975 (33.901 seconds ago)
Packets sent: 1097, received: 1097, lost: 0
Measured delays (uSec): avg: 488, min: 112, max: 19622, variance: 376
Next probe scheduled at: Jun 25 2026 22:49:58.983 (in 27.107 seconds)
Next packet will be sent in 0.17 seconds
Packet sent every 0.30000 seconds
Liveness Detection: Disabled
SR Policy name: srte_c_4003_ep_198.19.1.4
Color: 4003
SRv6 Encap Source Address: 2010::3
Endpoint: 198.19.1.4
Number of candidate-paths: 1
Candidate-Path:
Instance: 2
Preference: 100
Protocol-origin: BGP (20)
Discriminator: 100
Profile Keys:
Profile name: 2wayDelay
Profile type: Generic Delay Measurement
Source address: 198.19.1.3
Number of segment-lists: 1
Timestamp source: Hardware (local)
Timestamp format: PTP
Last advertisement:
Advertised at: Jun 25 2026 13:11:05.811 (34706.65 seconds ago)
Advertised delays (uSec): avg: 8, min: 6, max: 12, variance: 2
Packets sent: 2000, received: 1999, lost: 1
Min-Max A flag set: False
Anomaly-Loss A flag set: False
Next advertisement:
Check scheduled at the end of the current computation (roughly every 60 seconds)
No probes completed
Rolling average (uSec): 8
Last computation:
Packets sent: 2000, received: 2000, lost: 0
Measured delays (uSec): avg: 8, min: 6, max: 13, variance: 2
Min-Max A flag set: False
Anomaly-Loss A flag set: False
Current computation:
Started at: Jun 25 2026 22:49:16.688 (15.188 seconds ago)
Packets sent: 492, received: 492, lost: 0
Measured delays (uSec): avg: 8, min: 6, max: 12, variance: 2
Next probe scheduled at: Jun 25 2026 22:50:17.133 (in 45.257 seconds)
Next packet will be sent in 0.17 seconds
Packet sent every 0.30000 seconds
Liveness Detection: Disabled

این موضوع تأیید می‌کند که لایه انتقال SR-TE و منطق BGP color/ODN به درستی کار می‌کردند.

تجسم مهندسی ترافیک (Traffic Engineering) در CNC:

شکل 8: نمای توپولوژی مهندسی ترافیک (Traffic Engineering) در CNC

شکل 9: تصویرسازی مسیر SR-TE

شکل 10: بصری‌سازی (Visualization) سیاست‌های آگاه از رنگ (Color-aware)

معیارهای نظارت بر عملکرد (Performance-monitoring metrics):

شکل 11: معیارهای نظارت بر عملکرد (Performance-monitoring metrics)

افزونه سلامت سرویس (Service Health Extension) برای Junos

سرویس سلامت CNC از بسته‌های اکتشافی (Heuristic packages) برای تعریف قوانین، زیرسرویس‌ها، معیارها (Metrics)، آستانه‌ها (Thresholds) و علائم (Symptoms) استفاده می‌کند. فضای نام (Namespace) سیستم در حال حاضر رفتار Cisco IOS XR را پوشش می‌دهد. برای Junos، نیاز به یک فضای نام HP سفارشی بود.

تمرکز کار سفارشی HP بر روی این زیرخدمات (Subservices) بود:

زیرسرویس (Subservice) هدف (Purpose)
subservice.l3vpn.vpn.node.summary custom خلاصه وضعیت سلامت L3VPN در هر گره (Node)
subservice.interface.health custom سلامت رابط (Interface) دسترسی VPN
subservice.device.health custom سلامت پردازنده (CPU) و حافظه (Memory) دستگاه
subservice.bgp.nbr.health custom سلامت همسایگی (Neighbor) پروتکل BGP هسته
subservice.ebgp.nbr.health custom سلامت همسایگی (Neighbor) پروتکل eBGP در VRF
subservice.vrf.route.health custom سلامت دسترسی‌پذیری مسیر (Route) در VRF
subservice.pcep.session.health custom سلامت نشست (Session) پروتکل PCEP
subservice.dynamic.l3vpn.sr.policy custom سلامت سیاست (Policy) مسیریابی بخش‌بندی شده (SR) برای رنگ/نقاط پایانی VPN
subservice.sr.policy.pm.health custom سلامت نظارت بر عملکرد (Performance-Monitoring) سیاست SR برای سیستم‌عامل IOS XR

جزئیات در GitHub موجود است:بسته اکتشافی سلامت سرویس چند-فروشنده (Multivendor Service Health Heuristic Package) نسخه 7.2 برای Junos

وضعیت نهایی سلامت سرویس (Service Health State)

پس از به‌روزرسانی‌های بسته CLI سفارشی HP و PCEP، در CNC نمایش داده شدVPN-4003با:

Monitoring status: Success
Subservices: 27
Good: 17
Degraded: 10
Down: 0
Active symptoms: 4

شکل 12: خلاصه سلامت سرویس (service-health) در VPN-4003

شکل 13: جزئیات سلامت زیرسرویس (Subservice) در VPN-4003

شکل 14: علائم فعال VPN-4003

علائم فعال باقی‌مانده، علائم واقعی سرویس بودند، نه خطاهای جمع‌آوری (Collection failures):

eBGP Session to neighbor 140.43.3.2 is not up for Device: node-3, Vrf: VPN-4003
eBGP Session to neighbor 140.43.19.2 is not up for Device: node-19, Vrf: VPN-4003
VPN interface HundredGigE0/0/3.4003 operational status is not up.
eBGP Session to neighbor 140.43.4.2 is not up for Device: node-4, Vrf: VPN-4003

اعتبارسنجی دستگاه، این علائم را تأیید کرد.

در node-19، رابط (Interface) شبکه خصوصی مجازی (VPN) متصل به سمت CE قطع بود و همسایه (Neighbor) پروتکل eBGP در VRF در وضعیت غیرفعال (Idle) قرار داشت:

cisco@node-19> show bgp summary | no-more
Peer AS InPkt OutPkt Out
Q Flaps Last Up/Dwn State
140.43.19.2 65002 0 0 0 0 Idle
cisco@node-19> show bgp neighbor 140.43.19.2 | match "Peer|State|Error|flap"
Peer: 140.43.19.2 AS 65002 Local: unspecified AS 65000
Type: External State: Idle Flags: <PeerInterfaceUnknown>
Last Error: None
Number of flaps: 0

در node-3، همسایه VPN CE فعال (Active) بود:

RP/0/RP0/CPU0:node-3# show bgp vrf VPN-4003 ipv4 unicast summary
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd
140.43.3.2 0 65000 0 0 0 0 0 00:00:00 Active

در node-4، همسایه VPN CE نیز در وضعیت فعال (Active) بود:

RP/0/RP0/CPU0:node-4# show bgp vrf VPN-4003 ipv4 unicast summary
Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd
140.43.4.2 0 65000 0 0 0 0 0 00:00:00 Active

این رفتار مطلوب برای سلامت سرویس (Service Health) است و شرایط واقعی افت کیفیت سرویس (Degraded Service) را گزارش می‌دهد.

دستورات اعتبارسنجی (Validation) کاربردی

Junosnode-19

show version | no-more
show snmp mib walk sysObjectID | no-more
show snmp mib walk entPhysicalDescr | no-more
show snmp mib walk jnxContentsDescr | no-more
show chassis hardware | no-more
show configuration interfaces et-0/0/3 | display set | no-more
show interfaces et-0/0/3.4003 | no-more
show configuration routing-instances VPN-4003 | display set | no-more
show route table VPN-4003.inet.0 | no-more
show bgp summary | no-more
show bgp neighbor 140.43.19.2 | no-more
show path-computation-client active-pce | no-more
show network-agent statistics gnmi brief | no-more

IOS XRnode-3وnode-4

show running-config vrf VPN-4003
show running-config route-policy VPN-4003-ROUTE-POLICY
show bgp vrf VPN-4003 ipv4 unicast summary
show bgp neighbor brief
show route vrf VPN-4003 ipv4 unicast
show segment-routing traffic-eng policy

SR-PCEnode-10

show running-config pce
show pce ipv4 peer
show pce ipv4 peer detail
show pce lsp summary
show bgp link-state link-state summary
show bgp neighbor brief

نتیجه‌گیری

شبکه‌سازی خودکار (Autonomous networking) و عملیات مبتنی بر هوش مصنوعی (AI-assisted operations) به چیزی فراتر از تأمین خودکار سرویس نیاز دارند. این موارد به یک حلقه عملیاتی بسته (closed operational loop) وابسته هستند که در آن موجودی (inventory)، توپولوژی (topology)، مهندسی ترافیک (traffic engineering)، هدف سرویس (service intent)، اعتبارسنجی دستگاه (device validation) و تله‌متری (telemetry) به‌طور مداوم با یکدیگر همسو می‌شوند. هنگامی که این منابع داده با هم توافق داشته باشند، اتوماسیون می‌تواند تصمیمات ایمن‌تری اتخاذ کند، سیستم‌های هوش مصنوعی می‌توانند بر اساس وضعیت قابل‌اعتماد شبکه استدلال کنند و اپراتورها می‌توانند بر تأثیر واقعی سرویس تمرکز نمایند.

در این آزمایشگاه، Cisco Crosswork Network Controller 7.2 از L3VPN برای ایجاد این حلقه در سراسر IOS XR و Junos استفاده کرد. DLM دستگاه Juniper vMX را با متادیتا و قابلیت‌های نرم‌افزاری صحیح شناسایی کرد، SR-PCE زیرساخت (Underlay) مسیریابی قطعه‌بندی شده (Segment Routing) و وضعیت PCEP را اعتبارسنجی نمود، T-SDN provisioning هدف سرویس (Service Intent) L3VPN را ایجاد کرد و افزونه‌های سفارشی سلامت سرویس (Service Health) در Junos، سیستم CNC را از وضعیت جمع‌آوری خطاهای عمومی به سمت شناسایی علائم سرویس قابل‌اقدام (Actionable service symptoms) ارتقا داد.

مهم‌ترین دستاورد این است که CNC می‌تواند سلامت شبکه انتقال (Transport) را از افت کیفیت در لبه سرویس (Service-edge) تشخیص دهد، وضعیت را در میان تجهیزات تولیدکنندگان مختلف یکپارچه (Normalize) کند و علائمی را گزارش دهد که با شواهد موجود در سمت دستگاه مطابقت دارند. این موضوع، زیربنای یک مدل عملیاتی آماده برای هوش مصنوعی (AI-ready) است: موجودی قابل اعتماد، شبکه انتقال اعتبارسنجی‌شده، سرویس‌های آگاه از قصد (Intent-aware) و تله‌متری سلامت سرویس که اپراتورها و سیستم‌های اتوماسیون می‌توانند بر اساس آن اقدام کنند.

مراجع

اشتراک‌گذاری:

دیدگاه خود را بنویسید