{"id":236,"date":"2026-04-28T00:00:00","date_gmt":"2026-04-27T20:30:00","guid":{"rendered":"https:\/\/www.anynet.ir\/blog\/%d9%85%d8%b9%d8%b1%d9%81%db%8c-gnsi-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%85%d8%ac%d9%88%d8%b2-%d9%88-%d8%ad%d8%b3%d8%a7%d8%a8%d8%b1%d8%b3%db%8c-aaa-%d9%85%d8%a8%d8%aa%d9%86\/"},"modified":"2026-10-19T16:16:42","modified_gmt":"2026-10-19T12:46:42","slug":"%d9%85%d8%b9%d8%b1%d9%81%db%8c-gnsi-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%85%d8%ac%d9%88%d8%b2-%d9%88-%d8%ad%d8%b3%d8%a7%d8%a8%d8%b1%d8%b3%db%8c-aaa-%d9%85%d8%a8%d8%aa%d9%86","status":"publish","type":"post","link":"https:\/\/www.anynet.ir\/blog\/%d9%85%d8%b9%d8%b1%d9%81%db%8c-gnsi-%d8%a7%d8%ad%d8%b1%d8%a7%d8%b2-%d9%87%d9%88%db%8c%d8%aa-%d9%85%d8%ac%d9%88%d8%b2-%d9%88-%d8%ad%d8%b3%d8%a7%d8%a8%d8%b1%d8%b3%db%8c-aaa-%d9%85%d8%a8%d8%aa%d9%86\/","title":{"rendered":"\u0645\u0639\u0631\u0641\u06cc gNSI: \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a\u060c \u0645\u062c\u0648\u0632 \u0648 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (AAA) \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 gRPC \u0628\u0631\u0627\u06cc Cisco IOS XR"},"content":{"rendered":"<div><\/div>\n<div>\n<div><\/div>\n<\/div>\n<div>\n<div>\n<div>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0645\u0634\u06a9\u0644<\/h2>\n<p style=\"direction: rtl; text-align: right\">\u0628\u0631\u0627\u06cc CLI\u060c NETCONF \u0648 SNMP\u060c \u0627\u0645\u0646\u06cc\u062a \u06cc\u06a9 \u0645\u0633\u0626\u0644\u0647 \u062d\u0644\u200c\u0634\u062f\u0647 \u0627\u0633\u062a. AAA (\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)\u060c \u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u0648 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting)) \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 TACACS+ \u0648 Syslog \u0647\u0631 \u0633\u0647 \u0631\u06a9\u0646 \u0627\u0635\u0644\u06cc \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. \u0627\u0645\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a (Management Plane) \u0628\u0647 \u0633\u0645\u062a gRPC \u0648 gNMI \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u060c \u0647\u0645\u0627\u0646 \u062f\u0627\u0633\u062a\u0627\u0646 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0622\u0646 \u0645\u0646\u062a\u0642\u0644 \u0646\u0634\u062f.<strong style=\"color: rgb(26, 26, 26)\">A<\/strong>\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)\u060c<strong style=\"color: rgb(26, 26, 26)\">A<\/strong>\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u0648<strong style=\"color: rgb(26, 26, 26)\">A<\/strong>\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting) \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 TACACS+ \u0648 Syslog \u0647\u0631 \u0633\u0647 \u0631\u06a9\u0646 \u0627\u0635\u0644\u06cc \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u0645\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0635\u0641\u062d\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a (Management Plane) \u0628\u0647 \u0633\u0645\u062a gRPC \u0648 gNMI \u062d\u0631\u06a9\u062a \u06a9\u0631\u062f\u060c \u0647\u0645\u0627\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0627\u0645\u0646\u06cc\u062a\u06cc \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0622\u0646 \u0645\u0646\u062a\u0642\u0644 \u0646\u0634\u062f.<\/p>\n<p style=\"direction: rtl; text-align: right\">\u067e\u0631\u0648\u062a\u06a9\u0644 TLS \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication) \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u0647\u06cc\u0686 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0648\u0627\u062d\u062f\u06cc \u0628\u0631\u0627\u06cc \u0646\u062d\u0648\u0647 \u00ab\u0645\u062f\u06cc\u0631\u06cc\u062a\u00bb \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627 (Certificates) \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f\u061b \u0645\u0648\u0627\u0631\u062f\u06cc \u0646\u0638\u06cc\u0631 \u0635\u062f\u0648\u0631\u060c \u062a\u0645\u062f\u06cc\u062f\u060c \u0627\u0628\u0637\u0627\u0644\u060c \u0648 \u0686\u0631\u062e\u0634 \u062f\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0627\u0639\u062a\u0645\u0627\u062f (Trust Bundles) \u0648 \u0644\u06cc\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u0628\u0637\u0627\u0644 \u06af\u0648\u0627\u0647\u06cc (CRLs). \u0627\u06a9\u062b\u0631 \u0627\u067e\u0631\u0627\u062a\u0648\u0631\u0647\u0627 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0647 \u06a9\u067e\u06cc \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc PEM \u06cc\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u0647\u0631 \u0641\u0631\u0648\u0634\u0646\u062f\u0647 (Vendor-specific tools) \u0631\u0648\u06cc \u0645\u06cc\u200c\u0622\u0648\u0631\u0646\u062f.<\/p>\n<p style=\"direction: rtl; text-align: right\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authorization) \u0628\u062f\u062a\u0631 \u0634\u062f\u060c \u0646\u0647 \u0628\u0647\u062a\u0631. gRPC \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0633\u0637\u062d \u0633\u0631\u0648\u06cc\u0633 (Service-level control) \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f (\u00ab\u0622\u06cc\u0627 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f gNMI Set \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f\u061f\u00bb) \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 gNMI \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0633\u0637\u062d \u0645\u0633\u06cc\u0631 (Path-level control) \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f (\u00ab\u0622\u06cc\u0627 \u0627\u06cc\u0646 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062f\u0631 \u0645\u0633\u06cc\u0631 \/system\/ \u0628\u0646\u0648\u06cc\u0633\u062f\u061f\u00bb). \u06cc\u06a9 \u0646\u0642\u0634 (Role) \u0648\u0627\u062d\u062f \u0648 \u06af\u0633\u062a\u0631\u062f\u0647\u060c \u0647\u06cc\u0686\u200c\u06a9\u062f\u0627\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u067e\u0648\u0634\u0634 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f.<code>\/system\/<\/code>?&#8221;). \u06cc\u06a9 \u0646\u0642\u0634 \u06a9\u0644\u06cc \u0648 \u06af\u0633\u062a\u0631\u062f\u0647\u060c \u0647\u06cc\u0686\u200c\u06a9\u062f\u0627\u0645 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u067e\u0648\u0634\u0634 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p style=\"direction: rtl; text-align: right\">\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting) \u2014 \u0647\u0645\u0627\u0646 \u00abA\u00bb \u06a9\u0647 \u06af\u0632\u0627\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f \u062f\u0642\u06cc\u0642\u0627\u064b \u0686\u0647 \u0627\u062a\u0641\u0627\u0642\u06cc \u0627\u0641\u062a\u0627\u062f\u0647 \u0627\u0633\u062a \u2014 \u0628\u0631\u0627\u06cc \u0646\u0634\u0633\u062a\u200c\u0647\u0627\u06cc CLI \u0648 NETCONF \u0628\u0647 \u062e\u0648\u0628\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0627\u0645\u0627 \u062a\u0631\u0627\u0641\u06cc\u06a9 gRPC \u0631\u0627 \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u067e\u0648\u0634\u0634 \u0646\u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<p style=\"direction: rtl; text-align: right\">\u0648 \u0633\u067e\u0633 \u0646\u0648\u0628\u062a \u0628\u0647 \u0686\u0631\u062e\u0634 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 (Credential Rotation) \u0645\u06cc\u200c\u0631\u0633\u062f. \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc gRPC TLS \u0648<strong style=\"color: rgb(26, 26, 26)\">\u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 (Host Keys) SSH \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0633\u06cc \u0645\u062a\u0648\u062c\u0647 \u0634\u0648\u062f \u062f\u06cc\u06af\u0631\u06cc \u0633\u0627\u0644\u0645 \u0627\u0633\u062a\u060c \u0645\u0646\u0642\u0636\u06cc \u0634\u0648\u062f.<\/strong>\u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 (Host Keys) \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u0627\u064b \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f. \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0633\u06cc \u0645\u062a\u0648\u062c\u0647 \u0633\u0644\u0627\u0645\u062a \u062f\u06cc\u06af\u0631\u06cc \u0634\u0648\u062f\u060c \u0645\u0646\u0642\u0636\u06cc (Stale) \u0634\u0648\u062f.<\/p>\n<p style=\"direction: rtl; text-align: right\">\u0647\u0645\u0647 \u0627\u06cc\u0646\u200c\u0647\u0627 \u0631\u0627 \u06a9\u0646\u0627\u0631 \u0647\u0645 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f: \u0648\u0636\u0639\u06cc\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc (Security Posture) \u0646\u0627\u0647\u0645\u0627\u0647\u0646\u06af \u0648 \u0627\u062a\u0648\u0645\u0627\u0633\u06cc\u0648\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u0634\u06cc\u0648\u0647\u200c\u0647\u0627\u06cc\u06cc \u062f\u0686\u0627\u0631 \u0627\u062e\u062a\u0644\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0639\u06cc\u0628\u200c\u06cc\u0627\u0628\u06cc (Debug) \u0622\u0646\u200c\u0647\u0627 \u062f\u0634\u0648\u0627\u0631 \u0627\u0633\u062a.<\/p>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">gNSI \u0686\u06cc\u0633\u062a\u061f<\/h2>\n<p style=\"direction: rtl; text-align: right\"><strong style=\"color: rgb(26, 26, 26)\">gNSI<\/strong>\u0645\u062e\u0641\u0641<strong style=\"color: rgb(26, 26, 26)\">\u0631\u0627\u0628\u0637 \u0627\u0645\u0646\u06cc\u062a \u0634\u0628\u06a9\u0647 gRPC (gRPC Network Security Interface)<\/strong>. \u0627\u06cc\u0646 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc gRPC \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 OpenConfig \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a \u2014 \u0647\u0645\u0627\u0646 \u062c\u0627\u0645\u0639\u0647\u200c\u0627\u06cc \u06a9\u0647 \u067e\u0634\u062a gNMI\u060c gNOI \u0648 gRIBI \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f. \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062a\u0645\u0631\u06a9\u0632 \u0622\u0646\u200c\u0647\u0627 \u0628\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc (Config)\u060c \u0639\u0645\u0644\u06cc\u0627\u062a (Operations) \u0648 \u0645\u0633\u06cc\u0631\u06cc\u0627\u0628\u06cc (Routing) \u0627\u0633\u062a\u060c \u062a\u0645\u0631\u06a9\u0632 gNSI \u0628\u0631<strong style=\"color: rgb(26, 26, 26)\">\u0627\u0645\u0646\u06cc\u062a (Security)<\/strong>:<\/p>\n<p style=\"direction: rtl; text-align: right\">\u0627\u06cc\u0646 \u067e\u0646\u062c \u0633\u0631\u0648\u06cc\u0633 \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0627 \u0645\u062f\u0644 AAA \u2014 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)\u060c \u062a\u0639\u06cc\u06cc\u0646 \u0633\u0637\u062d \u062f\u0633\u062a\u0631\u0633\u06cc (Authorization) \u0648 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting) \u2014 \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u0646\u062f:<\/p>\n<ul style=\"direction: rtl; text-align: right\">\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0686\u06af\u0648\u0646\u0647<\/strong>\u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc TLS \u0648 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0627\u0639\u062a\u0645\u0627\u062f (Trust Bundles) \u0686\u0631\u062e\u0634 (Rotate) \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u2014 \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0646 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Certz<\/strong><\/a><em>(\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a &#8211; Authentication)<\/em><\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0686\u06af\u0648\u0646\u0647<\/strong>\u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc SSH \u0686\u0631\u062e\u0634 (Rotate) \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u2014 \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0646 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Credentialz<\/strong><\/a><em>(\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a &#8211; Authentication)<\/em><\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0686\u0647 \u06a9\u0633\u06cc<\/strong>\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u06a9\u062f\u0627\u0645 RPC\u0647\u0627 \u0631\u0627 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u0646\u062f \u2014 \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0646 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Authz<\/strong><\/a><em>(\u0645\u062c\u0648\u0632\u062f\u0647\u06cc &#8211; Authorization)<\/em><\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u06a9\u062f\u0627\u0645<\/strong>\u0645\u0633\u06cc\u0631\u0647\u0627\u06cc gNMI \u0631\u0627 \u06cc\u06a9 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u0646\u062f\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u062f \u2014 \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0646 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/securing-gnmi-with-pathz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Pathz<\/strong><\/a><em>(\u0645\u062c\u0648\u0632\u062f\u0647\u06cc &#8211; Authorization)<\/em><\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0686\u0647 \u0686\u06cc\u0632\u06cc<\/strong>\u0631\u0648\u06cc \u062f\u0633\u062a\u06af\u0627\u0647 \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a (\u0631\u062f\u067e\u0627\u06cc \u062d\u0633\u0627\u0628\u0631\u0633\u06cc &#8211; Audit Trail) \u2014 \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0645\u0627\u0646 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-acctz-management-plane-accounting-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Acctz<\/strong><\/a><em>(\u062d\u0633\u0627\u0628\u0631\u0633\u06cc &#8211; Accounting)<\/em><\/li>\n<\/ul>\n<p style=\"direction: rtl; text-align: right\">\u0647\u0631 \u0633\u0631\u0648\u06cc\u0633 \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9<strong style=\"color: rgb(26, 26, 26)\">Protobuf<\/strong>(Protocol Buffers \u2014 \u0641\u0631\u0645\u062a \u0633\u0631\u06cc\u0627\u0644\u200c\u0633\u0627\u0632\u06cc \u06a9\u0647 gRPC \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f) \u062a\u0639\u0631\u06cc\u0641 \u062f\u0631 <a href=\"https:\/\/github.com\/openconfig\/gnsi\" style=\"color: rgb(0, 102, 204)\">\u0645\u062e\u0632\u0646 OpenConfig gNSI<\/a> \u0627\u0633\u062a. \u0647\u0631 \u0646\u0633\u062e\u0647 \u0627\u0632 IOS XR \u0628\u0647 \u0646\u0633\u062e\u0647 API \u062e\u0627\u0635\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0639\u0627\u0631\u06cc\u0641 \u0645\u062a\u0635\u0644 \u0627\u0633\u062a.<\/p>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0686\u0631\u0627 gNSI \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f<\/h2>\n<p style=\"direction: rtl; text-align: right\">\u0628\u062f\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 gNSI\u060c \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u062f\u0631 \u062f\u0633\u062a\u0648\u0631\u0627\u062a CLI \u0648 \u06a9\u067e\u06cc \u062f\u0633\u062a\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u0645\u0627\u0646\u062f \u06a9\u0647 \u062e\u0648\u062f\u06a9\u0627\u0631\u0633\u0627\u0632\u06cc (Automation)\u060c \u0628\u0627\u0632\u06af\u0631\u062f\u0627\u0646\u06cc (Roll back) \u0648 \u062a\u0623\u06cc\u06cc\u062f \u0622\u0646 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0632\u0631\u06af \u0631\u0627 \u062f\u0634\u0648\u0627\u0631 \u0645\u06cc\u200c\u0633\u0627\u0632\u062f.<\/p>\n<p style=\"direction: rtl; text-align: right\">\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 gNSI\u060c \u06a9\u0646\u062a\u0631\u0644\u0631\u0647\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f<strong style=\"color: rgb(26, 26, 26)\">\u0645\u0631\u062d\u0644\u0647\u200c\u0628\u0646\u062f\u06cc (Stage)<\/strong>\u06cc\u06a9 \u062e\u0637\u200c\u0645\u0634\u06cc \u06cc\u0627 \u06af\u0648\u0627\u0647\u06cc \u062c\u062f\u06cc\u062f\u060c<strong style=\"color: rgb(26, 26, 26)\">\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc (Validate)<\/strong>\u0622\u0646\u060c \u0648<strong style=\"color: rgb(26, 26, 26)\">\u0627\u0639\u0645\u0627\u0644 (Commit)<\/strong>\u2014 \u0647\u0645\u06af\u06cc \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 API \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 gRPC. \u0627\u06af\u0631 \u0645\u0634\u06a9\u0644\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0627\u06cc\u062f\u060c<strong style=\"color: rgb(26, 26, 26)\">\u0628\u0627\u0632\u06af\u0634\u062a (Rollback)<\/strong>\u062f\u0631 \u0645\u0634\u062e\u0635\u0627\u062a \u0641\u0646\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0645\u0633\u062a\u0642\u06cc\u0645\u0627\u064b \u0628\u0647<strong style=\"color: rgb(26, 26, 26)\">ZTP<\/strong>(Zero-Touch Provisioning) \/<strong style=\"color: rgb(26, 26, 26)\">Bootz<\/strong>(Bootstrap) \u0645\u062a\u0635\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f \u0648 \u0648\u0636\u0639\u06cc\u062a \u0627\u0632 \u0637\u0631\u06cc\u0642<strong style=\"color: rgb(26, 26, 26)\">YANG Telemetry<\/strong>(\u0645\u0634\u0627\u0647\u062f\u0647 <a href=\"https:\/\/github.com\/openconfig\/public\/tree\/master\/release\/models\/gnsi\" style=\"color: rgb(0, 102, 204)\">\u0645\u062f\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0648\u0645\u06cc OpenConfig \u2014 gNSI<\/a>).<\/p>\n<p style=\"direction: rtl; text-align: right\">\u0628\u0647 \u0637\u0648\u0631 \u062e\u0644\u0627\u0635\u0647: \u0639\u0645\u0644\u06cc\u0627\u062a \u0627\u0645\u0646\u06cc\u062a\u06cc \u062a\u06a9\u0631\u0627\u0631\u067e\u0630\u06cc\u0631 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u067e\u0630\u06cc\u0631 (Programmable) \u0628\u0647 \u062c\u0627\u06cc \u0627\u0635\u0644\u0627\u062d\u0627\u062a \u0645\u0648\u0631\u062f\u06cc.<\/p>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0642\u0628\u0644 \u0648 \u0628\u0639\u062f \u0627\u0632 gNSI<\/h2>\n<p style=\"direction: rtl; text-align: right\"><strong style=\"color: rgb(26, 26, 26)\">\u0686\u0631\u062e\u0634 (Rotating) \u06af\u0648\u0627\u0647\u06cc TLS \u062f\u0631 gRPC \u2014 \u0631\u0648\u0634 \u0642\u062f\u06cc\u0645\u06cc:<\/strong><\/p>\n<pre><code><span>1. Generate key + CSR on a workstation\n<\/span><span>2. Get it signed by the CA\n<\/span><span>3. SCP the PEM files to the router's \/misc\/config\/grpc\/\n<\/span><span>4. Hope the filenames and paths are correct\n<\/span><span>5. Reload the gRPC server (or wait for a process restart)\n<\/span><span>6. If it breaks, SSH in and manually fix the files\n<\/span><span>7. No audit trail of what changed or who did it\n<\/span><\/code><\/pre>\n<p style=\"direction: rtl; text-align: right\"><strong style=\"color: rgb(26, 26, 26)\">\u0647\u0645\u0627\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 gNSI Certz:<\/strong><\/p>\n<pre><code><span>1. Generate key + CSR (or let the router generate it)\n<\/span><span>2. Get it signed by the CA\n<\/span><span>3. grpcurl \u2192 Certz.Rotate: upload cert + key + trust bundle\n<\/span><span>4. Router validates the material before committing\n<\/span><span>5. grpcurl \u2192 Certz.Rotate: finalize (or cancel to roll back)\n<\/span><span>6. New cert takes effect for new connections \u2014 zero downtime\n<\/span><span>7. Acctz streams an audit record of the rotation\n<\/span><\/code><\/pre>\n<p style=\"direction: rtl; text-align: right\">\u0647\u0645\u0627\u0646 \u0627\u0644\u06af\u0648\u06cc \u0645\u0631\u062d\u0644\u0647\u200c\u0628\u0646\u062f\u06cc-\u0627\u0639\u062a\u0628\u0627\u0631\u0633\u0646\u062c\u06cc-\u0646\u0647\u0627\u06cc\u06cc\u200c\u0633\u0627\u0632\u06cc (stage-validate-finalize) \u0628\u0631\u0627\u06cc \u0633\u06cc\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0645\u062c\u0648\u0632 (Authorization Policies \u06cc\u0627 Authz \u0648 Pathz) \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc SSH (Credentialz) \u0646\u06cc\u0632 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0646\u06af\u0627\u0647\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc gNSI<\/h2>\n<p style=\"direction: rtl; text-align: right\">\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0647\u0631 \u0633\u0631\u0648\u06cc\u0633 \u0634\u0631\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. IOS XR \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u062f\u0631 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u2014 \u0647\u0645\u06cc\u0634\u0647 <a href=\"https:\/\/www.cisco.com\/c\/en\/us\/td\/docs\/iosxr\/cisco8000\/programmability\/b-programmability-configuration-guide-cisco8000\/m-grpc-authentication.html\" style=\"color: rgb(0, 102, 204)\">\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u067e\u0630\u06cc\u0631\u06cc (Programmability Documentation) IOS XR<\/a> \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0644\u062a\u0641\u0631\u0645 \u0645\u0642\u0635\u062f \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<table style=\"direction: rtl; text-align: right\" class=\"english-numbers\">\n<thead>\n<tr>\n<th>\u0633\u0631\u0648\u06cc\u0633<\/th>\n<th>\u0622\u0646\u0686\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/th>\n<th>\u0645\u062b\u0627\u0644<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Certz<\/strong><\/a><\/td>\n<td>\u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u06af\u0648\u0627\u0647\u06cc TLS<\/td>\n<td>\u0686\u0631\u062e\u0634 (Rotate) \u06af\u0648\u0627\u0647\u06cc \u0633\u0631\u0648\u0631 gRPC \u0648 \u0628\u0633\u062a\u0647 \u0627\u0639\u062a\u0645\u0627\u062f (Trust Bundle) \u0628\u062f\u0648\u0646 \u0642\u0637\u0639\u06cc (Zero downtime)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Credentialz<\/strong><\/a><\/td>\n<td>\u0686\u0631\u062e\u0634 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc SSH<\/td>\n<td>\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646\u06cc \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 SSH \u06cc\u0627 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0645\u062c\u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 (Authorized Keys) \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f<\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization)<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Authz<\/strong><\/a><\/td>\n<td>\u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 \u0633\u0637\u062d \u0633\u0631\u0648\u06cc\u0633 gRPC<\/td>\n<td>\u0627\u062c\u0627\u0632\u0647 \u0628\u0647 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644\u0631 \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc gNMI Set \u0627\u0645\u0627 \u0645\u0633\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 RPC\u0647\u0627\u06cc gNOI<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/securing-gnmi-with-pathz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Pathz<\/strong><\/a><\/td>\n<td>\u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u062f\u0631 \u0633\u0637\u062d \u0645\u0633\u06cc\u0631 (Path) gNMI<\/td>\n<td>\u0627\u062c\u0627\u0632\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a Subscribe \u0631\u0648\u06cc<code>\/interfaces\/<\/code>\u0627\u0645\u0627 \u0645\u0633\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a Set \u0631\u0648\u06cc<code>\/system\/<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting)<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-acctz-management-plane-accounting-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Acctz<\/strong><\/a><\/td>\n<td>\u0627\u0633\u062a\u0631\u06cc\u0645 \u06a9\u0631\u062f\u0646 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u0648 \u0628\u0627\u0632\u0631\u0633\u06cc (Audit)<\/td>\n<td>\u0627\u0633\u062a\u0631\u06cc\u0645 \u06a9\u0631\u062f\u0646 \u0633\u0648\u0627\u0628\u0642 \u062a\u0645\u0627\u0645\u06cc \u0627\u0642\u062f\u0627\u0645\u0627\u062a gRPC\u060c CLI \u0648 NETCONF \u0628\u0647 \u06cc\u06a9 \u062c\u0645\u0639\u200c\u06a9\u0646\u0646\u062f\u0647 (Collector)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0646\u062d\u0648\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u06cc\u06a9\u067e\u0627\u0631\u0686\u06af\u06cc \u0627\u06cc\u0646 \u067e\u0646\u062c \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627 \u06cc\u06a9\u062f\u06cc\u06af\u0631<\/h2>\n<p style=\"direction: rtl; text-align: right\">gNSI \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 (Framework) \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a\u060c \u0645\u062c\u0648\u0632\u062f\u0647\u06cc \u0648 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (AAA) \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 gRPC \u0627\u0633\u062a. \u067e\u0646\u062c \u0633\u0631\u0648\u06cc\u0633 \u0622\u0646 \u0634\u0627\u0645\u0644 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0627\u0633\u062a:<strong style=\"color: rgb(26, 26, 26)\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)<\/strong>, <strong style=\"color: rgb(26, 26, 26)\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization)<\/strong>\u0648<strong style=\"color: rgb(26, 26, 26)\">\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting)<\/strong>\u2014 \u0648 \u062a\u0631\u062a\u06cc\u0628 \u0622\u0646\u200c\u0647\u0627 \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f. \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0628\u062a\u062f\u0627 \u0628\u0627\u06cc\u062f \u0647\u0648\u06cc\u062a \u062e\u0648\u062f \u0631\u0627 \u0627\u062b\u0628\u0627\u062a \u06a9\u0646\u062f\u060c \u0633\u067e\u0633 \u0627\u0632 \u0628\u0631\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062f\u0633\u062a\u0631\u0633\u06cc (Access-control) \u0639\u0628\u0648\u0631 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u062b\u0628\u062a \u0634\u0648\u062f. \u0646\u0645\u0648\u062f\u0627\u0631 \u0632\u06cc\u0631 \u0627\u06cc\u0646 \u062c\u0631\u06cc\u0627\u0646 \u0631\u0627 \u0627\u0632 \u0686\u067e \u0628\u0647 \u0631\u0627\u0633\u062a \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<pre><code><span> \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n<\/span><span> \u2502 gRPC Management Plane \u2502\n<\/span><span> \u2502 \u2502\n<\/span><span> \u2502 AUTHENTICATION AUTHORIZATION ACCOUNTING \u2502\n<\/span><span> \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u2502\n<\/span><span> \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n<\/span><span> \u2502 \u2502 Certz \u2502 \u2502 Authz \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n<\/span><span> \u2502 \u2502 (TLS certs \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u25b6 \u2502 (who can \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u25b6 \u2502 Acctz \u2502 \u2502\n<\/span><span> \u2502 \u2502 + trust) \u2502 \u2502 call \u2502 \u2502 (audit \u2502 \u2502\n<\/span><span> \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 what) \u2502 \u2502 trail) \u2502 \u2502\n<\/span><span> \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n<\/span><span> \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u2502\n<\/span><span> \u2502 \u2502 Credentialz \u2502 \u2502 Pathz \u2502 \u2502\n<\/span><span> \u2502 \u2502 (SSH keys + \u2502 \u2502 (which \u2502 \u2502\n<\/span><span> \u2502 \u2502 passwords) \u2502 \u2502 gNMI \u2502 \u2502\n<\/span><span> \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502 paths) \u2502 \u2502\n<\/span><span> \u2502 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2502\n<\/span><span> \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/span><\/code><\/pre>\n<p style=\"direction: rtl; text-align: right\">\u062c\u0631\u06cc\u0627\u0646 AAA \u0628\u0631 \u0631\u0648\u06cc \u0634\u0628\u06a9\u0647 (Wire):<\/p>\n<ol style=\"direction: rtl; text-align: right\">\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication) \u2014 \u0627\u0628\u062a\u062f\u0627 \u0647\u0648\u06cc\u062a \u0631\u0627 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/strong><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Certz<\/strong><\/a> \u0645\u062f\u06cc\u0631\u06cc\u062a \u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627\u06cc TLS \u0648 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0627\u0639\u062a\u0645\u0627\u062f (Trust Bundles) \u2014 \u0647\u0631 \u0627\u062a\u0635\u0627\u0644 gRPC \u0627\u0632 \u0627\u06cc\u0646\u062c\u0627 \u0622\u063a\u0627\u0632 \u0645\u06cc\u200c\u0634\u0648\u062f. <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Credentialz<\/strong><\/a> \u0647\u0645\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 SSH \u0648 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc (Credentials) \u06a9\u0627\u0631\u0628\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u2014 \u062a\u0639\u06cc\u06cc\u0646 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0647\u0648\u06cc\u062a \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0634\u062f\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.<\/strong><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Authz<\/strong><\/a> \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0647\u0631 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0627\u062c\u0627\u0632\u0647 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u06a9\u062f\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc gRPC \u0631\u0627 \u062f\u0627\u0631\u062f. <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/securing-gnmi-with-pathz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Pathz<\/strong><\/a> \u06cc\u06a9 \u0633\u0637\u062d \u0639\u0645\u06cc\u0642\u200c\u062a\u0631 \u0639\u0645\u0644 \u06a9\u0631\u062f\u0647 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u06a9\u062f\u0627\u0645 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc gNMI \u0642\u0627\u0628\u0644 \u062e\u0648\u0627\u0646\u062f\u0646 \u06cc\u0627 \u0646\u0648\u0634\u062a\u0646 \u0647\u0633\u062a\u0646\u062f.<\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting) \u2014 \u062b\u0628\u062a \u0648\u0642\u0627\u06cc\u0639 \u0631\u062e \u062f\u0627\u062f\u0647.<\/strong><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-acctz-management-plane-accounting-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Acctz<\/strong><\/a> \u0633\u0648\u0627\u0628\u0642 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting Records) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a gRPC\u060c CLI \u0648 NETCONF \u0627\u0633\u062a\u0631\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0645\u0633\u06cc\u0631 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Audit Trail) \u0631\u0627 \u062a\u06a9\u0645\u06cc\u0644 \u0645\u06cc\u200c\u0646\u0645\u0627\u06cc\u062f.<\/li>\n<\/ol>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0646\u0633\u062e\u0647 IOS XR<\/h2>\n<table style=\"direction: rtl; text-align: right\" class=\"english-numbers\">\n<thead>\n<tr>\n<th>\u0633\u0631\u0648\u06cc\u0633<\/th>\n<th>\u0627\u0648\u0644\u06cc\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 IOS XR<\/th>\n<th>\u0628\u0647\u0628\u0648\u062f\u0647\u0627\u06cc \u06a9\u0644\u06cc\u062f\u06cc \u0628\u0639\u062f\u06cc<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Certz<\/strong><\/a><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.1.1<\/strong>\u2014 \u0686\u0631\u062e\u0634 (Rotate) \u062f\u0631 RPC\u060c \u067e\u0631\u0648\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc SSL\u060c<code>\u0634\u0646\u0627\u0633\u0647 \u067e\u0631\u0648\u0641\u0627\u06cc\u0644 SSL \u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 grpc gnsi certz<\/code><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.1.1<\/strong>\u2014 \u0646\u0627\u0645 \u0645\u0634\u062a\u0631\u06a9 (CN) \u0642\u0627\u0628\u0644 \u062a\u0646\u0638\u06cc\u0645 \u0628\u0631\u0627\u06cc dial-in\u061b<strong style=\"color: rgb(26, 26, 26)\">24.4.1<\/strong>\u2014 \u067e\u0631\u0648\u062a\u06a9\u0644 TLS 1.3\u061b<strong style=\"color: rgb(26, 26, 26)\">25.4.1<\/strong>\u2014 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u0642\u062f\u06cc\u0645\u06cc (legacy) \u062f\u0631 \/misc\/config\/grpc \u0645\u0646\u0633\u0648\u062e \u0634\u062f\u0647\u200c\u0627\u0646\u062f\u060c \u067e\u0631\u0648\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc SSL \u0645\u0633\u06cc\u0631 \u067e\u06cc\u0634 \u0631\u0648 \u0647\u0633\u062a\u0646\u062f<code>Credentialz<\/code>\u2014 \u0686\u0631\u062e\u0634 (Rotate) \u062f\u0631 RPC\u0647\u0627 \u0628\u0631\u0627\u06cc \u0686\u0631\u062e\u0634 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc SSH<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">\u2014 \u0645\u0633\u062a\u0646\u062f\u0633\u0627\u0632\u06cc \u062f\u0627\u0645\u0646\u0647 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 \u062f\u0631 \u0633\u0637\u062d \u062d\u0633\u0627\u0628 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0633\u0637\u062d \u0645\u06cc\u0632\u0628\u0627\u0646<\/strong><\/a><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.2.1<\/strong>\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization)<\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.2.11<\/strong>Authz<\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u2014 \u0686\u0631\u062e\u0634 (Rotate) \/ \u0628\u0631\u0631\u0633\u06cc (Probe) \/ \u062f\u0631\u06cc\u0627\u0641\u062a (Get) \u062f\u0631 RPC\u0647\u0627\u060c<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">\u0633\u0631\u0648\u06cc\u0633 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u062e\u0637\u200c\u0645\u0634\u06cc \u0645\u062c\u0648\u0632\u062f\u0647\u06cc gnsi<\/strong><\/a><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">7.11.1<\/strong>\u0631\u0627\u0628\u0637 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 (CLI)<code>\u2014 \u067e\u0648\u0634\u0634 \u06af\u0633\u062a\u0631\u062f\u0647\u200c\u062a\u0631 \u0633\u0631\u06cc 8000 (8200\u060c 8700\u060c 8800\/P100)\u061b \u0646\u06af\u0627\u0634\u062a SPIFFE-ID \u0628\u0647 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc<\/code>Pathz<\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.4.1<\/strong>\u2014 \u0641\u0642\u0637 gNMI Set\u060c \u0641\u0642\u0637 \u0645\u062f\u0644\u200c\u0647\u0627\u06cc OpenConfig<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/securing-gnmi-with-pathz\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">\u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a RPC\u0647\u0627 \u0648 \u062e\u0627\u0646\u0648\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062f\u0644 \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u0646\u062f\u061b \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 ACCEPT_ALL \u0627\u0633\u062a<\/strong><\/a><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.2.1<\/strong>\u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06cc\u06a9 \u062e\u0637\u200c\u0645\u0634\u06cc (Policy) \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0634\u0648\u062f<\/td>\n<td>\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting)<strong style=\"color: rgb(26, 26, 26)\">Acctz<\/strong>\u2014 \u062c\u0631\u06cc\u0627\u0646 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc gRPC (\u0633\u0631\u06cc 8000 \/ NCS 5500)<\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.4.x<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-acctz-management-plane-accounting-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">\u2014 \u0627\u0641\u0632\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0635 \u067e\u0644\u062a\u0641\u0631\u0645\u061b \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 (Release Notes) \u0647\u062f\u0641 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/strong><\/a><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.3.1<\/strong>\u2014 \u062c\u0631\u06cc\u0627\u0646 \u062d\u0633\u0627\u0628\u062f\u0627\u0631\u06cc (Accounting Stream) gRPC (8000 \/ NCS 5500)<\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">24.4.x<\/strong>\u2014 \u0627\u0641\u0632\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0635 \u067e\u0644\u062a\u0641\u0631\u0645 (platform-specific extensions)\u061b \u06cc\u0627\u062f\u062f\u0627\u0634\u062a\u200c\u0647\u0627\u06cc \u0627\u0646\u062a\u0634\u0627\u0631 (Release Notes) \u0646\u0633\u062e\u0647 \u0647\u062f\u0641 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0628\u0631\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u0639\u0645\u06cc\u0642 (Deep Dives) \u062f\u0631 XRdocs<\/h2>\n<p style=\"direction: rtl; text-align: right\">\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0627\u062a \u0645\u0631\u0627\u062d\u0644 \u0639\u0645\u0644\u06cc \u06a9\u0627\u0631 \u0628\u0627 IOS XR \u0631\u0627 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u062c\u0631\u06cc\u0627\u0646 AAA \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0628\u0627<strong style=\"color: rgb(26, 26, 26)\">Certz<\/strong>\u0628\u0631\u0627\u06cc \u0628\u0631\u0642\u0631\u0627\u0631\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a TLS \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f\u060c \u0633\u067e\u0633 \u0644\u0627\u06cc\u0647 \u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u0631\u0627 \u0628\u0627<strong style=\"color: rgb(26, 26, 26)\">Authz<\/strong>\u0648<strong style=\"color: rgb(26, 26, 26)\">Pathz<\/strong>\u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0627<strong style=\"color: rgb(26, 26, 26)\">Acctz<\/strong>\u0628\u0631\u0627\u06cc \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting) \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0628\u0631\u0633\u0627\u0646\u06cc\u062f.<\/p>\n<table style=\"direction: rtl; text-align: right\" class=\"english-numbers\">\n<thead>\n<tr>\n<th>\u0633\u0631\u0648\u06cc\u0633 (Service)<\/th>\n<th>\u0645\u0642\u0627\u0644\u0647 XRdocs<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)<\/strong><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">Certz<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">gNSI Certz \u2014 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u06af\u0648\u0627\u0647\u06cc TLS \u062f\u0631 Cisco IOS XR<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">Credentialz<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">gNSI Credentialz \u2014 \u0686\u0631\u062e\u0634 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc SSH \u062f\u0631 Cisco IOS XR<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization)<\/strong><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">Authz<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc gRPC \u0628\u0627 Authz<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">Pathz<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/securing-gnmi-with-pathz\" style=\"color: rgb(0, 102, 204)\">\u0627\u0645\u0646\u200c\u0633\u0627\u0632\u06cc gNMI \u0628\u0627 Pathz<\/a><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\">\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting)<\/strong><\/td>\n<td><strong style=\"color: rgb(26, 26, 26)\">Acctz<\/strong><\/td>\n<td><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-acctz-management-plane-accounting-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">gNSI Acctz \u2014 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc \u0633\u0637\u062d \u0645\u062f\u06cc\u0631\u06cc\u062a (Management Plane) \u062f\u0631 Cisco IOS XR<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627 \u0648 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc<\/h2>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0633\u0627\u062e\u062a\u0627\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc (Setup) \u0628\u0647 \u0686\u0647 \u0635\u0648\u0631\u062a \u0627\u0633\u062a<\/h3>\n<pre><code><span> \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 port 57400 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n<\/span><span> \u2502 Workstation \u2502 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 gRPC \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u25b6 \u2502 IOS XR \u2502\n<\/span><span> \u2502 \u2502 (plaintext in lab, \u2502 Router \u2502\n<\/span><span> \u2502 grpcurl \u2502 TLS in production) \u2502 \u2502\n<\/span><span> \u2502 gnmic \u2502 \u2502 EMSd runs \u2502\n<\/span><span> \u2502 openssl \u2502 \u2502 gNSI RPCs \u2502\n<\/span><span> \u2502 jq \u2502 \u2502 \u2502\n<\/span><span> \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/span><span> \u25b2\n<\/span><span> \u2502 The.proto files from the cloned\n<\/span><span> \u2502 openconfig\/gnsi repo tell grpcurl\n<\/span><span> \u2502 how to encode\/decode gRPC messages.\n<\/span><\/code><\/pre>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0627\u0628\u0632\u0627\u0631\u0647\u0627<\/h3>\n<table style=\"direction: rtl; text-align: right\" class=\"english-numbers\">\n<thead>\n<tr>\n<th>\u0627\u0628\u0632\u0627\u0631<\/th>\n<th>\u0639\u0645\u0644\u06a9\u0631\u062f<\/th>\n<th>\u0646\u0635\u0628<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\"><a href=\"https:\/\/github.com\/fullstorydev\/grpcurl\" style=\"color: rgb(0, 102, 204)\">grpcurl<\/a><\/strong><\/td>\n<td>\u06a9\u0644\u0627\u06cc\u0646\u062a gRPC \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 (Command-line) \u2014 \u0645\u0634\u0627\u0628\u0647<code>curl<\/code>\u0627\u0645\u0627 \u0628\u0631\u0627\u06cc gRPC<\/td>\n<td><code>go install github.com\/fullstorydev\/grpcurl\/cmd\/grpcurl@latest<\/code>\u06cc\u0627 \u062f\u0627\u0646\u0644\u0648\u062f \u0641\u0627\u06cc\u0644 \u0628\u0627\u06cc\u0646\u0631\u06cc (Binary)<\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\"><a href=\"https:\/\/gnmic.openconfig.net\/\" style=\"color: rgb(0, 102, 204)\">gnmic<\/a><\/strong><\/td>\n<td>\u06a9\u0644\u0627\u06cc\u0646\u062a gNMI CLI (\u0628\u0631\u0627\u06cc \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc \u062a\u0644\u0647\u200c\u0645\u062a\u0631\u06cc YANG)<\/td>\n<td><code>bash -c \"$(curl -sL https:\/\/get.gnmic.openconfig.net)<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\"><a href=\"https:\/\/jqlang.github.io\/jq\/\" style=\"color: rgb(0, 102, 204)\">jq<\/a><\/strong><\/td>\n<td>\u067e\u0631\u062f\u0627\u0632\u0634\u06af\u0631 JSON (\u0628\u0631\u0627\u06cc \u0642\u0627\u0644\u0628\u200c\u0628\u0646\u062f\u06cc \u0633\u06cc\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06cc\u0627 Authz Policy)<\/td>\n<td><code>brew install jq<\/code> \/ <code>apt install jq<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong style=\"color: rgb(26, 26, 26)\"><a href=\"https:\/\/www.openssl.org\/\" style=\"color: rgb(0, 102, 204)\">OpenSSL<\/a><\/strong><\/td>\n<td>\u0639\u0645\u0644\u06cc\u0627\u062a TLS PKI (\u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627 \u06cc\u0627 Certz)<\/td>\n<td>\u0627\u0632 \u067e\u06cc\u0634 \u0646\u0635\u0628 \u0634\u062f\u0647 \u0631\u0648\u06cc \u0627\u06a9\u062b\u0631 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u062a\u0648 (Proto files)<\/h3>\n<p style=\"direction: rtl; text-align: right\">\u0627\u0628\u0632\u0627\u0631 grpcurl \u0628\u0631\u0627\u06cc \u062f\u0627\u0646\u0633\u062a\u0646 \u0646\u062d\u0648\u0647 \u06a9\u062f\u06af\u0630\u0627\u0631\u06cc (Encode) \u0648 \u0631\u0645\u0632\u06af\u0634\u0627\u06cc\u06cc (Decode) \u067e\u06cc\u0627\u0645\u200c\u0647\u0627\u06cc gRPC \u0628\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc<code>.proto<\/code>\u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0622\u0646\u200c\u0647\u0627 \u0631\u0627 \u06cc\u06a9\u200c\u0628\u0627\u0631 \u06a9\u0644\u0648\u0646 (Clone) \u06a9\u0646\u06cc\u062f:<\/p>\n<pre><code><span><span>git<\/span> clone <span>--depth<\/span> <span>1<\/span> https:\/\/github.com\/openconfig\/gnsi.git openconfig-gnsi\n<\/span><span><span>cd<\/span> openconfig-gnsi\n<\/span><span><span>export<\/span> <span>GNSI_IMPORT<\/span><span>=<\/span><span>\"<span>$PWD<\/span>\"<\/span>\n<\/span><\/code><\/pre>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0645\u0639\u0646\u0627\u06cc \u0641\u0644\u06af\u200c\u0647\u0627\u06cc grpcurl<\/h3>\n<p style=\"direction: rtl; text-align: right\">\u0647\u0631 \u062f\u0633\u062a\u0648\u0631 \u0639\u0645\u0644\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0633\u0631\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0631\u0686\u0645\u200c\u0647\u0627 (Flags) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<table style=\"direction: rtl; text-align: right\" class=\"english-numbers\">\n<thead>\n<tr>\n<th>\u067e\u0631\u0686\u0645 (Flag)<\/th>\n<th>\u0639\u0645\u0644\u06a9\u0631\u062f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>-plaintext<\/code><\/td>\n<td>\u0627\u062a\u0635\u0627\u0644 \u0628\u062f\u0648\u0646 TLS.<strong style=\"color: rgb(26, 26, 26)\">\u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647\u06cc (Lab only)<\/strong>\u2014 \u0628\u0647 \u0647\u0634\u062f\u0627\u0631 \u0632\u06cc\u0631 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/td>\n<\/tr>\n<tr>\n<td><code>-import-path \"$GNSI_IMPORT<\/code><\/td>\n<td>\u0645\u0633\u06cc\u0631\u06cc \u06a9\u0647 grpcurl \u062f\u0631 \u0622\u0646 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc<code>.proto<\/code>\u0645\u06cc\u200c\u06af\u0631\u062f\u062f (\u0631\u06cc\u0634\u0647 \u0645\u062e\u0632\u0646 \u06a9\u0644\u0648\u0646 \u0634\u062f\u0647)<\/td>\n<\/tr>\n<tr>\n<td><code>-proto \"authz\/authz.proto<\/code><\/td>\n<td>\u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647<code>.proto<\/code>\u0633\u0631\u0648\u06cc\u0633 \u0645\u0648\u0631\u062f \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/td>\n<\/tr>\n<tr>\n<td><code>-H \"username:...<\/code> \/ <code>-H \"password:...<\/code><\/td>\n<td>\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0645\u062a\u0627\u062f\u06cc\u062a\u0627 \u062f\u0631 IOS XR (\u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0647\u062f\u0631\u0647\u0627\u06cc gRPC)<\/td>\n<\/tr>\n<tr>\n<td><code>-d '{...}<\/code><\/td>\n<td>\u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a (Payload) \u0628\u0647 \u0635\u0648\u0631\u062a JSON (\u06a9\u0647 grpcurl \u0622\u0646 \u0631\u0627 \u0628\u0647 protobuf \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f)<\/td>\n<\/tr>\n<tr>\n<td><code>-d '@<\/code><\/td>\n<td>\u062e\u0648\u0627\u0646\u062f\u0646 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f (stdin) (\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0634\u062f\u0647 \u0628\u0631\u0627\u06cc RPC\u0647\u0627\u06cc \u062c\u0631\u06cc\u0627\u0646\u06cc)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote style=\"direction: rtl; text-align: right\">\n<p><strong style=\"color: rgb(26, 26, 26)\">\u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0645\u062d\u06cc\u0637 \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647\u06cc:<\/strong>\u062a\u0645\u0627\u0645 \u0645\u062b\u0627\u0644\u200c\u0647\u0627\u06cc \u0639\u0645\u0644\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0633\u0631\u06cc \u0627\u0632<code>-plaintext<\/code>\u0628\u0631\u0627\u06cc \u0646\u0627\u062f\u06cc\u062f\u0647 \u06af\u0631\u0641\u062a\u0646 TLS \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u2014 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0631\u0627 \u0633\u0627\u062f\u0647\u200c\u062a\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0627\u0645\u0627<strong style=\"color: rgb(26, 26, 26)\">\u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u0648 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u0633\u0631\u0648\u0631 \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f<\/strong>. \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc (Production)\u060c \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f<code>-plaintext<\/code>\u0628\u0627<code>-cacert<\/code>, <code>-cert<\/code>\u0648<code>-key<\/code>\u0641\u0644\u06af\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc TLS \u0648\u0627\u0642\u0639\u06cc \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u0646\u062f. \u0645\u0642\u0627\u0644\u0647 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">Certz<\/a> \u0646\u062d\u0648\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0622\u0646 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627 \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<\/blockquote>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0631\u0648\u062a\u0631 (Router)<\/h3>\n<ul style=\"direction: rtl; text-align: right\">\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0631\u0648\u062a\u0631 IOS XR<\/strong>\u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a gRPC \u0641\u0639\u0627\u0644 \u2014 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062f\u0631 <a href=\"https:\/\/www.cisco.com\/c\/en\/us\/td\/docs\/iosxr\/cisco8000\/programmability\/b-programmability-configuration-guide-cisco8000\/m-grpc-fundamentals-and-authentication.html\" style=\"color: rgb(0, 102, 204)\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u067e\u0630\u06cc\u0631\u06cc (Programmability Configuration Guide)<\/a><\/li>\n<li>\u062d\u062f\u0627\u0642\u0644 \u0646\u0633\u062e\u0647 IOS XR \u0628\u0633\u062a\u06af\u06cc \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062f\u0627\u0631\u062f (\u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f \u062f\u0631 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/introducing-gnsi-grpc-native-aaa-for-cisco-ios-xr#ios-xr-release-support\" style=\"color: rgb(0, 102, 204)\">\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0646\u0633\u062e\u0647 (Release Support)<\/a>)<\/li>\n<\/ul>\n<p style=\"direction: rtl; text-align: right\">\u0647\u0631 \u0645\u0642\u0627\u0644\u0647 \u062e\u062f\u0645\u0627\u062a\u06cc \u0634\u0627\u0645\u0644 \u0628\u0644\u0648\u06a9 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0645\u062d\u06cc\u0637\u06cc (Environment Setup) \u0645\u062e\u0635\u0648\u0635 \u0628\u0647 \u062e\u0648\u062f \u0627\u0633\u062a.<\/p>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0634\u0631\u0648\u0639 \u0633\u0631\u06cc\u0639: \u062a\u0623\u06cc\u06cc\u062f gNSI \u0631\u0648\u06cc \u0631\u0648\u062a\u0631<\/h2>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/h3>\n<ul style=\"direction: rtl; text-align: right\">\n<li>\u0631\u0648\u062a\u0631 IOS XR \u0628\u0627 \u0642\u0627\u0628\u0644\u06cc\u062a gRPC \u0641\u0639\u0627\u0644 (\u0646\u0633\u062e\u0647 7.11.1 \u06cc\u0627 \u0628\u0627\u0644\u0627\u062a\u0631 \u0628\u0631\u0627\u06cc Authz \u2014 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/introducing-gnsi-grpc-native-aaa-for-cisco-ios-xr#ios-xr-release-support\" style=\"color: rgb(0, 102, 204)\">\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0646\u0633\u062e\u0647 (Release Support)<\/a>)<\/li>\n<li><a href=\"https:\/\/github.com\/fullstorydev\/grpcurl\" style=\"color: rgb(0, 102, 204)\">grpcurl<\/a> \u0646\u0635\u0628 \u0634\u062f\u0647<\/li>\n<li>\u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627\u06cc OpenConfig gNSI \u06a9\u0644\u0648\u0646 \u0634\u062f\u0647 (\u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/introducing-gnsi-grpc-native-aaa-for-cisco-ios-xr#proto-files\" style=\"color: rgb(0, 102, 204)\">\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u0631\u0648\u062a\u0648 (Proto files)<\/a> \u062f\u0631 \u0628\u0627\u0644\u0627)<\/li>\n<\/ul>\n<h3 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc (Run the check)<\/h3>\n<p style=\"direction: rtl; text-align: right\">\u067e\u0633 \u0627\u0632 \u0646\u0635\u0628 grpcurl \u0648 \u06a9\u0644\u0648\u0646 \u06a9\u0631\u062f\u0646 (Cloning) \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc protos\u060c \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0634\u0648\u062f \u06a9\u0647 \u0631\u0648\u062a\u0631 (Router) \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc Authz RPCs \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<blockquote style=\"direction: rtl; text-align: right\">\n<p><strong style=\"color: rgb(26, 26, 26)\">\u0645\u0647\u0645:<\/strong>\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f<code>198.51.100.1:57400<\/code>\u0628\u0627 IP \u0648\u0627\u0642\u0639\u06cc \u0631\u0648\u062a\u0631 \u0648 \u067e\u0648\u0631\u062a gRPC. \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u0628\u0627 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0648\u062a\u0631 \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f.<\/p>\n<\/blockquote>\n<pre><code><span><span>export<\/span> <span>GNSI_IMPORT<\/span><span>=<\/span><span>\"<span>${GNSI_IMPORT<span>:-<\/span>$PWD}<\/span>\"<\/span>\n<\/span><span><span>export<\/span> <span>XR<\/span><span>=<\/span><span>\"<span>${XR<span>:-<\/span>198.51.100.1<span>:<\/span>57400}<\/span>\"<\/span> <span># \u2190 replace with router IP:port<\/span>\n<\/span><span><span>export<\/span> <span>XR_USER<\/span><span>=<\/span><span>\"<span>${XR_USER<span>:-<\/span>cisco}<\/span>\"<\/span>\n<\/span><span><span>export<\/span> <span>XR_PASS<\/span><span>=<\/span><span>\"<span>${XR_PASS<span>:-<\/span>}<\/span>\"<\/span> <span># \u2190 replace with password<\/span>\n<\/span><span><span>GRPC_MD<\/span><span>=<\/span><span>(<\/span>-H <span>\"username:<span>${XR_USER}<\/span>\"<\/span> <span>-H<\/span> <span>\"password:<span>${XR_PASS}<\/span>\"<\/span><span>)<\/span>\n<\/span><span>grpcurl <span>-plaintext<\/span> <span>\\<\/span>\n<\/span><span> -import-path <span>\"<span>$GNSI_IMPORT<\/span>\"<\/span> <span>\\<\/span>\n<\/span><span> <span>-proto<\/span> <span>\"authz\/authz.proto\"<\/span> <span>\\<\/span>\n<\/span><span> <span>\"<span>${GRPC_MD<span>[<\/span>@<span>]<\/span>}<\/span>\"<\/span> <span>\\<\/span>\n<\/span><span> <span>\"<span>${XR}<\/span>\"<\/span> <span>\\<\/span>\n<\/span><span> list gnsi.authz.v1.Authz\n<\/span><\/code><\/pre>\n<p style=\"direction: rtl; text-align: right\">\u0644\u0637\u0641\u0627\u064b \u0645\u062a\u0646 \u0648\u0631\u0648\u062f\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u062a\u0631\u062c\u0645\u0647 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0637\u0628\u0642 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0648 \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644\u200c\u0647\u0627\u06cc \u062a\u0639\u06cc\u06cc\u0646\u200c\u0634\u062f\u0647\u060c \u062a\u0631\u062c\u0645\u0647 \u0622\u0646 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0645.<\/p>\n<pre><code><span>gnsi.authz.v1.Authz.Get\n<\/span><span>gnsi.authz.v1.Authz.Probe\n<\/span><span>gnsi.authz.v1.Authz.Rotate\n<\/span><\/code><\/pre>\n<p style=\"direction: rtl; text-align: right\">\u0627\u06af\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u06a9\u0627\u0631 \u06a9\u0646\u062f\u060c \u0631\u0648\u062a\u0631 \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647 \u0645\u0642\u0627\u0644\u0647 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">Certz<\/a> \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0628\u062a\u062f\u0627 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a TLS \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u060c \u06cc\u0627 \u0628\u0647 \u0645\u0642\u0627\u0644\u0647 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\">Authz<\/a> \u0628\u0631\u0648\u06cc\u062f \u062a\u0627 \u06cc\u06a9 \u062e\u0637\u200c\u0645\u0634\u06cc \u0645\u062c\u0648\u0632 (Authorization Policy) \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 style=\"color: rgb(26, 26, 26); font-weight: 700; direction: rtl; text-align: right\">\u0627\u0631\u062c\u0627\u0639\u0627\u062a OpenConfig<\/h2>\n<ul style=\"direction: rtl; text-align: right\">\n<li><strong style=\"color: rgb(26, 26, 26)\">\u067e\u0631\u0648\u062a\u06a9\u0644\u200c\u0647\u0627 \u0648 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0647\u0631 \u0633\u0631\u0648\u06cc\u0633:<\/strong><a href=\"https:\/\/github.com\/openconfig\/gnsi\" style=\"color: rgb(0, 102, 204)\">github.com\/openconfig\/gnsi<\/a><\/li>\n<li><strong style=\"color: rgb(26, 26, 26)\">\u0645\u062f\u0644\u200c\u0647\u0627\u06cc YANG \/ \u062a\u0644\u0647\u200c\u0645\u062a\u0631\u06cc (Telemetry):<\/strong><a href=\"https:\/\/github.com\/openconfig\/public\/tree\/master\/release\/models\/gnsi\" style=\"color: rgb(0, 102, 204)\">github.com\/openconfig\/public \u2014 release\/models\/gnsi<\/a><\/li>\n<\/ul>\n<hr>\n<blockquote style=\"direction: rtl; text-align: right\">\n<p><strong style=\"color: rgb(26, 26, 26)\">gNSI \u062f\u0631 \u0633\u0631\u06cc IOS XR:<\/strong><strong style=\"color: rgb(26, 26, 26)\">\u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc (Overview)<\/strong> \u00b7 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">\u06af\u0648\u0627\u0647\u06cc\u200c\u0647\u0627 (Certz)<\/a> \u00b7 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">\u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627 (Credentialz)<\/a> \u00b7 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/grpc-authorization-with-authz\" style=\"color: rgb(0, 102, 204)\">\u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authz)<\/a> \u00b7 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/securing-gnmi-with-pathz\" style=\"color: rgb(0, 102, 204)\">\u0645\u0633\u06cc\u0631\u0647\u0627 (Pathz)<\/a> \u00b7 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-acctz-management-plane-accounting-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">\u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Acctz)<\/a><\/p>\n<\/blockquote>\n<p style=\"direction: rtl; text-align: right\"><strong style=\"color: rgb(26, 26, 26)\">\u0634\u0631\u0648\u0639 \u0645\u0637\u0627\u0644\u0639\u0647 \u2192<\/strong><a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-certz-tls-certificate-lifecycle-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\">Certz \u2014 \u0686\u0631\u062e\u0647 \u062d\u06cc\u0627\u062a \u06af\u0648\u0627\u0647\u06cc TLS<\/a> (\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (authentication) \u062f\u0631 \u0627\u0648\u0644\u0648\u06cc\u062a \u0627\u0633\u062a)\u00b7 \u0633\u067e\u0633 <a href=\"https:\/\/xrdocs.io\/programmability\/blogs\/gnsi-credentialz-ssh-credential-rotation-on-cisco-ios-xr\" style=\"color: rgb(0, 102, 204)\"><strong style=\"color: rgb(26, 26, 26)\">Credentialz<\/strong><\/a> \u0628\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a SSH.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0634\u06a9\u0644 \u0628\u0631\u0627\u06cc CLI\u060c NETCONF \u0648 SNMP\u060c \u0627\u0645\u0646\u06cc\u062a \u06cc\u06a9 \u0645\u0633\u0626\u0644\u0647 \u062d\u0644\u200c\u0634\u062f\u0647 \u0627\u0633\u062a. AAA (\u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a (Authentication)\u060c \u0645\u062c\u0648\u0632\u062f\u0647\u06cc (Authorization) \u0648 \u062d\u0633\u0627\u0628\u0631\u0633\u06cc (Accounting)) \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 TACACS+ \u0648\u2026<\/p>\n","protected":false},"author":1,"featured_media":238,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[98,232,234,47,236,35],"tags":[],"class_list":["post-236","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation","category-gnsi","category-grpc","category-iosxr","category-programmability","category-security"],"_links":{"self":[{"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/posts\/236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/comments?post=236"}],"version-history":[{"count":1,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/posts\/236\/revisions"}],"predecessor-version":[{"id":239,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/posts\/236\/revisions\/239"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/media\/238"}],"wp:attachment":[{"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/media?parent=236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/categories?post=236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.anynet.ir\/blog\/wp-json\/wp\/v2\/tags?post=236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}