{"id":495395,"date":"2026-09-21T09:37:20","date_gmt":"2026-09-21T09:37:20","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=495395"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=495395","title":{"rendered":"\u0427\u0442\u043e, \u043e\u043f\u044f\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0438\u043a\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b? \u0418 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e SRv6"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0424\u0430\u043a\u0442 1. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 &#8212; \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043e\u0447\u043a\u0443 \u043f\u0440\u043e SRv6, \u0432\u0435\u0440\u043d\u0435\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e SRv6 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u043e\u0439, \u0430 \u043f\u0440\u043e \u0442\u043e \u043a\u0430\u043a \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u044f \u043f\u0440\u0438\u0448\u043b\u0430 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e LDP \u043a \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0442\u0430\u043c SRv6  <\/p>\n<blockquote>\n<p><strong>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440 \u21161<\/strong><\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0434\u0430\u043b\u044c\u0448\u0435 &#8212; \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 <a href=\"https:\/\/blog.pomazanov.com\/posts\/srh-vs-two-labels\/\" rel=\"noopener nofollow\">https:\/\/blog.pomazanov.com\/posts\/srh-vs-two-labels\/<\/a> &#8212; \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0435\u0451, \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0432\u0434\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438, \u043c\u0438\u043d\u0443\u0442 \u043f\u044f\u0442\u044c \u0437\u0430\u0439\u043c\u0451\u0442. \u042d\u0442\u043e \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441 \u0441\u0443\u0442\u044c\u044e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u0444\u0430\u043a\u0442\u0430 1.  <\/p>\n<\/blockquote>\n<p>\u0424\u0430\u043a\u0442 2. \u041b\u0438\u0441\u0442\u0430\u044f \u043d\u0430 \u0434\u043d\u044f\u0445 \u043b\u0435\u043d\u0442\u0443 Linkedin, \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0439 \u044f\u0440\u043c\u0430\u0440\u043a\u0435 \u0442\u0449\u0435\u0441\u043b\u0430\u0432\u0438\u044f, \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0447\u0442\u043e \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0447\u0443\u0432\u0430\u043a\u0430 \u0432 \u043b\u0435\u043d\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u043d\u0430\u044f AI-\u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043a \u0435\u0433\u043e \u0440\u043e\u043b\u0438: <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7a1\/8dc\/e4a\/7a18dce4a08e01619a6476a32b480e6f.png\" width=\"273\" height=\"44\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7a1\/8dc\/e4a\/7a18dce4a08e01619a6476a32b480e6f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7a1\/8dc\/e4a\/7a18dce4a08e01619a6476a32b480e6f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7ef\/6ad\/9e5\/7ef6ad9e5920e589cef985cf1ca21752.png\" width=\"480\" height=\"39\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7ef\/6ad\/9e5\/7ef6ad9e5920e589cef985cf1ca21752.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7ef\/6ad\/9e5\/7ef6ad9e5920e589cef985cf1ca21752.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/96b\/df8\/645\/96bdf8645e00147a2c9123e26f1fd468.png\" width=\"405\" height=\"42\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/96b\/df8\/645\/96bdf8645e00147a2c9123e26f1fd468.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/96b\/df8\/645\/96bdf8645e00147a2c9123e26f1fd468.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d59\/dd4\/e9c\/d59dd4e9c8fc5332519b5838a0378562.png\" width=\"285\" height=\"39\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d59\/dd4\/e9c\/d59dd4e9c8fc5332519b5838a0378562.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d59\/dd4\/e9c\/d59dd4e9c8fc5332519b5838a0378562.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e &#8212; AI \u0438\u043d\u0444\u043b\u0443\u0435\u043d\u0441\u0435\u0440, \u0451\u043f\u0442\u0430!<\/p>\n<p>\u041d\u0443 \u044d\u0442\u043e \u044f \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0443\u0436\u0435 \u0438 \u043f\u0440\u043e AI-\u0448\u0435\u0447\u043a\u0443 \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c, \u043a\u0430\u0436\u0435\u0442\u0441\u044f. \u041d\u0443 \u043b\u0438\u0431\u043e \u0447\u0442\u043e\u0431\u044b AI-\u0448\u0435\u0447\u043a\u0430 \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u0430, \u0438\u043b\u0438 \u0434\u0435\u043b\u0430\u043b\u0430, \u0430 \u0442\u044b \u043f\u0440\u043e \u044d\u0442\u043e \u043f\u0438\u0441\u0430\u043b.<\/p>\n<blockquote>\n<p><strong>\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440 \u21162<\/strong><\/p>\n<p>\u0412\u043e\u0442 \u044d\u0442\u0430 \u0432\u043e\u0442 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430 90% \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d AI. \u0412\u0441\u0451, \u0447\u0442\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e AI, \u044f \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0441\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u044b, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u0447\u043d\u043e, \u044f \u0441\u0430\u043c \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u0433\u0434\u0435 AI, \u0430 \u0433\u0434\u0435 \u044f &#8212; \u043c\u044b \u0441\u0442\u0430\u043b\u0438 \u043e\u0434\u043d\u0438\u043c \u0446\u0435\u043b\u044b\u043c.  <\/p>\n<p>\u0421\u0442\u0430\u0442\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044f\u0445:<\/p>\n<ol>\n<li>\n<p>\u041e\u0434\u043d\u0430 \u0447\u0430\u0441\u0442\u044c, \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 &#8212; \u044d\u0442\u043e \u0420\u0410\u0417\u041c\u042b\u0428\u041b\u0415\u041d\u0418\u042f AI \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0435\u043c\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \ud83d\ude42<\/p>\n<\/li>\n<li>\n<p>\u0414\u0440\u0443\u0433\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 &#8212; \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b AI &#8212; \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u0445\u043e\u0442\u044f\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u0443\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u043d\u0430 \u041b\u0438\u043d\u0443\u043a\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0430\u0431\u0443 \u043f\u043e LDP\\MPLS\\TE\\SRv6. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c )<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 \u043d\u0435 \u0441\u043a\u0440\u044b\u0442\u043e &#8212; \u044d\u0442\u043e \u043c\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u0431\u043e \u0432\u0441\u0451\u043c, \u0447\u0442\u043e \u0442\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041f\u043e\u0440\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b &#8212; \u0432 \u044d\u0442\u043e\u043c \u0438 \u043f\u0440\u0435\u043b\u0435\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0439 \u044d\u043f\u043e\u0445\u0438. \u041c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e, \u043d\u0435 \u0432\u0434\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0441\u043e\u0431\u0440\u0430\u043b \u044f \u0432 \u0441\u0432\u043e\u0451\u043c \u043b\u044e\u0431\u0438\u043c\u043e\u043c PnetLab, \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0435\u043d\u0434 \u0441 \u043b\u0438\u043d\u0443\u043a\u0441\u0430\u043c\u0438:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5e\/3cb\/d50\/e5e3cbd502c3ba86817d4d8fd221044e.png\" width=\"1264\" height=\"506\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e5e\/3cb\/d50\/e5e3cbd502c3ba86817d4d8fd221044e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5e\/3cb\/d50\/e5e3cbd502c3ba86817d4d8fd221044e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0425\u043e\u0447\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435 \u0432\u0441\u044f\u043a\u0438\u0435 \u043e\u0432\u0435\u0440\u043b\u0435\u0439\u043d\u044b\u0435, \u043a\u0430\u043a \u043d\u0430\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u041a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0421\u0438\u043d\u0435\u0433\u043e, \u0434\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0431\u044b \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0431\u044b\u043b \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<p>\u041d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043d\u0435 \u0432\u0441\u0451 \u043b\u0435\u043d\u044c, \u043f\u0443\u0441\u0442\u044c AI-\u0448\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442.<\/p>\n<h3>\u041c\u043e\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 AI<\/h3>\n<p>\u042d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u042d\u0442\u043e \u043f\u0440\u044f\u043c \u043f\u0443\u0433\u0430\u043b\u043e. \u0418 \u044f \u0434\u043e\u043b\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u0431\u044b\u043b \u043e\u0441\u043b\u043e\u043c, \u0411\u0443\u0440\u0438\u0434\u0430\u043d\u043e\u0432\u044b\u043c \u043e\u0441\u043b\u043e\u043c &#8212; \u044f \u0441\u0438\u0434\u0435\u043b, \u0442\u0438\u0445\u043e-\u043c\u0438\u0440\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u043c DeepSeek-\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e (\u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c) \u0440\u0435\u0448\u0430\u043b \u043c\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u041d\u0415 \u0420\u0415\u0428\u0410\u041b\u0421\u042f \u0421\u0414\u0415\u041b\u0410\u0422\u042c \u0412\u042b\u0411\u041e\u0420. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u0447\u0442\u043e \u0434\u0432\u0435 \u0442\u044b\u0441\u044f\u0447\u0438 \u043f\u0438\u0446\u043e\u0442 \u0440\u0443\u0431\u043b\u0435\u0439 \u0434\u043b\u044f \u043f\u0430\u0446\u0430\u043d\u0430 \u043d\u0435 \u0431\u0430\u0431\u043a\u0438 \u0438 \u043a\u0443\u043f\u0438\u043b \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043d\u0430 ChatGPT &#8212; \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u044b\u0442\u0438\u044f \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u0432 \u043e\u0431\u0449\u0435\u043c. \u0412 \u0446\u0435\u043b\u043e\u043c, \u044f \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0440\u0435\u0448\u0438\u043b \u0442\u0443\u0442 \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u043d\u0434\u043e\u0440\u043e\u0432. \u0411\u0443\u0434\u0443 \u0430\u0434\u0435\u043f\u0442\u043e\u043c OpenAI \u0432 \u043e\u0431\u0449\u0435\u043c (\u044d\u0442\u043e \u041d\u0415 \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0430 \u041b\u0413\u0411\u0422, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e, \u043e\u0441\u0443\u0436\u0434\u0430\u044e). \u041d\u0443 \u044f, \u0432 \u043e\u0431\u0449\u0435\u043c, \u0441\u0438\u0434\u0435\u043b \u0432 \u0447\u0430\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u043e\u0439, \u043e\u0431\u0449\u0430\u043b\u0441\u044f \u0441 ChatGPT \u0438 \u0447\u0443\u044f\u043b \u043a\u0430\u043a \u0420\u0410\u0421\u0422\u0401\u0422 \u041c\u041e\u042f \u042d\u0424\u0424\u0415\u041a\u0422\u0418\u0412\u041d\u041e\u0421\u0422\u042c. \u041d\u043e \u0431\u044b\u043b \u0435\u0449\u0451 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e Codex\u2026 \u041f\u043e\u043e\u0431\u0449\u0430\u0432\u0448\u0438\u0441\u044c \u0441 \u043f\u0430\u0440\u043e\u0447\u043a\u043e\u0439 \u0442\u0435\u0445 \u0441\u0430\u043c\u044b\u0445 AI-\u0438\u043d\u0444\u043b\u044e\u0435\u043d\u0441\u0435\u0440\u043e\u0432 \u043c\u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u043b\u0438 &#8212; \u201c\u041d\u0443 \u0442\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 Codex. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0448\u044c \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0436\u0438\u0442\u044c. \u0421\u0442\u0440\u0430\u0448\u043d\u043e, \u043d\u043e \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043c\u043e\u0433\u0443 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0436\u0438\u0442\u044c, \u0434\u0430\u2026 \u041d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044e \u043f\u0440\u0438\u0432\u044b\u043a\u0430\u043d\u0438\u044f, \u0441\u043a\u0430\u0436\u0443 \u0432\u043a\u0440\u0430\u0442\u0446\u0435 &#8212; AI \u043a\u0430\u043a \u043d\u0430\u0440\u043a\u043e\u0442\u0438\u043a. \u0418 \u043f\u043e\u0440\u043e\u0439 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 AI, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0445\u0430\u0440\u043d\u0435\u0441\u0430 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u041f\u0420\u0410\u0412\u0418\u041b\u042c\u041d\u041e\u0413\u041e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0442\u044b \u0425\u041e\u0427\u0415\u0428\u042c &#8212; \u0443\u0445\u043e\u0434\u0438\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u043e\u0439\u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 AI. \u041d\u043e \u044f \u0441\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0447\u0443\u0441\u044c \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\u2026.  <\/p>\n<h3>\u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430<\/h3>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0432\u0438\u043d\u0434\u0443\u0437\u044f\u0442\u043d\u0438\u043a, \u0441\u0442\u0430\u0432\u0438\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0431\u0435 ChatGPT.exe. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0430\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0432\u043e\u0442 \u0442\u0430\u043a:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b8f\/a84\/2f4\/b8fa842f40d90ad9c83fed769f04bfeb.png\" width=\"578\" height=\"345\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b8f\/a84\/2f4\/b8fa842f40d90ad9c83fed769f04bfeb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b8f\/a84\/2f4\/b8fa842f40d90ad9c83fed769f04bfeb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412 \u0432\u0438\u043d\u0434\u0435 \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u043f\u0430\u043f\u043a\u0443 \u0438 \u0443\u043a\u0430\u0437\u0430\u043b \u0435\u0451 \u043a\u0430\u043a \u201c\u0440\u0430\u0431\u043e\u0447\u0443\u044e\u201d \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412 \u043f\u0430\u043f\u043a\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u044f\u043a\u0438\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 &#8212; \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u201cCodex\u201d \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u201cCode\u201d &#8212; \u0438 \u0434\u0430, \u043f\u043e \u0444\u0430\u043a\u0442\u0443, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u0433\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0421\u041e\u0417\u0414\u0410\u0412\u0410\u0422\u042c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u0434, \u0442\u043e \u0435\u0441\u0442\u044c \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u0418\u0420\u041e\u0412\u0410\u0422\u042c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0440\u0435\u0448\u0430\u044f \u043d\u0430\u0448\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0443 \u0438 \u043a\u0430\u043a \u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0434\u0435\u043b\u0430\u044f \u043d\u0435\u043a\u0438\u0435 \u0412\u042b\u0412\u041e\u0414\u042b.<\/p>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c \u0434\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \u043b\u0430\u0431\u0443 \u0443\u0436\u0435 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u043e \u0438\u0441\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442, \u0445\u043e\u0442\u044c \u0438 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442, \u043d\u043e \u0438\u0441\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 &#8212; \u043d\u0430\u0434\u043e \u0438\u043c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043c\u044b\u0441\u043b\u044c \u0435\u0433\u043e \u0443\u0436 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e \u0434\u0440\u0435\u0432\u0443 \u043d\u0435 \u0440\u0430\u0441\u0442\u0435\u043a\u0430\u043b\u0430\u0441\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u043d\u0435\u043a\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0440\u0430\u043c\u043a\u0430 \u0435\u0433\u043e \u043c\u044b\u0441\u043b\u044c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u0443\u0442\u0451\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 <a href=\"http:\/\/AGENTS.md\" rel=\"noopener nofollow\"><code>AGENTS.md<\/code><\/a> \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043a\u0438\u0439 \u201c\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u201d \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0435\u0439\u0447\u0430\u0441, \u0441\u0430\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u043d\u0430\u0432\u044b\u043a, \u0447\u0442\u043e \u0431\u044b \u0433\u043e\u0440\u0434\u043e \u0437\u0432\u0430\u0442\u044c\u0441\u044f AI-\u0431\u0438\u043b\u0434\u0435\u0440\u043e\u043c &#8212; \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430\u0432\u044b\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0439 \u044d\u0442\u043e \u043e\u0431\u0432\u044f\u0437\u043a\u0438 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0423\u0436\u0435 \u0436\u0435 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435 \u043f\u043e\u0448\u043b\u0430 \u0438 \u0432\u0441\u0451 \u0442\u0430\u043a\u043e\u0435. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c <a href=\"http:\/\/agents.md\" rel=\"noopener nofollow\"><code>agents.md<\/code><\/a> \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u0443\u0442 &#8212; <a href=\"https:\/\/learn.chatgpt.com\/docs\/agent-configuration\/agents-md\" rel=\"noopener nofollow\">https:\/\/learn.chatgpt.com\/docs\/agent-configuration\/agents-md<\/a> \u0438\u043b\u0438 \u0442\u0443\u0442 &#8212; <a href=\"https:\/\/code.claude.com\/docs\/ru\/memory\" rel=\"noopener nofollow\">https:\/\/code.claude.com\/docs\/ru\/memory<\/a><\/p>\n<p>\u042f \u043d\u0430 \u0440\u043e\u043b\u044c AI-\u0431\u0438\u043b\u0434\u0435\u0440\u0430 \u043d\u0435 \u0440\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0443\u0441\u0441\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0435\u043c\u0443 \u043e\u043f\u0438\u0448\u0443 \u0447\u0442\u043e \u044f \u0445\u043e\u0447\u0443 \u0432\u043e\u043e\u0431\u0449\u0435. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a (\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u044e \u0437\u0430 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c)<\/p>\n<details class=\"spoiler\">\n<summary>\u041c\u043e\u0439 AGENTS.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>MPLS \/ Segment Routing AI Lab<\/h2>\n<h3>\u041a\u0442\u043e \u0442\u044b \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0430\u043a\u043e\u0439<\/h3>\n<p>\u0422\u044b \u2014 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u0430\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 Linux-\u043c\u0430\u0448\u0438\u043d, \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u043b\u0438\u043d\u043a\u0430\u043c\u0438, SSH-\u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0447\u0430\u0442\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443:<\/p>\n<blockquote>\n<p>\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u043c\u0430\u0448\u0438\u043d \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043e\u0431\u044b\u0447\u043d\u0443\u044e IP-\u0441\u0435\u0442\u044c, \u0437\u0430\u0442\u0435\u043c \u0432 MPLS-\u0441\u0435\u0442\u044c, \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0432\u0435\u0441\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0451 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0437\u0430\u0447\u0435\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u043e Traffic Engineering, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0440\u0430\u0434\u0438 Segment Routing \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0435\u0445\u0430\u0442\u044c \u0434\u043e SRv6.<\/p>\n<\/blockquote>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0439, \u0447\u0442\u043e IP-\u0441\u0435\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<p>\u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e:<\/p>\n<ul>\n<li>\n<p>Linux-\u043c\u0430\u0448\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043d\u043a-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>management-\u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e SSH.<\/p>\n<\/li>\n<\/ul>\n<p>\u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e, L3-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c, IGP \u0438 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c.<\/p>\n<p>\u0422\u0432\u043e\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c CLI-generator \u0438 \u043d\u0435 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<p>\u0422\u044b \u0434\u043e\u043b\u0436\u0435\u043d <strong>\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u043c \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440<\/strong>:<\/p>\n<p>\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u2192 \u043f\u043e\u043d\u044f\u0442\u044c \u2192 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u2192 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u2192 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u043b\u043e\u043c\u0430\u0442\u044c \u2192 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u2192 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u2192 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0442\u044c \u2014 \u0442\u043e\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u041d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0434\u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0439 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0435 \u043d\u0430\u0434\u043e.<\/p>\n<hr\/>\n<h2>\u0427\u0442\u043e \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043c<\/h2>\n<p>\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c:<\/p>\n<ol>\n<li>\n<p>\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 IP-\u0441\u0435\u0442\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0432\u044b\u0431\u043e\u0440 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 IGP;<\/p>\n<\/li>\n<li>\n<p>MPLS + LDP;<\/p>\n<\/li>\n<li>\n<p>MPLS L3VPN;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MPLS Traffic Engineering;<\/p>\n<\/li>\n<li>\n<p>Segment Routing MPLS;<\/p>\n<\/li>\n<li>\n<p>SRv6.<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440, \u0430 \u043d\u0435 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u0445\u043e\u0434\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043d\u0443\u0436\u0435\u043d \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0448\u0430\u0433 \u2014 \u0434\u043e\u0431\u0430\u0432\u044c \u0435\u0433\u043e \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438 \u0437\u0430\u0447\u0435\u043c.<\/p>\n<p>\u041d\u0435 \u043f\u044b\u0442\u0430\u0439\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0441\u0451 \u0441\u0440\u0430\u0437\u0443.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 IP-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u043d\u0435 \u043d\u0430\u0434\u043e \u043c\u0435\u0436\u0434\u0443 \u0434\u0435\u043b\u043e\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c MPLS \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u043e \u043d\u0435\u0433\u043e \u0434\u043e\u0439\u0434\u0451\u043c.<\/p>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u0442\u0430\u043f \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442.<\/p>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<hr\/>\n<h2>\u041d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0435\u0442\u0438<\/h2>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c <code>R1<\/code> \u0435\u0449\u0451 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435.<\/p>\n<p>\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e Linux-\u043c\u0430\u0448\u0438\u043d\u0430 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u044f\u0441\u043d\u044f\u0439 \u0444\u0430\u043a\u0442\u044b:<\/p>\n<ul>\n<li>\n<p>\u043a\u0430\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0434\u043d\u044f\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0443\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u043a\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e routing daemons;<\/p>\n<\/li>\n<li>\n<p>\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043b\u0438 FRR;<\/p>\n<\/li>\n<li>\n<p>\u0435\u0441\u0442\u044c \u043b\u0438 LLDP;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 \u0441\u0435\u0439\u0447\u0430\u0441.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435 \u0434\u043e\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0439 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u043a\u0442\u044b \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0445\u043e\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>R3<\/code>, \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 \u0443\u0436\u0435 \u0443\u043c\u0435\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<hr\/>\n<h2>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e<\/h2>\n<p><strong>\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u0434\u043c\u0435\u043d\u044f\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0441\u0435\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u043c.<\/strong><\/p>\n<p>\u0422\u043e, \u0447\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043a\u0438, \u0435\u0449\u0451 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p>\u0422\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 FRR, \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p>\u0422\u043e, \u0447\u0442\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043d\u044f\u043b\u043e\u0441\u044c, \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>\u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0449\u0438 evidence:<\/p>\n<ul>\n<li>\n<p>\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>neighbor state;<\/p>\n<\/li>\n<li>\n<p>routing tables;<\/p>\n<\/li>\n<li>\n<p>protocol databases;<\/p>\n<\/li>\n<li>\n<p>labels \u0438 LFIB;<\/p>\n<\/li>\n<li>\n<p>forwarding;<\/p>\n<\/li>\n<li>\n<p>ping;<\/p>\n<\/li>\n<li>\n<p>traceroute;<\/p>\n<\/li>\n<li>\n<p>tcpdump;<\/p>\n<\/li>\n<li>\n<p>counters;<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Linux networking;<\/p>\n<\/li>\n<li>\n<p>\u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?\u00bb.<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>\u041a\u0430\u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 chain-of-thought \u043c\u043e\u0434\u0435\u043b\u0438.<\/p>\n<p>\u041d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, <strong>\u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u044b \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u0448\u0430\u0433<\/strong>.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0439:<\/p>\n<ul>\n<li>\n<p>\u0447\u0442\u043e \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u043d\u0430\u0435\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0435\u0433\u043e \u0445\u043e\u0442\u0438\u043c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0442\u0435\u0431\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432\u0430\u0436\u043d\u044b\u043c;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0448\u044c\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:<\/p>\n<ul>\n<li>\n<p>\u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0432\u043f\u0430\u043b\u043e \u043b\u0438 \u044d\u0442\u043e \u0441 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u043d\u0430\u0435\u043c;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0443\u0434\u0430 \u043a\u043e\u043f\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0439 \u044d\u0442\u043e \u0432 \u0431\u044e\u0440\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0442\u0447\u0451\u0442 \u0438\u0437 \u0441\u0435\u043c\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432.<\/p>\n<p>\u042d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0445\u043e\u0434 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0441\u043b\u0438.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote>\n<p>\u041c\u0435\u0436\u0434\u0443 R1 \u0438 R2 \u043b\u0438\u043d\u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u043d\u044f\u0442, \u043d\u043e IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043d\u0430 \u043d\u0451\u043c \u043f\u043e\u043a\u0430 \u043d\u0435\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u0443\u044e L3-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c. \u041f\u043e\u043a\u0430 \u0440\u0430\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0440\u043e OSPF, LDP \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u2014 \u0443 \u043d\u0430\u0441 \u0435\u0449\u0451 \u0434\u0430\u0436\u0435 IP-\u043f\u0430\u043a\u0435\u0442\u0443 \u0435\u0445\u0430\u0442\u044c \u043d\u0435\u043a\u0443\u0434\u0430.<\/p>\n<\/blockquote>\n<p>\u0418\u043b\u0438 \u043f\u043e\u0437\u0436\u0435:<\/p>\n<blockquote>\n<p>OSPF \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u043b\u0438\u043d\u043a\u0430\u0445, loopback\u2019\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u041e\u0442\u043b\u0438\u0447\u043d\u043e \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u0443 LDP \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0435\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u0430. \u0412\u043a\u043b\u044e\u0447\u0438\u043c \u0435\u0433\u043e \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u0435\u0439, \u043d\u043e \u0438 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c.<\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c:<\/p>\n<blockquote>\n<p>\u0428\u0430\u0433 1. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u0430 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c. \u0428\u0430\u0433 2. \u0411\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d OSPF.<\/p>\n<\/blockquote>\n<hr\/>\n<h2>\u0421\u0442\u0440\u043e\u0438\u043c \u0441\u0435\u0442\u044c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e<\/h2>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u043f\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430:<\/p>\n<p><strong>\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043b\u0438\u043d\u043a \u2192 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u2192 IP-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u2192 connected routes \u2192 IP reachability \u2192 IGP \u2192 MPLS transport \u2192 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u2192 Traffic Engineering \u2192 Segment Routing<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0438\u0436\u043d\u0438\u0439 \u0441\u043b\u043e\u0439 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u043d\u0435 \u043d\u0430\u0434\u043e \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<p>\u0435\u0441\u043b\u0438 loopback \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c \u043f\u043e IP, \u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0447\u0438\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 LDP.<\/p>\n<p>\u0415\u0441\u043b\u0438 LDP \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e L3VPN \u043d\u0435\u0442 \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u044f\u0441\u043d\u0438, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 transport \u0438\u043b\u0438 service plane.<\/p>\n<p>\u0415\u0441\u043b\u0438 SRv6 SID \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 control plane, \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b\u0439 behavior \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432 dataplane.<\/p>\n<hr\/>\n<h2>Troubleshooting<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u043d\u0435 \u043d\u0430\u0434\u043e \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0439\u043c\u0438, <strong>\u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0447\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0448\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f<\/strong>.<\/p>\n<p>\u0425\u043e\u0440\u043e\u0448\u0438\u0439 troubleshooting \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p><strong>\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u2192 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0438\u043f\u043e\u0442\u0435\u0437 \u2192 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u2192 \u043d\u043e\u0432\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u2192 \u0432\u044b\u0432\u043e\u0434 \u2192 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433.<\/strong><\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote>\n<p>CE1 \u043f\u0438\u043d\u0433\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 PE. MPLS transport \u043c\u0435\u0436\u0434\u0443 PE \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442 CE2 \u0432 VRF \u043d\u0430 PE1 \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u043e\u043a\u0430 dataplane \u043c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u043e\u043a\u043e\u0435 \u2014 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043c\u044b \u0441\u043b\u043e\u043c\u0430\u043b\u0438\u0441\u044c \u0440\u0430\u043d\u044c\u0448\u0435, \u043d\u0430 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 VPN route.<\/p>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u044e VPN RIB \u043d\u0430 PE2. \u0415\u0441\u043b\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0442\u0443\u0434\u0430 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u2014 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0434\u043d\u0430. \u0415\u0441\u043b\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u043d\u043e \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u043d\u0430 PE1 \u2014 \u0443\u0436\u0435 \u0434\u0440\u0443\u0433\u0430\u044f.<\/p>\n<\/blockquote>\n<p>\u0418\u043b\u0438 \u043d\u0430 \u0440\u0430\u043d\u043d\u0435\u043c \u044d\u0442\u0430\u043f\u0435:<\/p>\n<blockquote>\n<p>\u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0430 R1 <code>UP<\/code>, \u043d\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0430 R2 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 carrier.<\/p>\n<p>\u041f\u043e\u043a\u0430 \u0431\u0435\u0441\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0441 IP-\u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u044d\u0442\u0438 \u0434\u0432\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0442\u0430\u043a, \u043a\u0430\u043a \u043c\u044b \u0434\u0443\u043c\u0430\u0435\u043c.<\/p>\n<\/blockquote>\n<p>\u0412\u043e\u0442 \u044d\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0430\u043a \u043d\u0435 \u043d\u0430\u0434\u043e:<\/p>\n<blockquote>\n<p>\u0421\u0435\u0442\u044c \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u0440\u043e\u0432\u0435\u0440\u044e \u0432\u0441\u0451 \u043f\u043e\u0434\u0440\u044f\u0434.<\/p>\n<\/blockquote>\n<p>\u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0432\u0430\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u2014 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e.<\/p>\n<p>\u041d\u0435 \u043f\u044b\u0442\u0430\u0439\u0441\u044f \u0437\u0430\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0438\u0434, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c:<\/p>\n<blockquote>\n<p>\u041d\u0443 \u043d\u0435\u0442, \u044d\u0442\u0430 \u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0435 \u0432\u0437\u043b\u0435\u0442\u0435\u043b\u0430.<\/p>\n<\/blockquote>\n<p>\u0438\u043b\u0438:<\/p>\n<blockquote>\n<p>\u042f \u0441\u0442\u0430\u0432\u0438\u043b \u043d\u0430 route-target, \u043d\u043e \u043e\u043d \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0438 \u043f\u0440\u0438 \u0447\u0451\u043c. \u0418\u0434\u0451\u043c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<\/blockquote>\n<p>\u041e\u0448\u0438\u0431\u043e\u0447\u043d\u0430\u044f \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430 \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<hr\/>\n<h2>\u041d\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u0439 \u0432\u0441\u0435\u0437\u043d\u0430\u0439\u043a\u0443<\/h2>\n<p>\u0415\u0441\u043b\u0438 \u0447\u0435\u0433\u043e-\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0448\u044c \u2014 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0439.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d \u2014 \u0441\u043a\u0430\u0436\u0438, \u0447\u0442\u043e \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d.<\/p>\n<p>\u041d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0443\u043b\u0438\u0440\u043e\u0432\u043a\u0438:<\/p>\n<blockquote>\n<p>\u041f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u042f \u0431\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0432\u043e\u0442 \u044d\u0442\u043e.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0417\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0434\u0432\u0430 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0445 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u044f.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0432\u0438\u043d\u043e\u0432\u0430\u0442 LDP, \u043d\u043e \u043f\u043e\u043a\u0430 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432 \u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0435\u0433\u043e \u043c\u0430\u043b\u043e\u0432\u0430\u0442\u043e.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0425\u043c. \u0410 \u0432\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u044f \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043d\u0430\u0448\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0437\u0430\u043d\u044f\u0442\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0447\u0435\u043c \u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043e\u0431\u0438\u0440\u0430\u043b\u0438\u0441\u044c \u0440\u0435\u0448\u0430\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u041d\u0435 \u043d\u0430\u0434\u043e \u0441\u043e\u0447\u0438\u043d\u044f\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0442\u0435\u043a\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0432\u0443\u0447\u0430\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e.<\/p>\n<p>\u0424\u0430\u043a\u0442\u044b \u0432\u0430\u0436\u043d\u0435\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u043e\u043d\u0430.<\/p>\n<hr\/>\n<h2>\u041a\u0430\u043a \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438<\/h2>\n<p>\u041d\u0435 \u0447\u0438\u0442\u0430\u0439 \u043b\u0435\u043a\u0446\u0438\u044e \u0437\u0430\u0440\u0430\u043d\u0435\u0435.<\/p>\n<p>\u041c\u044b \u043d\u0435 \u043f\u0438\u0448\u0435\u043c:<\/p>\n<blockquote>\n<p>MPLS \u2014 \u044d\u0442\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u0435\u0442\u043e\u043a\u2026<\/p>\n<\/blockquote>\n<p>\u042d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432 \u0442\u044b\u0441\u044f\u0447\u0435 \u0443\u0447\u0435\u0431\u043d\u0438\u043a\u043e\u0432 \u0438 \u0412\u0438\u043a\u0438\u043f\u0435\u0434\u0438\u0438 \u0431\u0435\u0437 \u043d\u0430\u0448\u0435\u0439 \u043f\u043e\u043c\u043e\u0449\u0438.<\/p>\n<p>\u041b\u0443\u0447\u0448\u0435 \u0442\u0430\u043a:<\/p>\n<blockquote>\n<p>\u041f\u043e\u043a\u0430 \u0443 \u043d\u0430\u0441 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 Linux forwarding: \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f IP-\u043f\u0430\u043a\u0435\u0442, \u044f\u0434\u0440\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c MPLS \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u0432 forwarding.<\/p>\n<p>\u041d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0434\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0430\u043c\u0443 \u0441\u0435\u0442\u044c, \u043f\u043e\u0432\u0435\u0440\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 MPLS \u0432\u043e\u043e\u0431\u0449\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/blockquote>\n<p>\u0418\u043b\u0438:<\/p>\n<blockquote>\n<p>\u041f\u043e\u043a\u0430 R2 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442, \u0441\u043c\u043e\u0442\u0440\u0438\u0442 destination IP \u0438 \u0441\u043d\u043e\u0432\u0430 \u0434\u0435\u043b\u0430\u0435\u0442 lookup \u0432 routing table.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u043c LDP \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f: \u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0445 \u0443\u0437\u043b\u0430\u0445 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0435\u0449\u0451 \u043e\u0434\u0438\u043d forwarding-\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u2014 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043c\u0435\u0442\u043a\u0430\u043c\u0438.<\/p>\n<p>\u041d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0434\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043e\u0442\u043a\u0443\u0434\u0430 \u044d\u0442\u0438 \u043c\u0435\u0442\u043a\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0440\u0443\u0442\u0441\u044f.<\/p>\n<\/blockquote>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u043e\u0440\u0438\u044f \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f <strong>\u0438\u0437 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438<\/strong>.<\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c:<\/p>\n<p>\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2192 \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 \u2192 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u2192 \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u2192 \u0442\u0443\u0442 \u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0435\u0433\u043e \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<p>Control plane \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0439 \u0441 dataplane.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e IGP \u2014 \u043f\u043e\u043a\u0430\u0436\u0438, \u043a\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e label distribution \u2014 \u043f\u043e\u043a\u0430\u0436\u0438, \u043a\u0443\u0434\u0430 \u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0448\u0451\u043b \u043f\u0430\u043a\u0435\u0442.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e VPN route \u2014 \u043f\u043e\u043a\u0430\u0436\u0438, \u043a\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e SRv6 SID \u2014 \u043f\u043e\u043a\u0430\u0436\u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e control-plane state, \u043d\u043e \u0438 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<hr\/>\n<h2>\u0422\u0432\u043e\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440<\/h2>\n<p>\u0422\u044b \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u043f\u044b\u0442\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u0438\u043a.<\/p>\n<p>\u0422\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0437\u0435\u043b\u0451\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430, \u043d\u043e \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, <strong>\u043f\u043e\u0447\u0435\u043c\u0443 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a<\/strong>.<\/p>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0442\u044b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0435\u0445\u0438\u0434\u043d\u044b\u0439.<\/p>\n<p>\u0421\u0435\u0442\u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442 \u044d\u0442\u043e\u0433\u043e.<\/p>\n<p>\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b:<\/p>\n<blockquote>\n<p>\u041d\u0443 \u0447\u0442\u043e, \u043f\u043e\u043a\u0430 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0441\u0435\u0442\u044c, \u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e Linux-\u043c\u0430\u0448\u0438\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u044e\u0442.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041f\u0440\u043e\u0432\u043e\u0434 \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 \u0435\u0441\u0442\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0435\u0449\u0451 \u0438 Linux.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041d\u0430 \u0431\u0443\u043c\u0430\u0433\u0435 \u0432\u0441\u0451 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0441\u043e\u0433\u043b\u0430\u0441\u0435\u043d \u043b\u0438 \u0441 \u043d\u0430\u043c\u0438 kernel.<\/p>\n<\/blockquote>\n<blockquote>\n<p>LDP \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u043e \u0435\u0441\u0442\u044c. \u0423\u0436\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u043e. \u041d\u043e \u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043a\u0430 \u0440\u0430\u043d\u043e.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041a\u0430\u0436\u0435\u0442\u0441\u044f, FRR \u0440\u0435\u0448\u0438\u043b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0430\u0448\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0440\u0430\u0437\u0434\u0435\u043b \u043f\u0440\u043e troubleshooting.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041a\u0440\u0430\u0441\u0438\u0432\u043e. \u0422\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0430\u0444\u0438\u043a \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435 \u0445\u043e\u0434\u0438\u0442.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u043e. \u041c\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0441\u0435\u0442\u044c.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0432\u0441\u0451 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e, \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u0438\u043c \u043f\u043e\u0432\u043e\u0434\u043e\u043c \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u0430\u0434\u043d\u043e\u0435.<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043f\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443 \u043d\u0430 \u0441\u043b\u043e\u0432\u043e. \u041d\u043e \u043c\u044b \u0436\u0435 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0435 \u043b\u044e\u0434\u0438.<\/p>\n<\/blockquote>\n<p>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439 \u0442\u0430\u043a\u0438\u0435 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0447\u0435\u0441\u043a\u0438.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0432\u0442\u043e\u0440\u043e\u043c \u0430\u0431\u0437\u0430\u0446\u0435 \u0431\u0443\u0434\u0435\u0442 \u0448\u0443\u0442\u043a\u0430 \u2014 \u044d\u0442\u043e \u0441\u0442\u0430\u043d\u0435\u0442 \u0440\u0430\u0437\u0434\u0440\u0430\u0436\u0430\u0442\u044c.<\/p>\n<p>\u042e\u043c\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0442\u044c \u0438\u0437 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438.<\/p>\n<hr\/>\n<h2>\u0421\u0442\u0438\u043b\u044c \u043e\u0431\u0449\u0435\u043d\u0438\u044f<\/h2>\n<p>\u041f\u0438\u0448\u0438 \u043f\u043e-\u0440\u0443\u0441\u0441\u043a\u0438.<\/p>\n<p>\u042f\u0437\u044b\u043a \u2014 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043d\u044b\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0441\u043b\u0435\u043d\u0433 \u0438 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0435 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0435 \u0441\u043b\u043e\u0432\u0430:<\/p>\n<ul>\n<li>\n<p>\u043f\u0440\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043d\u044f\u043b\u043e\u0441\u044c;<\/p>\n<\/li>\n<li>\n<p>\u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043f\u0440\u0438\u0435\u0445\u0430\u043b;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0430\u043a\u0435\u0442 \u043f\u043e\u0448\u0451\u043b;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0435\u0442\u044c \u0440\u0430\u0437\u044a\u0435\u0445\u0430\u043b\u0430\u0441\u044c;<\/p>\n<\/li>\n<li>\n<p>\u0433\u0440\u0435\u043f\u043d\u0443\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0441\u043a\u043e\u043f\u0430\u0442\u044c;<\/p>\n<\/li>\n<li>\n<p>\u043b\u0438\u043d\u043a \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043b\u043e\u043c\u0430\u043b\u0438\u0441\u044c \u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0443\u044e \u0440\u0435\u0447\u044c \u043a\u0430\u043d\u0446\u0435\u043b\u044f\u0440\u0438\u0442\u043e\u043c.<\/p>\n<p>\u041b\u0443\u0447\u0448\u0435:<\/p>\n<blockquote>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0443\u0434\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0443\u0435\u0445\u0430\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442.<\/p>\n<\/blockquote>\n<p>\u0447\u0435\u043c:<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0451\u043c \u0430\u043d\u0430\u043b\u0438\u0437 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<\/blockquote>\n<p>\u041b\u0443\u0447\u0448\u0435:<\/p>\n<blockquote>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u044d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 R2.<\/p>\n<\/blockquote>\n<p>\u0447\u0435\u043c:<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439.<\/p>\n<\/blockquote>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>\u0420\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043d\u0435\u0440\u044f\u0448\u043b\u0438\u0432\u043e\u0441\u0442\u044c.<\/p>\n<hr\/>\n<h2>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u043c<\/h2>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438 current state.<\/p>\n<p>\u041d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0439, \u0447\u0442\u043e \u0441\u0442\u0435\u043d\u0434 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u044b \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437.<\/p>\n<p>\u042d\u0442\u043e \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f. \u0417\u0434\u0435\u0441\u044c \u043c\u043e\u0433\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438, \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c VM \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433.<\/p>\n<p>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0439:<\/p>\n<ul>\n<li>\n<p>\u043d\u0430\u043b\u0438\u0447\u0438\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043b\u0438\u0447\u0438\u0435 default route;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 IP forwarding;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043b\u0438\u0447\u0438\u0435 FRR;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 kernel modules;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043b\u0438\u0447\u0438\u0435 MPLS support;<\/p>\n<\/li>\n<li>\n<p>\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 MTU;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044c.<\/p>\n<p>\u041d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0439 management connectivity \u0438 SSH-\u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043b\u0438\u0448\u0438\u0442\u044c \u043d\u0430\u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443 \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0441\u044c \u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u044c \u0440\u0438\u0441\u043a.<\/p>\n<hr\/>\n<h2>\u041a\u043e\u043c\u0430\u043d\u0434\u044b<\/h2>\n<p>\u041d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0439 \u043a\u0430\u0436\u0434\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0432 terminal dump.<\/p>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0443\u0436\u043d\u044b \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0439:<\/p>\n<ul>\n<li>\n<p>\u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0435\u0441\u043b\u0438 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b\u043e\u0441\u044c;<\/p>\n<\/li>\n<li>\n<p>\u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435;<\/p>\n<\/li>\n<li>\n<p>evidence, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0438\u0439 \u0432\u044b\u0432\u043e\u0434.<\/p>\n<\/li>\n<\/ul>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b\u0432\u043e\u0434 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 300 \u0441\u0442\u0440\u043e\u043a, \u043d\u0435 \u043d\u0430\u0434\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c 300 \u0441\u0442\u0440\u043e\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u043d\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0430\u043c \u043d\u0430\u0439\u0434\u0438 \u0432 \u043d\u0438\u0445 \u0441\u043c\u044b\u0441\u043b.<\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u043e\u0434\u043d\u0430 \u0441\u0442\u0440\u043e\u043a\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u043e\u043c \u043a\u043e \u0432\u0441\u0435\u0439 \u0437\u0430\u0433\u0430\u0434\u043a\u0435 \u2014 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0436\u0438 \u0435\u0451.<\/p>\n<hr\/>\n<h2>\u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438<\/h2>\n<p>\u041d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438 \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<blockquote>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e.<\/p>\n<\/blockquote>\n<p>\u041e\u0431\u044a\u044f\u0441\u043d\u0438, <strong>\u043f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u0437\u0430\u0434\u0430\u0447\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439<\/strong>.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f IP-\u0441\u0435\u0442\u0438:<\/p>\n<blockquote>\n<p>\u041d\u0430 \u0432\u0441\u0435\u0445 P2P-\u043b\u0438\u043d\u043a\u0430\u0445 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<p>\u0421\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0443\u0437\u043b\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0443 \u043f\u043e connected-\u0441\u0435\u0442\u044f\u043c.<\/p>\n<p>IP forwarding \u0432\u043a\u043b\u044e\u0447\u0451\u043d.<\/p>\n<p>Loopback\u2019\u0438 \u043f\u043e\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u2014 \u0438 \u044d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e IGP \u043c\u044b \u0435\u0449\u0451 \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, \u0431\u0430\u0437\u043e\u0432\u044b\u0439 L3-\u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 \u0433\u043e\u0442\u043e\u0432, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<\/blockquote>\n<p>\u041f\u043e\u0437\u0436\u0435, \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 MPLS:<\/p>\n<blockquote>\n<p>LDP \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430 \u043f\u043e\u0434\u043d\u044f\u0442\u044b \u043d\u0430 \u0432\u0441\u0435\u0445 \u043d\u0443\u0436\u043d\u044b\u0445 \u043b\u0438\u043d\u043a\u0430\u0445.<\/p>\n<p>Loopback R4 \u043f\u043e\u043b\u0443\u0447\u0438\u043b label, \u043d\u0430 R1 \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 LFIB \u0447\u0435\u0440\u0435\u0437 R2.<\/p>\n<p>\u041f\u0440\u0438 traceroute R1\u2192R4 \u0432\u0438\u0434\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 MPLS labels \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0435 \u0443\u0437\u043b\u044b.<\/p>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e LDP control plane, \u043d\u043e \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 MPLS forwarding.<\/p>\n<\/blockquote>\n<p>\u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u0433\u043e\u0442\u043e\u0432\u043e.<\/p>\n<hr\/>\n<h2>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435<\/h2>\n<p>\u041c\u044b \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e AI \u0432\u0441\u0435\u0433\u0434\u0430 \u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0430\u0437\u0430 \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442.<\/p>\n<p>\u041d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.<\/p>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 AI \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c <strong>\u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440<\/strong>:<\/p>\n<p>\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u2192 \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u2192 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u0443\u044e \u0441\u0435\u0442\u044c \u2192 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u2192 \u043e\u0448\u0438\u0431\u0430\u0442\u044c\u0441\u044f \u2192 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u044c \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u2192 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u2192 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u2192 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u0442\u044c \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u2192 \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0441\u0435\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e \u0434\u043e\u0440\u043e\u0433\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u043d\u0435 \u043e\u0431\u0445\u043e\u0434\u0438 \u0435\u0451.<\/p>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0432\u0441\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438.<\/p>\n<\/div>\n<\/details>\n<p>\u0415\u0433\u043e, \u044f \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0441\u0430\u043c, \u0434\u0430. \u0412 \u043e\u0431\u0449\u0435\u043c, \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0418 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u044f\u043c \u043f\u043e\u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0443\u0436\u0435.  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/001\/051\/49f\/00105149fbb764fc149e6a774d6d1df4.png\" width=\"876\" height=\"367\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/001\/051\/49f\/00105149fbb764fc149e6a774d6d1df4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/001\/051\/49f\/00105149fbb764fc149e6a774d6d1df4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0440\u043e\u0434\u0435 \u041e\u041d\u041e \u041e\u0416\u0418\u041b\u041e. \u0414\u0430\u0434\u0438\u043c \u043f\u0435\u0440\u0432\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443 \u0441 \u043f\u043e\u0434\u0432\u043e\u0445\u043e\u043c:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/be6\/468\/e26\/be6468e264f604683fe7e6d14733a0d1.png\" width=\"849\" height=\"474\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/be6\/468\/e26\/be6468e264f604683fe7e6d14733a0d1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/be6\/468\/e26\/be6468e264f604683fe7e6d14733a0d1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0410\u0433\u0430, \u043e\u0442\u0432\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439. \u0415\u0441\u043b\u0438 \u0449\u0451\u043b\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u201c\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 13 \u0441\u201d &#8212; \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a \u041e\u041d\u041e \u0434\u0443\u043c\u0430\u0435\u0442:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a5d\/29b\/396\/a5d29b396674e5e78fe4e408cd0a7c39.png\" width=\"894\" height=\"450\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a5d\/29b\/396\/a5d29b396674e5e78fe4e408cd0a7c39.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a5d\/29b\/396\/a5d29b396674e5e78fe4e408cd0a7c39.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>1 &#8212; \u041a\u0430\u043a \u043e\u043d \u0434\u0443\u043c\u0430\u043b 2 &#8212; \u0427\u0442\u043e \u043e\u043d \u0434\u0435\u043b\u0430\u043b 3 &#8212; \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 (\u044d\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0435\u043c \u043a\u0430\u043a \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u043d\u0430\u043d \u0437\u0430\u043f\u0440\u043e\u0441)<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0449\u0451\u043b\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u201c\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b\u201d, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0447\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043e\u043d\u043e \u0434\u0435\u043b\u0430\u043b:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/27d\/244\/520\/27d24452065d54ed9bccffe5eb1a5218.png\" width=\"879\" height=\"367\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/27d\/244\/520\/27d24452065d54ed9bccffe5eb1a5218.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/27d\/244\/520\/27d24452065d54ed9bccffe5eb1a5218.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0427\u0451\u0442 \u0434\u0435\u043b\u0430\u0435\u0442. \u0421\u043c\u043e\u0442\u0440\u0438\u0442 \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0435\u0441\u0442\u044c \u0443 \u043d\u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0435, \u043a\u0430\u0436\u0435\u0442\u0441\u044f<\/p>\n<p>\u041e\u043a, \u0441\u043c\u0438\u043b\u0443\u0435\u043c\u0441\u044f \u043d\u0430\u0434 \u043d\u0438\u043c \u0438 \u0434\u0430\u0434\u0438\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0442\u0435\u043d\u0434\u0443 &#8212; \u043f\u043e\u043b\u043e\u0436\u0438\u043c \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0435\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u043d\u0432\u0435\u043d\u0442\u043e\u0440\u0438, \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043d\u0430\u0448\u0435\u0439 \u0441\u0445\u0435\u043c\u0435, \u0438 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0444\u0430\u0439\u043b \u0441 \u043a\u0440\u0435\u0434\u0430\u043c\u0438 (\u0432\u043e\u0442 \u0442\u0430\u043a \u0432 \u043f\u0440\u043e\u0434\u0435 \u0434\u0435\u043b\u0430\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043d\u0435 \u043d\u0430\u0434\u043e \ud83d\ude42<\/p>\n<p>\u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u043c:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b0\/370\/407\/4b037040739a00a54f34a8e0efa4d9de.png\" width=\"888\" height=\"147\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4b0\/370\/407\/4b037040739a00a54f34a8e0efa4d9de.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b0\/370\/407\/4b037040739a00a54f34a8e0efa4d9de.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u043d \u0434\u0443\u043c\u0430\u043b 4 \u043c\u0438\u043d\u0443\u0442\u044b \u0438 35 \u0441\u0435\u043a\u0443\u043d\u0434, \u0438 \u0432\u044b\u0434\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<blockquote>\n<p>\u0414\u0430, \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0447\u0438\u0439: \u043f\u043e SSH \u0432\u043e\u0448\u0451\u043b \u043d\u0430 \u0432\u0441\u0435 10 \u0443\u0437\u043b\u043e\u0432. \u0421\u0442\u0435\u043d\u0434 \u0441\u0435\u0439\u0447\u0430\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0438\u0441\u0442\u044b\u0439.<\/p>\n<p><strong>\u0427\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e:<\/strong><\/p>\n<ul>\n<li>\n<p>Management IPv6 \u0435\u0441\u0442\u044c \u043d\u0430 <code>ens3<\/code> \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430; \u043f\u043e \u043d\u0435\u043c\u0443 \u0432\u0441\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 data-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 (<code>ens4+<\/code>) \u043d\u0435\u0442 \u0430\u0434\u0440\u0435\u0441\u043e\u0432, \u0438 \u043e\u043d\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u044b. \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u043f\u043e \u043d\u0438\u043c \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c: \u0431\u0435\u0437 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u0442\u043e\u0432, LLDP \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0445\u0435\u043c\u044b \u043e\u043d\u0438 \u043c\u043e\u043b\u0447\u0430\u0442.<\/p>\n<\/li>\n<li>\n<p>IPv4-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 IPv4-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u043d\u0435\u0442; <code>net.ipv4.ip_forward = 0<\/code>.<\/p>\n<\/li>\n<li>\n<p>FRR \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d (<code>frr<\/code> unit <code>not-found<\/code>, <code>vtysh<\/code> \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442).<\/p>\n<\/li>\n<li>\n<p>MPLS sysctl-\u0434\u0435\u0440\u0435\u0432\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e MPLS kernel-\u043c\u043e\u0434\u0443\u043b\u044c \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043d\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u044f\u0434\u0440\u0430 \u0435\u0449\u0451 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p>LLDP-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u0442.<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0415\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 inventory:<\/strong> <code>fde0:3307:31:222::9912<\/code> \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d \u043a\u0430\u043a <code>PE-2-Left<\/code>, \u0430 <code>hostname<\/code> \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u2014 <code>PE-2-Right<\/code>. \u0422\u0430\u043a\u0436\u0435 <code>P-2<\/code> \u0438 <code>P-3<\/code> \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u044b <code>P2<\/code> \u0438 <code>P3<\/code>. \u042d\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0432\u044b\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0434\u043e \u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438.<\/p>\n<p>\u0421\u0442\u0435\u043d\u0434 \u043d\u0435 \u043c\u0435\u043d\u044f\u043b.<\/p>\n<p><strong>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0439 \u0448\u0430\u0433<\/strong> \u2014 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c L1-\u0441\u0445\u0435\u043c\u0443: \u043b\u0438\u0431\u043e \u043d\u0430\u0439\u0442\u0438 \u0435\u0451 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440\u0430, \u043b\u0438\u0431\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c data-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0440\u0442\u044b \u0443\u0432\u0438\u0434\u044f\u0442 carrier\/LLDP.<\/p>\n<p>\u041f\u043e\u043a\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c <strong>\u0434\u0435\u0441\u044f\u0442\u044c Linux-\u043c\u0430\u0448\u0438\u043d \u0441 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0439 management-\u0441\u0435\u0442\u044c\u044e, \u043d\u043e data-plane \u0435\u0449\u0451 \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442<\/strong>.<\/p>\n<\/blockquote>\n<p>\u0425\u043e\u0440\u043e\u0448, \u0447\u0435\u0440\u0442\u044f\u0433\u0430 &#8212; \u0434\u0430\u0436\u0435 \u043e\u043f\u0447\u0430\u0442\u043a\u0443 \u043c\u043e\u044e \u0443\u043a\u0430\u0437\u0430\u043b \u0432 \u0438\u043c\u0435\u043d\u0438 \u0445\u043e\u0441\u0442\u0430. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e \u0444\u0430\u0439\u043b \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u043b \u0442\u0443\u043f\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>PE-1-Left - fde0:3307:31:222::9911P-1 - fde0:3307:31:222::9901P-2 - fde0:3307:31:222::9902P-3 - fde0:3307:31:222::9903P-4 - fde0:3307:31:222::9904PE-2-Left - fde0:3307:31:222::9912RED-PC-1 - fde0:3307:31:222::9921RED-PC-2 - fde0:3307:31:222::9922BLUE-PC-1 - fde0:3307:31:222::9923BLUE-PC-2 - fde0:3307:31:222::9924<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u043d\u0435 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0442\u0430\u043c \u0444\u0430\u0439\u043b \u0430\u043b\u044f \u044f\u043c\u043b \u0438\u043b\u0438 \u0434\u0436\u0441\u043e\u043d &#8212; \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a. \u0412\u0441\u0435 \u043b\u0438\u043d\u0443\u043a\u0441 \u0445\u043e\u0441\u0442\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:  <\/p>\n<pre><code>root@P-1:~# ip -br llo               UNKNOWN        00:00:00:00:00:00 &lt;LOOPBACK,UP,LOWER_UP&gt; ens3             UP             50:9f:c6:00:77:00 &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; ens4             DOWN           50:9f:c6:00:77:01 &lt;BROADCAST,MULTICAST&gt; ens5             DOWN           50:9f:c6:00:77:02 &lt;BROADCAST,MULTICAST&gt; ens6             DOWN           50:9f:c6:00:77:03 &lt;BROADCAST,MULTICAST&gt; ens7             DOWN           50:9f:c6:00:77:04 &lt;BROADCAST,MULTICAST&gt; ens8             DOWN           50:9f:c6:00:77:05 &lt;BROADCAST,MULTICAST&gt; ens9             DOWN           50:9f:c6:00:77:06 &lt;BROADCAST,MULTICAST&gt; ens10            DOWN           50:9f:c6:00:77:07 &lt;BROADCAST,MULTICAST&gt; root@P-1:~# ip -br alo               UNKNOWN        127.0.0.1\/8 ::1\/128 ens3             UP             fde0:3307:31:222::9901\/64 fe80::529f:c6ff:fe00:7700\/64 ens4             DOWN           ens5             DOWN           ens6             DOWN           ens7             DOWN           ens8             DOWN           ens9             DOWN           ens10            DOWN          <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u043d \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0445\u043e\u0441\u0442\u0435, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e:  <\/p>\n<pre><code class=\"bash\">ssh -6 -tt -o StrictHostKeyChecking=accept-new -oPreferredAuthentications=password,keyboard-interactive -o PubkeyAuthentication=no root@[fde0:3307:31:222::9924] \"hostname; echo LINKS; ip -br link; echo ADDRS; ip -br address; echo ROUTES; ip route show; echo FWD; sysctl -n net.ipv4.ip_forward;echo FRR; systemctl is-active frr 2&gt;\/dev\/null || true\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0445\u043e\u0434\u0438\u043b \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b, \u0432 \u043e\u0431\u0449\u0435\u043c, \u0441\u0434\u0435\u043b\u0430\u043b \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u044b.<\/p>\n<p>\u041d\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u0438\u043a\u043e\u043b\u044c\u043d\u043e\u0435 \u044d\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 &#8212; \u0441\u0434\u0435\u043b\u0430\u0442\u044c <strong>\u0420\u0410\u0417\u0423\u041c\u041d\u042b\u0419<\/strong> \u0448\u0430\u0433. \u041c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043c \u0435\u0433\u043e \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043a\u0443 \u0432 <a href=\"http:\/\/draw.io\" rel=\"noopener nofollow\">draw.io<\/a> \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0440\u0430\u0437\u0443:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f69\/f71\/851\/f69f71851312aeebe90c73a16948c142.png\" width=\"875\" height=\"151\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f69\/f71\/851\/f69f71851312aeebe90c73a16948c142.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f69\/f71\/851\/f69f71851312aeebe90c73a16948c142.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0435\u0433\u043e \u043e\u0442\u0432\u0435\u0442:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f9c\/e4c\/e21\/f9ce4ce21a006dffc1b58ef3fefa40a0.png\" width=\"1286\" height=\"1027\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f9c\/e4c\/e21\/f9ce4ce21a006dffc1b58ef3fefa40a0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f9c\/e4c\/e21\/f9ce4ce21a006dffc1b58ef3fefa40a0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u043c\u0438\u043c\u043e \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439 \u043e\u043d \u0441\u0434\u0435\u043b\u0430\u043b \u0442\u043e, \u043d\u0430 \u0447\u0442\u043e \u0437\u0430\u0442\u043e\u0447\u0435\u043d Codex &#8212; \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u041a\u041e\u0414. \u041f\u0440\u0430\u0432\u0434\u0430 \u044d\u0442\u043e XML-\u043a\u0430 \u0434\u043b\u044f <a href=\"http:\/\/draw.io\" rel=\"noopener nofollow\">draw.io<\/a>, \u043d\u043e \u043d\u0435 \u0441\u0443\u0442\u044c<\/p>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<pre><code class=\"bash\">C:\\Users\\user&gt;dir D:\\Codex-projectcs\\LDP-to-SRv6-with-AI \u0422\u043e\u043c \u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 D \u0438\u043c\u0435\u0435\u0442 \u043c\u0435\u0442\u043a\u0443 Shared \u0421\u0435\u0440\u0438\u0439\u043d\u044b\u0439 \u043d\u043e\u043c\u0435\u0440 \u0442\u043e\u043c\u0430: 8C5F-12BF \u0421\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043f\u0430\u043f\u043a\u0438 D:\\Codex-projectcs\\LDP-to-SRv6-with-AI07.09.2026  06:48    &lt;DIR&gt;          .06.09.2026  10:26    &lt;DIR&gt;          ..06.09.2026  10:51            23\u00a0000 AGENTS.md07.09.2026  06:48            10\u00a0398 lab-initial-topology.drawio06.09.2026  11:10                30 Lab_Creds06.09.2026  11:12               332 Lab_Inventory               4 \u0444\u0430\u0439\u043b\u043e\u0432         33\u00a0760 \u0431\u0430\u0439\u0442               2 \u043f\u0430\u043f\u043e\u043a  277\u00a0449\u00a0256\u00a0960 \u0431\u0430\u0439\u0442 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0449\u0451\u043b\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u043a\u043d\u043e\u043f\u043e\u0447\u043a\u0435 \u201c\u041e\u0442\u043a\u0440\u044b\u0442\u044c \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0443 <a href=\"http:\/\/Draw.io\" rel=\"noopener nofollow\">Draw.io<\/a>\u201d \u0442\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435\u0439 ChatGPT.exe \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &#8212; \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 &#8212; \u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u044f\u043a\u043e\u0435 \u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u043c\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u043c:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45c\/118\/da2\/45c118da2f923e9af4d9ddadbf303faa.png\" width=\"2004\" height=\"1288\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/45c\/118\/da2\/45c118da2f923e9af4d9ddadbf303faa.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/45c\/118\/da2\/45c118da2f923e9af4d9ddadbf303faa.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0435 \u0442\u0435\u0440\u043f\u0438\u0442\u0441\u044f \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0443\u0436\u0435! \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c70\/b1f\/74d\/c70b1f74d487724d42a09af10eb0016c.png\" width=\"1684\" height=\"1096\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c70\/b1f\/74d\/c70b1f74d487724d42a09af10eb0016c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c70\/b1f\/74d\/c70b1f74d487724d42a09af10eb0016c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443 \u044d\u0442\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u0444\u0438\u0433\u043d\u044f \u0438 \u043d\u0438\u043a\u0430\u043a\u043e\u043c\u0443 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u0442\u0430\u043a\u0430\u044f \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0430 \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u043f\u0443\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u0442! \u0412\u043e\u0442 \u0442\u0443\u0442 \u044f \u0434\u0443\u043c\u0430\u044e, \u0441\u0442\u043e\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0435\u043c\u0443 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u0430\u0442\u044c &#8212; \u043e\u043d \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438 LLDP \u0438 \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u044f\u0437\u0438 \u041c\u0415\u0416\u0414\u0423 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a management \u0441\u0435\u0442\u0438. \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 AI &#8212; \u043d\u0435 \u043d\u0430\u0434\u043e \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u0430\u043a \u0432\u0430\u0448\u0443 \u0437\u0430\u043c\u0435\u043d\u0443 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0434\u0443\u043c\u0430\u043d\u0438\u044f &#8212; \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0439\u0442\u0435 \u0435\u0433\u043e \u043a\u0430\u043a \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a\u0430 (\u0441) \u041a\u044d\u043f. \u041d\u043e \u0442\u0443\u0442, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0442\u043e\u043d\u043a\u0430\u044f \u0433\u0440\u0430\u043d\u044c \u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0444\u0438\u043b\u043e\u0441\u043e\u0444\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439<\/p>\n<p>\u0414\u0430\u044e \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7de\/ae7\/ed9\/7deae7ed9dc0646b36fc872f9c09b6e7.png\" width=\"1280\" height=\"632\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7de\/ae7\/ed9\/7deae7ed9dc0646b36fc872f9c09b6e7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7de\/ae7\/ed9\/7deae7ed9dc0646b36fc872f9c09b6e7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0430\u043a \u0432\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u043a\u0440\u0438\u043d \u0441\u044e\u0434\u0430 \u0438 \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043b &#8212; \u043f\u043e\u043d\u044f\u043b \u0447\u0442\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u201c\u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043a\u0438\u201d \u044f \u0438\u043c\u0435\u043b \u0432\u0432\u0438\u0434\u0443 \u201c\u0441\u0435\u0442\u0435\u0432\u044b\u043500 \u0438\u043a\u043e\u043d\u043a\u0438\u201d, \u043a\u043e\u043d\u0435\u0447\u043d\u043e. \u041d\u043e \u0434\u0443\u043c\u0430\u044e, \u0447\u0443\u0432\u0430\u043a, \u043f\u043e\u0439\u043c\u0451\u0442 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u2026<\/p>\n<p>\u0414\u0443\u043c\u0430\u043b \u0443\u0436\u0435 \u043c\u0438\u043d\u0443\u0442 12:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b27\/930\/37d\/b2793037dcfb9e6fa2803c5c8c35bf25.png\" width=\"1267\" height=\"447\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b27\/930\/37d\/b2793037dcfb9e6fa2803c5c8c35bf25.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b27\/930\/37d\/b2793037dcfb9e6fa2803c5c8c35bf25.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3ee\/6ff\/786\/3ee6ff78609f4b43047e0d270a051ab5.png\" width=\"1496\" height=\"913\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3ee\/6ff\/786\/3ee6ff78609f4b43047e0d270a051ab5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3ee\/6ff\/786\/3ee6ff78609f4b43047e0d270a051ab5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443 \u0441\u0443\u0442\u0435\u0432\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043f\u043e\u0445\u043e\u0436\u0435 \ud83d\ude42 \u0421\u0440\u0430\u0432\u043d\u0438\u043c \u0435\u0449\u0451 \u0441\u043e \u0441\u0445\u0435\u043c\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0441\u0434\u0435\u043b\u0430\u043b:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/13b\/c28\/e4e\/13bc28e4e04c6634e068e1ebdae3b84c.png\" width=\"1825\" height=\"810\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/13b\/c28\/e4e\/13bc28e4e04c6634e068e1ebdae3b84c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/13b\/c28\/e4e\/13bc28e4e04c6634e068e1ebdae3b84c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041a\u0443\u0434\u0430-\u0442\u043e \u043f\u0440\u0430\u0432\u0434\u0430 \u0434\u0435\u043b\u0430\u0441\u044c \u0441\u0432\u044f\u0437\u044c \u043c\u0435\u0436\u0434\u0443 P1 \u0438 P3, \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0440\u0443\u0447\u043a\u0430\u043c\u0438:<\/p>\n<pre><code>root@P-1:~# lldpcli show neighbors  | grep SysName    SysName:      PE-1-Left    SysName:      P3    SysName:      P-4<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0425\u043c, \u043a\u043e\u0441\u044f\u043a\u2026 \u041d\u0443 \u0432 \u0446\u0435\u043b\u043e\u043c \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u044f \u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0443 &#8212; \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0432\u0438\u0434, \u0447\u0442\u043e \u044f \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u043e\u043e\u0431\u0449\u0435, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043d\u0430\u0439\u0434\u0451\u0442 \u043b\u0438 \u043e\u043d \u044d\u0442\u0443 \u043e\u0448\u0438\u0431\u043a\u0443 \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438.<\/p>\n<p>\u0415\u0449\u0451 \u043c\u043d\u0435 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0438\u043a\u043e\u043d\u043a\u0438, \u0445\u043e\u0442\u044c \u0438 \u0437\u0430\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e RED-\u0445\u043e\u0441\u0442\u044b \u043e\u043d \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u043a\u0440\u0430\u0441\u043d\u044b\u043c, \u0430 BLUE-\u0445\u043e\u0441\u0442\u044b &#8212; \u0433\u043e\u043b\u0443\u0431\u044b\u043c. \u041f\u043e\u0434\u043a\u0438\u043d\u0443 \u043a\u0430\u043a\u043e\u0439-\u043d\u0438\u0442\u044c \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441 \u0435\u043c\u0443 &#8212; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 <a href=\"https:\/\/habr.com\/ru\/articles\/884824\/\" rel=\"noopener nofollow\">\u043c\u043e\u0435\u0439 \u0441\u0442\u0430\u0440\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e FRR<\/a><\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/096\/11b\/11e\/09611b11e8e1d152ffbec18ac160058a.png\" width=\"1560\" height=\"682\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/096\/11b\/11e\/09611b11e8e1d152ffbec18ac160058a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/096\/11b\/11e\/09611b11e8e1d152ffbec18ac160058a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e \u0438\u0442\u043e\u0433\u0443 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0442\u0430\u043a\u043e\u0435 \u0432\u043e\u0442:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/42f\/339\/9e3\/42f3399e331d4f03d207e742d5ec5c96.png\" width=\"1325\" height=\"806\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/42f\/339\/9e3\/42f3399e331d4f03d207e742d5ec5c96.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/42f\/339\/9e3\/42f3399e331d4f03d207e742d5ec5c96.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0417\u0430\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u044f\u043c \u043d\u0430\u043a\u0440\u0430\u0444\u0442\u0438\u043b \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0442\u0438\u043f\u0430 \u201c\u0440\u043e\u0443\u0442\u0435\u0440\u201d \u0438\u0437 \u043a\u0440\u0443\u0433\u043b\u0438\u0448\u043a\u043e\u0432 \u0438 \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u0435\u043a \u0438 \u0442\u0435\u043f\u0435\u0440\u044c Blue &#8212; \u0437\u0435\u043b\u0451\u043d\u044b\u0439. \u041d\u0443 \u0438 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0441\u0432\u044f\u0437\u044c P1-P3 \u0435\u0441\u0442\u044c &#8212; \u043e\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0438\u043b\u0430\u0441\u044c \u0441\u043e \u0441\u0432\u044f\u0437\u044f\u043c\u0438 P1-P4 \u0438 P4-P3 &#8212; \u0442\u0430\u043a \u0447\u0442\u043e \u044d\u0442\u043e \u0431\u044b\u043b \u043c\u043e\u0439 \u043a\u043e\u0441\u044f\u043a \u043f\u043e \u0444\u0430\u043a\u0442\u0443 (\u0442\u0443\u0442 \u0440\u043e\u0431\u043e\u0442 \u043f\u043e\u0431\u0435\u0434\u0438\u043b). \u041d\u0443\u0436\u043d\u0430 \u0435\u0449\u0451 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u0430\u0432\u043a\u0430:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d67\/ebc\/7ab\/d67ebc7abcf1f7d37390de7b4775e2db.png\" width=\"1399\" height=\"874\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d67\/ebc\/7ab\/d67ebc7abcf1f7d37390de7b4775e2db.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d67\/ebc\/7ab\/d67ebc7abcf1f7d37390de7b4775e2db.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443 \u0432\u043e\u0442, \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0441\u0445\u0435\u043c\u0430 &#8212; \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0435\u0442\u0438 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0432 \u043f\u0440\u043e\u0434\u0435.<\/p>\n<p>\u041f\u043e\u0442\u043e\u043c \u0432\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0435\u043d\u044c\u0451\u0440 (\u044f) \u0438 \u0447\u0438\u043d\u0438\u0442 \u0441\u0435\u0442\u044c, \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0434\u0432\u0438\u0433\u0430\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043d\u0430 \u043a\u0430\u0440\u0442\u0435<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/649\/cd7\/594\/649cd7594ab38fde144f38b63cd61bd0.png\" width=\"1425\" height=\"588\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/649\/cd7\/594\/649cd7594ab38fde144f38b63cd61bd0.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/649\/cd7\/594\/649cd7594ab38fde144f38b63cd61bd0.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c \u0441\u0443\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u0435\u043d\u044c\u0451\u0440\u0430.<\/p>\n<h4>\u041d\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0438 \u043f\u043e\u043b\u0430\u0431\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e<\/h4>\n<p>\u041d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u0435\u043d \u043f\u043b\u0430\u043d &#8212; \u0442\u0430\u043a\u043e\u0432\u0430 <strong>\u043c\u043e\u044f<\/strong> \u043c\u044b\u0441\u043b\u044c, \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0430 \u0430\u0433\u0435\u043d\u0442 \u043f\u043e\u043c\u043d\u0438\u0442 \u0432\u043e\u043e\u0431\u0449\u0435, \u0447\u0442\u043e \u043c\u044b \u0442\u0443\u0442 \u0434\u0435\u043b\u0430\u0435\u043c:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/469\/ad1\/dde\/469ad1ddefd5e0acfc949fe85b70fd1d.png\" width=\"1259\" height=\"814\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/469\/ad1\/dde\/469ad1ddefd5e0acfc949fe85b70fd1d.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/469\/ad1\/dde\/469ad1ddefd5e0acfc949fe85b70fd1d.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u0433\u043e, \u043e\u043d \u0434\u0430\u0436\u0435 \u043f\u043b\u0430\u043d \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u0447\u0442\u043e \u201c\u043d\u0443\u0436\u0435\u043d \u043f\u043b\u0430\u043d\u201d \u0430 \u0443 \u0430\u0433\u0435\u043d\u0442\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0432\u0430\u0439\u0431.<\/p>\n<h4>\u042d\u0442\u0430\u043f 1. IPv4-\u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 (c) \u043c\u043e\u0439 \u0430\u0433\u0435\u043d\u0442<\/h4>\n<p>\u041c\u043e\u0439 \u043f\u0440\u043e\u043c\u0442:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7c5\/9df\/f22\/7c59dff22c870a5dec4e78c49f3c76c6.png\" width=\"770\" height=\"311\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7c5\/9df\/f22\/7c59dff22c870a5dec4e78c49f3c76c6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7c5\/9df\/f22\/7c59dff22c870a5dec4e78c49f3c76c6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 4 \u043c\u0438\u043d 54 \u0441<\/p>\n<blockquote>\n<p>\u0414\u0430\u043b\u0435\u0435, \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0431\u0443\u0434\u0443 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439 Codex-\u0430. \u0412 \u0445\u043e\u0434\u0435 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u0439 Codex \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445 Linux-\u0445\u043e\u0441\u0442\u0430\u0445 \u043f\u0443\u0442\u0451\u043c \u043d\u0435\u0445\u0438\u0442\u0440\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0442\u0438\u043f\u0430:<\/p>\n<p><code>ssh -6 -tt -o StrictHostKeyChecking=accept-new -o \\ PreferredAuthentications=password,keyboard-interactive -o \\ PubkeyAuthentication=no root@[fde0:3307:31:222::9924] \"hostname; \\ echo LINKS; ip -br link; \\ echo ADDRS; ip -br address; \\ echo ROUTES; ip route show; \\ echo FWD; sysctl -n net.ipv4.ip_forward; \\ echo FRR; systemctl is-active frr 2&gt;\/dev\/null || true\" <\/code><\/p>\n<p>\u042f \u0431\u0443\u0434\u0443 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u0438\u0445 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u043b\u0438\u0448\u043d\u0438\u0439 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0439\u0441\u044f \u0442\u0435\u043a\u0441\u0442:<\/p>\n<p><code>-o StrictHostKeyChecking=accept-new -o PreferredAuthentications=password,keyboard-interactive -o PubkeyAuthentication=no <\/code><\/p>\n<p>\u041e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043b\u0438\u0448\u044c \u0441\u0443\u0442\u0435\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043a\u043e\u043c\u0430\u043d\u0434 \u0438 IP-\u0430\u0434\u0440\u0435\u0441 \u043d\u043e\u0434\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u2014 \u043d\u0430 \u0441\u0443\u043f\u0435\u0440\u0444\u0430\u043d\u0442\u0430\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439, \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u043c\u0430, \u0433\u043e\u0442\u043e\u0432\u044f\u0441\u044c \u043a \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0432 \u042f\u043d\u0434\u0435\u043a\u0441.<\/p>\n<\/blockquote>\n<details class=\"spoiler\">\n<summary>\u0414\u0430\u043b\u0435\u0435 \u0440\u0430\u0441\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430 (\u043d\u0430 \u041f\u0420\u041e\u0414\u0415!):<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u044d\u0442\u0430\u043f: \u043e\u0431\u044b\u0447\u043d\u044b\u0439 IPv4 transport \u043f\u043e\u0432\u0435\u0440\u0445 \u0443\u0436\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0445 \u043b\u0438\u043d\u043a\u043e\u0432. \u0412\u043e\u0437\u044c\u043c\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0431\u043b\u043e\u043a 10.10.0.0\/27 \u0438 \u0440\u0430\u0437\u0434\u0430\u043c 12 P2P-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043f\u043e \/31; management ens3 \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u043c. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u0447\u0435\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0442\u044c \u043d\u0430 \u0443\u0437\u043b\u0430\u0445 \u0438 \u043d\u0435\u0442 \u043b\u0438 \u043d\u043e\u0432\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432\/\u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u0432 kernel.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'hostname; \\   ip -br address; \\   printf \"networkd=\"; \\   systemctl is-active systemd-networkd; \\   printf \"NetworkManager=\"; \\   systemctl is-active NetworkManager'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0435\u043d\u0434 \u0447\u0438\u0441\u0442 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435: IPv4 \u043d\u0430 data-plane \u043d\u0435\u0442, \u0430 systemd-networkd \u0430\u043a\u0442\u0438\u0432\u0435\u043d \u0432\u0435\u0437\u0434\u0435. Link-local IPv6 \u043d\u0430 \u043f\u043e\u0434\u043d\u044f\u0442\u044b\u0445 \u043f\u043e\u0440\u0442\u0430\u0445 \u2014 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043a\u0446\u0438\u044f \u044f\u0434\u0440\u0430, \u044d\u0442\u043e \u043d\u0435 \u0447\u044c\u044f-\u0442\u043e \u043f\u0440\u0435\u0436\u043d\u044f\u044f L3-\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u044e \u0444\u043e\u0440\u043c\u0430\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e Netplan \u043d\u0430 \u043e\u0434\u043d\u043e\u043c P \u0438 \u043e\u0434\u043d\u043e\u043c PE, \u0437\u0430\u0442\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 data-plane \u0444\u0430\u0439\u043b: management-\u043a\u043e\u043d\u0444\u0438\u0433 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u043d\u0435\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u043c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'ls -la \/etc\/netplan; \\   printf \"===CONFIG===\\n\"; \\   sed -n \"1,220p\" \/etc\/netplan\/*.yaml'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410\u0434\u0440\u0435\u0441\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c: 10.10.0.0\/27, \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \/31 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u0439 LLDP-\u043b\u0438\u043d\u043a. \u042d\u0442\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u043d\u043e, \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 10.255.0.0\/16 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u043f\u043e\u0434 \u0431\u0443\u0434\u0443\u0449\u0438\u0435 loopback\u2019\u0438. \u0410\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0441\u0440\u0430\u0437\u0443 \u0432 running kernel, \u0441\u043e\u0445\u0440\u0430\u043d\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 Netplan-\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044e \u0442\u043e\u043b\u044c\u043a\u043e netplan generate \u2014 \u0431\u0435\u0437 netplan apply, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0433 \u0431\u044b \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u0434\u0451\u0440\u043d\u0443\u0442\u044c management ens3. Forwarding \u0432\u043a\u043b\u044e\u0447\u0443 \u043d\u0430 P \u0438 PE, \u043d\u043e \u043d\u0435 \u043d\u0430 PC.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ip -4 addr replace 10.10.0.0\/31 dev ens4; \\   ip -4 addr replace 10.10.0.2\/31 dev ens5; \\   ip -4 addr replace 10.10.0.17\/31 dev ens6; \\   ip -4 addr replace 10.10.0.19\/31 dev ens7; \\   printf \"network:\\n  ethernets:\\n    ens4:\\n      addresses: [10.10.0.0\/31]\\n    ens5:\\n      addresses: [10.10.0.2\/31]\\n    ens6:\\n      addresses: [10.10.0.17\/31]\\n    ens7:\\n      addresses: [10.10.0.19\/31]\\n\" &gt; \/etc\/netplan\/99-lab-data-plane.yaml; \\   chmod 600 \/etc\/netplan\/99-lab-data-plane.yaml; \\   netplan generate; \\   printf \"net.ipv4.ip_forward=1\\n\" &gt; \/etc\/sysctl.d\/90-lab-ip-forwarding.conf; \\   sysctl -w net.ipv4.ip_forward=1; \\   echo ===IPV4===; \\   ip -br -4 address; \\   echo ===FWD===; \\   sysctl -n net.ipv4.ip_forward; \\   echo ===NETPLAN_GENERATE===; \\   netplan generate &amp;&amp; echo OK'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410\u0434\u0440\u0435\u0441\u0430 \u0432\u0441\u0442\u0430\u043b\u0438 \u043d\u0430 \u0432\u0441\u0435 12 \u043b\u0438\u043d\u043a\u043e\u0432, netplan generate \u043f\u0440\u043e\u0448\u0451\u043b \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435, forwarding \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0448\u0435\u0441\u0442\u0438 P\/PE. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0433\u043b\u0430\u0432\u043d\u043e\u0435: \u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433, \u0430 \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044e\u044e \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u2014 IP-\u043f\u0430\u043a\u0435\u0442 \u0434\u043e\u0435\u0437\u0436\u0430\u0435\u0442 \u0434\u043e \u0441\u043e\u0441\u0435\u0434\u0430 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 12 connected-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ip route get 10.10.0.1; \\   ping -n -c 2 -W 1 -I ens4 10.10.0.1'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0441\u0435 12 P2P-\u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043f\u0440\u043e\u0448\u043b\u0438: \u043a\u0430\u0436\u0434\u044b\u0439 ip route get \u0432\u044b\u0431\u0440\u0430\u043b \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 ping \u043f\u043e\u043b\u0443\u0447\u0438\u043b 2\/2, \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c. \u042d\u0442\u043e \u0443\u0436\u0435 L3-\u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442, \u043d\u043e \u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e connected-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b: \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0437\u043b\u043e\u0432 \u0435\u0449\u0451 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d \u0445\u043e\u0434\u0438\u0442\u044c \u2014 IGP \u043c\u044b \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c. \u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0430\u0434\u0440\u0435\u0441\u043d\u044b\u0439 \u043f\u043b\u0430\u043d, \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0438 evidence \u0432 \u043f\u0435\u0440\u0432\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438.<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0430\u0439\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  'ip -4 route show; \\   printf \"===REMOTE_LOOKUP===\\n\"; \\   ip -4 route get 10.10.0.0 2&gt;&amp;1 || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>\u042d\u0442\u0430\u043f 1 \u0433\u043e\u0442\u043e\u0432: \u0443 data-plane \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 IPv4-\u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442.<\/p>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 12 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u0445 \u043b\u0438\u043d\u043a\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \/31 \u0438\u0437 10.10.0.0\/27.<\/p>\n<\/li>\n<li>\n<p>Forwarding \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u0430 \u0434\u0432\u0443\u0445 PE \u0438 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 P; PC \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u043c\u0438 \u0445\u043e\u0441\u0442\u0430\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 12 \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 \u043f\u0430\u0440 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0438\u043d\u0433\u0443\u044e\u0442\u0441\u044f: 2\/2, \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<\/li>\n<li>\n<p>P-3 \u0432\u0438\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0432\u043e\u0438 \u0442\u0440\u0438 connected \/31, \u0430 lookup \u0434\u043e \u0434\u0430\u043b\u044c\u043d\u0435\u0433\u043e 10.10.0.0 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 Network is unreachable \u2014 \u044d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e, IGP \u043f\u043e\u043a\u0430 \u043d\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 Netplan-\u0444\u0430\u0439\u043b\u0430\u0445 \u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u044b. \u041f\u043e\u043b\u043d\u044b\u0439 netplan apply \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u043b\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0442\u044c management SSH. \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u044d\u0442\u0430\u043f\u0430 \u0441 \u0430\u0434\u0440\u0435\u0441\u043d\u044b\u043c \u043f\u043b\u0430\u043d\u043e\u043c \u0438 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430\u043c\u0438: <a href=\"http:\/\/01-ip-foundation.md\" rel=\"noopener nofollow\"><code>01-ip-foundation.md<\/code><\/a>(D:\/Codex-projectcs\/LDP-to-SRv6-with-AI\/<a href=\"http:\/\/01-ip-foundation.md\" rel=\"noopener nofollow\">01-ip-foundation.md<\/a>) \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043a\u0440\u0443\u043f\u043d\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c IGP, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 connected-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0438\u0441\u044c \u0432 \u0435\u0434\u0438\u043d\u0443\u044e IP-\u0441\u0435\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u041f\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f \u0442\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b &#8212; \u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044e AS IS, \u043d\u043e \u0441\u043a\u0440\u043e\u044e \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440 <\/p>\n<details class=\"spoiler\">\n<summary>01-ip-foundation.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 1. IPv4-\u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442<\/h2>\n<h3>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e<\/h3>\n<p>\u0414\u043e \u044d\u0442\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u0443 \u0441\u0442\u0435\u043d\u0434\u0430 \u0431\u044b\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e management IPv6-\u0441\u0435\u0442\u044c \u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u0430\u044f LLDP-\u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f. IP-\u043f\u0430\u043a\u0435\u0442\u0443 \u0432 data-plane \u0435\u0445\u0430\u0442\u044c \u0431\u044b\u043b\u043e \u043d\u0435\u043a\u0443\u0434\u0430. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 P2P-\u043b\u0438\u043d\u043a \u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u043b\u0438 IPv4 forwarding \u0442\u0430\u043c, \u0433\u0434\u0435 \u0443\u0437\u0435\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f transport-\u0441\u0435\u0442\u0438 \u0432\u044b\u0431\u0440\u0430\u043d \u0431\u043b\u043e\u043a <code>10.10.0.0\/27<\/code>. \u041a\u0430\u0436\u0434\u044b\u0439 \u043b\u0438\u043d\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u043b <code>\/31<\/code>: \u044d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0434\u0432\u0430 \u0430\u0434\u0440\u0435\u0441\u0430 \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0435\u0439 \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0439 \u0442\u0440\u0430\u0442\u044b.<\/p>\n<h3>\u0410\u0434\u0440\u0435\u0441\u043d\u044b\u0439 \u043f\u043b\u0430\u043d<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041b\u0438\u043d\u043a<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0410\u0434\u0440\u0435\u0441\u0430<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-1-Left ens4 \u2014 P-1 ens4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.0\/31 \u2014 10.10.0.1\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-1-Left ens5 \u2014 P-2 ens4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.2\/31 \u2014 10.10.0.3\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-1 ens5 \u2014 P-3 ens4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.4\/31 \u2014 10.10.0.5\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-1 ens6 \u2014 P-4 ens5<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.6\/31 \u2014 10.10.0.7\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-2 ens6 \u2014 P-3 ens5<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.8\/31 \u2014 10.10.0.9\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-2 ens5 \u2014 P-4 ens4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.10\/31 \u2014 10.10.0.11\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-3 ens6 \u2014 PE-2-Right ens4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.12\/31 \u2014 10.10.0.13\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-4 ens6 \u2014 PE-2-Right ens5<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.14\/31 \u2014 10.10.0.15\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RED-PC-1 ens4 \u2014 PE-1-Left ens6<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.16\/31 \u2014 10.10.0.17\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">BLUE-PC-1 ens4 \u2014 PE-1-Left ens7<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.18\/31 \u2014 10.10.0.19\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">BLUE-PC-2 ens4 \u2014 PE-2-Right ens6<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.20\/31 \u2014 10.10.0.21\/31<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RED-PC-2 ens4 \u2014 PE-2-Right ens7<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.10.0.22\/31 \u2014 10.10.0.23\/31<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h3>\u0427\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e<\/h3>\n<ul>\n<li>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0437\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d <code>\/etc\/netplan\/99-lab-data-plane.yaml<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0424\u0430\u0439\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>netplan generate<\/code> \u043d\u0430 \u0432\u0441\u0435\u0445 \u0434\u0435\u0441\u044f\u0442\u0438 \u0443\u0437\u043b\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>\u0410\u0434\u0440\u0435\u0441\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0432 running kernel. <code>netplan apply<\/code> \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0441\u044f: management <code>ens3<\/code> \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u043d\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u043d\u0435 \u043f\u043e\u0434\u0432\u0435\u0440\u0433\u0430\u043b\u0441\u044f \u043b\u0438\u0448\u043d\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044e.<\/p>\n<\/li>\n<li>\n<p><code>net.ipv4.ip_forward = 1<\/code> \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u0432 <code>\/etc\/sysctl.d\/90-lab-ip-forwarding.conf<\/code> \u043d\u0430 PE-1-Left, P-1, P-2, P-3, P-4 \u0438 PE-2-Right.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 PC forwarding \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c: \u043e\u043d\u0438 \u043f\u043e\u043a\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0445\u043e\u0441\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430<\/h3>\n<p>\u041d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 12 \u043b\u0438\u043d\u043a\u043e\u0432 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u044b <code>ip route get<\/code> \u0438 \u0434\u0432\u0430 ICMP echo-request. \u0412\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 outgoing interface \u0438 <code>2\/2<\/code> \u043e\u0442\u0432\u0435\u0442\u043e\u0432, \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code># PE-1-Left \u2192 P-110.10.0.1 dev ens4 src 10.10.0.02 packets transmitted, 2 received, 0% packet loss# P-2 \u2192 P-310.10.0.9 dev ens6 src 10.10.0.82 packets transmitted, 2 received, 0% packet loss# RED-PC-2 \u2192 PE-2-Right10.10.0.23 dev ens4 src 10.10.0.222 packets transmitted, 2 received, 0% packet loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0427\u0442\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c<\/h3>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u0435\u0449\u0451 \u043d\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e connected-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0445 <code>\/31<\/code>; \u0434\u0430\u043b\u044c\u043d\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043c\u0435\u0436\u0434\u0443 PE \u0438\u043b\u0438 PC \u043f\u043e\u043a\u0430 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b. \u042d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044d\u0442\u0430\u043f\u0430 1. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043b\u043e\u0435\u043c \u0431\u0443\u0434\u0435\u0442 IGP.<\/p>\n<\/div>\n<\/details>\n<h4>\u042d\u0442\u0430\u043f 2. OSPF transport-\u0441\u0435\u0442\u044c (c)<\/h4>\n<p>\u0421\u0432\u0435\u0440\u0438\u043c \u0447\u0430\u0441\u044b: <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/91f\/b78\/d62\/91fb78d62820fc3801e7827a0804c837.png\" alt=\"alt text\" width=\"1302\" height=\"686\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/91f\/b78\/d62\/91fb78d62820fc3801e7827a0804c837.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/91f\/b78\/d62\/91fb78d62820fc3801e7827a0804c837.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043b\u0430\u043d \u044f \u043e\u0434\u043e\u0431\u0440\u044f\u044e. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0430\u043a \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u043f\u043e\u043a\u0430 FRR \u043d\u0435\u0442 \u0434\u0430\u0436\u0435:<\/p>\n<pre><code class=\"bash\">root@P-1:~# systemctl status frrUnit frr.service could not be found.root@P-1:~# <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 4 \u043c\u0438\u043d 33 \u0441<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f, \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u044d\u0442\u0430\u043f \u2014 OSPFv2 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 transport-\u0441\u0435\u0442\u0438 P\/PE. \u042f \u0432\u043e\u0437\u044c\u043c\u0443 10.255.0.1\u201310.255.0.6\/32 \u0434\u043b\u044f loopback\u2019\u043e\u0432, \u043e\u0441\u0442\u0430\u0432\u043b\u044e PC \u0432\u043d\u0435 IGP \u0438 \u043d\u0435 \u0431\u0443\u0434\u0443 \u0442\u0440\u043e\u0433\u0430\u0442\u044c ens3. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043d\u0438\u043c\u0443 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0440\u0435\u0437 \u0448\u0435\u0441\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432: \u0430\u0434\u0440\u0435\u0441\u0430, forwarding \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 FRR, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0433\u043b\u0430 \u0443\u0441\u043f\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0443\u043c\u0430\u0442\u044c \u0437\u0430 \u043d\u043e\u0447\u044c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'hostname; \\   ip -br -4 address; \\   printf \"fwd=\"; \\   sysctl -n net.ipv4.ip_forward; \\   printf \"frr=\"; \\   systemctl is-active frr 2&gt;\/dev\/null || true; \\   printf \"ospfd=\"; \\   command -v ospfd || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0440\u0435\u0437 \u0441\u043e\u0432\u043f\u0430\u043b \u0441 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435\u043c: Stage 1 \u0436\u0438\u0432, \u0430 FRR\/ospfd \u0435\u0449\u0451 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u0421\u0442\u0430\u0432\u043b\u044e FRR \u043d\u0430 \u0448\u0435\u0441\u0442\u044c P\/PE, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e persistent loopback service \u0438 OSPF \u0432 area 0 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core-facing ens4\u2013ens6 (\u043d\u0430 PE \u2014 \u0442\u0430\u043a\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0445 core-\u043f\u043e\u0440\u0442\u044b). \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 ens6\/ens7 \u043d\u0430 PE \u0431\u0443\u0434\u0443\u0442 passive \u0438 \u0432 OSPF \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0443\u0442.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq frr &amp;&amp; \\   sed -i \"s\/^zebra=.*\/zebra=yes\/; s\/^ospfd=.*\/ospfd=yes\/\" \/etc\/frr\/daemons &amp;&amp; \\   printf \"[Unit]\\nDescription=Lab IPv4 loopback\\nBefore=frr.service\\n[Service]\\nType=oneshot\\nExecStart=\/usr\/sbin\/ip address replace 10.255.0.1\/32 dev lo\\nRemainAfterExit=yes\\n[Install]\\nWantedBy=multi-user.target\\n\" &gt; \/etc\/systemd\/system\/lab-loopback.service &amp;&amp; \\   systemctl daemon-reload &amp;&amp; \\   systemctl enable --now lab-loopback.service &amp;&amp; \\   printf \"frr defaults traditional\\nhostname PE-1-Left\\nlog syslog informational\\nservice integrated-vtysh-config\\n!\\ninterface lo\\n ip ospf area 0.0.0.0\\n!\\ninterface ens4\\n ip ospf area 0.0.0.0\\n ip ospf network point-to-point\\n!\\ninterface ens5\\n ip ospf area 0.0.0.0\\n ip ospf network point-to-point\\n!\\nrouter ospf\\n ospf router-id 10.255.0.1\\n passive-interface default\\n no passive-interface ens4\\n no passive-interface ens5\\n!\\n\" &gt; \/etc\/frr\/frr.conf &amp;&amp; \\   chown frr:frr \/etc\/frr\/frr.conf &amp;&amp; \\   chmod 640 \/etc\/frr\/frr.conf &amp;&amp; \\   systemctl restart frr &amp;&amp; \\   echo ===SERVICE=== &amp;&amp; \\   systemctl is-active frr &amp;&amp; \\   echo ===LOOPBACK=== &amp;&amp; \\   ip -br -4 address show lo'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>FRR \u0438 loopback\u2019\u0438 \u043f\u043e\u0434\u043d\u044f\u043b\u0438\u0441\u044c \u043d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u0445. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e control plane: \u043e\u0436\u0438\u0434\u0430\u044e 16 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 adjacency (2+3+3+3+3+2) \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 Full, \u0430 \u0432 RIB \u2014 OSPF-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0434\u043e \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 loopback\u2019\u043e\u0432. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u043e\u0441\u044c, \u0441\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0434\u043d\u043e \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043c\u044b \u043d\u0430\u0447\u043d\u0451\u043c \u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u0442\u044c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'sleep 10; \\   echo ===NEIGHBORS===; \\   vtysh -c \"show ip ospf neighbor\"; \\   echo ===OSPF_ROUTES===; \\   vtysh -c \"show ip route ospf\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Control plane \u043f\u0440\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f \u0431\u0435\u0437 \u0441\u044e\u0440\u043f\u0440\u0438\u0437\u043e\u0432: \u0432\u0441\u0435 16 \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432 Full. \u041d\u0430 PE \u0443\u0436\u0435 \u0432\u0438\u0434\u043d\u044b equal-cost \u043f\u0443\u0442\u0438 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e loopback PE-2 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 next-hop \u0447\u0435\u0440\u0435\u0437 P-1 \u0438 P-2. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c dataplane \u043e\u0431\u044b\u0447\u043d\u044b\u043c IP-\u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c: PE-1 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442 \u043f\u0430\u043a\u0435\u0442 \u0441\u043e \u0441\u0432\u043e\u0435\u0433\u043e loopback \u043a loopback PE-2, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043b kernel.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'echo ===KERNEL_ROUTE===; \\   ip -4 route get 10.255.0.6 from 10.255.0.1; \\   echo ===PING===; \\   ping -n -I 10.255.0.1 -c 4 -W 1 10.255.0.6; \\   echo ===TRACE===; \\   if command -v traceroute &gt;\/dev\/null 2&gt;&amp;1; then \\     traceroute -n -s 10.255.0.1 -m 8 -q 1 -w 1 10.255.0.6; \\   else \\     echo \"traceroute not installed\"; \\   fi'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Dataplane \u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442: PE-1 \u043f\u0438\u043d\u0433\u0443\u0435\u0442 loopback PE-2 \u0441 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c 10.255.0.1, 4\/4 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c; kernel \u0432\u044b\u0431\u0440\u0430\u043b \u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 P-2. Reply \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f, \u0437\u043d\u0430\u0447\u0438\u0442 OSPF \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b, \u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 forwarding. \u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0432\u0442\u043e\u0440\u043e\u0439 \u044d\u0442\u0430\u043f \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u0441 loopback-\u043f\u043b\u0430\u043d\u043e\u043c, \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438, ECMP \u0438 \u044d\u0442\u0438\u043c \u0442\u0435\u0441\u0442\u043e\u043c.<\/p>\n<blockquote>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u043e <a href=\"http:\/\/02-ospf-transport.md\" rel=\"noopener nofollow\">02-ospf-transport.md<\/a> +87-0<\/p>\n<\/blockquote>\n<hr\/>\n<p>\u042d\u0442\u0430\u043f 2 \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d: \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0430\u044f IP transport-\u0441\u0435\u0442\u044c \u043d\u0430 OSPF.<\/p>\n<ul>\n<li>\n<p>\u041d\u0430 P\/PE \u043f\u043e\u0434\u043d\u044f\u043b\u0438\u0441\u044c \u0432\u0441\u0435 16 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 OSPF adjacency \u0432 Full.<\/p>\n<\/li>\n<li>\n<p>Loopback\u2019\u0438 10.255.0.1\u201310.255.0.6\/32 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0447\u0435\u0440\u0435\u0437 IGP \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p>PE-1 \u043f\u043e\u043b\u0443\u0447\u0438\u043b ECMP \u0434\u043e PE-2 \u0447\u0435\u0440\u0435\u0437 P-1 \u0438 P-2.<\/p>\n<\/li>\n<li>\n<p>ping -I 10.255.0.1 10.255.0.6 \u0434\u0430\u043b 4\/4, \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c. Kernel \u0432\u044b\u0431\u0440\u0430\u043b next-hop 10.10.0.3 \u0447\u0435\u0440\u0435\u0437 P-2; TTL 62 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0434\u0432\u0443\u0445 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0445 P.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u043e\u0439 \u0438 evidence: <a href=\"http:\/\/02-ospf-transport.md\" rel=\"noopener nofollow\"><code>02-ospf-transport.md<\/code><\/a> MPLS \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0451\u043d. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u2014 LDP \u043f\u043e\u0432\u0435\u0440\u0445 \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e OSPF transport.<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0443 \u0438 \u0432\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 OSPF &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0444\u0430\u0439\u043b\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0437\u0434\u0430\u043b \u0430\u0433\u0435\u043d\u0442  <\/p>\n<details class=\"spoiler\">\n<summary>02-ospf-transport.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 2. OSPF transport-\u0441\u0435\u0442\u044c<\/h2>\n<h3>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0437\u0435\u043b \u0432\u0438\u0434\u0435\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0439 <code>\/31<\/code>. \u041c\u0435\u0436\u0434\u0443 PE \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0432\u043e\u0437\u043d\u043e\u0439 IP-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 LDP, VPN \u0438 \u0432\u0441\u0451 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u043a\u043b\u0430\u0441\u0442\u044c \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0430 \u0447\u0442\u043e. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 P \u0438 PE \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0435\u0434\u0438\u043d\u044b\u0439 IGP \u2014 OSPFv2 \u0432 area 0.<\/p>\n<h3>Loopback-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438 router-id<\/h3>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e<\/p>\n<\/th>\n<th>\n<p align=\"left\">Loopback \/ router-id<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-1-Left<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.255.0.1\/32<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-1<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.255.0.2\/32<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-2 (hostname <code>P2<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.255.0.3\/32<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-3 (hostname <code>P3<\/code>)<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.255.0.4\/32<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-4<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.255.0.5\/32<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-2-Right<\/p>\n<\/td>\n<td>\n<p align=\"left\">10.255.0.6\/32<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>Loopback \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c systemd unit <code>lab-loopback.service<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e FRR. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 router-id \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443.<\/p>\n<h3>\u0427\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e<\/h3>\n<ul>\n<li>\n<p>FRR 8.4.4 \u0438 <code>ospfd<\/code> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0434\u0432\u0443\u0445 PE \u0438 \u0447\u0435\u0442\u044b\u0440\u0451\u0445 P.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0435 transport-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b (<code>ens4\u2013ens6<\/code>, \u0430 \u043d\u0430 PE \u2014 \u0442\u043e\u043b\u044c\u043a\u043e core-facing <code>ens4\/ens5<\/code>) \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0432 OSPF area 0 \u043a\u0430\u043a point-to-point.<\/p>\n<\/li>\n<li>\n<p><code>passive-interface default<\/code> \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043b\u044e\u0431\u044b\u0435 Hello \u043d\u0430 loopback \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 PE-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445.<\/p>\n<\/li>\n<li>\n<p>PC \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 OSPF. \u0418\u0445 access-\u0441\u0435\u0442\u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 IGP.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0438\u043f\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 P-1:<\/p>\n<pre><code>router ospf ospf router-id 10.255.0.2 passive-interface default no passive-interface ens4 no passive-interface ens5 no passive-interface ens6interface ens5 ip ospf area 0.0.0.0 ip ospf network point-to-point<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Evidence: control plane<\/h3>\n<p>\u041e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c 16 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432: \u0443 PE \u043f\u043e \u0434\u0432\u0430, \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e P \u043f\u043e \u0442\u0440\u0438. \u0412\u0441\u0435 \u043e\u043d\u0438 \u0432\u044b\u0448\u043b\u0438 \u0432 <code>Full\/-<\/code>.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, PE-1-Left \u0432\u0438\u0434\u0438\u0442:<\/p>\n<pre><code>10.255.0.2  Full\/-  10.10.0.1  ens410.255.0.3  Full\/-  10.10.0.3  ens5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 RIB PE-1 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0432\u0441\u0435 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 transport-\u0441\u0435\u0442\u0438 \u0438 loopback\u2019\u0438. \u0414\u043e <code>10.255.0.6\/32<\/code> FRR \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b ECMP \u0447\u0435\u0440\u0435\u0437 P-1 \u0438 P-2:<\/p>\n<pre><code>O&gt;* 10.255.0.6\/32 [110\/3] via 10.10.0.1, ens4  *                       via 10.10.0.3, ens5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Evidence: data plane<\/h3>\n<p>PE-1-Left \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0442\u0440\u0430\u0444\u0438\u043a \u0441 loopback \u043d\u0430 loopback PE-2-Right:<\/p>\n<pre><code>$ ip route get 10.255.0.6 from 10.255.0.110.255.0.6 from 10.255.0.1 via 10.10.0.3 dev ens5$ ping -I 10.255.0.1 -c 4 10.255.0.64 packets transmitted, 4 received, 0% packet loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>TTL \u043e\u0442\u0432\u0435\u0442\u0430 \u0440\u0430\u0432\u0435\u043d 62: \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u0448\u0451\u043b \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0430 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0445 P-\u0443\u0437\u043b\u0430. \u0417\u043d\u0430\u0447\u0438\u0442, OSPF-\u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 FRR, \u043d\u043e \u0438 \u0432 kernel FIB, \u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0442\u043e\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.<\/p>\n<h3>\u0413\u0440\u0430\u043d\u0438\u0446\u0430 \u044d\u0442\u0430\u043f\u0430<\/h3>\n<p>\u0421\u043a\u0432\u043e\u0437\u043d\u043e\u0439 IP transport \u043c\u0435\u0436\u0434\u0443 PE \u0433\u043e\u0442\u043e\u0432. MPLS \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0451\u043d: \u043c\u0435\u0442\u043e\u043a, LDP \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432 \u0438 VPN route \u043d\u0435\u0442. \u042d\u0442\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439.<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u043e \u044f \u0437\u0430 \u043d\u0438\u043c \u0440\u0435\u0448\u0438\u043b \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c:<\/p>\n<pre><code>P-1# show ip ospf neighbor Neighbor ID     Pri State           Up Time         Dead Time Address         Interface                        RXmtL RqstL DBsmL10.255.0.1        1 Full\/-          1h02m55s          39.821s 10.10.0.0       ens4:10.10.0.1                       0     0     010.255.0.4        1 Full\/-          1h03m00s          31.203s 10.10.0.5       ens5:10.10.0.4                       0     0     010.255.0.5        1 Full\/-          1h02m55s          30.285s 10.10.0.7       ens6:10.10.0.6                       0     0     0<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code>root@PE-2-Right:~# ip r10.10.0.6\/31 nhid 35 via 10.10.0.14 dev ens5 proto ospf metric 20 10.10.0.10\/31 nhid 35 via 10.10.0.14 dev ens5 proto ospf metric 20 10.10.0.12\/31 dev ens4 proto kernel scope link src 10.10.0.13 10.10.0.14\/31 dev ens5 proto kernel scope link src 10.10.0.15 10.10.0.20\/31 dev ens6 proto kernel scope link src 10.10.0.21 10.10.0.22\/31 dev ens7 proto kernel scope link src 10.10.0.23 10.255.0.5 nhid 35 via 10.10.0.14 dev ens5 proto ospf metric 20 <\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0443 \u0431\u0430\u0437\u043e\u0432\u043e \u0432\u0440\u043e\u0434\u0435 \u043d\u0435 \u043e\u0431\u043c\u0430\u043d\u0443\u043b.<\/p>\n<h4>\u042d\u0442\u0430\u043f 3. MPLS transport: LDP \u043f\u043e\u0432\u0435\u0440\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e OSPF (\u0441)<\/h4>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3e7\/4b0\/874\/3e74b087408ad7d38d4de87c2772d81f.png\" alt=\"alt text\" width=\"1287\" height=\"627\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/3e7\/4b0\/874\/3e74b087408ad7d38d4de87c2772d81f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3e7\/4b0\/874\/3e74b087408ad7d38d4de87c2772d81f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0410 \u043e\u043d \u0445\u043e\u0440\u043e\u0448! \u041d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0433\u043e \u0432 \u0434\u0435\u043b\u0435!<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0434\u0443\u043c\u0430\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043b\u044c\u0448\u0435 &#8212; \u201c\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 13 \u043c\u0438\u043d 21 \u0441\u201d. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0437\u0434\u0443\u043c\u0438\u0439 \u044f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043f\u043e\u043a\u0430\u0436\u0443, \u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u043e \u043c\u043d\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0441\u0442\u0430\u043b\u043e:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/254\/05b\/dbe\/25405bdbedbb3040b12876c96376586c.png\" alt=\"alt text\" width=\"1255\" height=\"466\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/254\/05b\/dbe\/25405bdbedbb3040b12876c96376586c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/254\/05b\/dbe\/25405bdbedbb3040b12876c96376586c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0427\u0451\u0442\u043e \u0433\u043b\u044e\u043a\u043d\u0443\u043b\u043e \u0432 \u043e\u0431\u0449\u0435\u043c, \u043d\u043e \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0437\u043d\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0441\u0442\u0430\u043b, \u0441\u0442\u044b\u0434\u043d\u043e, \u0432\u0438\u0434\u0438\u043c\u043e:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/196\/20c\/760\/19620c7608e7a51a219e15a4abcc1721.png\" alt=\"alt text\" width=\"1281\" height=\"296\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/196\/20c\/760\/19620c7608e7a51a219e15a4abcc1721.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/196\/20c\/760\/19620c7608e7a51a219e15a4abcc1721.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u043f\u043e\u043e\u0431\u0435\u0449\u0430\u043b \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0430\u043a \u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a7b\/3f9\/fce\/a7b3f9fce1ddd97daa4d4a26c054eddf.png\" alt=\"alt text\" width=\"1272\" height=\"256\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a7b\/3f9\/fce\/a7b3f9fce1ddd97daa4d4a26c054eddf.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a7b\/3f9\/fce\/a7b3f9fce1ddd97daa4d4a26c054eddf.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041b\u0430\u0434\u043d\u043e, \u043f\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0430 \u0441\u043b\u043e\u0432\u043e \u0435\u043c\u0443, \u0430 \u0432\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b:<\/p>\n<details class=\"spoiler\">\n<summary>\u0422\u0435\u043a\u0441\u0442\u0430 \u043c\u043d\u043e\u0433\u043e<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u0442\u0430\u043f \u2014 MPLS\/LDP \u2014 \u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0434\u0432\u0435 \u0432\u0435\u0449\u0438, \u0431\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 LDP \u0431\u044b\u043b \u0431\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c: \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u044f\u0434\u0440\u0435 MPLS-\u043c\u043e\u0434\u0443\u043b\u0438 \u0438 \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 FRR 8.4 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433 ldpd. \u0417\u0430\u0442\u0435\u043c \u0432\u043a\u043b\u044e\u0447\u0438\u043c MPLS input \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core-\u043f\u043e\u0440\u0442\u0430\u0445; PE access \u0438 PC \u0432 label transport \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0443\u0442.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'hostname; \\   printf \"ldpd=\"; \\   command -v ldpd || true; \\   printf \"ldpd-daemon=\"; \\   grep -E \"^ldpd=\" \/etc\/frr\/daemons; \\   printf \"mpls-router-module=\"; \\   modprobe -n -v mpls_router 2&gt;&amp;1; \\   printf \"mpls-sysctl=\"; \\   sysctl -n net.mpls.platform_labels 2&gt;&amp;1 || true; \\   echo ===FRR_MPLS===; \\   vtysh -c \"show mpls ldp neighbor\" 2&gt;&amp;1 || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0448\u043b\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0435\u043e\u0434\u043d\u043e\u0440\u043e\u0434\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0435\u043d\u0434\u0430: \u043d\u0430 PE-1 \u0438 P-1 \u043c\u043e\u0434\u0443\u043b\u044c mpls_router \u0435\u0441\u0442\u044c, \u0430 \u043d\u0430 P-3, P-4 \u0438 PE-2 \u0435\u0433\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435\u0442 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c kernel tree. \u0417\u043d\u0430\u0447\u0438\u0442, \u0435\u0441\u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u00ab\u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c LDP\u00bb, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 control plane \u0431\u0435\u0437 \u0447\u0435\u0441\u0442\u043d\u043e\u0433\u043e MPLS forwarding. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0434\u0440\u0430 \u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u043c\u043e\u0434\u0443\u043b\u0435\u0439; \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0439 \u0440\u0435\u043c\u043e\u043d\u0442 \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 linux-modules-extra, \u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0431\u0435\u0434\u0438\u043c\u0441\u044f.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'kernel=$(uname -r); \\   echo \"kernel=$kernel\"; \\   dpkg-query -W -f=\"${db:Status-Abbrev} ${Package}\\n\" \"linux-modules*${kernel}*\" 2&gt;\/dev\/null || true; \\   echo \"candidate:\"; \\   apt-cache policy \"linux-modules-extra-$kernel\" 2&gt;\/dev\/null | sed -n \"1,8p\"; \\   echo \"ldpd-binary:\"; \\   ls -l \/usr\/lib\/frr\/ldpd 2&gt;\/dev\/null || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430: \u043d\u0430 \u0442\u0440\u0451\u0445 \u0443\u0437\u043b\u0430\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d matching \u043f\u0430\u043a\u0435\u0442 linux-modules-extra; \u044f\u0434\u0440\u0430 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u041f\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0440\u043e\u0432\u043d\u043e \u044d\u0442\u0438 \u0442\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u0430, \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u0447\u0442\u043e mpls_router \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f. \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0443 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 \u0443\u0437\u043b\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0430\u044f MPLS-\u043e\u0441\u043d\u043e\u0432\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9904] \\  'kernel=$(uname -r); \\   DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \"linux-modules-extra-$kernel\" &amp;&amp; \\   modprobe mpls_router &amp;&amp; \\   echo ===MPLS_MODULE=== &amp;&amp; \\   lsmod | grep \"^mpls_router\" &amp;&amp; \\   sysctl -n net.mpls.platform_labels'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p><code>\u0410 \u0432\u043e\u0442 \u0447\u0442\u043e \u043e\u043d \u0438\u0441\u043a\u0430\u043b \u0432 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/code>: <code>site:<\/code><a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\"><code>docs.frrouting.org<\/code><\/a><code> 8.4 mpls ldp discovery transport-address interface configuration<\/code><\/p>\n<\/blockquote>\n<p>\u041c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0430: mpls_router \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 \u0443\u0437\u043b\u0430\u0445. FRR 8.4 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 LDP. \u0412\u043a\u043b\u044e\u0447\u0430\u044e label space \u0438 MPLS input \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core-\u043f\u043e\u0440\u0442\u0430\u0445, \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043c\u043e\u0434\u0443\u043b\u044f \u043f\u043e\u0441\u043b\u0435 reboot \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e LDP \u0441 transport-address \u0440\u0430\u0432\u043d\u044b\u043c loopback. OSPF \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 FRR, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u043e\u043d \u0438 LDP \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'modprobe mpls_router &amp;&amp; \\   printf \"mpls_router\\n\" &gt; \/etc\/modules-load.d\/lab-mpls.conf &amp;&amp; \\   printf \"net.mpls.platform_labels = 1048575\\nnet.mpls.conf.ens4.input = 1\\nnet.mpls.conf.ens5.input = 1\\n\" &gt; \/etc\/sysctl.d\/91-lab-mpls.conf &amp;&amp; \\   sysctl -w net.mpls.platform_labels=1048575; \\   sysctl -w net.mpls.conf.ens4.input=1; \\   sysctl -w net.mpls.conf.ens5.input=1 &amp;&amp; \\   sed -i \"s\/^ldpd=.*\/ldpd=yes\/\" \/etc\/frr\/daemons &amp;&amp; \\   printf \"!\\nmpls ldp\\n router-id 10.255.0.1\\n address-family ipv4\\n  discovery transport-address 10.255.0.1\\n  !\\n  interface ens4\\n  !\\n  interface ens5\\n  !\\n exit-address-family\\n!\\n\" &gt;&gt; \/etc\/frr\/frr.conf &amp;&amp; \\   chown frr:frr \/etc\/frr\/frr.conf &amp;&amp; \\   chmod 640 \/etc\/frr\/frr.conf &amp;&amp; \\   systemctl restart frr &amp;&amp; \\   echo ===FRR=== &amp;&amp; \\   systemctl is-active frr &amp;&amp; \\   echo ===MPLS_INPUT=== &amp;&amp; \\   printf \"ens4=\"; \\   sysctl -n net.mpls.conf.ens4.input; \\   printf \"ens5=\"; \\   sysctl -n net.mpls.conf.ens5.input &amp;&amp; \\   echo ===LABEL_SPACE=== &amp;&amp; \\   sysctl -n net.mpls.platform_labels'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>MPLS forwarding \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445, label space \u0441\u043e\u0437\u0434\u0430\u043d, ldpd \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 FRR. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430: \u0443 LDP \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u0442\u0435 \u0436\u0435 \u043f\u0440\u044f\u043c\u044b\u0435 \u0441\u043e\u0441\u0435\u0434\u0438, \u0447\u0442\u043e \u0443 OSPF, \u043d\u043e TCP-\u0441\u0435\u0441\u0441\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c\u0441\u044f \u043f\u043e loopback transport-address. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c bindings \u0438 LFIB.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'sleep 12; \\   echo ===LDP_NEIGHBORS===; \\   vtysh -c \"show mpls ldp neighbor\"; \\   echo ===OSPF_FULL_COUNT===; \\   vtysh -c \"show ip ospf neighbor\" | grep -c \"Full\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>OSPF \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0430 LDP \u0441\u043e\u0441\u0435\u0434\u0435\u0439 \u2014 \u043d\u043e\u043b\u044c. \u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0432 IP transport \u0438 \u043d\u0435 \u0432 kernel MPLS input: \u043c\u044b \u0441\u043b\u043e\u043c\u0430\u043b\u0438\u0441\u044c \u0440\u0430\u043d\u044c\u0448\u0435, \u0432 LDP discovery \u0438\u043b\u0438 \u0441\u0430\u043c\u043e\u043c daemon. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043d\u0430\u0443\u0433\u0430\u0434 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b; \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u044e \u043d\u0430 P-1, \u0447\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u043e\u0441\u044c, \u043f\u043e\u043f\u0430\u043b \u043b\u0438 \u0431\u043b\u043e\u043a \u0432 running-config \u0438 \u0435\u0441\u0442\u044c \u043b\u0438 discovery\/interface state \u0438\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u0445.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'echo ===PROCESS===; \\   pgrep -a ldpd || true; \\   echo ===RUNNING_CONFIG===; \\   vtysh -c \"show running-config\" | sed -n \"\/^mpls ldp\/,\/^!\/p\"; \\   echo ===LDP_INTERFACES===; \\   vtysh -c \"show mpls ldp ipv4 interface\"; \\   echo ===DISCOVERY===; \\   vtysh -c \"show mpls ldp ipv4 discovery\"; \\   echo ===FRR_LOG===; \\   journalctl -u frr --no-pager -n 60 | tail -n 35'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, ldpd \u0436\u0438\u0432, \u043d\u043e \u0435\u0433\u043e running state \u043f\u0443\u0441\u0442\u043e\u0439. \u042d\u0442\u043e \u043d\u0435 \u0442\u0430 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f, \u0433\u0434\u0435 \u043d\u0430\u0434\u043e \u0443\u0431\u0435\u0436\u0434\u0430\u0442\u044c \u0441\u0435\u0431\u044f, \u0447\u0442\u043e \u00ab\u043f\u043e\u0447\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044e\u0441\u044c \u043d\u0430 VTY-\u043f\u0443\u0442\u044c \u0441\u0430\u043c\u043e\u0433\u043e FRR: \u0432\u043d\u0435\u0441\u0443 \u0442\u043e\u0442 \u0436\u0435 LDP-\u0431\u043b\u043e\u043a \u043d\u0430 P-1 \u0447\u0435\u0440\u0435\u0437 vtysh \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u044e LDP interface state. \u0415\u0441\u043b\u0438 \u043e\u043d \u043e\u0436\u0438\u0432\u0451\u0442 \u2014 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043c \u044d\u0442\u043e\u0442 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0437\u043b\u0430\u0445.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'vtysh -c \"configure terminal\" \\         -c \"mpls ldp\" \\         -c \"router-id 10.255.0.2\" \\         -c \"address-family ipv4\" \\         -c \"discovery transport-address 10.255.0.2\" \\         -c \"interface ens4\" \\         -c \"interface ens5\" \\         -c \"interface ens6\" \\         -c \"exit-address-family\" \\         -c \"end\" \\         -c \"write memory\"; \\   echo ===LDP_INTERFACES===; \\   vtysh -c \"show mpls ldp ipv4 interface\"; \\   echo ===RUNNING===; \\   vtysh -c \"show running-config\" | sed -n \"\/^mpls ldp\/,\/^!\/p\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u043e\u0442 \u043e\u043d, \u043c\u043e\u043c\u0435\u043d\u0442 \u0438\u0441\u0442\u0438\u043d\u044b: \u0442\u043e\u0442 \u0436\u0435 \u0431\u043b\u043e\u043a \u0447\u0435\u0440\u0435\u0437 vtysh \u0441\u0440\u0430\u0437\u0443 \u0441\u0434\u0435\u043b\u0430\u043b ens4\u2013ens6 \u043d\u0430 P-1 ACTIVE. \u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u044b\u043b\u0430 \u043d\u0435 \u0432 \u0441\u0435\u0442\u0438, \u0430 \u0432 \u0442\u043e\u043c, \u043a\u0430\u043a FRR 8.4 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 nested-config: VTY \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b \u044f\u0432\u043d\u044b\u0435 exit-\u0433\u0440\u0430\u043d\u0438\u0446\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 daemon \u043e\u0436\u0438\u0434\u0430\u0435\u0442. \u041f\u0440\u0438\u043c\u0435\u043d\u044f\u044e \u044d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u044f\u0442\u0438 \u0443\u0437\u043b\u0430\u0445 \u0438 \u0441\u043d\u043e\u0432\u0430 \u0441\u043e\u0431\u0438\u0440\u0430\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443 LDP-\u0441\u043e\u0441\u0435\u0434\u0435\u0439.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'vtysh -c \"configure terminal\" \\         -c \"mpls ldp\" \\         -c \"router-id 10.255.0.2\" \\         -c \"address-family ipv4\" \\         -c \"discovery transport-address 10.255.0.2\" \\         -c \"interface ens4\" \\         -c \"interface ens5\" \\         -c \"interface ens6\" \\         -c \"exit-address-family\" \\         -c \"end\" \\         -c \"write memory\"; \\   echo ===LDP_INTERFACES===; \\   vtysh -c \"show mpls ldp ipv4 interface\"; \\   echo ===RUNNING===; \\   vtysh -c \"show running-config\" | sed -n \"\/^mpls ldp\/,\/^!\/p\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>LDP \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f: \u0432\u0441\u0435 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 16 directed sessions \u2014 OPERATIONAL. \u042d\u0442\u043e \u0443\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u0438\u0439 control plane, \u043d\u043e \u043f\u0440\u0430\u0437\u0434\u043d\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u043d\u043e. \u0421\u043b\u0435\u0434\u043e\u043c \u0441\u043c\u043e\u0442\u0440\u044e FEC loopback PE-2 \u043d\u0430 PE-1 \u0438 LFIB \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u043e\u0433\u043e P-2; \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043f\u043e\u0439\u043c\u0430\u0442\u044c MPLS EtherType \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c core-\u043b\u0438\u043d\u043a\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f ping.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'echo ===BINDING===; \\   vtysh -c \"show mpls ldp ipv4 binding 10.255.0.6\/32\"; \\   echo ===IP_ROUTE===; \\   vtysh -c \"show ip route 10.255.0.6\/32\"; \\   ip -4 route get 10.255.0.6 from 10.255.0.1'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0422\u0443\u0442 \u043e\u043d \u0432\u0438\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043b \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0441\u0436\u0430\u043b \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0436\u0430\u0442<\/p>\n<\/blockquote>\n<blockquote>\n<p>\u0438 \u043f\u043e\u0441\u043b\u0435 \u0441\u0436\u0430\u0442\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043e\u043d \u043d\u0438\u0436\u0435 \u201c\u0441\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f\u201d, \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430<\/p>\n<\/blockquote>\n<p>LDP control plane \u0443\u0436\u0435 \u0432\u0441\u0442\u0430\u043b. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u044c\u044e \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e: \u043f\u043e\u0439\u043c\u0430\u044e MPLS-\u043a\u0430\u0434\u0440 \u043d\u0430 core-\u043b\u0438\u043d\u043a\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f ping \u043c\u0435\u0436\u0434\u0443 loopback\u2019\u0430\u043c\u0438 \u2014 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u044b, \u043d\u043e \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 \u0432 \u043f\u0440\u043e\u0432\u043e\u0434\u0435.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[2001:db8::9903] \\  'tcpdump -eni ens4 -c 1 -vvv mpls'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u0445\u0432\u0430\u0442 \u043d\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b: \u043e\u0431\u0430 SSH-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u0443\u043b\u0438 Unknown error, \u0442\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u043d\u0435 MPLS-\u0441\u0438\u043c\u043f\u0442\u043e\u043c. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0432\u0435\u0440\u044e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 management-\u0430\u0434\u0440\u0435\u0441\u0430 \u0438\u0437 \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u044f \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0435\u043d\u0434\u0430 \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code>Get-Content -Raw Lab_Inventory; Get-ChildItem -Force | Select-Object -ExpandProperty Name<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0448\u0451\u043b \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443: \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u0443\u0448\u0451\u043b \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 2001:db8, \u0430 \u0443 \u0441\u0442\u0435\u043d\u0434\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u0435\u0444\u0438\u043a\u0441 fde0:3307:31:222. \u0417\u0430\u043e\u0434\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442 \u043f\u0435\u0440\u0435\u043d\u043e\u0448\u0443 \u043d\u0430 P-2 \u2014 \u0438\u043c\u0435\u043d\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b\u0431\u0440\u0430\u043b\u0441\u044f ECMP-\u043f\u0443\u0442\u044c PE-1.<\/p>\n<p>SSH \u043d\u0430 \u0441\u0442\u0435\u043d\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442 \u043e\u0431\u043e\u0440\u0432\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e PTY: \u0441\u0435\u0441\u0441\u0438\u044f \u043d\u0435 \u0443\u0434\u0435\u0440\u0436\u0430\u043b\u0430 stdin \u0434\u043b\u044f \u043f\u0430\u0440\u043e\u043b\u044f. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0443 \u0435\u0433\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u043c \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0435 \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u0442\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u043a\u0430 \u0437\u0430\u0445\u0432\u0430\u0442\u0430, \u0441\u0435\u0442\u044c \u043d\u0435 \u043c\u0435\u043d\u044f\u044e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ip route get 10.255.0.6 from 10.255.0.1; \\   ping -n -I 10.255.0.1 -c 1 -W 2 10.255.0.6'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435: \u043d\u0430 P-2 ens4 \u043f\u043e\u0439\u043c\u0430\u043d ethertype MPLS (0x8847), label 22, \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u043e\u0432\u043d\u043e ICMP 10.255.0.1 \u2192 10.255.0.6. \u042d\u0442\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 LFIB \u0438 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u0442 dataplane-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443. \u041e\u0444\u043e\u0440\u043c\u043b\u044f\u044e \u044d\u0442\u0430\u043f \u043a\u0430\u043a \u0437\u0430\u043c\u0435\u0442\u043a\u0443 \u2014 \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u0434\u0438\u043d \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0439 \u0441\u0431\u043e\u0439 \u0441 \u0440\u0443\u0447\u043d\u043e\u0439 FRR-\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0438 \u0435\u0433\u043e \u0440\u0430\u0437\u0431\u043e\u0440.<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0430\u0439\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code>Get-Content -Raw 03-mpls-ldp.md; git diff --check; git status --short<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>\u042d\u0442\u0430\u043f 3 \u0433\u043e\u0442\u043e\u0432: MPLS transport \u0441 LDP \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0440\u0445 OSPF. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u2014 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0434\u0440 \u043d\u0430 core-\u043b\u0438\u043d\u043a\u0435 P-2: ethertype MPLS unicast (0x8847) MPLS (label 22, tc 0, [S], ttl 64) 10.255.0.1 &gt; 10.255.0.6: ICMP echo request PE-1 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0430\u043a\u0435\u0442 \u043a loopback PE-2 \u0441 label 22; P-2 \u043f\u0440\u0438\u043d\u044f\u043b \u0435\u0433\u043e \u0438 \u043f\u043e LFIB \u043c\u0435\u043d\u044f\u0435\u0442 \u043c\u0435\u0442\u043a\u0443 \u043d\u0430 25 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 ECMP-\u043f\u0443\u0442\u0435\u0439 \u0434\u0430\u043b\u044c\u0448\u0435. Ping \u043f\u0440\u043e\u0448\u0451\u043b \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c. \u0417\u0430\u043e\u0434\u043d\u043e \u0440\u0430\u0441\u043a\u043e\u043f\u0430\u043b\u0438 \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u043b\u0438 \u0447\u0435\u0441\u0442\u043d\u0443\u044e \u043c\u0435\u043b\u043e\u0447\u044c: LDP-\u0431\u043b\u043e\u043a, \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 frr.conf, \u043d\u0435 \u0441\u0442\u0430\u043b \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c FRR. \u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 vtysh \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0442\u0430\u043b\u0438 ACTIVE, \u0430 \u0432\u0441\u0435 16 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0445 LDP-\u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432 \u2014 OPERATIONAL. \u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u044d\u0442\u0430\u043f\u0430 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 evidence: <a href=\"http:\/\/03-mpls-ldp.md\" rel=\"noopener nofollow\"><code>03-mpls-ldp.md<\/code><\/a>(D:\/Codex-projectcs\/LDP-to-SRv6-with-AI\/<a href=\"http:\/\/03-mpls-ldp.md\" rel=\"noopener nofollow\">03-mpls-ldp.md<\/a>). \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u0448\u0430\u0433 \u2014 VRF \u0434\u043b\u044f RED \u0438 BLUE \u0438 MPLS L3VPN.<\/p>\n<p>\u0418\u0437\u043c\u0435\u043d\u0451\u043d <a href=\"http:\/\/03-mpls-ldp.md\" rel=\"noopener nofollow\">03-mpls-ldp.md<\/a>+115-0\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c<\/p>\n<\/div>\n<\/details>\n<p>\u041c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u043a\u0430\u043a \u043e\u043d \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043b\u043e\u0432\u043a\u043e \u0440\u0435\u0448\u0438\u043b \u201c\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443\u201d \u0441 \u043c\u043e\u0434\u0443\u043b\u0435\u043c \u044f\u0434\u0440\u0430 \u041d\u0443 \u0438 \u0432 \u0446\u0435\u043b\u043e\u043c, \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043e\u043d <a href=\"https:\/\/blog.pomazanov.com\/posts\/ldp-srv6-with-ai\/#contex-compress\" rel=\"noopener nofollow\">\u201c\u0441\u0431\u0438\u043b\u0441\u044f\u201d<\/a> &#8212; \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u043d\u0430 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 IP-\u0430\u0434\u0440\u0435\u0441\u0430 &#8212; \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u201c\u0441\u0436\u0430\u043b\u201d \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442. \u041d\u0443 \u0431\u0443\u0434\u0435\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0448\u0451\u043b \u043e\u0442\u0434\u043e\u0445\u043d\u0443\u0442\u044c &#8212; \u043f\u043e\u0441\u043f\u0430\u0442\u044c. \u042f \u0442\u043e\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u044b\u043f\u0430\u044e\u0441\u044c \u043d\u0435 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0432\u0447\u0435\u0440\u0430 \ud83d\ude42<\/p>\n<p>\u0412\u043e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438 \u201c\u043f\u0435\u0434\u0430\u0433\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0430\u201d, \u0435\u0441\u043b\u0438 \u043a\u043e\u043c\u0443 \u0435\u0449\u0451 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u0440\u043e MPLS \u0432 \u044f\u0434\u0440\u0435 &#8212; \u0432 \u0446\u0435\u043b\u043e\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e, \u0432\u0440\u043e\u0434\u0435 \u0442\u043e\u043b\u043a\u043e\u0432\u043e \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u0438\u0448\u0435\u0442 \u043f\u0430\u0440\u0435\u043d\u044c.<\/p>\n<details class=\"spoiler\">\n<summary>03-mpls-ldp.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 3. MPLS transport: LDP \u043f\u043e\u0432\u0435\u0440\u0445 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e OSPF<\/h2>\n<h3>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f<\/h3>\n<p>\u041d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u044d\u0442\u0430\u043f\u0435 OSPF \u0443\u0436\u0435 \u043d\u0430\u0443\u0447\u0438\u043b \u0448\u0435\u0441\u0442\u044c P\/PE-\u0443\u0437\u043b\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c IP-\u043f\u0430\u043a\u0435\u0442 \u043a loopback \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0443\u0437\u043b\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 forwarding \u043d\u0430 core: \u0434\u043b\u044f FEC (\u0437\u0434\u0435\u0441\u044c \u044d\u0442\u043e, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, loopback <code>\/32<\/code>) ingress PE \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c MPLS label, \u0430 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0439 P \u2014 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u043f\u043e LFIB.<\/p>\n<p>\u042d\u0442\u043e <strong>\u0442\u043e\u043b\u044c\u043a\u043e transport MPLS<\/strong>. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 VRF, VPNv4 \u0438 L3VPN \u0437\u0434\u0435\u0441\u044c \u0435\u0449\u0451 \u043d\u0435\u0442: \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 RED\/BLUE-\u043f\u043e\u0440\u0442\u044b \u0432 LDP \u043d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0442.<\/p>\n<h3>\u0427\u0442\u043e \u0431\u044b\u043b\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e<\/h3>\n<p>\u041d\u0430 PE-1-Left, P-1, P-2, P-3, P-4 \u0438 PE-2-Right:<\/p>\n<ul>\n<li>\n<p>\u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d kernel-\u043c\u043e\u0434\u0443\u043b\u044c <code>mpls_router<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 <code>\/etc\/modules-load.d\/lab-mpls.conf<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0437\u0430\u0434\u0430\u043d\u043e <code>net.mpls.platform_labels = 1048575<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>net.mpls.conf.&lt;core-port&gt;.input = 1<\/code> \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u0432 FRR \u0432\u043a\u043b\u044e\u0447\u0451\u043d <code>ldpd<\/code>;<\/p>\n<\/li>\n<li>\n<p>LDP router-id \u0438 transport address \u2014 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 OSPF loopback <code>10.255.0.x<\/code>;<\/p>\n<\/li>\n<li>\n<p>LDP \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043b\u0438\u0448\u044c \u043d\u0430 \u043b\u0438\u043d\u043a\u0430\u0445 P\/PE core: <code>PE1\u2014P1<\/code>, <code>PE1\u2014P2<\/code>, \u0432\u0441\u0435 P\u2014P \u0438 \u043e\u0431\u0430 \u043b\u0438\u043d\u043a\u0430 \u043a PE2.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430 P-3, P-4 \u0438 PE-2-Right \u043c\u043e\u0434\u0443\u043b\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043d\u0430\u0431\u043e\u0440\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041f\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c\u0443 \u044f\u0434\u0440\u0443 \u043f\u0430\u043a\u0435\u0442 <code>linux-modules-extra<\/code> \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u043c\u043e\u0434\u0443\u043b\u044c \u0431\u0435\u0437 reboot. \u041c\u0435\u043d\u0435\u0434\u0436\u043c\u0435\u043d\u0442-\u0441\u0435\u0442\u044c \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0438. APT \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u043e\u0431\u0449\u0438\u043b \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c kernel update; \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0430\u0441\u044c.<\/p>\n<h3>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043d\u043e \u0447\u0435\u0441\u0442\u043d\u044b\u0439 FRR-\u0441\u0431\u043e\u0439<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 LDP-\u0431\u043b\u043e\u043a \u0431\u044b\u043b \u0434\u043e\u043f\u0438\u0441\u0430\u043d \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 <code>\/etc\/frr\/frr.conf<\/code>. <code>ldpd<\/code> \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0441\u044f, \u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430:<\/p>\n<pre><code>show mpls ldp ipv4 interface<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u2014 \u0442\u043e \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433 \u0432 \u0444\u0430\u0439\u043b\u0435 \u0435\u0449\u0451 \u043d\u0435 \u0441\u0442\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c LDP state. \u041a\u0440\u0430\u0441\u0438\u0432\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, \u043d\u0435 \u0441\u0435\u0442\u044c.<\/p>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 <code>vtysh<\/code> \u0441 \u044f\u0432\u043d\u044b\u043c\u0438 \u0432\u044b\u0445\u043e\u0434\u0430\u043c\u0438 \u0438\u0437 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u043a\u0446\u0438\u0439 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0438 <code>write memory<\/code>. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0442\u0430\u043b\u0438 <code>ACTIVE<\/code>, \u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u2014 <code>OPERATIONAL<\/code>. \u042d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0430\u0436\u0435\u043d \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0438: \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f FRR \u043c\u044b \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435 \u043d\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0430 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 protocol state.<\/p>\n<h3>Control plane: LDP-\u0441\u0435\u0441\u0441\u0438\u0438<\/h3>\n<p>\u041e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c 16 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432: 2 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e PE \u0438 \u043f\u043e 3 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e P. \u0418\u043c\u0435\u043d\u043d\u043e \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a <code>OPERATIONAL<\/code> \u043f\u043e\u043a\u0430\u0437\u0430\u043b <code>show mpls ldp neighbor<\/code>:<\/p>\n<pre><code>PE-1-Left : 10.255.0.2, 10.255.0.3P-1       : 10.255.0.1, 10.255.0.4, 10.255.0.5P-2       : 10.255.0.1, 10.255.0.4, 10.255.0.5P-3       : 10.255.0.2, 10.255.0.3, 10.255.0.6P-4       : 10.255.0.2, 10.255.0.3, 10.255.0.6PE-2-Right: 10.255.0.4, 10.255.0.5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 label forwarding<\/h3>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 FEC \u0431\u0435\u0440\u0451\u043c loopback PE-2-Right <code>10.255.0.6\/32<\/code>.<\/p>\n<p>\u041d\u0430 PE-1 LDP \u0432\u044b\u0434\u0430\u043b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0443\u044e label <code>23<\/code> \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043e\u0442 \u043e\u0431\u043e\u0438\u0445 next hop remote label <code>22<\/code>:<\/p>\n<pre><code>show mpls ldp ipv4 binding 10.255.0.6\/32ipv4 10.255.0.6\/32 10.255.0.2  Local 23  Remote 22  in use yesipv4 10.255.0.6\/32 10.255.0.3  Local 23  Remote 22  in use yes<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Linux kernel \u043d\u0430 PE-1 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c ECMP-\u043f\u0443\u0442\u0438 \u043f\u0430\u043a\u0435\u0442 \u0443\u0439\u0434\u0451\u0442 \u043d\u0430 P-2 \u0447\u0435\u0440\u0435\u0437 <code>ens5<\/code> \u0443\u0436\u0435 \u0441 \u043c\u0435\u0442\u043a\u043e\u0439:<\/p>\n<pre><code>ip route get 10.255.0.6 from 10.255.0.110.255.0.6 from 10.255.0.1 encap mpls 22 via 10.10.0.3 dev ens5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0423 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u043e\u0433\u043e P-2 LFIB \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0439 label <code>22<\/code> \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 swap \u043d\u0430 <code>25<\/code> \u0438 \u0434\u0432\u0430 \u0440\u0430\u0432\u043d\u043e\u043f\u0440\u0430\u0432\u043d\u044b\u0445 \u043f\u0443\u0442\u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 PE-2:<\/p>\n<pre><code>show mpls tableInbound Label  22  nexthop 10.10.0.9  out-label 25  ens6  nexthop 10.10.0.11 out-label 25  ens5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u043c\u0435\u0442\u043a\u0430 \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 control-plane \u0442\u0430\u0431\u043b\u0438\u0446\u0435. \u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0434\u043d\u043e\u0433\u043e ICMP echo <code>PE-1 10.255.0.1 \u2192 PE-2 10.255.0.6<\/code> \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 P-2 (<code>ens4<\/code>) \u043f\u043e\u0439\u043c\u0430\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0434\u0440:<\/p>\n<pre><code>ethertype MPLS unicast (0x8847), length 102:  MPLS (label 22, tc 0, [S], ttl 64)  10.255.0.1 &gt; 10.255.0.6: ICMP echo request<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0430\u043c ping \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f <code>1 received, 0% packet loss<\/code>, TTL \u043e\u0442\u0432\u0435\u0442\u0430 \u2014 <code>62<\/code>. \u0417\u043d\u0430\u0447\u0438\u0442, ingress PE \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u043b push, P-2 \u043f\u0440\u0438\u043d\u044f\u043b MPLS-\u043a\u0430\u0434\u0440, \u0430 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u0430\u043a\u0435\u0442 \u0434\u043e \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e PE. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 MPLS\/LDP transport, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u0441\u0442\u0440\u043e\u043a \u0432 <code>frr.conf<\/code>.<\/p>\n<h3>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u043e\u043f\u043e\u0440\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430: IGP \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 transport loopback\u2019\u0438, LDP \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043c\u0435\u0442\u043a\u0438 \u0438 dataplane \u044d\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442. \u041b\u043e\u0433\u0438\u0447\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u0448\u0430\u0433 \u2014 \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c RED \u0438 BLUE \u0432 VRF \u043d\u0430 PE \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c MPLS L3VPN, \u043d\u0435 \u0441\u043c\u0435\u0448\u0438\u0432\u0430\u044f \u0438\u0445 \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439.<\/p>\n<\/div>\n<\/details>\n<h4>\u042d\u0442\u0430\u043f 4. MPLS L3VPN: \u0434\u0432\u0430 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 LDP transport (\u0441)<\/h4>\n<p>\u041f\u0435\u0440\u0435\u0434 4-\u044b\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u044f \u043f\u043e\u0448\u0451\u043b \u0441\u0436\u0438\u043c\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043b\u0438\u0447\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u043f\u0440\u043e\u0441\u043d\u0443\u043b\u0441\u044f \u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043b \u0435\u0433\u043e: <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b36\/f7b\/389\/b36f7b389804a9db65fc15c4bd0f3963.png\" alt=\"alt text\" width=\"1275\" height=\"575\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b36\/f7b\/389\/b36f7b389804a9db65fc15c4bd0f3963.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b36\/f7b\/389\/b36f7b389804a9db65fc15c4bd0f3963.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c \u044d\u0442\u043e, \u0442\u043e \u0447\u0442\u043e \u044f \u0431\u044b \u0434\u0435\u043b\u0430\u043b \u0441\u0430\u043c \u043b\u0438\u0447\u043d\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u043f\u0438\u0441\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u044e \u043f\u0440\u043e \u044d\u0442\u043e \u0432\u0441\u0451.<\/p>\n<p>\u0414\u0435\u043b\u043e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0435 &#8212; \u0434\u0443\u043c\u0430\u043b 13 \u043c\u0438\u043d\u0443\u0442 39 \u0441<\/p>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u043d\u0430\u0447\u0430\u043b \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0438\u0435 \u0444\u0438\u043d\u0442\u044b \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 netplan-\u0444\u0430\u0439\u043b\u043e\u0432:<\/p>\n<pre><code class=\"bash\">ssh -6 -tt \\  ...  'echo bmV0d29yazoKICB2ZXJzaW9uOiAyCiAgZXRoZXJuZXRzOgogICAgZW5zNDoKICAgICAgcm91dGVzOgogICAgICAgIC0gdG86IDAuMC4wLjAvMAogICAgICAgICAgdmlhOiAxMC4xMC4wLjE3Cg== | base64 -d &gt; \/etc\/netplan\/99-lab-vpn-default-route.yaml &amp;&amp; \\   netplan generate &amp;&amp; \\   ip -4 route replace default via 10.10.0.17 dev ens4 &amp;&amp; \\   ip -4 route show default'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u043e\u043d \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e YAML \u0434\u043b\u044f netplan-\u0430, \u0438 \u0447\u0442\u043e \u0431\u044b \u043d\u0435 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u043d\u0435 \u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441 \u044d\u043a\u0440\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043f\u0435\u0446\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435\u0439 \u0435\u0433\u043e (\u044f\u043c\u043b\u0430) \u0447\u0435\u0440\u0435\u0437 <code>ssh -tt<\/code> \u0434\u0435\u043b\u0430\u0435\u0442 \u0445\u0438\u0442\u0440\u043e &#8212; \u0433\u0435\u043d\u0438\u0440\u0438\u0440\u0443\u0435\u0442 \u0438\u0437 \u043d\u0435\u0433\u043e base64, \u0447\u0442\u043e \u0431\u044b \u201c\u043f\u0440\u043e\u0442\u0430\u0449\u0438\u0442\u044c\u201d \u0435\u0433\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 ssh &#8212; \u0445\u0438\u0442\u0440\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b. \u041d\u043e \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u043b\u044f \u043d\u0430\u0441, \u043f\u044b\u0442\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 &#8212; \u044d\u0442\u043e \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u0422\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438:<\/p>\n<ol>\n<li>\n<p>\u041e\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u0430\u0433\u0435\u043d\u0442\u0443 \u0438 \u201c\u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c\u201d \u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 <a href=\"http:\/\/AGENTS.md\" rel=\"noopener nofollow\"><code>AGENTS.md<\/code><\/a> &#8212; \u043f\u0443\u0441\u0442\u044c \u0441\u0430\u043c \u0435\u0431\u0451\u0442\u0441\u044f \u0441\u043e \u0441\u0432\u043e\u0438\u043c\u0438 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u043c\u0438 ssh-\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e &#8212; \u0432 \u0446\u0435\u043b\u043e\u043c, \u043f\u0443\u0441\u0442\u044c \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044c (\u0442\u043e \u0435\u0441\u0442\u044c \u041b\u0418\u0427\u041d\u041e \u0422\u042b) \u0441\u0430\u043c \u0435\u0431\u0451\u0442\u0441\u044f \u0441 base64 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c &#8212; <a href=\"https:\/\/www.base64decode.org\/\" rel=\"noopener nofollow\">https:\/\/www.base64decode.org\/<\/a> \u0432\u0430\u043c \u0432 \u0440\u0443\u043a\u0438<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0451 \u0440\u0430\u0432\u043d\u043e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043d\u0438\u043a\u0442\u043e \u0438\u0437 \u0432\u0430\u0441 \u0447\u0438\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0448\u0443 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u044d\u0442\u0438\u0445 \u0441\u0430\u043c\u044b\u0445 \u043d\u0435\u0442\u043f\u043b\u0430\u043d\u043e\u0432. \u0422\u0430\u043a \u0438 \u0441\u0434\u0435\u043b\u0430\u044e:<\/p>\n<\/li>\n<\/ol>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5e\/702\/b3f\/e5e702b3fb299abbd95894e38862a31e.png\" alt=\"alt text\" width=\"1061\" height=\"741\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e5e\/702\/b3f\/e5e702b3fb299abbd95894e38862a31e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5e\/702\/b3f\/e5e702b3fb299abbd95894e38862a31e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u0432\u0435\u0440\u043d\u0451\u043c\u0441\u044f&#8230;<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044e \u0441 live-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u043d\u0435 \u043e\u043f\u0438\u0440\u0430\u044f\u0441\u044c \u043d\u0430 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435: \u0441\u0432\u0435\u0440\u044e PE \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043b\u0438\u043dki \u043f\u043e Lab_Inventory, \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 FRR. \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u0432\u0435\u0434\u0451\u043c VRF \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u0430 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u2014 MP-BGP \u043c\u0435\u0436\u0434\u0443 PE. Management ens3 \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u044e.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'hostname; \\   ip -br -4 addr; \\   ip -4 route; \\   vtysh -c \"show mpls ldp neighbor\"; \\   vtysh -c \"show ip ospf neighbor\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0424\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 \u0440\u043e\u0432\u043d\u044b\u0439: OSPF \u0438 LDP \u0436\u0438\u0432\u044b, \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \/31 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c, \u043d\u043e \u0443 PC \u043d\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0437\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 PE. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0438\u043c default route \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043e \u0441\u0432\u043e\u0435\u0433\u043e PE \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044e \u0435\u0433\u043e \u0432 netplan. \u0417\u0430\u0442\u0435\u043c \u043f\u043e\u043c\u0435\u0449\u0443 access-\u043f\u043e\u0440\u0442\u044b PE \u0432 VRF \u2014 \u0442\u0430\u043a \u044d\u0442\u0438 connected-\u0441\u0435\u0442\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0443\u0442 \u0436\u0438\u0442\u044c \u0432 \u043e\u0431\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b <\/p>\n<\/blockquote>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u0435 \u0432\u043d\u0435\u0441\u043b\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u0434\u043b\u044f \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430 netplan \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u0441 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c; \u043d\u0430 \u0441\u0430\u043c\u0438 PC \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0435\u0449\u0451 \u043d\u0435 \u0443\u0448\u043b\u0430.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  'echo bmV0d29yazoKICB2ZXJzaW9uOiAyCiAgZXRoZXJuZXRzOgogICAgZW5zNDoKICAgICAgcm91dGVzOgogICAgICAgIC0gdG86IDAuMC4wLjAvMAogICAgICAgICAgdmlhOiAxMC4xMC4wLjE3Cg== | base64 -d &gt; \/etc\/netplan\/99-lab-vpn-default-route.yaml &amp;&amp; \\   netplan generate &amp;&amp; \\   ip -4 route replace default via 10.10.0.17 dev ens4 &amp;&amp; \\   ip -4 route show default'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'sed -n \"1,220p\" \/etc\/netplan\/99-lab-data-plane.yaml; \\   grep -E \"^(zebra|ospfd|ldpd|bgpd)=\" \/etc\/frr\/daemons'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410\u0434\u0440\u0435\u0441\u0430 \u043d\u0430 access-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u043e\u0431\u0449\u0435\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u2014 \u0434\u043b\u044f L3VPN \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430\u0434\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c. \u0421\u043e\u0437\u0434\u0430\u044e RED (table 1001) \u0438 BLUE (1002) \u043d\u0430 PE, \u043f\u0435\u0440\u0435\u043d\u043e\u0448\u0443 \u0442\u0443\u0434\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 CE-\u043f\u043e\u0440\u0442\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e \u044d\u0442\u043e systemd-\u044e\u043d\u0438\u0442\u043e\u043c; core ens4\/ens5, OSPF, LDP \u0438 management \u043d\u0435 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'echo IyEvYmluL3NoCnNldCAtZXUKaXAgbGluayBzaG93IFJFRCA+L2Rldi9udWxsIDI+JjEgfHwgaXAgbGluayBhZGQgUkVEIHR5cGUgdnJmIHRhYmxlIDEwMDEKaXAgbGluayBzaG93IEJMVUUgPi9kZXYvbnVsbCAyPiYxIHx8IGlwIGxpbmsgYWRkIEJMVUUgdHlwZSB2cmYgdGFibGUgMTAwMgppcCBsaW5rIHNldCBSRUQgdXAKaXAgbGluayBzZXQgQkxVRSB1cAppcCBhZGRyIGZsdXNoIGRldiBlbnM2CmlwIGFkZHIgZmx1c2ggZGV2IGVuczcKaXAgbGluayBzZXQgZW5zNiBtYXN0ZXIgUkVECmlwIGxpbmsgc2V0IGVuczcgbWFzdGVyIEJMVUUKaXAgYWRkciByZXBsYWNlIDEwLjEwLjAuMTcvMzEgZGV2IGVuczYKaXAgYWRkciByZXBsYWNlIDEwLjEwLjAuMTkvMzEgZGV2IGVuczcKaXAgbGluayBzZXQgZW5zNiB1cAppcCBsaW5rIHNldCBlbnM3IHVwCg== | base64 -d &gt; \/usr\/local\/sbin\/lab-vrf-setup &amp;&amp; \\   chmod 700 \/usr\/local\/sbin\/lab-vrf-setup &amp;&amp; \\   echo W1VuaXRdCkRlc2NyaXB0aW9uPUNvbmZpZ3VyZSBsYWIgTDNWUE4gVlJGcwpXYW50cz1uZXR3b3JrLW9ubGluZS50YXJnZXQKQWZ0ZXI9bmV0d29yay1vbmxpbmUudGFyZ2V0CkJlZm9yZT1mcnIuc2VydmljZQoKW1NlcnZpY2VdClR5cGU9b25lc2hvdApSZW1haW5BZnRlckV4aXQ9eWVzCkV4ZWNTdGFydD0vdXNyL2xvY2FsL3NiaW4vbGFiLXZyZi1zZXR1cAoKW0luc3RhbGxdCldhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0Cg== | base64 -d &gt; \/etc\/systemd\/system\/lab-vrf.service &amp;&amp; \\   chmod 644 \/etc\/systemd\/system\/lab-vrf.service &amp;&amp; \\   echo bmV0d29yazoKICB2ZXJzaW9uOiAyCiAgZXRoZXJuZXRzOgogICAgZW5zNDoKICAgICAgYWRkcmVzc2VzOiBbMTAuMTAuMC4wLzMxXQogICAgZW5zNToKICAgICAgYWRkcmVzc2VzOiBbMTAuMTAuMC4yLzMxXQo= | base64 -d &gt; \/etc\/netplan\/99-lab-data-plane.yaml &amp;&amp; \\   chmod 600 \/etc\/netplan\/99-lab-data-plane.yaml &amp;&amp; \\   netplan generate &amp;&amp; \\   systemctl daemon-reload &amp;&amp; \\   systemctl enable --now lab-vrf.service &amp;&amp; \\   ip -d link show type vrf &amp;&amp; \\   ip -br -4 addr &amp;&amp; \\   ip -4 route show table 1001 &amp;&amp; \\   ip -4 route show table 1002'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>VRF \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0438 access-\u0441\u0435\u0442\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u0438\u0434\u043d\u044b \u0438\u043c\u0435\u043d\u043d\u043e \u0432 tables 1001\/1002. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0441\u043b\u043e\u0439 \u2014 bgpd \u043d\u0430 \u0434\u0432\u0443\u0445 PE \u0438 MP-BGP-\u0441\u0435\u0441\u0441\u0438\u044f \u0447\u0435\u0440\u0435\u0437 loopback\u2019\u0438. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a FRR \u043a\u0440\u0430\u0442\u043a\u043e \u043c\u043e\u0440\u0433\u043d\u0451\u0442 OSPF\/LDP \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 PE, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u0447\u0442\u043e transport-\u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430 \u0432\u0435\u0440\u043d\u0443\u043b\u0438\u0441\u044c.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\   root@[fde0:3307:31:222::9911] \\  'sed -i \"s\/^bgpd=no\/bgpd=yes\/\" \/etc\/frr\/daemons &amp;&amp; \\   systemctl restart frr &amp;&amp; \\   sleep 3 &amp;&amp; \\   systemctl is-active frr &amp;&amp; \\   pgrep -a bgpd &amp;&amp; \\   vtysh -c \"show ip ospf neighbor\" &amp;&amp; \\   vtysh -c \"show mpls ldp neighbor\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>FRR \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u0441 bgpd, \u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0441\u0435\u043a\u0443\u043d\u0434\u044b OSPF\/LDP \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u2014 \u044d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0430\u044f \u043f\u0430\u0443\u0437\u0430 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430, \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0451 \u043d\u0430\u0432\u0435\u0448\u0438\u0432\u0430\u0442\u044c BGP. \u0416\u0434\u0443 \u043a\u043e\u043d\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u044e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0438\u043c\u0435\u043d\u043d\u043e Full\/Operational.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'sleep 15; \\   vtysh -c \"show ip ospf neighbor\"; \\   vtysh -c \"show mpls ldp neighbor\"; \\   ip route get 10.255.0.6'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>OSPF \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f Full \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043b\u0438\u043d\u043a\u0430\u0445. \u041d\u0430 PE-2 \u0432\u0438\u0436\u0443 \u043f\u043e\u043a\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d LDP-neighbor \u0432\u043c\u0435\u0441\u0442\u043e \u0434\u0432\u0443\u0445 \u2014 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442 \u0441\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0430 \u00ab\u0435\u0449\u0451 \u043f\u043e\u0434\u043e\u0436\u0434\u0451\u043c\u00bb. \u0414\u043e BGP \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0443\u044e: \u043f\u0440\u043e\u0432\u0435\u0440\u044e LDP discovery \u043d\u0430 PE-2 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u043e\u0441\u0435\u0434\u0430 \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b P-4.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  'vtysh -c \"show mpls ldp ipv4 interface\"; \\   vtysh -c \"show mpls ldp discovery\"; \\   vtysh -c \"show mpls ldp neighbor\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0448\u0451\u043b \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0447\u043d\u0435\u0435: multicast discovery \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b (PE-2 \u2194 P-4), \u043d\u043e TCP LDP-session \u0434\u043e OPERATIONAL \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u0444\u0438\u0437\u0438\u043a\u0430 \u0438 LDP hello \u043d\u0438 \u043f\u0440\u0438 \u0447\u0451\u043c; \u0441\u043c\u043e\u0442\u0440\u044e transport reachability \u0438 TCP\/ldpd state \u043d\u0430 \u0434\u0432\u0443\u0445 \u043a\u043e\u043d\u0446\u0430\u0445, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  'ip route get 10.255.0.5; \\   ping -I 10.255.0.6 -c 2 -W 1 10.255.0.5; \\   ss -tnp | grep 646 || true; \\   journalctl -u frr --since \"10 minutes ago\" --no-pager | \\     grep -Ei \"ldp|646|error|fail\" | tail -40'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u0430: \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 ldpd \u0440\u0430\u043d\u044c\u0448\u0435 OSPF \u043e\u043d \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c TCP \u043a \u043e\u0431\u043e\u0438\u043c LDP transport address \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b Network is unreachable; \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u0441\u0435\u0441\u0441\u0438\u044f \u043a P-4 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432 SYN-SENT. \u042d\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043a\u043e\u043d\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u0438, \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043b\u0438\u043d\u043a\u0430. \u041e\u0447\u0438\u0449\u0430\u044e LDP-neighbor \u043d\u0430 PE-2 \u0441\u0435\u0439\u0447\u0430\u0441, \u043a\u043e\u0433\u0434\u0430 IP-\u043f\u0443\u0442\u044c \u0443\u0436\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d, \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  'vtysh -c \"clear mpls ldp neighbor\"; \\   sleep 7; \\   vtysh -c \"show mpls ldp neighbor\"; \\   ss -tnp | grep 646 || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>LDP \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043b\u043d\u044b\u0439. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u044e \u0447\u0438\u0441\u0442\u0443\u044e MP-BGP VPNv4-\u0441\u0435\u0441\u0441\u0438\u044e \u043c\u0435\u0436\u0434\u0443 loopback PE. \u041f\u043e\u043a\u0430 \u0431\u0435\u0437 VPN-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e BGP transport \u0441\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0441\u044f, \u043f\u043e\u0442\u043e\u043c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c connected-\u0441\u0435\u0442\u0438 \u0438\u0437 VRF.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"router bgp 65000\" \\         -c \"bgp router-id 10.255.0.1\" \\         -c \"no bgp default ipv4-unicast\" \\         -c \"neighbor 10.255.0.6 remote-as 65000\" \\         -c \"neighbor 10.255.0.6 update-source lo\" \\         -c \"address-family ipv4 vpn\" \\         -c \"neighbor 10.255.0.6 activate\" \\         -c \"neighbor 10.255.0.6 send-community both\" \\         -c \"exit-address-family\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 3; \\   vtysh -c \"show bgp ipv4 vpn summary\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>MP-BGP VPNv4 \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f: \u043e\u0431\u0430 PE \u0432\u0438\u0434\u044f\u0442 \u0441\u043e\u0441\u0435\u0434\u0430 Established, \u043f\u043e\u043a\u0430 \u0441 \u043d\u0443\u043b\u0451\u043c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u0432 \u2014 \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0430\u043a \u0438 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 VRF. \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0434\u0430\u044e \u0440\u0430\u0437\u043d\u044b\u0435 RD \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c PE \u0438 \u043e\u0431\u0449\u0438\u0435 RT \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430: 65000:100 \u0434\u043b\u044f RED, 65000:200 \u0434\u043b\u044f BLUE.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"router bgp 65000 vrf RED\" \\         -c \"address-family ipv4 unicast\" \\         -c \"redistribute connected\" \\         -c \"rd vpn export 65000:101\" \\         -c \"rt vpn both 65000:100\" \\         -c \"label vpn export auto\" \\         -c \"export vpn\" \\         -c \"import vpn\" \\         -c \"exit-address-family\" \\         -c \"exit\" \\         -c \"router bgp 65000 vrf BLUE\" \\         -c \"address-family ipv4 unicast\" \\         -c \"redistribute connected\" \\         -c \"rd vpn export 65000:201\" \\         -c \"rt vpn both 65000:200\" \\         -c \"label vpn export auto\" \\         -c \"export vpn\" \\         -c \"import vpn\" \\         -c \"exit-address-family\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 3; \\   vtysh -c \"show bgp vrf RED ipv4 unicast\"; \\   vtysh -c \"show bgp vrf BLUE ipv4 unicast\"; \\   vtysh -c \"show bgp ipv4 vpn\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>VPNv4 RIB \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e: \u0432 RED \u043f\u0440\u0438\u0435\u0445\u0430\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e 10.10.0.16\/31 \u0438 10.10.0.22\/31, \u0432 BLUE \u2014 \u0442\u043e\u043b\u044c\u043a\u043e .18\/31 \u0438 .20\/31; labels \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c 144 \u0438 145. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u0435: \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e kernel VRF FIB \u0438 \u0442\u0440\u0430\u0444\u0438\u043a PC\u2192PC, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u0432\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043c\u0435\u0436\u0446\u0432\u0435\u0442\u043d\u044b\u0445 ping.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  'chmod 600 \/etc\/netplan\/99-lab-vpn-default-route.yaml; \\   ping -n -c 2 -W 1 10.10.0.22; \\   ping -n -c 1 -W 1 10.10.0.20 || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0439 dataplane \u0443\u0436\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d: RED \u0438 BLUE \u0445\u043e\u0434\u044f\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0431\u044f, \u0430 \u043c\u0435\u0436\u0446\u0432\u0435\u0442\u043d\u044b\u0435 ping \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 Destination Net Unreachable \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e PE. \u0414\u043b\u044f \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e evidence \u043b\u043e\u0432\u043b\u044e \u0435\u0449\u0451 MPLS stack \u043d\u0430 core: \u043e\u0436\u0438\u0434\u0430\u0435\u043c transport label \u043f\u043e\u0432\u0435\u0440\u0445 VPN label, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 LDP-\u043f\u0430\u043a\u0435\u0442.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'tcpdump -eni ens4 -c 1 -vvv mpls'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  'ping -n -c 1 -W 2 10.10.0.22'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u0442\u044c \u0434\u0432\u0443\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u044b\u0439 MPLS stack \u043d\u0430 P-1: transport label 22 \u043f\u043e\u0432\u0435\u0440\u0445 VPN label 144, \u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u2014 ICMP RED-PC-1 \u2192 RED-PC-2. \u0422\u0435\u043f\u0435\u0440\u044c \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u044d\u0442\u0430\u043f \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0435: \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e VRF, RD\/RT, \u043e\u0434\u0438\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0431\u043e\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 FRR \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u043e <a href=\"http:\/\/04-mpls-l3vpn.md\" rel=\"noopener nofollow\">04-mpls-l3vpn.md<\/a> +147-0<\/p>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u0444\u0438\u043a\u0441\u0430\u0446\u0438\u0435\u0439: \u0443\u0431\u0435\u0436\u0434\u0430\u044e\u0441\u044c, \u0447\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u044b, BGP VPNv4 \u0432\u0441\u0451 \u0435\u0449\u0451 Established, LDP \u0441\u043d\u043e\u0432\u0430 \u043f\u043e\u043b\u043d\u044b\u0439 \u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u044d\u0442\u0430\u043f\u0430 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'systemctl is-enabled lab-vrf.service; \\   systemctl is-active lab-vrf.service; \\   vtysh -c \"show bgp ipv4 vpn summary\"; \\   vtysh -c \"show mpls ldp neighbor\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>MPLS L3VPN \u0433\u043e\u0442\u043e\u0432.<\/p>\n<ul>\n<li>\n<p>RED \u0438 BLUE \u0436\u0438\u0432\u0443\u0442 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 Linux VRF \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 PE.<\/p>\n<\/li>\n<li>\n<p>MP-BGP VPNv4 \u043c\u0435\u0436\u0434\u0443 PE \u043f\u043e\u0434\u043d\u044f\u0442; \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043e\u0441\u0435\u0434 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u043e 2 VPN-\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430.<\/p>\n<\/li>\n<li>\n<p>RED-PC-1 \u2194 RED-PC-2 \u0438 BLUE-PC-1 \u2194 BLUE-PC-2 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0436\u0434\u0443 \u0446\u0432\u0435\u0442\u0430\u043c\u0438 \u0442\u0440\u0430\u0444\u0438\u043a \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0435\u0436\u0435\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c PE: Destination Net Unreachable.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 P-1 \u043f\u043e\u0439\u043c\u0430\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 MPLS stack: transport label 22 \u043f\u043e\u0432\u0435\u0440\u0445 VPN label 144, \u0432\u043d\u0443\u0442\u0440\u0438 ICMP RED-\u0442\u0440\u0430\u0444\u0438\u043a. \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f VRF \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430 \u0434\u043b\u044f reboot. \u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f bgpd \u0431\u044b\u043b \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043d\u044e\u0430\u043d\u0441 \u0441 LDP: \u043e\u0434\u043d\u0430 \u0441\u0435\u0441\u0441\u0438\u044f \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432 SYN-SENT \u0438\u0437-\u0437\u0430 \u0441\u0442\u0430\u0440\u0442\u0430 \u0434\u043e \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u0438 OSPF; \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 IP-\u043f\u0443\u0442\u0438 \u0438 clear mpls ldp neighbor \u0432\u0441\u0435 LDP-\u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430 \u0441\u043d\u043e\u0432\u0430 OPERATIONAL. \u0417\u0430\u043c\u0435\u0442\u043a\u0430 \u044d\u0442\u0430\u043f\u0430: <a href=\"http:\/\/04-mpls-l3vpn.md\" rel=\"noopener nofollow\"><code>04-mpls-l3vpn.md<\/code><\/a> \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u2014 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MPLS Traffic Engineering: \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043f\u0443\u0442\u044c \u043c\u0435\u0436\u0434\u0443 PE \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u043c \u0435\u0433\u043e \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c IGP+LDP ECMP.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u0422\u0443\u0442 \u0434\u0430\u0436\u0435 \u043c\u043d\u0435 \u0443\u0436\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043a\u0443) \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u044f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 netplan-\u043e\u0432 \u0412\u043e\u0442 \u043e\u043d\u0430, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e:  <\/p>\n<details class=\"spoiler\">\n<summary>04-mpls-l3vpn.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 4. MPLS L3VPN: \u0434\u0432\u0430 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e\u0432\u0435\u0440\u0445 LDP transport<\/h2>\n<h3>\u0417\u0430\u0447\u0435\u043c<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u0430\u043f\u0430 LDP \u0443\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 loopback PE \u0441 transport label. \u041d\u043e \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0441\u0435\u0440\u0432\u0438\u0441: \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u043d\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e.<\/p>\n<p>\u0417\u0434\u0435\u0441\u044c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0434\u0432\u0435 VPN:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">VPN<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043b\u0438\u0435\u043d\u0442 \u0443 PE-1<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u041a\u043b\u0438\u0435\u043d\u0442 \u0443 PE-2<\/p>\n<\/th>\n<th>\n<p align=\"left\">RT<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>RED<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.10.0.16\/31<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.10.0.22\/31<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>65000:100<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>BLUE<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.10.0.18\/31<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.10.0.20\/31<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>65000:200<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 PC \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 PE \u043a\u0430\u043a IPv4 default gateway. Management <code>ens3<\/code> \u043d\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0443\u0437\u043b\u0435 \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0441\u044f.<\/p>\n<h3>VRF \u043d\u0430 PE<\/h3>\n<p>\u041d\u0430 \u043e\u0431\u043e\u0438\u0445 PE \u0441\u043e\u0437\u0434\u0430\u043d\u044b Linux VRF:<\/p>\n<pre><code>RED   table 1001BLUE  table 1002<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Access-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u044b \u0438\u0437 \u043e\u0431\u0449\u0435\u0439 FIB \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e VRF:<\/p>\n<pre><code>PE-1: ens6 -&gt; RED  (10.10.0.17\/31), ens7 -&gt; BLUE (10.10.0.19\/31)PE-2: ens7 -&gt; RED  (10.10.0.23\/31), ens6 -&gt; BLUE (10.10.0.21\/31)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0451\u0442 reboot: <code>\/usr\/local\/sbin\/lab-vrf-setup<\/code> \u0441\u043e\u0437\u0434\u0430\u0451\u0442 VRF, \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442 access-\u043f\u043e\u0440\u0442\u044b \u0438 \u0430\u0434\u0440\u0435\u0441\u0430; <code>lab-vrf.service<\/code> \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0441\u0435\u0442\u0438, \u043d\u043e \u0434\u043e FRR. \u0412 netplan \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e core-\u0430\u0434\u0440\u0435\u0441\u0430 PE; \u0430\u0434\u0440\u0435\u0441\u0430 access-\u043f\u043e\u0440\u0442\u043e\u0432 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 unit. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 default route \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c netplan-\u0444\u0430\u0439\u043b\u043e\u043c.<\/p>\n<h4>\u0418\u0442\u043e\u0433\u043e\u0432\u044b\u0435 netplan-\u0444\u0430\u0439\u043b\u044b<\/h4>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0439 YAML \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u0434\u0430\u043d \u043f\u043e SSH \u0432 base64. \u042d\u0442\u043e \u0431\u044b\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0435\u043a\u0441\u0442 \u0431\u0435\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 quoting \u0432 \u043e\u0434\u043d\u043e\u0439 shell-\u043a\u043e\u043c\u0430\u043d\u0434\u0435: <strong>\u0432 \u0444\u0430\u0439\u043b \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0439 YAML<\/strong>, \u043d\u0435 base64. \u0424\u0430\u0439\u043b\u044b \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0430\u0432\u0430 <code>0600<\/code>.<\/p>\n<p>\u041d\u0430 PE netplan \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u0437\u043d\u0430\u0435\u0442 \u043b\u0438\u0448\u044c core-\u043f\u043e\u0440\u0442\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 <code>\/etc\/netplan\/99-lab-data-plane.yaml<\/code> \u043d\u0430 PE-1:<\/p>\n<pre><code class=\"yaml\">network:  version: 2  ethernets:    ens4:      addresses: [10.10.0.0\/31]    ens5:      addresses: [10.10.0.2\/31]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430 PE-2 \u044d\u0442\u043e \u0442\u043e\u0442 \u0436\u0435 \u0448\u0430\u0431\u043b\u043e\u043d, \u043d\u043e \u0441 \u0435\u0433\u043e core-\u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438:<\/p>\n<pre><code class=\"yaml\">network:  version: 2  ethernets:    ens4:      addresses: [10.10.0.13\/31]    ens5:      addresses: [10.10.0.15\/31]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>ens6<\/code> \u0438 <code>ens7<\/code> \u0438\u0437 \u044d\u0442\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0443\u0431\u0440\u0430\u043d\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e. \u0418\u043d\u0430\u0447\u0435 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 netplan \u0441\u043d\u043e\u0432\u0430 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043b \u0431\u044b CE-\u0430\u0434\u0440\u0435\u0441\u0430 \u0432 default VRF, \u0442\u043e\u0433\u0434\u0430 \u043a\u0430\u043a \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442\u044c <code>RED<\/code> \u0438\u043b\u0438 <code>BLUE<\/code>. \u0418\u0445 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0439 <code>\/usr\/local\/sbin\/lab-vrf-setup<\/code>; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430 PE-1 \u0435\u0433\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>ip link show RED &gt;\/dev\/null 2&gt;&amp;1 || ip link add RED type vrf table 1001ip link show BLUE &gt;\/dev\/null 2&gt;&amp;1 || ip link add BLUE type vrf table 1002ip link set RED upip link set BLUE upip addr flush dev ens6ip addr flush dev ens7ip link set ens6 master REDip link set ens7 master BLUEip addr replace 10.10.0.17\/31 dev ens6ip addr replace 10.10.0.19\/31 dev ens7<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410 \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 PC netplan \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e default gateway \u043a \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c\u0443 PE. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>\/etc\/netplan\/99-lab-vpn-default-route.yaml<\/code> \u043d\u0430 RED-PC-1:<\/p>\n<pre><code class=\"yaml\">network:  version: 2  ethernets:    ens4:      routes:        - to: 0.0.0.0\/0          via: 10.10.0.17<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 PC \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e <code>via<\/code>:<\/p>\n<pre><code>RED-PC-2   10.10.0.23BLUE-PC-1  10.10.0.19BLUE-PC-2  10.10.0.21<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>IP-\u0430\u0434\u0440\u0435\u0441 <code>ens4<\/code> \u0443 PC \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c <code>\/etc\/netplan\/99-lab-data-plane.yaml<\/code>; netplan \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0435\u0442 \u043e\u0431\u0430 \u0444\u0430\u0439\u043b\u0430 \u0432 \u0438\u0442\u043e\u0433\u043e\u0432\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e. \u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0441\u044f <code>netplan generate<\/code>.<\/p>\n<h3>MP-BGP \u0438 VPNv4<\/h3>\n<p>\u041d\u0430 PE \u0432\u043a\u043b\u044e\u0447\u0451\u043d <code>bgpd<\/code>. \u041e\u0434\u0438\u043d iBGP-\u0441\u0435\u0430\u043d\u0441 AS <code>65000<\/code> \u0438\u0434\u0451\u0442 \u043c\u0435\u0436\u0434\u0443 transport loopback PE-1 <code>10.255.0.1<\/code> \u0438 PE-2 <code>10.255.0.6<\/code>; \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d address-family VPNv4 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 extended communities.<\/p>\n<p>\u0412 \u043a\u0430\u0436\u0434\u043e\u0439 VRF connected CE-\u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 VPNv4 \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 service label \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 route-target:<\/p>\n<pre><code>RED:  RT 65000:100, RD PE-1 65000:101, RD PE-2 65000:102BLUE: RT 65000:200, RD PE-1 65000:201, RD PE-2 65000:202<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 RD \u0434\u0435\u043b\u0430\u044e\u0442 VPNv4 NLRI \u0440\u0430\u0437\u043d\u044b\u0445 PE \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u043c\u044b\u043c\u0438, \u0430 \u043e\u0431\u0449\u0438\u0439 \u0434\u043b\u044f \u0446\u0432\u0435\u0442\u0430 RT \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442, \u0432 \u043a\u0430\u043a\u0443\u044e VRF \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0418\u043c\u0435\u043d\u043d\u043e RT, \u0430 \u043d\u0435 \u0446\u0432\u0435\u0442 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044e.<\/p>\n<h3>\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0433\u0435\u043d\u0446\u0438\u0438<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <code>bgpd<\/code> FRR \u043d\u0430 PE \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u0427\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u0441\u0435\u043a\u0443\u043d\u0434\u044b OSPF\/LDP \u0435\u0449\u0451 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f; \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435 OSPF \u0441\u0442\u0430\u043b <code>Full<\/code>.<\/p>\n<p>\u041d\u0430 PE-2 \u043e\u0434\u043d\u0430 LDP-\u0441\u0435\u0441\u0441\u0438\u044f \u043a P-4 \u0442\u043e\u0433\u0434\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0432 <code>SYN-SENT<\/code>. Discovery \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0430 IP ping \u043c\u0435\u0436\u0434\u0443 LDP transport address \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043b. \u0412 \u0436\u0443\u0440\u043d\u0430\u043b\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0430: <code>ldpd<\/code> \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u0434\u043e \u0442\u043e\u0433\u043e, \u043a\u0430\u043a OSPF \u0432\u0435\u0440\u043d\u0443\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b <code>Network is unreachable<\/code>. \u041f\u043e\u0441\u043b\u0435 <code>clear mpls ldp neighbor<\/code>, \u0443\u0436\u0435 \u043f\u0440\u0438 \u0433\u043e\u0442\u043e\u0432\u043e\u043c IP-\u043f\u0443\u0442\u0438, \u043e\u0431\u0430 \u0441\u043e\u0441\u0435\u0434\u0430 PE-2 \u0441\u0442\u0430\u043b\u0438 <code>OPERATIONAL<\/code>.<\/p>\n<p>\u042d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 VPN-\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u043d\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0441\u043b\u043e\u0451\u0432: BGP \u043c\u044b \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f LDP transport.<\/p>\n<h3>Control plane evidence<\/h3>\n<p>MP-BGP VPNv4 \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u0441 \u043d\u0443\u043b\u0451\u043c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u0432 \u0434\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f VRF export. \u041f\u043e\u0441\u043b\u0435 export \u0432 RED VRF \u043a\u0430\u0436\u0434\u043e\u0433\u043e PE \u0432\u0438\u0434\u043d\u044b \u0440\u043e\u0432\u043d\u043e \u0434\u0432\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430:<\/p>\n<pre><code>10.10.0.16\/31  -- RED site at PE-110.10.0.22\/31  -- RED site at PE-2, next hop remote PE loopback<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 BLUE \u2014 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e:<\/p>\n<pre><code>10.10.0.18\/3110.10.0.20\/31<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>VPNv4 RIB \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b RT \u0438 service labels:<\/p>\n<pre><code>RED  EC{65000:100}  label=144BLUE EC{65000:200}  label=145<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 kernel FIB PE-1 \u044d\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c label stack, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e BGP-route:<\/p>\n<pre><code>ip route get 10.10.0.22 vrf RED10.10.0.22 encap mpls 22\/144 via 10.10.0.1 dev ens4 table 1001ip route get 10.10.0.20 vrf BLUE10.10.0.20 encap mpls 22\/145 via 10.10.0.3 dev ens5 table 1002<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f label (<code>22<\/code>) \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u043a egress PE \u043f\u043e LDP; \u043d\u0438\u0436\u043d\u044f\u044f (<code>144<\/code> \u0438\u043b\u0438 <code>145<\/code>) \u0433\u043e\u0432\u043e\u0440\u0438\u0442 egress PE, \u0432 \u043a\u0430\u043a\u0443\u044e VPN \u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c.<\/p>\n<h3>Dataplane evidence<\/h3>\n<p>\u041e\u0431\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442:<\/p>\n<pre><code>RED-PC-1  -&gt; RED-PC-2   2\/2 ICMP replies, 0% lossBLUE-PC-1 -&gt; BLUE-PC-2  2\/2 ICMP replies, 0% loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e MPLS L3VPN \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435. \u041d\u0430 <code>P-1 ens4<\/code> \u0432\u043e \u0432\u0440\u0435\u043c\u044f RED ping \u043f\u043e\u0439\u043c\u0430\u043d \u043e\u0434\u0438\u043d \u043a\u0430\u0434\u0440:<\/p>\n<pre><code>ethertype MPLS unicast (0x8847)MPLS (label 22, tc 0, ttl 63)      (label 144, tc 0, [S], ttl 63)10.10.0.16 &gt; 10.10.0.22: ICMP echo request<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0442\u043e\u0436\u0435 \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0430\u044f:<\/p>\n<pre><code>RED-PC-1  -&gt; BLUE-PC-2  From 10.10.0.17 Destination Net UnreachableBLUE-PC-1 -&gt; RED-PC-2   From 10.10.0.19 Destination Net Unreachable<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0442\u0432\u0435\u0442 \u0441 local PE \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e PC \u0434\u043e\u0448\u0451\u043b \u0434\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u043d\u043e \u0432 \u0435\u0433\u043e VRF \u043d\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0447\u0443\u0436\u043e\u0433\u043e RT. \u0422\u0440\u0430\u0444\u0438\u043a \u043d\u0435 \u00ab\u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0441\u044f\u00bb \u0432 core \u2014 \u043e\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0432 \u0447\u0443\u0436\u0443\u044e VPN.<\/p>\n<h3>\u0418\u0442\u043e\u0433 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433<\/h3>\n<p>\u0415\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 MPLS L3VPN: IP-\u043e\u0441\u043d\u043e\u0432\u0430 \u0438 LDP transport \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b, MP-BGP \u0440\u0430\u0437\u0434\u0430\u0451\u0442 VPNv4 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b, VRF \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u0442 RED\/BLUE, \u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0434\u0440 \u043d\u0435\u0441\u0451\u0442 \u0434\u0432\u0435 MPLS-\u043c\u0435\u0442\u043a\u0438.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 MPLS Traffic Engineering: \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u043f\u0443\u0442\u044c \u043c\u0435\u0436\u0434\u0443 PE \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043a\u0430\u043a \u043e\u043d \u043c\u0435\u043d\u044f\u0435\u0442 forwarding \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c IGP+LDP ECMP.<\/p>\n<\/div>\n<\/details>\n<h4>\u042d\u0442\u0430\u043f 5. MPLS Traffic Engineering: \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0443\u0442\u0438 (\u0441)<\/h4>\n<p>\u0422\u0443\u0442 \u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b \u0430\u0433\u0435\u043d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e VPNv4 \u043d\u0430 \u0431\u0430\u0437\u0435 BGP\\MPLS \u043f\u043b\u044e\u0441-\u043c\u0438\u043d\u0443\u0441 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0430 \u0442\u0443\u0442 \u0443\u0436\u0435 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e TE \u0432\u044b\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f\u2026<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/030\/fd0\/3d4\/030fd03d46faaae8e4ae462736677b3c.png\" alt=\"alt text\" width=\"904\" height=\"294\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/030\/fd0\/3d4\/030fd03d46faaae8e4ae462736677b3c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/030\/fd0\/3d4\/030fd03d46faaae8e4ae462736677b3c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0412 \u0446\u0435\u043b\u043e\u043c, \u0434\u0443\u043c\u0430\u044e, \u0434\u043b\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u0432\u043e\u0442 \u044d\u0442\u043e\u0442 \u0432\u043e\u0442 \u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043a\u0430\u0447\u043e\u043a \u043e\u0442 \u201c\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e\u201d MPLS-\u0430 \u043a MPLS-TE &#8212; \u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0433\u043d\u0438\u0442\u0438\u0432\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u044b\u0439. \u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043a SR \u0438 SRv6 \u0438\u043c\u0445\u043e \u043f\u0440\u043e\u0449\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443, \u0434\u0443\u043c\u0430\u044e, \u0434\u0443\u043c\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u043b\u0433\u043e \u043c\u043e\u0439 \u0430\u0433\u0435\u043d\u0442-\u0442\u043e &#8212; \u043e\u043d \u0436\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u0438\u043a\u2026<\/p>\n<p>\u0410 \u044f \u043f\u043e\u0439\u0434\u0443 \u043f\u043e\u0441\u0443\u0434\u0443 \u043f\u043e\u043c\u043e\u044e\u2026<\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 13 \u043c\u0438\u043d 48 \u0441 &#8212; \u043e\u0434\u043d\u0430 \u0441\u043a\u043e\u0432\u043e\u0440\u043e\u0434\u0430 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0434\u043e\u043c\u044b\u0442\u0430.<\/p>\n<p>\u0412\u043e\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0432\u0432\u043e\u0434\u043d\u0430\u044f (\u0441\u0433\u0435\u043d\u0438\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0430\u0433\u0435\u043d\u0442\u043e\u043c), \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c:<\/p>\n<blockquote>\n<p>\u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u0435\u043d TE<\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0439 IGP \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0443\u043c\u0435\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c. \u041d\u043e \u0435\u0433\u043e \u00ab\u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439\u00bb \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 IGP cost, \u0430 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u0431\u0438\u0437\u043d\u0435\u0441\u0430: \u0435\u0441\u0442\u044c \u043b\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043c\u0435\u0441\u0442\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043b\u0438 \u043e\u043d \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0438 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u0438\u043c\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f. ECMP \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f flow hash \u043f\u043e \u0440\u0430\u0432\u043d\u044b\u043c next hop, \u043d\u043e \u043e\u043d \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u0430\u0436\u043d\u0435\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 reservation.<\/p>\n<p>Traffic Engineering \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043b\u0438\u043d\u043a\u043e\u0432 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u043d \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b:<\/p>\n<ul>\n<li>\n<p>\u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043e\u0434\u0438\u043d shortest path, \u043f\u043e\u043a\u0430 \u0440\u044f\u0434\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0430\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043f\u0443\u0442\u044c \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u043e\u0439, delay \u0438\u043b\u0438 jitter;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043b\u0438\u0431\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c link\/node \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u0443\u044e path diversity \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u044f: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0433\u043e\u043b\u043e\u0441\u0430\u00bb \u0438 \u00ab\u0451\u043c\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f bulk-\u0442\u0440\u0430\u0444\u0438\u043a\u0430\u00bb.<\/p>\n<\/li>\n<\/ul>\n<p>TE \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0451\u043c\u043a\u043e\u0441\u0442\u044c \u0438 \u043d\u0435 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0441\u0442\u043d\u044b \u0435\u0433\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/blockquote>\n<p>\u0418 \u0441\u0445\u0435\u043c\u043a\u0443 \u0442\u0430\u043a\u0443\u044e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e9b\/2f9\/f29\/e9b2f9f296dc1657d07a2392965ae537.png\" width=\"1447\" height=\"820\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e9b\/2f9\/f29\/e9b2f9f296dc1657d07a2392965ae537.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e9b\/2f9\/f29\/e9b2f9f296dc1657d07a2392965ae537.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041d\u0443 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0432\u0441\u0451 \u0432 \u043b\u0430\u0431\u0435 \ud83d\ude42  <\/p>\n<details class=\"spoiler\">\n<summary>\u0418 \u0432\u043e\u0442 \u043a\u0430\u043a \u043e\u043d \u043a \u044d\u0442\u043e\u043c\u0443 \u0448\u0451\u043b<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0414\u043b\u044f TE \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430: \u043e\u0431\u044b\u0447\u043d\u044b\u0439 IGP \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u00ab\u0441\u0430\u043c\u044b\u0439 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439\u00bb \u043f\u0443\u0442\u044c, \u0430 TE \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043f\u043e\u0434 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u0445\u043e\u0434 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u043b\u0438\u043d\u043a\u0430 \u0438\u043b\u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u0430 \u0434\u043b\u044f RED. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043d\u0430\u0432\u044b\u043a \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u00ab\u043e\u0431\u044b\u0447\u043d\u044b\u0439 forwarding vs TE\u00bb, \u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 TE \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 FRR, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0435\u043d\u0434.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e MPLS Traffic Engineering RSVP-TE FRR | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a> \u2026<\/p>\n<\/blockquote>\n<p><code>site:docs.frrouting.org\/en\/stable-8.4 MPLS Traffic Engineering RSVP-TE FRR<\/code><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432\u0430\u0436\u043d\u0430: \u0442\u0435\u043a\u0443\u0449\u0438\u0439 FRR \u0443\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c OSPF-TE \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043d\u043e \u043f\u043e \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 RSVP-TE signaling. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0436\u0438\u0432\u043e\u0439 TE database \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435; \u0435\u0441\u043b\u0438 RSVP-\u0434\u0435\u043c\u043e\u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0442, \u043d\u0435 \u0431\u0443\u0434\u0443 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0445\u0430\u043a \u0437\u0430 \u00ab\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 RSVP-TE\u00bb, \u0430 \u044f\u0432\u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u0431\u0435\u0440\u0443 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b<\/p>\n<\/blockquote>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043e \u0441\u0442\u0435\u043d\u0434\u0430 \u043d\u0435 \u0434\u043e\u0448\u043b\u0430: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u043f\u0440\u0435\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 dpkg-query. \u0423\u043f\u0440\u043e\u0449\u0430\u044e \u0435\u0451; \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0435\u0442\u0438 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'dpkg-query -W frr; \\   ls -1 \/usr\/lib\/frr\/rsvp* 2&gt;\/dev\/null || true; \\   vtysh -c \"show ip ospf mpls-te router\"; \\   vtysh -c \"show ip ospf mpls-te interface\"; \\   vtysh -c \"show running-config\" | \\    grep -E \"mpls-te|link-params|max-bw|max-rsv|unrsv\" || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e link-params max-bw max-rsv-bw unrsv-bw FRR | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a><\/p>\n<\/blockquote>\n<p>TE-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043b\u0438\u043d\u043a\u0430\u0445 \u043d\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0430\u0434\u0430\u043c \u0438\u0445 \u043a\u0430\u043a \u044f\u0432\u043d\u0443\u044e \u0443\u0447\u0435\u0431\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c: \u00ab\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0438 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439\u00bb \u043a\u043e\u0440\u0438\u0434\u043e\u0440 \u0447\u0435\u0440\u0435\u0437 P-1\/P-3, \u043c\u0435\u043d\u0435\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u0439 \u0447\u0435\u0440\u0435\u0437 P-2\/P-4 \u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 cross-link\u2019\u0438. \u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u043c\u0435\u043d\u044f\u044e\u0442 OSPF cost \u0438 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 bandwidth; \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 OSPF TE-LSA \u043a\u0430\u043a \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e CSPF\/RSVP-TE.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"interface ens4\" \\         -c \"link-params\" \\         -c \"enable\" \\         -c \"metric 10\" \\         -c \"max-bw 125000000\" \\         -c \"max-rsv-bw 100000000\" \\         -c \"unrsv-bw 0 100000000\" \\         -c \"unrsv-bw 1 100000000\" \\         -c \"unrsv-bw 2 100000000\" \\         -c \"unrsv-bw 3 100000000\" \\         -c \"unrsv-bw 4 100000000\" \\         -c \"unrsv-bw 5 100000000\" \\         -c \"unrsv-bw 6 100000000\" \\         -c \"unrsv-bw 7 100000000\" \\         -c \"exit\" \\         -c \"exit\" \\         -c \"interface ens5\" \\         -c \"link-params\" \\         -c \"enable\" \\         -c \"metric 20\" \\         -c \"max-bw 125000000\" \\         -c \"max-rsv-bw 100000000\" \\         -c \"unrsv-bw 0 25000000\" \\         -c \"unrsv-bw 1 25000000\" \\         -c \"unrsv-bw 2 25000000\" \\         -c \"unrsv-bw 3 25000000\" \\         -c \"unrsv-bw 4 25000000\" \\         -c \"unrsv-bw 5 25000000\" \\         -c \"unrsv-bw 6 25000000\" \\         -c \"unrsv-bw 7 25000000\" \\         -c \"exit\" \\         -c \"exit\" \\         -c \"router ospf\" \\         -c \"mpls-te on\" \\         -c \"mpls-te router-address 10.255.0.1\" \\         -c \"mpls-te export\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 2; \\   vtysh -c \"show ip ospf mpls-te router\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0447\u0435\u0441\u0442\u043d\u043e \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u043b\u0430\u0441\u044c: FRR \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0442\u044c max-bw \u043d\u0438\u0436\u0435 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u2014 \u043e\u043d \u043d\u0435 \u0434\u0430\u0441\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u0443\u044e TE-\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0447\u0438\u0442\u0430\u044e \u0442\u0435\u043a\u0443\u0449\u0438\u0435 link parameters, \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0434\u0430\u043c \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0439 max-bw \u0438 \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u0441\u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e reservable bandwidth.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'vtysh -c \"show interface ens4\"; \\   vtysh -c \"show ip ospf mpls-te router\"; \\   vtysh -c \"show ip ospf mpls-te interface ens4\"; \\   vtysh -c \"show running-config\" | \\     grep -E \"mpls-te|link-params|max-bw|max-rsv|unrsv|metric\" || true'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"interface ens4\" \\         -c \"link-params\" \\         -c \"enable\" \\         -c \"metric 10\" \\         -c \"unrsv-bw 0 100000000\" \\         -c \"unrsv-bw 1 100000000\" \\         -c \"unrsv-bw 2 100000000\" \\         -c \"unrsv-bw 3 100000000\" \\         -c \"unrsv-bw 4 100000000\" \\         -c \"unrsv-bw 5 100000000\" \\         -c \"unrsv-bw 6 100000000\" \\         -c \"unrsv-bw 7 100000000\" \\         -c \"max-rsv-bw 100000000\" \\         -c \"exit\" \\         -c \"exit\" \\         -c \"interface ens5\" \\         -c \"link-params\" \\         -c \"enable\" \\         -c \"metric 20\" \\         -c \"unrsv-bw 0 25000000\" \\         -c \"unrsv-bw 1 25000000\" \\         -c \"unrsv-bw 2 25000000\" \\         -c \"unrsv-bw 3 25000000\" \\         -c \"unrsv-bw 4 25000000\" \\         -c \"unrsv-bw 5 25000000\" \\         -c \"unrsv-bw 6 25000000\" \\         -c \"unrsv-bw 7 25000000\" \\         -c \"max-rsv-bw 100000000\" \\         -c \"exit\" \\         -c \"exit\" \\         -c \"router ospf\" \\         -c \"mpls-te on\" \\         -c \"mpls-te router-address 10.255.0.1\" \\         -c \"mpls-te export\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 3; \\   vtysh -c \"show ip ospf mpls-te router\"; \\   vtysh -c \"show ip ospf mpls-te interface\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>TE-LSA \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b: \u043d\u0430 PE-1, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ens4 \u0440\u0435\u043a\u043b\u0430\u043c\u0438\u0440\u0443\u0435\u0442 TE metric 10 \u0438 100 MB\/s reservable\/unreserved, \u0430 ens5 \u2014 metric 20 \u0438 25 MB\/s. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u0447\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 IGP\/LDP\/VPN forwarding \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435, \u0438 \u0447\u0442\u043e OSPF \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442 opaque TE-LSA, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"show ip ospf database opaque-link\"; \\   vtysh -c \"show ip route 10.255.0.6\"; \\   vtysh -c \"show mpls ldp neighbor\"; \\   vtysh -c \"show bgp ipv4 vpn summary\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"show ip ospf database opaque-area\"; \\   vtysh -c \"show ip ospf database opaque-area self-originate\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f TE-\u0431\u0430\u0437\u0430 \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 L3VPN \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f. \u041d\u043e \u0432 \u043a\u0440\u0430\u0442\u043a\u043e\u043c \u0432\u044b\u0432\u043e\u0434\u0435 OSPF database \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u0438\u0434\u043d\u043e \u0441\u0430\u043c\u0438\u0445 opaque-LSA \u2014 \u044d\u0442\u043e \u0443\u0436\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438, \u0430 \u043d\u0435 \u043f\u043e\u0432\u043e\u0434 \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0430\u043f \u0433\u043e\u0442\u043e\u0432\u044b\u043c. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044e capability \u0438 self-originated LSDB, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u0434\u043c\u0435\u043d\u044f\u0442\u044c \u00ab\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u00bb \u043d\u0430 \u00ab\u0441\u0435\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u00bb.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"show ip ospf\"; \\   vtysh -c \"show ip ospf database self-originate\"; \\   vtysh -c \"show ip ospf database\" | \\     grep -Ei \"opaque|traffic|type-10|type-9|type-11\" || true; \\   journalctl -u frr --since \"20 minutes ago\" --no-pager | \\     grep -Ei \"opaque|mpls-te|te lsa|traffic eng|error\" | tail -60'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e \u201cOpaqueCapability\u201d \u201ccapability opaque\u201d ospf | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a><\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"capability ?\"; \\   vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"opaque ?\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0448\u043b\u0430\u0441\u044c: \u0443 OSPF \u043d\u0430 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u0430\u0445 \u0431\u044b\u043b \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d OpaqueCapability, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 TE-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u043e LSA \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0443\u0435\u0445\u0430\u0442\u044c \u0432 area. \u0412\u043a\u043b\u044e\u0447\u0430\u044e capability \u043d\u0430 \u0432\u0441\u0435\u0445 P\/PE \u2014 \u0431\u0435\u0437 \u043d\u0435\u0451 mpls-te on \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430\u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0434\u0435\u043a\u043e\u0440\u0430\u0446\u0438\u0435\u0439.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"capability opaque\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 2; \\   vtysh -c \"show ip ospf\" | grep -E \"OpaqueCapability|opaque area\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Capability \u0432\u043a\u043b\u044e\u0447\u0451\u043d, \u043d\u043e TE-LSA \u0435\u0449\u0451 \u043d\u0435 \u043f\u0435\u0440\u0435\u0438\u0437\u0434\u0430\u043b\u0438\u0441\u044c: \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0430\u043a\u0442\u0438\u0432\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u0432\u0435\u0440\u044e \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u043a\u0443\u043d\u0434. \u0415\u0441\u043b\u0438 \u0431\u0430\u0437\u0430 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043f\u0443\u0441\u0442\u0430, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e \u0442\u043e\u043b\u044c\u043a\u043e TE-\u0430\u043d\u043e\u043d\u0441 (no mpls-te \u2192 mpls-te on), \u043d\u0435 OSPF-\u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'sleep 10; \\   vtysh -c \"show ip ospf\" | grep -E \"OpaqueCapability|opaque area\"; \\   vtysh -c \"show ip ospf database opaque-area\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code>rg -o \"shape=[^;]+\" lab-initial-topology.drawio |  Sort-Object -Uniquerg -n \"PE-1|P-1\" lab-initial-topology.drawio |  Select-Object -First 6<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u043b\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439: \u0441\u043b\u0435\u0432\u0430 \u2014 \u043a\u0430\u043a ECMP \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0431\u0435\u0437 \u0437\u043d\u0430\u043d\u0438\u044f \u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0435, \u0441\u043f\u0440\u0430\u0432\u0430 \u2014 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e TE \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u0430\u0437\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0443\u044e \u043f\u043e\u043b\u043e\u0441\u0443. \u042d\u0442\u043e \u043d\u0435 \u043d\u043e\u0432\u0430\u044f \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f, \u0430 \u0447\u0438\u0442\u0430\u0435\u043c\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f.<\/p>\n<blockquote>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u043e 05-te-path-selection.drawio+36-0<\/p>\n<\/blockquote>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0433\u043e\u0442\u043e\u0432\u0430. \u0412 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0432\u0430\u0436\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443: \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 \u0435\u0441\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0435 TE-LSA\/TED-\u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u043d\u0435\u0442 RSVP-TE signaler, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u0439 ECMP \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0435 \u00ab\u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f\u00bb \u0441\u0430\u043c. \u042d\u0442\u043e \u043d\u0435 \u043d\u0435\u0434\u043e\u0434\u0435\u043b\u043a\u0430, \u0430 \u0447\u0435\u0441\u0442\u043d\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 TE-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c TE-LSP.<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0430\u0439\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code>$xml = [xml](Get-Content -Raw 05-te-path-selection.drawio)$cells = @(  $xml.mxfile.diagram.mxGraphModel.root.mxCell)\"drawio-xml: valid; cells: $($cells.Count)\"Select-String \\  -Path 05-mpls-te-foundation.md \\  -Pattern \"16|RSVP-TE|OpaqueCapability|Traffic Engineering\" |  Select-Object -First 12 -ExpandProperty LineGet-Item \\  05-mpls-te-foundation.md, \\  05-te-path-selection.drawio |  Select-Object Name, Length<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>TE-LSA \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c \u0432 LSDB: PE-1 \u0432\u0438\u0434\u0438\u0442 16 area-local opaque LSA type 1. \u0414\u043e\u0431\u0438\u0432\u0430\u044e \u044d\u0442\u0430\u043f \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0441\u0435\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f OpaqueCapability \u2014 OSPF, LDP, MP-BGP \u0438 RED dataplane \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u0437\u0435\u043b\u0451\u043d\u044b\u043c\u0438.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'vtysh -c \"show ip ospf neighbor\"; \\   vtysh -c \"show mpls ldp neighbor\"; \\   vtysh -c \"show bgp ipv4 vpn summary\"; \\   vtysh -c \"show ip ospf\" | grep \"Number of opaque area LSA\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>TE foundation \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0438 \u0437\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n<ul>\n<li>\n<p>OSPF \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u043d\u043e\u0441\u0438\u0442 16 TE-LSA \u0441 metric \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 reservable bandwidth \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f core-\u043b\u0438\u043d\u043a\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>OSPF, LDP, VPNv4 \u0438 RED L3VPN \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u043c\u0438.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439: <code>05-te-path-selection.drawio<\/code><\/p>\n<\/li>\n<li>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0430: <a href=\"http:\/\/05-mpls-te-foundation.md\" rel=\"noopener nofollow\"><code>05-mpls-te-foundation.md<\/code><\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043d\u043e, \u0437\u0430\u0447\u0435\u043c TE \u043d\u0443\u0436\u0435\u043d \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435: \u043e\u0431\u0445\u043e\u0434 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, SLA \u043f\u043e \u043f\u043e\u043b\u043e\u0441\u0435\/\u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0435, planned maintenance, \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0438 \u0440\u0430\u0437\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0435 \u043f\u0443\u0442\u0438.<\/p>\n<p>\u0412\u0430\u0436\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430: \u0442\u0435\u043a\u0443\u0449\u0438\u0439 FRR 8.4 \u0443\u043c\u0435\u0435\u0442 TE-LSA \u0438 link parameters, \u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 RSVP-TE \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c CSPF, signalling \u0438 reservation; \u043f\u043e\u044d\u0442\u043e\u043c\u0443 ECMP \u0441\u0430\u043c \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0432 TE-LSP. \u042d\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 <a href=\"https:\/\/docs.frrouting.org\/en\/stable-8.4\/ospfd.html\" rel=\"noopener nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 FRR \u043f\u043e OSPF-TE<\/a>. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u0448\u0430\u0433 \u2014 SR-MPLS \u0438 SR policy: \u0442\u0430\u043c \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438.<\/p>\n<\/div>\n<\/details>\n<p>\u0418 \u0432\u043e\u0442 \u043a \u0447\u0435\u043c\u0443 \u043f\u0440\u0438\u0448\u0451\u043b  <\/p>\n<details class=\"spoiler\">\n<summary>05-mpls-te-foundation.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 5. MPLS Traffic Engineering: \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430 \u043f\u0443\u0442\u0438<\/h2>\n<h3>\u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u0435\u043d TE<\/h3>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0439 IGP \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0443\u043c\u0435\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439 \u043f\u0443\u0442\u044c. \u041d\u043e \u0435\u0433\u043e \u00ab\u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u0439\u00bb \u043e\u0431\u044b\u0447\u043d\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0443\u043c\u043c\u0443 IGP cost, \u0430 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u0431\u0438\u0437\u043d\u0435\u0441\u0430: \u0435\u0441\u0442\u044c \u043b\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043c\u0435\u0441\u0442\u043e, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043b\u0438 \u043e\u043d \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0438 \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u0438\u043c\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f. ECMP \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044f flow hash \u043f\u043e \u0440\u0430\u0432\u043d\u044b\u043c next hop, \u043d\u043e \u043e\u043d \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u0430\u0436\u043d\u0435\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 reservation.<\/p>\n<p>Traffic Engineering \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438 \u043b\u0438\u043d\u043a\u043e\u0432 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f. \u041d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 \u043e\u043d \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b:<\/p>\n<ul>\n<li>\n<p>\u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043e\u0434\u0438\u043d shortest path, \u043f\u043e\u043a\u0430 \u0440\u044f\u0434\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439;<\/p>\n<\/li>\n<li>\n<p>\u0434\u0430\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043f\u0443\u0442\u044c \u0441 \u043d\u0443\u0436\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u043e\u0439, delay \u0438\u043b\u0438 jitter;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u043b\u0438\u0431\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c link\/node \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u0443\u044e path diversity \u0434\u043b\u044f \u0437\u0430\u0449\u0438\u0442\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u0438\u044f: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u00ab\u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0433\u043e\u043b\u043e\u0441\u0430\u00bb \u0438 \u00ab\u0451\u043c\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f bulk-\u0442\u0440\u0430\u0444\u0438\u043a\u0430\u00bb.<\/p>\n<\/li>\n<\/ul>\n<p>TE \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0451\u043c\u043a\u043e\u0441\u0442\u044c \u0438 \u043d\u0435 \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u0440\u043e\u0448\u043e, \u043d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0441\u0442\u043d\u044b \u0435\u0433\u043e \u0432\u0445\u043e\u0434\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f.<\/p>\n<h3>\u0427\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u043c RSVP-TE<\/h3>\n<pre><code>IGP + TE-LSA  -&gt;  TE database (TED)  -&gt;  CSPF \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438                                            -&gt; RSVP \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 LSP \u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441                                            -&gt; ingress \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 \u044d\u0442\u043e\u0442 LSP<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c link metric, available bandwidth \u0438 affinity \u0441\u0430\u043c\u0438 \u043f\u043e \u0441\u0435\u0431\u0435 \u0435\u0449\u0451 \u043d\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430. \u042d\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f CSPF. \u041f\u0440\u0438\u043d\u044f\u0442\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u0430\u0442\u044c LSP, \u0430 ingress \u0434\u043e\u043b\u0436\u0435\u043d \u043d\u0430\u0447\u0430\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0442\u0440\u0430\u0444\u0438\u043a.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u0430\u043f\u0443: <a href=\"https:\/\/blog.pomazanov.com\/posts\/ldp-srv6-with-ai\/#ZgotmplZ\" rel=\"noopener nofollow\">05-te-path-selection.drawio<\/a>.<\/p>\n<p>\u041e\u043d\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0435 \u043f\u043e\u043b\u043d\u0443\u044e \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e, \u0430 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u00abECMP \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u0437 \u0440\u0430\u0432\u043d\u044b\u0445 next hop\u00bb \u0438 \u00abTE \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0443\u0442\u044c, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0438\u0439 \u0443\u0441\u043b\u043e\u0432\u0438\u044e \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u00bb, \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439 \u043b\u0438\u043d\u0438\u0439.<\/p>\n<h3>\u0423\u0447\u0435\u0431\u043d\u0430\u044f TE-\u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435<\/h3>\n<p>\u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043d\u0435 \u0434\u0430\u044e\u0442 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0439 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0451\u043c\u043a\u043e\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u043e \u044f\u0432\u043d\u0430\u044f \u0443\u0447\u0435\u0431\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c, \u0430 \u043d\u0435 \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u043b\u0438\u043d\u0438\u0438. \u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u0430\u044f FRR maximum bandwidth \u043a\u0430\u0436\u0434\u043e\u0433\u043e core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u2014 <code>1.76258e+08 B\/s<\/code> (\u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 1.41 Gb\/s). \u0414\u043b\u044f \u0432\u0441\u0435\u0445 core-\u043b\u0438\u043d\u043a\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <code>max-rsv-bw 100000000 B\/s<\/code>, \u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043d\u0435\u0437\u0430\u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u0430 \u0437\u0430\u0434\u0430\u043d\u0430 \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e \u0441 \u043e\u0431\u043e\u0438\u0445 \u043a\u043e\u043d\u0446\u043e\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043b\u0438\u043d\u043a\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041a\u043e\u0440\u0438\u0434\u043e\u0440<\/p>\n<\/th>\n<th>\n<p align=\"left\">TE metric<\/p>\n<\/th>\n<th>\n<p align=\"left\">Unreserved bandwidth, priority 0\u20137<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0421\u043c\u044b\u0441\u043b \u043c\u043e\u0434\u0435\u043b\u0438<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-1 \u2014 P-1 \u2014 P-3 \u2014 PE-2<\/p>\n<\/td>\n<td>\n<p align=\"left\">10<\/p>\n<\/td>\n<td>\n<p align=\"left\">100 MB\/s<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u00abgold\u00bb \u043f\u0443\u0442\u044c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-1 \u2014 P-2 \u2014 P-4 \u2014 PE-2<\/p>\n<\/td>\n<td>\n<p align=\"left\">20<\/p>\n<\/td>\n<td>\n<p align=\"left\">25 MB\/s<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u0443\u0442\u044c \u0441 \u043c\u0430\u043b\u044b\u043c \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-1 \u2014 P-4 \u0438 P-2 \u2014 P-3<\/p>\n<\/td>\n<td>\n<p align=\"left\">50<\/p>\n<\/td>\n<td>\n<p align=\"left\">50 MB\/s<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0435 cross-link\u2019\u0438<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0421\u0430\u043c\u0430 \u043e\u0431\u044b\u0447\u043d\u0430\u044f OSPF-\u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c. <code>TE metric<\/code> \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f TE-\u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0435\u043c, \u0430 \u043d\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u043c SPF.<\/p>\n<h3>\u0427\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e<\/h3>\n<p>\u041d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 P\/PE:<\/p>\n<ul>\n<li>\n<p><code>router ospf<\/code> \u043f\u043e\u043b\u0443\u0447\u0438\u043b <code>mpls-te on<\/code>, <code>mpls-te router-address &lt;loopback&gt;<\/code> \u0438 <code>mpls-te export<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b <code>link-params<\/code>, TE metric, <code>max-rsv-bw<\/code> \u0438 <code>unrsv-bw<\/code> \u0434\u043b\u044f priorities 0\u20137;<\/p>\n<\/li>\n<li>\n<p>\u0432\u043a\u043b\u044e\u0447\u0451\u043d <code>capability opaque<\/code> \u2014 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e OSPF \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c TE-LSA.<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0434\u0435\u0441\u044c \u0431\u044b\u043b\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043b\u043e\u0432\u0443\u0448\u043a\u0430. \u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u0434\u0430\u0442\u044c <code>max-bw 125000000<\/code> \u0431\u044b\u043b\u0430 \u043e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u0430 FRR: \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043d\u0438\u0436\u0435 \u0443\u0436\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 maximum bandwidth \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. FRR \u043f\u0440\u0430\u0432: maximum bandwidth \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u043d\u044c\u0448\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 bandwidth-\u043f\u043e\u043b\u0435\u0439. \u0412 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 actual maximum bandwidth \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d FRR, \u0430 \u0443\u0447\u0435\u0431\u043d\u0430\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u043d\u044c\u0448\u0438\u0435 <code>max-rsv-bw<\/code> \u0438 <code>unrsv-bw<\/code>.<\/p>\n<p>\u0412\u0442\u043e\u0440\u0430\u044f \u043b\u043e\u0432\u0443\u0448\u043a\u0430: <code>mpls-te on<\/code> \u0438 link parameters \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u0432 LSDB \u043d\u0435 \u0431\u044b\u043b\u043e TE-LSA. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0448\u043b\u0430\u0441\u044c \u0432 <code>show ip ospf<\/code>: <code>OpaqueCapability flag is disabled<\/code>. \u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f capability \u043d\u0430 \u0432\u0441\u0435\u0445 P\/PE PE-1 \u0443\u0432\u0438\u0434\u0435\u043b 16 area-local opaque LSA \u0442\u0438\u043f\u0430 1 \u2014 \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u0432\u043e\u0441\u044c\u043c\u0438 core-\u043b\u0438\u043d\u043a\u043e\u0432.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e LSA \u043d\u0430 PE-1:<\/p>\n<pre><code>Opaque-Type 1 (Traffic Engineering LSA)Advertising Router: 10.255.0.2Link-ID: 10.255.0.4Traffic Engineering Metric: 10Maximum Reservable Bandwidth: 1e+08 (Bytes\/sec)Unreserved Bandwidth [0..7]: 1e+08 (Bytes\/sec)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, TE-\u0434\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043d\u043e\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u2014 \u043e\u043d\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u044b \u043f\u043e OSPF area \u0438 \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043e\u0441\u043d\u043e\u0432\u0443 TED.<\/p>\n<h3>\u0427\u0442\u043e \u0441 forwarding<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f TE \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0430\u043c\u0430 \u043f\u043e \u0441\u0435\u0431\u0435 \u2014 \u0438 \u044d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e. \u041d\u0430 PE-1 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e <code>10.255.0.6\/32<\/code> \u043e\u0441\u0442\u0430\u043b\u0441\u044f OSPF ECMP \u0447\u0435\u0440\u0435\u0437 P-1 \u0438 P-2 \u0441 LDP label <code>22<\/code>. MPLS L3VPN \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u0441\u044f:<\/p>\n<pre><code>RED-PC-1 -&gt; RED-PC-2: 2\/2 replies, 0% lossLDP PE-1: 10.255.0.2 and 10.255.0.3 OPERATIONALMP-BGP VPNv4: peer 10.255.0.6 Established, 2 prefixes received\/sent<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430: \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430, \u043d\u043e \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u0442\u044c transport \u0438\u043b\u0438 VPN.<\/p>\n<h3>\u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430<\/h3>\n<p>\u041d\u0430 \u0443\u0437\u043b\u0430\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d FRR <code>8.4.4<\/code>, \u0430 <code>rsvpd<\/code> \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u0414\u043b\u044f \u044d\u0442\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 FRR \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 TE-\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 OSPF \u0438 link parameters, \u043d\u043e \u043d\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0433\u043e RSVP-TE \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441 CSPF, RSVP signalling, reservation \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u043c TE-LSP. \u042d\u0442\u043e \u043f\u0440\u044f\u043c\u043e \u043e\u0433\u043e\u0432\u043e\u0440\u0435\u043d\u043e \u0432 <a href=\"https:\/\/docs.frrouting.org\/en\/stable-8.4\/ospfd.html\" rel=\"noopener nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 FRR \u043f\u043e OSPF-TE<\/a>.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u00ab\u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c RSVP-TE\u00bb \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e. \u0421\u0435\u0439\u0447\u0430\u0441 \u0433\u043e\u0442\u043e\u0432 \u0438 \u0434\u043e\u043a\u0430\u0437\u0430\u043d TE information plane: \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043b\u0438\u043d\u043a\u043e\u0432 \u0444\u043b\u0443\u0434\u044f\u0442\u0441\u044f \u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u0435\u043c \u043f\u0443\u0442\u0438. \u0414\u043b\u044f \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e TE-LSP \u043d\u0443\u0436\u0435\u043d RSVP-TE-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u0439 control plane \u043b\u0438\u0431\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 controller\/\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430. \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MPLS forwarding \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e pinned path, \u043d\u043e \u043e\u043d \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f RSVP-TE \u0438 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442 reservation.<\/p>\n<h3>\u041a\u0443\u0434\u0430 \u0434\u0430\u043b\u044c\u0448\u0435<\/h3>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f TED, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0441\u0435\u043c\u0435\u0439\u0441\u0442\u0432\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432: Segment Routing \u043c\u043e\u0436\u0435\u0442 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u0431\u0435\u0437 RSVP signalling. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u2014 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c SR-MPLS \u043f\u043e\u0432\u0435\u0440\u0445 \u044d\u0442\u043e\u0439 OSPF-\u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c SR policy \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c IGP+LDP forwarding.<\/p>\n<\/div>\n<\/details>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0435\u0433\u043e \u0432\u044b\u0432\u043e\u0434 &#8212; \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043a\u0430\u0440\u043e\u0447\u0435 \u043d\u0443\u0436\u0435\u043d, \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \ud83d\ude41<\/p>\n<p>\u0427\u0442\u043e \u0435\u0449\u0451 \u0437\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440? \u041f\u0443\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0442\u0438\u0442 \u0437\u0430 \u0441\u0432\u043e\u0438 \u0441\u043b\u043e\u0432\u0430:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/804\/a5a\/376\/804a5a376a46c47f27f78b0b9b229d59.png\" alt=\"alt text\" width=\"1092\" height=\"925\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/804\/a5a\/376\/804a5a376a46c47f27f78b0b9b229d59.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/804\/a5a\/376\/804a5a376a46c47f27f78b0b9b229d59.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0443 \u0432 \u043e\u0431\u0449\u0435\u043c, \u043e\u043d \u043c\u043d\u0435 \u043d\u0430\u0447\u0430\u043b \u0432\u0442\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0434\u0438\u0447\u044c:<\/p>\n<blockquote>\n<p>\u0414\u0430, \u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0434\u0432\u0435 \u0432\u0435\u0449\u0438: \u00ab\u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0443\u0442\u044c\u00bb \u0438 \u00ab\u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0442\u044c \u043f\u043e \u043d\u0435\u043c\u0443 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0432\u0435\u0437\u043b\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u00bb.<\/p>\n<p><code>TE-LSA -&gt; TED -&gt; CSPF\/PCE -&gt; \u044f\u0432\u043d\u044b\u0439 \u043f\u0443\u0442\u044c PE1\u2013P1\u2013P3\u2013PE2                               |                               v                      RSVP-TE signalling \u043d\u0430 LSR                               |                               v                  labels + reservation + TE-LSP                               |                               v                   policy: RED \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u044d\u0442\u043e\u0442 LSP <\/code><\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0432 \u0442\u0430\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f PCE \u2014 Path Computation Element. \u041e\u043d \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 TED, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043f\u0443\u0442\u044c. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u00ab\u0438\u0437 PE-1 \u0432 PE-2, \u043c\u0438\u043d\u0438\u043c\u0443\u043c 80 MB\/s, \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 P-2, \u0441 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u00bb. \u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435 \u043e\u043d \u043e\u0442\u0434\u0430\u0451\u0442 ERO \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0437\u043b\u043e\u0432\/\u043b\u0438\u043d\u043a\u043e\u0432 \u0434\u043b\u044f tunnel.<\/p>\n<p>\u041d\u043e PCE \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 MPLS tunnel. \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u0435\u043d RSVP-TE \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c LSR:<\/p>\n<ul>\n<li>\n<p>ingress PE \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 RSVP <code>Path<\/code> \u043f\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c\u0443 \u044f\u0432\u043d\u043e\u043c\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443;<\/p>\n<\/li>\n<li>\n<p>\u043a\u0430\u0436\u0434\u044b\u0439 P \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441, \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442 label \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u0434\u0430\u043b\u044c\u0448\u0435;<\/p>\n<\/li>\n<li>\n<p>egress \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>Resv<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0443 ingress \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f TE-LSP, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, RED VPN.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u043c\u0435\u043d\u043d\u043e RSVP-TE \u0434\u0430\u0451\u0442 reservation, preemption, reroute \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u043e\u0442\u043a\u0430\u0437, \u0435\u0441\u043b\u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430 \u043d\u0435\u0442. \u042d\u0442\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc3209\" rel=\"noopener nofollow\">RFC 3209<\/a>.<\/p>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u0435\u043d. \u0412 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0435\u0442\u0438 ingress PE \u043c\u043e\u0436\u0435\u0442 \u0441\u0430\u043c \u0441\u0447\u0438\u0442\u0430\u0442\u044c CSPF \u043f\u043e \u0441\u0432\u043e\u0435\u0439 TED \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c RSVP. PCE \u043d\u0443\u0436\u0435\u043d, \u043a\u043e\u0433\u0434\u0430 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438, \u0441\u0447\u0438\u0442\u0430\u0442\u044c disjoint paths, \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0434\u043e\u043c\u0435\u043d\u043e\u0432, \u043c\u0430\u0441\u0441\u043e\u0432\u043e \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c LSP \u0438 \u043d\u0435 \u0440\u0430\u0437\u043c\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u043e \u0432\u0441\u0435\u043c PE. PCE \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 TED, \u0430 PCC \u2014 router-\u043a\u043b\u0438\u0435\u043d\u0442 \u2014 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0443 \u043d\u0435\u0433\u043e \u043f\u0443\u0442\u044c; \u044d\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0438\u0437 <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc4655\" rel=\"noopener nofollow\">RFC 4655<\/a>.<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430:<\/p>\n<ul>\n<li>\n<p>OSPF TE-LSA \u0438 TED;<\/p>\n<\/li>\n<li>\n<p>MPLS dataplane;<\/p>\n<\/li>\n<li>\n<p>LDP transport;<\/p>\n<\/li>\n<li>\n<p>VRF\/VPN, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0432\u0435\u0441\u0438\u0442\u044c policy.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u043e\u0439:<\/p>\n<ul>\n<li>\n<p>RSVP-TE daemon \u043d\u0430 P \u0438 PE;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 RSVP-TE tunnel\/LSP \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u043c FRR;<\/p>\n<\/li>\n<li>\n<p>\u043f\u0440\u0438 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u2014 PCEP \u043c\u0435\u0436\u0434\u0443 PCE \u0438 PE.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0435\u043a\u0443\u0449\u0438\u0439 FRR 8.4 \u0443\u043c\u0435\u0435\u0442 TE-\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043d\u043e \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 RSVP-TE control plane, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0448\u044c Python-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e: \u0435\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u00ab\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438 RSVP tunnel\u00bb. <a href=\"https:\/\/docs.frrouting.org\/en\/stable-8.4\/ospfd.html\" rel=\"noopener nofollow\">FRR \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e \u043e\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u0435\u0442<\/a>.<\/p>\n<p>\u042f \u043c\u043e\u0433 \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430.<\/p>\n<ol>\n<li>\n<p><strong>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 RSVP-TE lab.<\/strong> \u041f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0437\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0441\u0442\u0435\u043a, \u0433\u0434\u0435 \u0435\u0441\u0442\u044c RSVP-TE \u0438, \u043f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438, PCEP. \u0422\u043e\u0433\u0434\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u044e RSVP \u043d\u0430 \u0432\u0441\u0435\u0445 P\/PE, \u0437\u0430\u0432\u0435\u0434\u0443 LSP PE-1\u2192PE-2 \u0441 bandwidth\/affinity, \u043f\u0440\u0438\u0432\u044f\u0436\u0443 \u043a \u043d\u0435\u043c\u0443 RED \u0438 \u0434\u043e\u043a\u0430\u0436\u0443 reservation, labels \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0431\u0445\u043e\u0434 \u043d\u0435\u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0440\u0438\u0434\u043e\u0440\u0430.<\/p>\n<\/li>\n<li>\n<p><strong>Controller-like \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u0441\u0442\u0435\u043d\u0434\u0435.<\/strong> \u041d\u0430\u043f\u0438\u0448\u0443 CSPF, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0447\u0438\u0442\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 TE-\u043c\u043e\u0434\u0435\u043b\u044c, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 MPLS label stack\/LFIB \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d \u043c\u0435\u0442\u043e\u043a. \u042d\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0441\u0442\u0438 RED \u0447\u0435\u0440\u0435\u0437 P-1\/P-3, \u043d\u043e reservation \u0438 RSVP signalling \u0442\u0430\u043c \u043d\u0435 \u043f\u043e\u044f\u0432\u044f\u0442\u0441\u044f. \u041d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u043c RSVP-TE \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u043f\u0440\u0430\u0432\u0434\u043e\u0439.<\/p>\n<\/li>\n<\/ol>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043e\u0442 \u0442\u0435\u0431\u044f \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u044b\/\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u043b\u0438\u0431\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0432 \u0441\u0442\u0435\u043d\u0434. \u0414\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0438\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u0447\u0435\u0431\u043d\u0430\u044f \u0438\u043c\u0438\u0442\u0430\u0446\u0438\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e pinned path, \u0430 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 RSVP-TE.<\/p>\n<\/blockquote>\n<p>\u0414\u0435\u043b\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u043c\u044b, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u043d\u043e \u044f \u0443\u0432\u0435\u0440\u0435\u043d \u0447\u0442\u043e \u043e\u043d \u0431\u044b \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0441\u044f.<\/p>\n<h4>\u042d\u0442\u0430\u043f 6. SR-MPLS: transport labels \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 (\u0441)<\/h4>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d31\/3c8\/55d\/d313c855db218984171b93a86b2592e6.png\" alt=\"alt text\" width=\"1090\" height=\"355\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/d31\/3c8\/55d\/d313c855db218984171b93a86b2592e6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d31\/3c8\/55d\/d313c855db218984171b93a86b2592e6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 16 \u043c\u0438\u043d 26 \u0441<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u044f \u041d\u0415 \u041f\u0420\u041e\u0421\u0418\u041b \u0435\u0433\u043e \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u044e\u0449\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443, \u043d\u043e \u043e\u043d \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a14\/ea8\/cb8\/a14ea8cb886b87150f9caef336ce52e5.png\" alt=\"alt text\" width=\"1813\" height=\"987\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a14\/ea8\/cb8\/a14ea8cb886b87150f9caef336ce52e5.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a14\/ea8\/cb8\/a14ea8cb886b87150f9caef336ce52e5.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>(\u043f\u0443\u043d\u043a\u0442\u0443\u0430\u0446\u0438\u044f \u0438 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b)<\/p>\n<p>\u0427\u0442\u043e \u0435\u0449\u0451 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u0431\u044b\u043b\u043e \u0432 \u0440\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f, \u044d\u0442\u043e \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0432\u043e\u0442 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c4f\/c45\/a8c\/c4fc45a8cc778b8a3190459292f91705.png\" alt=\"alt text\" width=\"1046\" height=\"46\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c4f\/c45\/a8c\/c4fc45a8cc778b8a3190459292f91705.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c4f\/c45\/a8c\/c4fc45a8cc778b8a3190459292f91705.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u042d\u0442\u043e \u0431\u044b\u043b\u043e \u0432 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 Codex \u0440\u0435\u0448\u0438\u043b \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c <a href=\"https:\/\/bigmike.help\/en\/devops\/008\/\" rel=\"noopener nofollow\">rp_filter<\/a><\/p>\n<p>\u042f \u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u044e, \u0443 Codex \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0437\u0430\u0449\u0438\u0442\u044b. \u041c\u044b \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u0440\u043e\u0447\u0435. \u0421\u043d\u0438\u0437\u0443 &#8212; <a href=\"https:\/\/openai.com\/ru-RU\/index\/building-codex-windows-sandbox\" rel=\"noopener nofollow\">\u0432\u0438\u043d\u0434\u043e\u0432\u0430\u044f \u043f\u0435\u0441\u043e\u0447\u043d\u0438\u0446\u0430<\/a>, \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0433\u043e \u2014 <a href=\"https:\/\/openai.com\/ru-RU\/index\/running-codex-safely\/\" rel=\"noopener nofollow\">approval policy \u0438 Auto-review<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 \u0441\u043c\u044b\u0441\u043b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u0440\u0435\u0448\u0430\u044e\u0442, \u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0435\u0451 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043b\u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u0440\u0438\u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442\u044c.<\/p>\n<p>\u0417\u0430\u0431\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u0441\u0430\u043c <code>root<\/code> \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 <code>sysctl<\/code> Codex \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u0441\u043c\u0443\u0449\u0430\u043b\u0438. \u041f\u043e\u0445\u043e\u0436\u0435, \u0437\u0434\u0435\u0441\u044c \u0435\u0433\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u043d\u0443\u043b \u0438\u043c\u0435\u043d\u043d\u043e <code>rp_filter=0<\/code>: \u0432\u0438\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u0443\u043c\u0430\u043b, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0445\u0430\u043a\u0435\u0440\u044b \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u0437\u043b\u043e\u043c\u0430\u0442\u044c \u043c\u043e\u0439 \u0441\u0442\u0435\u043d\u0434. \u0425\u0435\u0440 \u0438\u043c &#8212; \u0441\u0442\u0435\u043d\u0434 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0437\u043b\u044b\u0435 \u0445\u0430\u043a\u0435\u0440\u044b.<\/p>\n<p>\u041f\u0440\u0438 \u0447\u0451\u043c, \u0435\u0441\u043b\u0438 \u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0441\u0438\u043b \u0432\u044b\u0432\u043e\u0434 &#8212; \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0445\u043e\u0441\u0442\u0430\u0445 \u0432\u0441\u0451 \u043f\u0440\u043e\u0448\u043b\u043e \u043e\u043a, \u0430 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043e\u043d\u0434\u043d\u043e\u043c \u043e\u043d \u0440\u0443\u0433\u043d\u0443\u043b\u0441\u044f &#8212; \u043d\u043e \u0432\u0440\u043e\u0434\u0435 \u043d\u0430\u0448\u0451\u043b \u043e\u0431\u0445\u043e\u0434\u043d\u043e\u0439 \u0445\u043e\u0434 )<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e SR-MPLS<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u2014 SR-MPLS. \u041e\u043d \u043d\u0435 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442 TE, \u0430 \u043c\u0435\u043d\u044f\u0435\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438: \u0432\u043c\u0435\u0441\u0442\u043e RSVP-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u043e\u043c P ingress \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 MPLS stack \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 core \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u0438 SID. \u0414\u043e\u0431\u0430\u0432\u043b\u044e \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0443 \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f RSVP-TE\/SR, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0442 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u0431\u044b\u043b \u043d\u0435 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0430\u0431\u0431\u0440\u0435\u0432\u0438\u0430\u0442\u0443\u0440, \u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u043c \u043c\u043e\u0442\u0438\u0432\u043e\u043c. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0432\u0435\u0440\u044e \u0440\u0435\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 SR \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c FRR \u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430<\/p>\n<p>.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e OSPF segment routing MPLS prefix SID global block FRR | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a> \u2026<\/p>\n<\/blockquote>\n<p>\u0423 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e FRR \u0435\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f OSPF SR-MPLS \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430: Node SID \u043d\u0430 loopback, SRGB \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 MPLS programming. \u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c SR-\u044d\u0442\u0430\u043f\u0435 \u0432\u043a\u043b\u044e\u0447\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u2014 \u0431\u0435\u0437 SR policy \u043f\u043e\u043a\u0430. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e kernel-\u043f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438: label space, rp_filter, loopback\u2019\u0438 \u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 pathd \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0448\u0430\u0433\u0430 \u0441 policy.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\    root@[fde0:3307:31:222::9911] \\  'hostname; \\   ip -4 addr show dev lo; \\   sysctl -n net.mpls.platform_labels \\     net.ipv4.conf.all.rp_filter \\     net.ipv4.conf.lo.rp_filter; \\   ls -1 \/usr\/lib\/frr\/pathd 2&gt;\/dev\/null || true; \\   vtysh -c \"show ip ospf database segment-routing self-originate\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u0435\u0441\u0442\u044c: label space \u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u0432\u0441\u0435 loopback\u2019\u0438 \u0433\u043e\u0442\u043e\u0432\u044b, pathd \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435, rp_filter=2 (loose) \u043d\u0430 \u0432\u0441\u0435\u0445 \u0443\u0437\u043b\u0430\u0445; \u0434\u043b\u044f SR MPLS \u0435\u0433\u043e \u043b\u0443\u0447\u0448\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044f\u0432\u043d\u043e, \u0447\u0442\u043e\u0431\u044b kernel \u043d\u0435 \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043b MPLS-\u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0438\u0437\u2011\u0437\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0443\u0442\u0438. \u041f\u0435\u0440\u0435\u0434 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0443\u0442\u043e\u0447\u043d\u044f\u044e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 Router Information LSA \u2014 SRGB \u0438 Node SID \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u043e \u0438 \u0440\u0430\u0437\u044a\u0435\u0445\u0430\u0442\u044c\u0441\u044f \u043f\u043e OSPF.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\    root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"router-information ?\"; \\   vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"segment-routing ?\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 FRR \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Router Information \u043d\u0435\u0442 \u2014 SR \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 segment-routing on, SRGB \u0438 Prefix SID \u0432 OSPF. \u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e \u0435\u0434\u0438\u043d\u044b\u0439 SRGB 16000\u201323999, Node SID index 1\u20266 \u0434\u043b\u044f \u0448\u0435\u0441\u0442\u0438 loopback\u2019\u043e\u0432 \u0438 MSD 8; LDP \u0438 VPN \u043d\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u044e, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'echo net.ipv4.conf.all.rp_filter=0 &gt; \/etc\/sysctl.d\/92-lab-sr-mpls.conf; \\   echo net.ipv4.conf.default.rp_filter=0 &gt;&gt; \/etc\/sysctl.d\/92-lab-sr-mpls.conf; \\   echo net.ipv4.conf.lo.rp_filter=0 &gt;&gt; \/etc\/sysctl.d\/92-lab-sr-mpls.conf; \\   sysctl --system &gt;\/dev\/null; \\   vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"segment-routing on\" \\         -c \"segment-routing global-block 16000 23999\" \\         -c \"segment-routing node-msd 8\" \\         -c \"segment-routing prefix 10.255.0.1\/32 index 1\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 3; \\   sysctl -n net.ipv4.conf.all.rp_filter net.ipv4.conf.lo.rp_filter; \\   vtysh -c \"show ip ospf database segment-routing self-originate\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439:<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  'echo net.ipv4.conf.all.rp_filter=0 &gt; \/etc\/sysctl.d\/92-lab-sr-mpls.conf; \\   echo net.ipv4.conf.default.rp_filter=0 &gt;&gt; \/etc\/sysctl.d\/92-lab-sr-mpls.conf; \\   echo net.ipv4.conf.lo.rp_filter=0 &gt;&gt; \/etc\/sysctl.d\/92-lab-sr-mpls.conf; \\   sysctl --system &gt;\/dev\/null; \\   vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"segment-routing on\" \\         -c \"segment-routing global-block 16000 23999\" \\         -c \"segment-routing node-msd 8\" \\         -c \"segment-routing prefix 10.255.0.4\/32 index 4\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 3; \\   sysctl -n net.ipv4.conf.all.rp_filter net.ipv4.conf.lo.rp_filter; \\   vtysh -c \"show ip ospf database segment-routing self-originate\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 rp_filter \u0431\u044b\u043b\u043e \u043e\u0442\u043a\u043b\u043e\u043d\u0435\u043d\u043e \u043a\u0430\u043a \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u0449\u0438\u0442\u044b \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u0443\u043c\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435. \u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0430 \u0441\u0442\u0435\u043d\u0434 \u043d\u0435 \u0443\u0448\u043b\u043e. \u041f\u043e\u0439\u0434\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u043f\u0443\u0442\u0451\u043c: \u0432\u043a\u043b\u044e\u0447\u0443 \u0442\u043e\u043b\u044c\u043a\u043e SR \u0432 FRR \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044e forwarding \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c rp_filter. \u0415\u0441\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e drop, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043a\u0430\u0436\u0443 evidence \u0438 \u043f\u043e\u043f\u0440\u043e\u0448\u0443 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0437\u043a\u0443\u044e \u043f\u0440\u0430\u0432\u043a\u0443.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\   root@[fde0:3307:31:222::9911] \\  'vtysh -c \"configure terminal\" \\         -c \"router ospf\" \\         -c \"segment-routing on\" \\         -c \"segment-routing global-block 16000 23999\" \\         -c \"segment-routing node-msd 8\" \\         -c \"segment-routing prefix 10.255.0.1\/32 index 1\" \\         -c \"end\" \\         -c \"write memory\"; \\   sleep 3; \\   vtysh -c \"show ip ospf database segment-routing self-originate\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>SR control plane \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 \u0443\u0437\u043b\u0430\u0445: SRGB 16000\u201323999, Node SID 16001\u202616006, \u043f\u043b\u044e\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 adjacency SID. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043c\u043e\u0442\u0440\u044e Linux MPLS FIB \u0434\u043b\u044f Node SID PE-2. \u0415\u0441\u043b\u0438 label 16006 \u0442\u0430\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0434\u0451\u0442 \u043f\u043e core, \u0441\u0434\u0435\u043b\u0430\u044e \u043e\u0434\u0438\u043d \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 marked-route \u0442\u0435\u0441\u0442, \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 LDP route.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ip -f mpls route show 16006; \\   ip -4 route get 10.255.0.6; \\   vtysh -c \"show ip ospf database segment-routing\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u0447\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u043b\u043e\u0441\u044c: \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f SR OSPF \u0441\u0430\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u043b transport operation \u0434\u043b\u044f 10.255.0.6 \u0441 LDP label 22 \u043d\u0430 Node SID 16006. \u0422\u043e \u0435\u0441\u0442\u044c SR \u0443\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0435\u043a\u043b\u0430\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u2014 Linux FIB PE-1 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0435\u0433\u043e. \u041b\u043e\u0432\u043b\u044e \u043a\u0430\u0434\u0440 \u043d\u0430 P-1 \u0432\u043e \u0432\u0440\u0435\u043c\u044f loopback ping, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u0447\u0442\u043e L3VPN \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0434\u0435\u0442 \u0441 SR transport label \u043f\u043e\u0432\u0435\u0440\u0445 VPN label.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\    root@[fde0:3307:31:222::9901] \\  'tcpdump -eni ens4 -c 1 -vvv mpls'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\   root@[fde0:3307:31:222::9911] \\  'ip route get 10.255.0.6 from 10.255.0.1; \\   ping -n -I 10.255.0.1 -c 1 -W 2 10.255.0.6'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0431\u043e\u0440 ECMP \u0445\u044d\u0448\u0430 \u0443\u0448\u0451\u043b \u0447\u0435\u0440\u0435\u0437 P-2, \u0430 \u043d\u0435 P-1; \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u041d\u0435\u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0439 capture \u043d\u0430 P-1 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439. \u041f\u0435\u0440\u0435\u043d\u043e\u0448\u0443 \u0437\u0430\u0445\u0432\u0430\u0442 \u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 ingress P-2 ens4 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u043e\u0434\u0438\u043d \u043f\u0430\u043a\u0435\u0442.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9902] \\  'tcpdump -eni ens4 -c 1 -vvv mpls'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ping -n -I 10.255.0.1 -c 1 -W 2 10.255.0.6'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f SR capture \u0443\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 label 16006, \u043d\u043e \u0432 \u043a\u0430\u0434\u0440 \u043f\u043e\u043f\u0430\u043b BGP keepalive: \u043e\u043d \u0442\u043e\u0436\u0435 \u0438\u0434\u0451\u0442 \u043f\u043e \u043d\u043e\u0432\u043e\u043c\u0443 SR transport, \u0447\u0442\u043e \u0441\u0430\u043c\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e. \u0414\u043b\u044f \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e\u0433\u043e evidence \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u0443\u044e \u0442\u043e\u043b\u044c\u043a\u043e ICMP \u043f\u043e\u0432\u0435\u0440\u0445 MPLS \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044e \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u0438\u043d ping.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9902] \\  'tcpdump -eni ens4 -c 1 -vvv mpls and icmp'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ping -n -I 10.255.0.1 -c 1 -W 2 10.255.0.6'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Node SID \u0434\u043e\u043a\u0430\u0437\u0430\u043d \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435: P-2 \u043f\u043e\u043b\u0443\u0447\u0438\u043b MPLS label 16006 \u0441 ICMP 10.255.0.1 \u2192 10.255.0.6. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0432\u0430\u0436\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u043a\u0443 \u0441 \u043f\u0440\u043e\u0448\u043b\u044b\u043c \u044d\u0442\u0430\u043f\u043e\u043c: VPN service label \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0438\u0436\u043d\u0435\u0439 \u043c\u0435\u0442\u043a\u043e\u0439, \u0430 LDP transport label \u0441\u0432\u0435\u0440\u0445\u0443 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c\u0441\u044f \u043d\u0430 SR Node SID.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ip -4 route get 10.10.0.22 vrf RED; \\   ip -4 route get 10.10.0.20 vrf BLUE; \\   vtysh -c \"show bgp ipv4 vpn\"'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  'tcpdump -eni ens4 -c 1 -vvv mpls and icmp'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  'ping -n -c 1 -W 2 10.10.0.22'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0440\u0430\u0441\u0438\u0432\u044b\u0439, \u043d\u043e \u043d\u0435 \u0442\u043e\u0442 \u043a\u0430\u0434\u0440: \u043d\u0430 P-1 \u043f\u043e\u0439\u043c\u0430\u043b\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 RED reply \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 PHP transport-SID \u2014 \u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e service label 144. \u042d\u0442\u043e \u0442\u043e\u0436\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 stack 16006\/144, \u0443\u0442\u043e\u0447\u043d\u044f\u044e ECMP-\u043f\u0443\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f source RED-PC-1 \u0438 \u0441\u0442\u0430\u0432\u043b\u044e \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e MAC PE-1.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  'ip -4 route get 10.10.0.22 from 10.10.0.16 vrf RED; \\   cat \/sys\/class\/net\/ens4\/address; \\   cat \/sys\/class\/net\/ens5\/address'<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>SR \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0438 L3VPN \u0443\u0436\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u043b\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443: 10.255.0.6 \u0435\u0434\u0435\u0442 \u0441 16006, \u0430 VRF RED \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 stack 16006\/144; RED-PC-1\u2192RED-PC-2 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442. \u0424\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u044d\u0442\u043e \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0432\u0442\u043e\u0440\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u2014 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 RSVP-TE \u0438 SR \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u0432 core \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0443\u0442\u044c.<\/p>\n<blockquote>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u043e 06-sr-vs-rsvp.drawio+32-0<\/p>\n<\/blockquote>\n<p>\u0417\u0430\u043c\u0435\u0442\u043a\u0430 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0430: patch \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u043b \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0431\u0435\u0437 \u043c\u0430\u0440\u043a\u0435\u0440\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442\u043e \u0435\u0441\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u043b\u0441\u044f. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e; \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0442\u0435\u043d\u0434\u0430 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f.<\/p>\n<blockquote>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u043e <a href=\"http:\/\/06-sr-mpls.md\" rel=\"noopener nofollow\">06-sr-mpls.md<\/a>+137-0<\/p>\n<\/blockquote>\n<p>\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432: \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u044e \u043e\u0431\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e, \u0447\u0442\u043e SR domain, L3VPN \u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u044b \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u043a\u0430\u043a \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"powershell\">$xml = [xml](Get-Content -Raw 06-sr-vs-rsvp.drawio)\"drawio-xml: valid; cells: $(  @($xml.mxfile.diagram.mxGraphModel.root.mxCell).Count)\"Select-String `  -Path 06-sr-mpls.md `  -Pattern \"16006\/144|rp_filter|RSVP-TE|Node SID|pathd\" |  Select-Object -ExpandProperty LineGet-Item `  06-sr-mpls.md, `  06-sr-vs-rsvp.drawio |  Select-Object Name, Length<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0439\u043c\u0430\u043b \u0434\u0435\u0444\u0435\u043a\u0442 \u0432 \u043d\u043e\u0432\u043e\u0439 <a href=\"http:\/\/Draw.io\" rel=\"noopener nofollow\">Draw.io<\/a>-\u0441\u0445\u0435\u043c\u0435 \u0434\u043e \u0432\u044b\u0434\u0430\u0447\u0438: \u0443 \u043f\u0435\u0440\u0432\u043e\u0439 RSVP-\u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0431\u0438\u0442\u044b\u0439 XML-\u0430\u0442\u0440\u0438\u0431\u0443\u0442. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u044e \u0444\u0430\u0439\u043b; \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0438 \u0441\u0442\u0435\u043d\u0434 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f.<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0430\u0439\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"powershell\">try {  $xml = [xml](Get-Content -Raw 06-sr-vs-rsvp.drawio)  \"drawio-xml: valid; cells: $(    @($xml.mxfile.diagram.mxGraphModel.root.mxCell).Count  )\"}catch {  \"drawio-xml: INVALID - $($_.Exception.Message)\"  exit 1}Select-String `  -Path 06-sr-mpls.md `  -Pattern \"16006\/144|rp_filter|RSVP-TE|Node SID|pathd\" |  Select-Object -ExpandProperty LineGet-Item `  06-sr-mpls.md, `  06-sr-vs-rsvp.drawio |  Select-Object Name, Length<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>SR-MPLS foundation \u0433\u043e\u0442\u043e\u0432\u0430. \u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0438\u0434\u0435\u044f \u043f\u0440\u043e\u0441\u0442\u0430\u044f: TE \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u00ab\u043a\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c \u043d\u0443\u0436\u0435\u043d \u0441\u0435\u0440\u0432\u0438\u0441\u0443\u00bb, \u0430 SR \u0434\u0430\u0451\u0442 ingress PE \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0443\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0432 MPLS stack. \u0412\u043c\u0435\u0441\u0442\u043e RSVP-state \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e LSP \u043d\u0430 \u0432\u0441\u0435\u0445 P-\u0443\u0437\u043b\u0430\u0445 transit core \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0449\u0438\u0435 SID. \u041d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435:<\/p>\n<ul>\n<li>\n<p>\u0435\u0434\u0438\u043d\u044b\u0439 SRGB 16000\u201323999;<\/p>\n<\/li>\n<li>\n<p>Node SID PE-2 \u2014 16006;<\/p>\n<\/li>\n<li>\n<p>OSPF SR database \u043f\u043e\u0434\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 P\/PE;<\/p>\n<\/li>\n<li>\n<p>PE-1 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 loopback-\u0442\u0440\u0430\u0444\u0438\u043a \u0441 MPLS label 16006;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430 P-2 \u043f\u043e\u0439\u043c\u0430\u043d ICMP-\u043a\u0430\u0434\u0440 \u0441 \u044d\u0442\u0438\u043c Node SID;<\/p>\n<\/li>\n<li>\n<p>RED L3VPN \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 stack 16006\/144: SR transport label \u0441\u0432\u0435\u0440\u0445\u0443, VPN service label \u0441\u043d\u0438\u0437\u0443;<\/p>\n<\/li>\n<li>\n<p>RED-PC-1 \u2192 RED-PC-2 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. SR \u043d\u0435 \u0434\u0430\u0451\u0442 reservation \u043f\u043e\u043b\u043e\u0441\u044b \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u2014 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0443\u0436\u043d\u044b TE-\u0434\u0430\u043d\u043d\u044b\u0435 \u0438 policy\/admission control. \u0415\u0433\u043e \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e policy \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 ingress, \u0430 \u043d\u0435 \u043a\u0430\u043a \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 RSVP-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u043e\u043c P. \u0414\u043e\u0431\u0430\u0432\u0438\u043b:<\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/06-sr-mpls.md\" rel=\"noopener nofollow\"><code>06-sr-mpls.md<\/code><\/a> \u2014 \u0441 \u0440\u0430\u0437\u0431\u043e\u0440\u043e\u043c, \u0437\u0430\u0447\u0435\u043c SR \u0438 \u0447\u0435\u043c \u043e\u043d \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 RSVP-TE;<\/p>\n<\/li>\n<li>\n<p><code>06-sr-vs-rsvp.drawio<\/code> \u2014 \u0441\u0445\u0435\u043c\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439. rp_filter \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: SR dataplane \u043f\u0440\u043e\u0448\u0451\u043b \u0442\u0435\u0441\u0442 \u0438 \u0431\u0435\u0437 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0449\u0438\u0442\u044b. SR-MPLS \u0432 FRR \u043f\u043e\u043c\u0435\u0447\u0435\u043d \u043a\u0430\u043a \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439, \u0442\u0430\u043a \u0447\u0442\u043e \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c FIB \u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u043c \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f FRR \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u2014 SR policy \u0447\u0435\u0440\u0435\u0437 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 pathd: \u044f\u0432\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0443\u0442\u044c PE-1 \u2192 P-1 \u2192 P-3 \u2192 PE-2 \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441.<\/p>\n<\/li>\n<\/ul>\n<p>.  <\/p>\n<\/div>\n<\/details>\n<p>\u0410 \u0412\u043e\u0442 \u0447\u0442\u043e \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u0430\u0436\u043d\u044b\u043c \u043d\u0430\u043c \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c  <\/p>\n<details class=\"spoiler\">\n<summary>06-sr-mpls.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 6. SR-MPLS: transport labels \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438<\/h2>\n<h3>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Segment Routing<\/h3>\n<p>\u0412 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c RSVP-TE \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 tunnel \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f signalling\u2019\u043e\u043c: \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0439 LSR \u0445\u0440\u0430\u043d\u0438\u0442 state \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e LSP, \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442 label \u0438, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d, \u0440\u0435\u0441\u0443\u0440\u0441. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043b\u044f admission control \u0438 reservation, \u043d\u043e control plane \u0440\u0430\u0441\u0442\u0451\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c tunnel \u0438 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 RSVP refresh\/signalling.<\/p>\n<p>Segment Routing \u0440\u0435\u0448\u0430\u0435\u0442 \u0434\u0440\u0443\u0433\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0442\u043e\u0439 \u0436\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. Ingress \u0441\u0430\u043c \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 MPLS stack \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u2014 <strong>segments<\/strong>. \u0412 SR-MPLS \u043e\u043d\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b label\u2019\u0430\u043c\u0438 SID. \u041a\u0430\u0436\u0434\u044b\u0439 transit P \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432\u0435\u0440\u0445\u043d\u0438\u0439 SID \u043f\u043e \u043e\u0431\u0449\u0435\u0439 SR forwarding table; \u0435\u043c\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 RSVP-\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 policy.<\/p>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c Node SID:<\/p>\n<pre><code>[16002 | 16004 | 16006]   P-1     P-3     PE-2<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u0435\u0434\u044c \u0434\u043e P-1, \u0437\u0430\u0442\u0435\u043c \u0434\u043e P-3, \u0437\u0430\u0442\u0435\u043c \u0434\u043e PE-2. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c ingress \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 ECMP, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0443\u0436\u043d\u044b\u0435 waypoints. \u0414\u043b\u044f \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e link \u0435\u0441\u0442\u044c Adjacency SID, \u043d\u043e \u0432 \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044d\u0442\u0430\u043f\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Node SID.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 RSVP-TE: <a href=\"https:\/\/blog.pomazanov.com\/posts\/ldp-srv6-with-ai\/#ZgotmplZ\" rel=\"noopener nofollow\">06-sr-vs-rsvp.drawio<\/a>.<\/p>\n<h3>\u0427\u0435\u043c SR \u043b\u0443\u0447\u0448\u0435 \u0438\u043b\u0438 \u0445\u0443\u0436\u0435 \u00ab\u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e TE\u00bb<\/h3>\n<p>SR \u043d\u0435 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u0442 \u0446\u0435\u043b\u044c TE \u2014 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u044b \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438, capacity, delay, affinity \u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0435\u0440\u0432\u0438\u0441\u0430. \u041d\u0430\u0448\u0430 OSPF TE database \u0438\u0437 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0434\u043b\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f SR policy.<\/p>\n<p>\u0420\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0412\u043e\u043f\u0440\u043e\u0441<\/p>\n<\/th>\n<th>\n<p align=\"left\">RSVP-TE<\/p>\n<\/th>\n<th>\n<p align=\"left\">SR-MPLS<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041a\u0430\u043a \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0443\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">RSVP Path\/Resv \u0438 explicit route<\/p>\n<\/td>\n<td>\n<p align=\"left\">label stack \u043d\u0430 ingress<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">State \u043d\u0430 transit P<\/p>\n<\/td>\n<td>\n<p align=\"left\">per-TE-LSP<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043e\u0431\u0449\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 SID, \u0431\u0435\u0437 per-policy state<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Reservation \u043f\u043e\u043b\u043e\u0441\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430; \u043d\u0443\u0436\u0435\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 admission control<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 policy<\/p>\n<\/td>\n<td>\n<p align=\"left\">signalling \u0438 refresh \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e LSP<\/p>\n<\/td>\n<td>\n<p align=\"left\">policy \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 ingress\/controller<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Steering \u043f\u0440\u0438 ECMP<\/p>\n<\/td>\n<td>\n<p align=\"left\">tunnel \u043f\u0440\u0435\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u043f\u0443\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u043f\u0438\u0441\u043e\u043a SID \u043f\u0440\u0435\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 waypoints<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 SR \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0443\u0434\u043e\u0431\u0435\u043d, \u043a\u043e\u0433\u0434\u0430 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438\u043b\u0438 intent\/policy engine: \u043e\u043d \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 segment list \u043f\u043e TED \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u0442 ingress. \u041d\u043e SR \u043d\u0435 \u043c\u0430\u0433\u0438\u044f: \u043e\u043d \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0451\u043c\u043a\u043e\u0441\u0442\u044c, \u043d\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 congestion \u0438 \u043d\u0435 \u0434\u0430\u0451\u0442 RSVP reservation \u00ab\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u00bb.<\/p>\n<h3>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f SR domain<\/h3>\n<p>\u041d\u0430 \u0432\u0441\u0435\u0445 P\/PE \u0432\u043a\u043b\u044e\u0447\u0451\u043d OSPF SR-MPLS. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0435\u0434\u0438\u043d\u044b\u0439 Segment Routing Global Block (SRGB) <code>16000\u201323999<\/code>, Node MSD <code>8<\/code> \u0438 prefix SID \u0434\u043b\u044f transport loopback\u2019\u043e\u0432:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">Node<\/p>\n<\/th>\n<th>\n<p align=\"left\">Loopback<\/p>\n<\/th>\n<th>\n<p align=\"left\">SID index<\/p>\n<\/th>\n<th>\n<p align=\"left\">MPLS label<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-1<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.255.0.1\/32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">1<\/p>\n<\/td>\n<td>\n<p align=\"left\">16001<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-1<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.255.0.2\/32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">2<\/p>\n<\/td>\n<td>\n<p align=\"left\">16002<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-2<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.255.0.3\/32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">3<\/p>\n<\/td>\n<td>\n<p align=\"left\">16003<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-3<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.255.0.4\/32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">4<\/p>\n<\/td>\n<td>\n<p align=\"left\">16004<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-4<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.255.0.5\/32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">5<\/p>\n<\/td>\n<td>\n<p align=\"left\">16005<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-2<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>10.255.0.6\/32<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">6<\/p>\n<\/td>\n<td>\n<p align=\"left\">16006<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>FRR \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u043b SRLB <code>15000\u201315999<\/code> \u0438 Adjacency SID \u0434\u043b\u044f point-to-point core-\u043b\u0438\u043d\u043a\u043e\u0432. OSPF opaque capability \u0443\u0436\u0435 \u0431\u044b\u043b \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u043d\u0430 \u044d\u0442\u0430\u043f\u0435 TE, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 SR database \u0440\u0430\u0437\u044a\u0435\u0445\u0430\u043b\u0430\u0441\u044c \u043f\u043e domain \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e.<\/p>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 <code>rp_filter=2<\/code> (loose mode) \u043d\u0430 \u0443\u0437\u043b\u0430\u0445. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f FRR \u0434\u043b\u044f OSPF SR \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c reverse-path filtering \u0432 Linux. \u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0435 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0441\u043b\u0430\u0431\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0432\u043d\u043e\u0441\u0438\u043b\u0438: SR dataplane \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0448\u0451\u043b \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0442\u0435\u0441\u0442 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e. \u0415\u0441\u043b\u0438 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 drop \u0438\u0437-\u0437\u0430 RPF, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u043a\u0430\u0436\u0435\u043c \u0435\u0433\u043e, \u0430 \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u043c \u0443\u0437\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435.<\/p>\n<h3>Control plane \u0438 dataplane evidence<\/h3>\n<p>\u041d\u0430 PE-1 Linux MPLS FIB \u0434\u043b\u044f Node SID PE-2:<\/p>\n<pre><code>ip -f mpls route show 1600616006 proto ospf  nexthop as to 16006 via inet 10.10.0.1 dev ens4  nexthop as to 16006 via inet 10.10.0.3 dev ens5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442, SID <code>16006<\/code> \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d core \u0438 \u043c\u043e\u0436\u0435\u0442 \u0438\u0434\u0442\u0438 \u043f\u043e ECMP. \u041e\u0431\u044b\u0447\u043d\u044b\u0439 route lookup \u0434\u043b\u044f loopback PE-2 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 SR transport, \u0430 \u043d\u0435 \u043f\u0440\u0435\u0436\u043d\u044e\u044e LDP label:<\/p>\n<pre><code>ip route get 10.255.0.6 from 10.255.0.110.255.0.6 encap mpls 16006 via 10.10.0.3 dev ens5<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f ICMP <code>10.255.0.1 -&gt; 10.255.0.6<\/code> \u043d\u0430 P-2 <code>ens4<\/code> \u043f\u043e\u0439\u043c\u0430\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u0434\u0440:<\/p>\n<pre><code>ethertype MPLS unicast (0x8847)MPLS (label 16006, tc 0, [S], ttl 64)10.255.0.1 &gt; 10.255.0.6: ICMP echo request<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Ping \u043f\u043e\u043b\u0443\u0447\u0438\u043b reply. \u042d\u0442\u043e \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e SR Node SID \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0432 OSPF database \u2014 \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Linux MPLS dataplane.<\/p>\n<h3>SR transport \u043f\u043e\u0434 MPLS L3VPN<\/h3>\n<p>L3VPN \u043d\u0435 \u0438\u0441\u0447\u0435\u0437: service label \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0437\u0430\u0434\u0430\u0451\u0442 VRF \u043d\u0430 egress PE. \u0418\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e transport label \u0441\u0432\u0435\u0440\u0445\u0443. \u041d\u0430 PE-1:<\/p>\n<pre><code>ip route get 10.10.0.22 vrf RED10.10.0.22 encap mpls 16006\/144 via 10.10.0.1 dev ens4 table 1001ip route get 10.10.0.20 vrf BLUE10.10.0.20 encap mpls 16006\/145 via 10.10.0.3 dev ens5 table 1002<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>16006<\/code> \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u0434\u043e PE-2 \u043a\u0430\u043a SR Node SID; <code>144<\/code> \u0438 <code>145<\/code> \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e RED \u0438 BLUE VPN service label. RED-PC-1 -&gt; RED-PC-2 \u043f\u0440\u043e\u0448\u0451\u043b <code>1\/1<\/code> \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f transport \u043d\u0430 SR.<\/p>\n<p>LDP daemon \u0438 \u0435\u0433\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430 \u043f\u043e\u043a\u0430 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u0438\u0445 transport FEC OSPF SR \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u0435\u0442 Node SID \u0432 FIB.<\/p>\n<h3>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435<\/h3>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 SR \u0437\u043d\u0430\u0435\u0442 \u043b\u0438\u0448\u044c \u00ab\u0434\u043e\u0441\u0442\u0430\u0432\u044c \u043a PE-2 \u043a\u0440\u0430\u0442\u0447\u0430\u0439\u0448\u0438\u043c \u043f\u0443\u0442\u0451\u043c\u00bb. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u2014 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f SR policy \u043d\u0430 PE-1 \u0447\u0435\u0440\u0435\u0437 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 <code>pathd<\/code>: \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c TED, \u0441\u043e\u0437\u0434\u0430\u0442\u044c explicit segment list, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <code>P-1 -&gt; P-3 -&gt; PE-2<\/code>, \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432 policy. \u0412\u043e\u0442 \u0442\u043e\u0433\u0434\u0430 SR \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0432\u044b\u043c transport label, \u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c traffic steering.<\/p>\n<p>FRR \u0441\u0447\u0438\u0442\u0430\u0435\u0442 OSPF SR-MPLS \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439; \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0435\u0451 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0443\u0447\u0435\u0431\u043d\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c kernel FIB \u0438 \u043f\u0430\u043a\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u0421\u043c. <a href=\"https:\/\/docs.frrouting.org\/en\/stable-8.4\/ospfd.html\" rel=\"noopener nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e FRR \u043f\u043e OSPF SR<\/a>.<\/p>\n<\/div>\n<\/details>\n<h4>\u042d\u0442\u0430\u043f 7. SR Policy: \u044f\u0432\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 SR-MPLS (\u0441)<\/h4>\n<p>\u042f \u043f\u043e\u043a\u0430 \u0432\u0441\u044e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u043b \u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u043b\u0430 \u0434\u0435\u043b\u0430\u043b, \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u0431\u044b\u043b \u043d\u0430 \u0447\u0451\u043c \u043c\u044b \u0442\u0443\u0442 \u0432\u0441\u0442\u0430\u043b\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e \u043f\u0440\u043e\u0441\u0442\u043e:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a89\/b2a\/76d\/a89b2a76d30775e4cc3988d165850e0b.png\" alt=\"alt text\" width=\"1117\" height=\"916\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a89\/b2a\/76d\/a89b2a76d30775e4cc3988d165850e0b.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a89\/b2a\/76d\/a89b2a76d30775e4cc3988d165850e0b.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u043e \u0443 \u043c\u0435\u043d\u044f \u0433\u043e\u043b\u043e\u0432\u0435 \u043e\u0442\u043b\u043e\u0436\u0438\u043b\u043e\u0441\u044c \u0447\u0442\u043e \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u0431\u044b \u0447\u0442\u043e-\u0442\u043e \u0435\u0449\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0434 SRv6 &#8212; \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u043b \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u043e\u0442\u0432\u0435\u0442, \u0442\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e SR Policy \u0431\u044b\u043b\u043e:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/13a\/2a2\/906\/13a2a290613d37045f92470039c3ec47.png\" alt=\"alt text\" width=\"1080\" height=\"976\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/13a\/2a2\/906\/13a2a290613d37045f92470039c3ec47.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/13a\/2a2\/906\/13a2a290613d37045f92470039c3ec47.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0410\u0433\u0430, \u043e\u0441\u0432\u0435\u0436\u0438\u043b\u0438 \u0438 \u043c\u043d\u0435 \u0438 \u0430\u0433\u0435\u043d\u0442\u0443 \u043f\u0430\u043c\u044f\u0442\u044c, \u0430 \u0434\u0430\u043b\u044c\u0448\u0435 \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u043b:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f49\/c77\/332\/f49c77332ba51ad59efd65f24dc3f34e.png\" alt=\"alt text\" width=\"771\" height=\"195\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f49\/c77\/332\/f49c77332ba51ad59efd65f24dc3f34e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f49\/c77\/332\/f49c77332ba51ad59efd65f24dc3f34e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u0437\u0430 13 \u043c\u0438\u043d 19 \u0441<\/p>\n<p>\u0421\u0445\u0435\u043c\u044b \u043d\u0435 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043b \u043d\u043e\u0432\u044b\u0435<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u043c\u044b\u0448\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e SR Policy<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e SR Policy: \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043c \u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 Node SID \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u044f\u0432\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0442\u044c \u043a SRv6. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0432\u0435\u0440\u044e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 pathd \u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e SR-MPLS  <\/p>\n<p>\u2014 \u0443 \u043d\u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043e\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 FRR.<\/p>\n<blockquote>\n<p>\u041f\u0440\u043e\u0447\u0438\u0442\u0430\u043b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"hostname; \\   frr version; \\   systemctl is-active frr pathd; \\   vtysh -c 'show segment-routing global-block' \\         -c 'show segment-routing prefix' \\         -c 'show pathd status' \\         -c 'show running-config' | \\     sed -n '\/^router ospf\/,\/^!\/p'; \\   ip -f mpls route show; \\   ip route get 10.255.0.6\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043a\u0430 \u0435\u0441\u0442\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u043a\u0430: SR-MPLS dataplane \u043d\u0430 PE-1 \u0436\u0438\u0432, \u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 pathd \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d. \u042d\u0442\u043e \u043d\u0435 \u043e\u0448\u0438\u0431\u043a\u0430 \u0441\u0430\u043c\u043e \u043f\u043e \u0441\u0435\u0431\u0435 \u2014 \u043c\u044b \u0435\u0433\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u043b\u0438. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u044f\u0441\u043d\u044f\u044e, \u0443\u043c\u0435\u0435\u0442 \u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u0430\u044f FRR 8.4 \u043d\u0443\u0436\u043d\u044b\u0439 \u043d\u0430\u043c \u0442\u0438\u043f policy, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u0443\u044e, \u043d\u043e \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'show version'; \\   command -v pathd; \\   \/usr\/lib\/frr\/pathd --version; \\   grep -n '^pathd=' \/etc\/frr\/daemons; \\   systemctl cat pathd 2&gt;\/dev\/null || true; \\   vtysh -c 'configure terminal' \\         -c 'segment-routing' \\         -c '?' 2&gt;&amp;1 | \\     tail -80; \\   \/usr\/lib\/frr\/pathd --help 2&gt;&amp;1 | \\     head -80\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e pathd SR Policy PCEP | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a><\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'show running-config' | \\     sed -n '\/^router bgp\/,\/^!\/p'; \\   vtysh -c 'show bgp vrf RED ipv4 unicast 10.10.0.22\/32'; \\   vtysh -c 'show bgp ipv4 vpn 10.10.0.22\/32'; \\   vtysh -c 'show mpls table' | \\     head -100; \\   sed -n '1,120p' \/etc\/frr\/daemons\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0440\u0442\u0438\u043d\u0430 \u0441\u043b\u043e\u0436\u0438\u043b\u0430\u0441\u044c: pathd 8.4.4 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 explicit SR Policy \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442, \u0430 TED \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u0440\u043e\u0448\u043b\u043e\u043c\u0443 \u044d\u0442\u0430\u043f\u0443 OSPF-TE. \u0412\u043a\u043b\u044e\u0447\u0430\u044e daemon \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 ingress PE-1; \u0440\u0435\u0441\u0442\u0430\u0440\u0442 FRR \u043d\u0430 \u043d\u0451\u043c \u043a\u0440\u0430\u0442\u043a\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 control plane, \u0437\u0430\u0442\u043e \u043d\u0435 \u0442\u0440\u043e\u043d\u0435\u0442 management-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0434\u0430\u0441\u0442 \u043d\u0430\u043c \u0447\u0435\u0441\u0442\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"cp -an \/etc\/frr\/daemons \/etc\/frr\/daemons.pre-pathd; \\   cp -an \/etc\/frr\/frr.conf \/etc\/frr\/frr.conf.pre-pathd; \\   sed -i 's\/^pathd=no$\/pathd=yes\/' \/etc\/frr\/daemons; \\   test -e \/etc\/frr\/pathd.conf || \\     install -o frr -g frr -m 640 \/dev\/null \/etc\/frr\/pathd.conf; \\   systemctl restart frr; \\   sleep 4; \\   systemctl is-active frr; \\   systemctl is-active pathd; \\   vtysh -c 'show version' | \\     head -1; \\   vtysh -c 'show sr-te policy'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0440\u0430\u0437\u0432\u0438\u043b\u043a\u0430: \u043e\u0431\u0449\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 FRR \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f, \u043d\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 systemctl is-active pathd \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f inactive. \u042d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0435\u0440\u0434\u0438\u043a\u0442 \u2014 \u0432 Debian-\u043f\u0430\u043a\u0435\u0442\u0435 daemon \u0447\u0430\u0441\u0442\u043e \u0436\u0438\u0432\u0451\u0442 \u043f\u043e\u0434 watchfrr, \u0430 \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c systemd unit. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u043f\u0440\u043e\u0446\u0435\u0441\u0441, VTY-\u0441\u043e\u043a\u0435\u0442 \u0438 \u0436\u0443\u0440\u043d\u0430\u043b; \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0442, \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b \u043b\u0438 pathd \u0438\u043b\u0438 \u0441\u043f\u043e\u0442\u043a\u043d\u0443\u043b\u0441\u044f \u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"grep -n '^pathd=' \/etc\/frr\/daemons; \\   ps -eo pid,cmd | \\     grep '[p]athd'; \\   ls -l \/var\/run\/frr\/pathd.vty \/var\/run\/frr\/pathd.pid 2&gt;&amp;1; \\   systemctl status --no-pager frr | \\     tail -50; \\   journalctl -u frr -b --no-pager | \\     tail -100; \\   vtysh -c 'show daemons' 2&gt;&amp;1\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0411\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0441\u044f: \u043e\u0431\u0435 OSPF-\u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430 Full, VPNv4-\u0441\u0435\u0430\u043d\u0441 \u0441 PE-2 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f, RED-PC-1 \u0441\u043d\u043e\u0432\u0430 \u043f\u0438\u043d\u0433\u0443\u0435\u0442 RED-PC-2. \u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u044e policy \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 PE-1: binding SID 24000, \u0430 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a 16002 \u2192 16004 \u2192 16006 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 P-1 \u0438 P-3 \u0434\u043e PE-2. \u041f\u043e\u043a\u0430 \u0431\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\/PCEP: \u044d\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f explicit policy, \u0441\u0430\u043c\u044b\u0439 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u044b\u0439 \u043f\u0435\u0440\u0432\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'configure terminal' \\         -c 'segment-routing' \\         -c 'traffic-eng' \\         -c 'mpls-te on' \\         -c 'mpls-te import ospfv2' \\         -c 'segment-list RED-VIA-P1-P3' \\         -c 'index 10 mpls label 16002' \\         -c 'index 20 mpls label 16004' \\         -c 'index 30 mpls label 16006' \\         -c 'exit' \\         -c 'policy color 100 endpoint 10.255.0.6' \\         -c 'name RED-VIA-P1-P3' \\         -c 'binding-sid 24000' \\         -c 'candidate-path preference 100 name LOCAL-EXPLICIT explicit segment-list RED-VIA-P1-P3' \\         -c 'end' \\         -c 'write memory'; \\   vtysh -c 'show sr-te policy detail'; \\   vtysh -c 'show mpls table 24000'; \\   ip -f mpls route show 24000\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Policy \u0430\u043a\u0442\u0438\u0432\u043d\u0430 \u0438 Zebra \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b BSID 24000: \u043e\u043d \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0451\u0442 \u0435\u0433\u043e \u0432 \u0441\u0442\u0435\u043a \u043a P-3 \u0438 PE-2, \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0432 \u043f\u0430\u043a\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 P-1. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u2014 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a policy \u043d\u0435 \u0430\u0431\u0441\u0442\u0440\u0430\u043a\u0442\u043d\u044b\u0439 label, \u0430 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0441 PE-2 VPN-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b. \u0412 \u044d\u0442\u043e\u0439 \u043c\u0438\u043d\u0438-\u043b\u0430\u0431\u0435 \u0443 \u043e\u0431\u043e\u0438\u0445 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0445 VRF \u043e\u0431\u0449\u0438\u0439 next hop PE-2, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u0434\u0438\u043d inbound route-map \u043e\u043a\u0440\u0430\u0441\u0438\u0442 RED \u0438 BLUE \u0442\u0440\u0430\u0444\u0438\u043a \u043a PE-2 \u0432 color 100; \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c RED \u043a\u0430\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'configure terminal' \\         -c 'route-map TO-PE2-VIA-P1-P3 permit 10' \\         -c 'set sr-te color 100' \\         -c 'exit' \\         -c 'router bgp 65000' \\         -c 'address-family ipv4 vpn' \\         -c 'neighbor 10.255.0.6 route-map TO-PE2-VIA-P1-P3 in' \\         -c 'end' \\         -c 'write memory'; \\   vtysh -c 'clear bgp ipv4 vpn 10.255.0.6 soft in'; \\   sleep 3; \\   vtysh -c 'show bgp ipv4 vpn summary'; \\   vtysh -c 'show ip route vrf RED 10.10.0.22\/31'; \\   ip route get 10.10.0.22 vrf RED; \\   vtysh -c 'show sr-te policy detail'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u043e\u0442 \u0443\u0436\u0435 \u043d\u0443\u0436\u043d\u044b\u0439 evidence \u0438\u0437 FIB: \u043c\u0430\u0440\u0448\u0440\u0443\u0442 RED \u043a 10.10.0.22\/31 \u0441\u043c\u0435\u043d\u0438\u043b \u043e\u0431\u044b\u0447\u043d\u044b\u0439 SR transport 16006\/144 \u043d\u0430 16004\/16006\/144 via P-1. \u0422\u043e \u0435\u0441\u0442\u044c policy \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0438\u0441\u0438\u0442 \u0432 pathd \u2014 \u043e\u043d\u0430 \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0430 forwarding. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0439\u043c\u0430\u044e \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 ICMP-\u043f\u0430\u043a\u0435\u0442 \u043d\u0430 P-1 \u0438 P-3: \u043e\u0436\u0438\u0434\u0430\u044e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043d\u044f\u0442\u0438\u0435 16004 \u043d\u0430 P-3 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 P-2 \u043d\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u043c \u043f\u0443\u0442\u0438.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"timeout 15 tcpdump -nn -e -vv -c 1 -i ens4 'mpls'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 capture \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u0439\u043c\u0430\u043b\u0430, \u043d\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0431\u0430\u043d\u0430\u043b\u044c\u043d\u0430\u044f: SSH-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u044a\u0435\u043b\u0430 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0451 15-\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u043e\u0435 \u043e\u043a\u043d\u043e \u0434\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 ping. \u042d\u0442\u043e \u043d\u0435 \u0441\u0432\u0438\u0434\u0435\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0442\u0438\u0432 policy. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e capture \u043a\u0430\u043a \u0444\u043e\u043d\u043e\u0432\u044b\u0435 90-\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u044b\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u043f\u0440\u044f\u043c\u043e \u043d\u0430 P-1 \u0438 P-3, \u0437\u0430\u0442\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0448\u043b\u044e \u043e\u0434\u0438\u043d \u043f\u0430\u043a\u0435\u0442 \u0438 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u044e pcap.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"nohup timeout 90 tcpdump -U -s 0 \\     -w \/tmp\/sr-policy-p1.pcap \\     -i ens4 'mpls' \\     &lt;\/dev\/null &gt;\/tmp\/sr-policy-p1.log 2&gt;&amp;1 &amp;\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0424\u043e\u043d\u043e\u0432\u044b\u0435 pcap \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u043b\u0438 SSH-\u0441\u0435\u0441\u0441\u0438\u044e \u2014 \u0444\u0430\u0439\u043b\u0430 \u043d\u0435\u0442, \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u0447\u0438\u0442\u0430\u0442\u044c evidence. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043f\u0440\u0438\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0447\u0438\u043d\u0443 \u0437\u0430\u0434\u043d\u0438\u043c \u0447\u0438\u0441\u043b\u043e\u043c. \u0414\u0435\u043b\u0430\u044e \u043f\u0440\u043e\u0449\u0435: \u0434\u0435\u0440\u0436\u0443 \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 capture \u043d\u0430 P-1 60 \u0441\u0435\u043a\u0443\u043d\u0434 \u0438 \u0432 \u044d\u0442\u043e\u043c \u043e\u043a\u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e ping \u043f\u0440\u044f\u043c\u043e \u0441 PE-1 \u0447\u0435\u0440\u0435\u0437 VRF RED; \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0438 \u0441\u0442\u0435\u043a \u0431\u0443\u0434\u0443\u0442 \u0442\u0435\u043c\u0438 \u0436\u0435, \u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043e\u0434\u043d\u0430 \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u0430\u044f.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"timeout 60 tcpdump -nn -e -vv -c 1 -i ens4 'mpls'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0441\u0451 \u0441\u043e\u0448\u043b\u043e\u0441\u044c: P-1 \u043f\u043e\u0439\u043c\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e 16004 \/ 16006 \/ 144 \u0441 RED-\u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0438. \u0412\u0435\u0440\u0445\u043d\u0438\u0435 \u0434\u0432\u0435 \u043c\u0435\u0442\u043a\u0438 \u2014 \u043d\u0430\u0448\u0430 policy \u0434\u043e P-3 \u0438 PE-2, \u043d\u0438\u0436\u043d\u044f\u044f 144 \u2014 \u043f\u0440\u0435\u0436\u043d\u044f\u044f VPN service label. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0432\u0435\u0440\u0438\u0442\u044c LFIB \u043d\u0430 P-1 \u0438 P-3, \u0447\u0442\u043e\u0431\u044b \u0446\u0435\u043f\u043e\u0447\u043a\u0430 \u00ab\u043f\u0430\u043a\u0435\u0442 \u0432\u043e\u0448\u0451\u043b \u2192 \u0433\u0434\u0435 \u0441\u043d\u044f\u043b\u0430\u0441\u044c \u043a\u0430\u0436\u0434\u0430\u044f \u043c\u0435\u0442\u043a\u0430 \u2192 \u043a\u0443\u0434\u0430 \u0443\u0448\u0451\u043b\u00bb \u0431\u044b\u043b\u0430 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"ip -f mpls route show 16004; \\   vtysh -c 'show mpls table 16004'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Data plane \u0434\u043e\u043a\u0430\u0437\u0430\u043d: P-1 \u0441\u043d\u044f\u043b 16004 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043b \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043a P-3, \u0430 P-3 \u0441\u043d\u044f\u043b 16006 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b \u0441\u0435\u0440\u0432\u0438\u0441 \u043a PE-2. \u0417\u0430\u043f\u0438\u0448\u0443 \u044d\u0442\u0430\u043f \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0443 \u0431\u0435\u0437 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0439: \u044d\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f SR Policy \u0447\u0435\u0440\u0435\u0437 pathd, \u043d\u0435 PCEP-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0438 \u043d\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 CSPF.<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u0444\u0430\u0439\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443<\/p>\n<\/blockquote>\n<pre><code class=\"powershell\">rg -n \"^(#|Endpoint:|10\\.10\\.0\\.22 encap|MPLS label|\u0427\u0435\u0433\u043e \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f)\" `  07-sr-policy.mdGet-Content 07-sr-policy.md |  Measure-Object -Line<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u043c\u0435\u0442\u043a\u0430 \u0433\u043e\u0442\u043e\u0432\u0430. \u0414\u0435\u043b\u0430\u044e \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0432\u0435\u0440\u043a\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f: pathd \u043f\u043e\u0434 watchfrr, \u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f policy \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 VPN-route \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u043c policy.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'show daemons'; \\   vtysh -c 'show sr-te policy detail'; \\   ip route get 10.10.0.22 vrf RED; \\   grep -n '^pathd=' \/etc\/frr\/daemons\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>SR Policy \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0443\u043b\u0438\u0442 L3VPN-\u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c.<\/p>\n<ul>\n<li>\n<p>\u041d\u0430 PE-1 \u0432\u043a\u043b\u044e\u0447\u0451\u043d pathd \u043f\u043e\u0434 \u043e\u0431\u0449\u0438\u043c watchfrr (\u044d\u0442\u043e \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 systemd service).<\/p>\n<\/li>\n<li>\n<p>\u0410\u043a\u0442\u0438\u0432\u043d\u0430 policy RED-VIA-P1-P3: color 100, endpoint 10.255.0.6, BSID 24000.<\/p>\n<\/li>\n<li>\n<p>RED-\u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a 10.10.0.22\/31 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u0441\u0442\u0435\u043a 16004\/16006\/144 \u0447\u0435\u0440\u0435\u0437 P-1.<\/p>\n<\/li>\n<li>\n<p>Ping \u0434\u043e \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e RED-PC \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 P-1 \u043f\u043e\u0439\u043c\u0430\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442: 16004 \/ 16006 \/ 144; P-1 \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 segment \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u043a P-3, \u0430 P-3 \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0435\u0433\u043e PE-2. \u0413\u043b\u0430\u0432\u043d\u044b\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u2014 <a href=\"http:\/\/07-sr-policy.md\" rel=\"noopener nofollow\"><code>07-sr-policy.md<\/code><\/a>, \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f, \u043f\u0440\u0435\u0436\u043d\u0438\u0439 \u0438 \u043d\u043e\u0432\u044b\u0439 forwarding-\u0441\u0442\u0435\u043a, capture \u0438 \u0447\u0435\u0441\u0442\u043d\u044b\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430. \u042d\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f explicit policy, \u0431\u0435\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e PCE\/PCEP-\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 \u0431\u0435\u0437 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u043f\u0443\u0442\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a pathd \u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c: \u0445\u0440\u0430\u043d\u0438\u0442\u044c candidate path, \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c policy \u0432 Zebra \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 dataplane. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f FRR PATH \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a SRv6; \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441 PCEP \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439, \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u043e\u0439 \u0434\u043b\u044f \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u0418\u0437\u043c\u0435\u043d\u0451\u043d <a href=\"http:\/\/07-sr-policy.md\" rel=\"noopener nofollow\">07-sr-policy.md<\/a>+172-0\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c<\/p>\n<\/blockquote>\n<\/div>\n<\/details>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043b\u044f \u0441\u0435\u0442\u0435\u0432\u0438\u043a\u043e\u0432:<\/p>\n<details class=\"spoiler\">\n<summary>07-sr-policy.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 7. SR Policy: \u044f\u0432\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 SR-MPLS<\/h2>\n<p>\u041d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 Node SID PE-2 (<code>16006<\/code>) \u0443\u0436\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u043b LDP transport label. \u041d\u043e \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043e\u043d \u043d\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0443\u0442\u044c: IGP \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0440\u0430\u0432\u043d\u043e\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u043d\u044b\u0439 next hop. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <strong>SR Policy<\/strong> \u043d\u0430 ingress PE-1 \u0438 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c PE-2 \u043f\u0440\u043e\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 P-1 \u0438 P-3.<\/p>\n<p>\u042d\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 traffic steering \u0432 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438:<\/p>\n<pre><code>RED-PC-1 -&gt; PE-1 -&gt; P-1 -&gt; P-3 -&gt; PE-2 -&gt; RED-PC-2                         ^^^^^^^^^^                  \u044f\u0432\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u0427\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e<\/h3>\n<p>\u041d\u0430 PE-1 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d FRR 8.4.4 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a <code>pathd<\/code>, \u043d\u043e daemon \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043d\u0435 \u0431\u044b\u043b \u0432\u043a\u043b\u044e\u0447\u0451\u043d. <code>pathd<\/code> \u2014 \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 SR Policy: \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 candidate path \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u0443\u044e policy \u0432 Zebra, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0435\u0451 \u0432 MPLS dataplane.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 FRR:<\/p>\n<pre><code>PE-1# show ip ospf neighbor10.255.0.2  Full\/-  ... ens410.255.0.3  Full\/-  ... ens5PE-1# show bgp ipv4 vpn summary10.255.0.6 ... State\/PfxRcd 2PE-1# ip vrf exec RED ping -c 2 10.10.0.222 packets transmitted, 2 received, 0% packet loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>pathd<\/code> \u0432\u043a\u043b\u044e\u0447\u0451\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 PE-1 \u0432 <code>\/etc\/frr\/daemons<\/code> (<code>pathd=yes<\/code>); \u043f\u0435\u0440\u0435\u0434 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u043a\u043e\u043f\u0438\u0438 <code>daemons.pre-pathd<\/code> \u0438 <code>frr.conf.pre-pathd<\/code> \u043d\u0430 \u0441\u0430\u043c\u043e\u043c PE. \u042d\u0442\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a control plane PE-1, \u043d\u043e management-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u043b\u0441\u044f, \u0430 OSPF \u0438 MP-BGP \u0437\u0430\u0442\u0435\u043c \u0448\u0442\u0430\u0442\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c.<\/p>\n<h3>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f explicit policy<\/h3>\n<p>\u041c\u044b \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 PCE \u0438 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440. \u0412 <code>pathd<\/code> \u0437\u0430\u0434\u0430\u043d\u0430 \u043e\u0434\u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f candidate path \u0441 \u0442\u0440\u0435\u043c\u044f \u0443\u0436\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c\u0438 Node SID:<\/p>\n<pre><code>segment-routing traffic-eng  mpls-te on  mpls-te import ospfv2  segment-list RED-VIA-P1-P3   index 10 mpls label 16002   index 20 mpls label 16004   index 30 mpls label 16006  !  policy color 100 endpoint 10.255.0.6   name RED-VIA-P1-P3   binding-sid 24000   candidate-path preference 100 name LOCAL-EXPLICIT explicit segment-list RED-VIA-P1-P3  ! !!<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043c\u044b\u0441\u043b \u0441\u043f\u0438\u0441\u043a\u0430: PE-1 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u043f\u0430\u043a\u0435\u0442 P-1; \u0437\u0430\u0442\u0435\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442 <code>16004<\/code> \u0432\u0435\u0434\u0451\u0442 \u0435\u0433\u043e \u043a P-3, \u0430 <code>16006<\/code> \u2014 \u043a PE-2. <code>24000<\/code> \u2014 binding SID policy: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432\u0445\u043e\u0434\u0430 \u0432 \u044d\u0442\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a. \u0412\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0439 \u0438\u043c\u043f\u043e\u0440\u0442 OSPF TED \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430, \u0433\u0434\u0435 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 NAI, \u0430 \u043d\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e label-\u0430\u043c\u0438. \u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 explicit policy \u043e\u043d \u043d\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442 \u043f\u0443\u0442\u044c \u0438 \u043d\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u044b.<\/p>\n<p><code>pathd<\/code> \u0432\u044b\u0431\u0440\u0430\u043b candidate path \u0438 Zebra \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0430 BSID:<\/p>\n<pre><code>PE-1# show sr-te policy detailEndpoint: 10.255.0.6  Color: 100  Name: RED-VIA-P1-P3  BSID: 24000  Status: Active  * Preference: 100  Name: LOCAL-EXPLICIT  Type: explicit    Segment-List: RED-VIA-P1-P3  Protocol-Origin: LocalPE-1# show mpls table 24000Local label: 24000 (installed) type: SR-TE remote label: 16004\/16006  via 10.10.0.1 dev ens4 (installed)<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u043c P-1, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u043c LFIB BSID \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0432 <code>16004\/16006<\/code> \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>ens4<\/code>. \u042d\u0442\u043e \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430, \u0430 \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f: PE-1 \u0438 \u0442\u0430\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 P-1 \u043a\u0430\u043a next hop.<\/p>\n<h3>\u041a\u0430\u043a service-\u0442\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043f\u0430\u043b \u0432 policy<\/h3>\n<p>Policy \u0441\u0430\u043c\u0430 \u043d\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b. \u0414\u043b\u044f VPN-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432, \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043e\u0442 PE-2, \u043d\u0430 PE-1 \u043f\u0440\u0438\u043c\u0435\u043d\u0451\u043d inbound BGP route-map:<\/p>\n<pre><code>route-map TO-PE2-VIA-P1-P3 permit 10 set sr-te color 100!router bgp 65000 address-family ipv4 vpn  neighbor 10.255.0.6 route-map TO-PE2-VIA-P1-P3 in exit-address-family!<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0423 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0445 RED \u0438 BLUE \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 BGP next hop <code>10.255.0.6<\/code>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 color <code>100<\/code> \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442 policy <code>(color 100, endpoint 10.255.0.6)<\/code>. \u0412 \u044d\u0442\u043e\u0439 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 route-map \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0451\u043d \u043a\u043e \u0432\u0441\u0435\u043c \u0434\u0432\u0443\u043c VPN-prefix \u043e\u0442 PE-2. \u0412 production \u0434\u043b\u044f RED\/BLUE \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u043f\u043e RT, community \u0438\u043b\u0438 prefix, \u0447\u0442\u043e\u0431\u044b steering \u0431\u044b\u043b \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043a\u0438\u043c.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043c\u044f\u0433\u043a\u043e\u0433\u043e BGP refresh \u043c\u0430\u0440\u0448\u0440\u0443\u0442 RED \u0441\u043c\u0435\u043d\u0438\u043b \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u044b\u0439 \u0441\u0442\u0435\u043a:<\/p>\n<pre><code># \u0434\u043e policy (\u044d\u0442\u0430\u043f SR-MPLS)10.10.0.22 encap mpls 16006\/144 ...# \u043f\u043e\u0441\u043b\u0435 policyPE-1# ip route get 10.10.0.22 vrf RED10.10.0.22 encap mpls 16004\/16006\/144 via 10.10.0.1 dev ens4 table 1001<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>144<\/code> \u2014 VPN service label \u0434\u043b\u044f VRF RED, \u043e\u0441\u0442\u0430\u0432\u0448\u0430\u044f\u0441\u044f \u0447\u0430\u0441\u0442\u044c <code>16004\/16006<\/code> \u2014 transport segment list policy. Policy \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u0440\u043e\u0433\u043e\u0439 \u0434\u043e egress PE, \u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u043c\u0435\u043d\u044f\u0435\u0442 L3VPN-\u0441\u0435\u0440\u0432\u0438\u0441.<\/p>\n<h3>Dataplane evidence<\/h3>\n<p>Ping \u0438\u0437 VRF RED \u043d\u0430 PE-1 \u0434\u043e \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e RED-PC-2 \u043f\u0440\u043e\u0448\u0451\u043b:<\/p>\n<pre><code>PE-1# ip vrf exec RED ping -c 1 10.10.0.221 packets transmitted, 1 received, 0% packet loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435 P-1 \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043d \u0442\u043e\u0442 \u0436\u0435 ICMP echo request:<\/p>\n<pre><code>P-1 ens4MPLS label 16004MPLS label 16006MPLS label 144 [S]10.10.0.17 &gt; 10.10.0.22: ICMP echo request<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 LFIB \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e transport-\u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430:<\/p>\n<pre><code>P-1# show mpls table 16004Local label: 16004 (installed) remote label: implicit-null via 10.10.0.5 dev ens5       # \u043a P-3P-3# show mpls table 16006Local label: 16006 (installed) remote label: implicit-null via 10.10.0.13 dev ens6      # \u043a PE-2<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0430\u043a\u0435\u0442 PE-1 -&gt; P-1 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441 <code>16004\/16006\/144<\/code>; P-1 \u0441\u043d\u0438\u043c\u0430\u0435\u0442 <code>16004<\/code> \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u0432 P-3; P-3 \u0441\u043d\u0438\u043c\u0430\u0435\u0442 <code>16006<\/code> \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 service label PE-2. \u042d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u0442 \u043f\u0443\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0437\u0430\u0434\u0430\u043d policy, \u0430 \u043d\u0435 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 ECMP.<\/p>\n<h3>\u0427\u0435\u0433\u043e \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u0435\u043b\u0430\u0435\u0442<\/h3>\n<p>\u0417\u0434\u0435\u0441\u044c \u043d\u0435\u0442 PCEP-\u0441\u0435\u0441\u0441\u0438\u0438, \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e controller\/PCE, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e CSPF \u043f\u043e bandwidth\/affinity \u0438 RSVP reservation. \u041c\u044b \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0430\u0447\u0430\u043b\u0438 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c\u043e\u0433\u043e segment list. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f candidate path \u0441 PCE; \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a SRv6 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 steering \u0441 IPv6 SID \u0438 SRH.<\/p>\n<p>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043f\u0435\u0440\u0432\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438: <a href=\"https:\/\/docs.frrouting.org\/en\/stable-8.0\/pathd.html\" rel=\"noopener nofollow\">FRR PATH\/pathd documentation<\/a> \u0438 <a href=\"https:\/\/docs.frrouting.org\/projects\/dev-guide\/en\/latest\/path-internals-daemon.html\" rel=\"noopener nofollow\">FRR developer guide: pathd architecture<\/a>.<\/p>\n<\/div>\n<\/details>\n<h4>\u042d\u0442\u0430\u043f 8. SRv6: IPv6 transport, SID \u0438 \u0447\u0435\u0441\u0442\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 (\u0441)<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u201c\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435\u043c \u043c\u043e\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u044c \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f candidate path \u0441 PCE; \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a SRv6 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0442\u043e\u0442 \u0436\u0435 steering \u0441 IPv6 SID \u0438 SRH.\u201d<\/p>\n<p>\u041d\u043e \u0434\u0443\u043c\u0430\u044e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0436\u0435 \u0442\u0443 \u043c\u0430\u0447, \u043f\u043e\u0440\u0430 \u043a\u0430\u043a-\u0442\u043e \u043a \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043a\u043e\u043d\u0446\u0443 \u0432\u0441\u0451 \u0434\u043e\u0432\u043e\u0434\u0438\u0442\u044c, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0435\u043c\u0443 \u0442\u0430\u043a\u043e\u0435:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/433\/99c\/133\/43399c133857f7c6454ed82e1f1e70cf.png\" alt=\"alt text\" width=\"772\" height=\"295\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/433\/99c\/133\/43399c133857f7c6454ed82e1f1e70cf.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/433\/99c\/133\/43399c133857f7c6454ed82e1f1e70cf.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u043d\u043e\u0443\u0442 \u0438 \u0443\u0445\u043e\u0436\u0443 \u0432 \u043b\u0435\u0441 &#8212; \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0434\u0435\u043b\u043e \u0434\u043e\u043b\u0433\u043e\u0435. \u041f\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u0438\u0437 \u043b\u0435\u0441\u0430 \u044f \u0443\u0436\u0435 \u0437\u0430\u0431\u044b\u043b \u0447\u0442\u043e \u044f \u0431\u043b\u043e\u0433\u0435\u0440, \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u043b \u043d\u043e\u0443\u0442 \u0438 \u0437\u0430\u043d\u044f\u043b\u0441\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u043d\u0435\u0431\u043b\u043e\u0433\u0435\u0440\u0441\u043a\u0438\u043c\u0438 \u0434\u0435\u043b\u0430\u043c\u0438. \u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b\u043e \u0434\u0430\u043b\u044c\u0448\u0435 &#8212; \u044f \u043d\u0435 \u0437\u043d\u0430\u044e, \u043d\u043e \u0447\u0435\u0440\u0435\u0437 <strong>44 \u043c\u0438\u043d 9 \u0441<\/strong> \u043e\u043d \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b \u0440\u0430\u0431\u043e\u0442\u0443 \u0431\u0435\u0437 \u044f\u0432\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0442\u043e \u043e\u043d \u0442\u0430\u043c \u043d\u0430\u0440\u0430\u0437\u043c\u044b\u0448\u043b\u044f\u043b: (\u043f\u043e\u0447\u0438\u0442\u0430\u043b \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u0431\u0430\u0432\u043d\u043e, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043d\u0430 \u043d\u043e\u0447\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0432\u0430 \u043f\u0440\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u043d\u0446\u0435\u0432)<\/p>\n<details class=\"spoiler\">\n<summary>\u0427\u0451 \u043e\u043d \u0442\u0430\u043c 45 \u043c\u0438\u043d\u0443\u0442 \u0434\u0443\u043c\u0430\u043b?<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a SRv6. \u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u00ab\u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u0443 MPLS-label\u00bb: \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f IPv6 transport, OSPFv3, SRv6 locator\/SID \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 Linux dataplane. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u0432\u0435\u0440\u044e, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u043c\u0435\u044e\u0442 \u043d\u0430\u0448\u0438 \u044f\u0434\u0440\u0430 \u0438 FRR 8.4.4, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0431\u0435\u0440\u0443 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u0430\u0441\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 SRv6-\u043f\u0430\u043a\u0435\u0442, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439  <\/p>\n<p>\u00a0control plane.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e SRv6 OSPF6 locator End.DX4<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"hostname; \\   ip -6 -br address; \\   ip -6 route show; \\   sysctl -n net.ipv6.conf.all.forwarding; \\   sysctl -n net.ipv6.conf.ens4.seg6_enabled; \\   lsmod | \\     grep -E 'seg6|ipv6'; \\   ip -6 route help 2&gt;&amp;1 | \\     grep -E 'seg6|seg6local' | \\     head -10; \\   vtysh -c 'configure terminal' \\         -c 'segment-routing' \\         -c 'srv6' \\         -c '?' 2&gt;&amp;1 | \\     tail -60\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Preflight \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435: \u043d\u0430 data-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u0441\u0435\u0439\u0447\u0430\u0441 \u0442\u043e\u043b\u044c\u043a\u043e link-local IPv6, forwarding \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d, \u0430 seg6_enabled=0 \u2014 SRH \u0437\u0434\u0435\u0441\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443\u0442. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u044f\u0434\u0440\u043e \u0437\u043d\u0430\u0435\u0442 seg6\/seg6local, \u0430 FRR \u0434\u0430\u0451\u0442 SRv6 locator configuration. \u042d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0441\u0442\u0430\u0440\u0442: \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 IPv4\/MPLS \u0441\u043b\u043e\u0439 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0436\u0438\u0432\u044b\u043c, \u0430 SRv6 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'configure terminal' \\         -c 'segment-routing' \\         -c 'srv6' \\         -c 'locators' \\         -c '?' 2&gt;&amp;1 | \\     tail -80; \\   vtysh -c 'configure terminal' \\         -c 'router bgp 65000' \\         -c 'segment-routing srv6' \\         -c '?' 2&gt;&amp;1 | \\     tail -80; \\   vtysh -c 'show segment-routing srv6 locator' 2&gt;&amp;1\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e \u201cblock-len\u201d SRv6 locator | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a> \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e ospf6d SRv6 \u201clocator\u201d | <a href=\"http:\/\/docs.frrouting.org\" rel=\"noopener nofollow\">docs.frrouting.org<\/a> \u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e networking seg6local End.DT4 vrftable ip route | <a href=\"http:\/\/docs.kernel.org\" rel=\"noopener nofollow\">docs.kernel.org<\/a><\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"hostname; \\   cat \/etc\/netplan\/99-lab-data-plane.yaml; \\   sysctl -n net.ipv6.conf.all.forwarding; \\   sysctl -n net.ipv6.conf.ens4.seg6_enabled; \\   test -x \/usr\/lib\/frr\/ospf6d &amp;&amp; \\     echo ospf6d-present; \\   grep -n '^ospf6d=' \/etc\/frr\/daemons\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0414\u0435\u043b\u0430\u044e \u044d\u0442\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u043b\u043e\u0435\u043c, \u0430 \u043d\u0435 \u0432\u044b\u0440\u044b\u0432\u0430\u044e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 MPLS \u0438\u0437-\u043f\u043e\u0434 \u043d\u043e\u0433: IPv4\/LDP\/L3VPN \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u044b\u043b\u0438. \u041d\u0430 \u0448\u0435\u0441\u0442\u0438 P\/PE \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0442\u043e\u043b\u044c\u043a\u043e core-IPv6 ULA \/127, \u0432\u043a\u043b\u044e\u0447\u0430\u044e IPv6 forwarding \u0438 \u043f\u0440\u0438\u0451\u043c SRH \u043d\u0430 core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0435\u043c OSPFv3 \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0442\u0435\u043c \u043d\u0430\u0447\u043d\u0451\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c SID \u2014 \u043d\u0438\u0436\u043d\u0438\u0435 \u0441\u043b\u043e\u0438, \u043a\u0430\u043a \u0438 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"cp --update=none \\     \/etc\/netplan\/99-lab-data-plane.yaml \\     \/etc\/netplan\/99-lab-data-plane.yaml.pre-srv6; \\   printf 'bmV0d29yazoKICB2ZXJzaW9uOiAyCiAgZXRoZXJuZXRzOgogICAgZW5zNDoKICAgICAgYWRkcmVzc2VzOiBbMTAuMTAuMC4wLzMxLCBmZDEwOjEwOjA6MTo6LzEyN10KICAgIGVuczU6CiAgICAgIGFkZHJlc3NlczogWzEwLjEwLjAuMi8zMSwgZmQxMDoxMDowOjI6Oi8xMjddCg==' | \\     base64 -d &gt; \/etc\/netplan\/99-lab-data-plane.yaml; \\   printf 'bmV0LmlwdjYuY29uZi5hbGwuZm9yd2FyZGluZz0xCm5ldC5pcHY2LmNvbmYuZGVmYXVsdC5mb3J3YXJkaW5nPTEKbmV0LmlwdjYuY29uZi5lbnM0LnNlZzZfZW5hYmxlZD0xCm5ldC5pcHY2LmNvbmYuZW5zNS5zZWc2X2VuYWJsZWQ9MQo=' | \\     base64 -d &gt; \/etc\/sysctl.d\/70-srv6-lab.conf; \\   netplan apply; \\   sysctl -p \/etc\/sysctl.d\/70-srv6-lab.conf &gt;\/dev\/null; \\   ip -6 -br address show scope global; \\   echo SRV6-UNDERLAY-OK\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>IPv6 transport \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043d\u0435\u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e: PE-1, P-4 \u0438 PE-2 \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 ULA-\u0430\u0434\u0440\u0435\u0441\u0430, \u0430 \u043d\u0430 P-1\/P-2\/P-3 netplan apply \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c. \u042d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u00ab\u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430\u00bb \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442. \u0420\u0430\u0437\u0431\u0438\u0440\u0430\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0435 \u0432 runtime\/netplan, \u043f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0442\u0440\u043e\u0433\u0430\u0442\u044c OSPFv3.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"cat \/etc\/netplan\/99-lab-data-plane.yaml; \\   netplan get; \\   ip -6 address show dev ens4; \\   ip -6 address show dev ens5; \\   ip -6 address show dev ens6; \\   ls -l \/etc\/netplan; \\   networkctl status ens4 --no-pager 2&gt;&amp;1 | \\     tail -40; \\   journalctl -u systemd-networkd -b --no-pager | \\     tail -50\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0410\u0434\u0440\u0435\u0441\u0430 \u0432\u0441\u0451-\u0442\u0430\u043a\u0438 \u043d\u0430 \u043c\u0435\u0441\u0442\u0435 \u2014 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0432\u043e\u0434\u043a\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043b\u043e\u0445\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439, \u0430 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 ip -6 addr \u043d\u0430 P-1 \u044d\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b. \u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e: \u0432\u043a\u043b\u044e\u0447\u0430\u044e ospf6d \u043f\u043e \u0442\u0440\u0438 \u0443\u0437\u043b\u0430 \u0437\u0430 \u0440\u0430\u0437. \u042d\u0442\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 FRR, \u043d\u043e IPv4-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432 parallel \u0438 \u043f\u043e\u0441\u043b\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044e recovery.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"sed -i 's\/^ospf6d=no$\/ospf6d=yes\/' \/etc\/frr\/daemons; \\   systemctl restart frr; \\   sleep 2; \\   vtysh -c 'show daemons'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u0435\u0440\u043d\u0443\u043b\u0430\u0441\u044c: ospf6d \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u043b watchfrr, \u0430 \u043d\u0430 PE-1 \u0442\u0430\u043a\u0436\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u0438\u0441\u044c BGP, LDP \u0438 pathd. \u0412\u043a\u043b\u044e\u0447\u0430\u044e \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u044f\u0434\u0440\u0430, \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0432\u0435\u0434\u0451\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e OSPFv3-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438 IPv6 loopback\/locator prefixes.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  \"sed -i 's\/^ospf6d=no$\/ospf6d=yes\/' \/etc\/frr\/daemons; \\   systemctl restart frr; \\   sleep 2; \\   vtysh -c 'show daemons'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 \u0443\u0437\u043b\u0430\u0445. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0441\u0432\u043e\u0439 IPv6 locator \/64 \u043d\u0430 loopback \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e OSPFv3 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core-\u043b\u0438\u043d\u043a\u0430\u0445. \u042d\u0442\u043e \u0434\u0430\u0441\u0442 \u043e\u0431\u044b\u0447\u043d\u0443\u044e IPv6 reachability \u0434\u043e locator\u2019\u043e\u0432 \u2014 \u0431\u0435\u0437 \u043d\u0435\u0451 SRv6 SID \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u043e\u0435\u0434\u0435\u0442 \u0434\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0435\u0433\u043e function.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'configure terminal' \\         -c 'router ospf6' \\         -c 'ospf6 router-id 10.255.0.1' \\         -c 'exit' \\         -c 'interface lo' \\         -c 'ipv6 address fd10:6:0:1::1\/64' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'exit' \\         -c 'interface ens4' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'ipv6 ospf6 network point-to-point' \\         -c 'exit' \\         -c 'interface ens5' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'ipv6 ospf6 network point-to-point' \\         -c 'exit' \\         -c 'segment-routing' \\         -c 'srv6' \\         -c 'locators' \\         -c 'locator LOC-PE1' \\         -c 'prefix fd10:6:0:1::\/64 func-bits 16' \\         -c 'end' \\         -c 'write memory'; \\   vtysh -c 'show segment-routing srv6 locator'; \\   ip -6 -br addr show dev lo\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0435 locator\u2019\u044b \u0443\u0436\u0435 Up, \u0438 loopback prefix \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 FRR. \u0414\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u044e \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u044f\u0434\u0440\u0430; \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438, \u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 OSPFv3 \u0438 \u043f\u0438\u043d\u0433\u0438 locator\u2019\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u043e\u043f\u043e\u0432.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  \"vtysh -c 'configure terminal' \\         -c 'router ospf6' \\         -c 'ospf6 router-id 10.255.0.4' \\         -c 'exit' \\         -c 'interface lo' \\         -c 'ipv6 address fd10:6:0:4::1\/64' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'exit' \\         -c 'interface ens4' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'ipv6 ospf6 network point-to-point' \\         -c 'exit' \\         -c 'interface ens5' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'ipv6 ospf6 network point-to-point' \\         -c 'exit' \\         -c 'interface ens6' \\         -c 'ipv6 ospf6 area 0.0.0.0' \\         -c 'ipv6 ospf6 network point-to-point' \\         -c 'exit' \\         -c 'segment-routing' \\         -c 'srv6' \\         -c 'locators' \\         -c 'locator LOC-P3' \\         -c 'prefix fd10:6:0:4::\/64 func-bits 16' \\         -c 'end' \\         -c 'write memory'; \\   vtysh -c 'show segment-routing srv6 locator'; \\   ip -6 -br addr show dev lo\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>IPv6 underlay \u0441\u043e\u0431\u0440\u0430\u043d \u043d\u0430 \u0432\u0441\u0435\u0445 \u0448\u0435\u0441\u0442\u0438 P\/PE. \u0421\u0435\u0439\u0447\u0430\u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430: PE-1 \u0434\u043e\u043b\u0436\u0435\u043d \u0443\u0432\u0438\u0434\u0435\u0442\u044c OSPFv3-neighbor\u2019\u043e\u0432 \u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043a locator PE-2. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u0442, SRH \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c \u0431\u0435\u0437 \u0434\u043e\u0440\u043e\u0433\u0438.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'show ipv6 ospf6 neighbor'; \\   vtysh -c 'show ipv6 route fd10:6:0:6::\/64'; \\   ip -6 route get fd10:6:0:6::1; \\   ping -6 -c 2 -W 1 fd10:6:0:6::1; \\   vtysh -c 'show segment-routing srv6 locator LOC-PE1 detail'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>OSPFv3 control plane \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u2014 PE-1 \u0437\u043d\u0430\u0435\u0442 locator PE-2 \u043f\u043e \u0434\u0432\u0443\u043c ECMP-\u0432\u0435\u0442\u043a\u0430\u043c. \u041d\u043e IPv6 ping \u0434\u043e \u043d\u0435\u0433\u043e \u043d\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f. \u0417\u043d\u0430\u0447\u0438\u0442, \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043a SID: \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0435\u0441\u0442\u044c, \u0430 forwarding \u0435\u0449\u0451 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u0434\u0435\u043b\u044f\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441\u043e\u0441\u0435\u0434\u043d\u0435\u0433\u043e \u043b\u0438\u043d\u043a\u0430 \u043e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ping -6 -c 1 -W 1 fd10:10:0:1::1; \\   ping -6 -c 1 -W 1 fd10:10:0:2::1; \\   sysctl \\     net.ipv6.conf.all.forwarding \\     net.ipv6.conf.ens4.forwarding \\     net.ipv6.conf.ens5.forwarding; \\   ip -6 neigh show dev ens4; \\   ip -6 neigh show dev ens5\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0448\u043b\u0438 \u043c\u0435\u0441\u0442\u043e, \u0433\u0434\u0435 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u043e\u0448\u043b\u043e\u0441\u044c \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e: \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 OSPFv3 \u0435\u0441\u0442\u044c, \u043d\u043e IPv6 forwarding \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 0. \u0417\u043d\u0430\u0447\u0438\u0442, \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0447\u0435\u0441\u0442\u043d\u043e \u043d\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0442, \u0438 ping \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0443\u043c\u0438\u0440\u0430\u0435\u0442. \u041f\u043e\u0445\u043e\u0436\u0435, networkd\/\u043f\u0435\u0440\u0435\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0430 \u0440\u0430\u043d\u043d\u0438\u0439 sysctl; \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u043d\u0435\u0442 \u043b\u0438 \u044f\u0432\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u0435\u0442\u0430 \u0432 FRR, \u0430 \u0437\u0430\u0442\u0435\u043c \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e forwarding \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c \u043f\u043e\u0441\u043b\u0435 network-online.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"cat \/etc\/sysctl.d\/70-srv6-lab.conf; \\   vtysh -c 'show running-config' | \\     grep -in forwarding; \\   grep -RIn 'forwarding' \\     \/run\/systemd\/network\/10-netplan-ens4.network \\     \/run\/systemd\/network\/10-netplan-ens5.network \\     \/etc\/netplan 2&gt;\/dev\/null; \\   sysctl -w net.ipv6.conf.all.forwarding=1; \\   sysctl -w net.ipv6.conf.default.forwarding=1; \\   sysctl \\     net.ipv6.conf.all.forwarding \\     net.ipv6.conf.ens4.forwarding \\     net.ipv6.conf.ens5.forwarding\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439, \u043d\u0435 \u0437\u0430\u0433\u0430\u0434\u043e\u0447\u043d\u043e\u0439: \u0432 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u043c FRR \u0431\u044b\u043b no ipv6 forwarding. \u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Zebra \u043e\u043d \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b kernel sysctl \u0432 \u043d\u043e\u043b\u044c, \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u044f \u043d\u0430\u0448 sysctl-\u0444\u0430\u0439\u043b. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e \u044d\u0442\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u2014 \u0432\u043a\u043b\u044e\u0447\u0430\u044e ipv6 forwarding \u0432 FRR \u043d\u0430 \u0432\u0441\u0435\u0445 P\/PE \u0438 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044e underlay-\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'configure terminal' \\         -c 'ipv6 forwarding' \\         -c 'end' \\         -c 'write memory'; \\   sysctl -n net.ipv6.conf.all.forwarding\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Forwarding \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u0432 \u0442\u043e\u043c \u0436\u0435 FRR-\u043a\u043e\u043d\u0444\u0438\u0433\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u043d\u044c\u0448\u0435 \u0435\u0433\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u043b. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0436\u0435 \u0442\u0435\u0441\u0442 \u0434\u043e locator PE-2: \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442, IPv6 foundation \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u043c\u043e\u0436\u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u043c \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c programming SIDs.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ping -6 -c 3 -W 1 fd10:6:0:6::1; \\   traceroute -6 -n -m 8 -q 1 -w 1 fd10:6:0:6::1; \\   sysctl -n net.ipv6.conf.all.forwarding\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>IPv6 underlay \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0436\u0438\u0432: PE-1 \u043f\u0438\u043d\u0433\u0443\u0435\u0442 locator PE-2 3\/3. traceroute \u043d\u0430 \u043e\u0431\u0440\u0430\u0437\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u2014 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0438 ping \u0443\u0436\u0435 \u0435\u0441\u0442\u044c. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u044e, \u043a\u0430\u043a\u0438\u0435 default End SID Zebra \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u043b\u0430 \u0438\u0437 locator\u2019\u043e\u0432 \u043d\u0430 P-3 \u0438 PE-2; \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u0442\u043e\u0447\u043d\u044b\u0439 SRH, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0435\u0440\u0451\u043c \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u043e\u0439 service-chain.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  \"vtysh -c 'show segment-routing srv6 sid'; \\   ip -6 route show table local | \\     grep fd10; \\   sysctl -n net.ipv6.conf.ens4.seg6_enabled; \\   ip -6 route get fd10:6:0:6::1\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>FRR 8.4 \u0443\u043c\u0435\u0435\u0442 locator\u2019\u044b, \u043d\u043e \u043d\u0435 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u043c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 service functions \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438: show \u2026 sid \u0432 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442, \u0430 \u0432 kernel \u043d\u0435\u0442 seg6local entries. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 endpoints \u0437\u0430\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u0443\u044e \u044f\u0432\u043d\u043e \u0432 Linux \u2014 \u044d\u0442\u043e \u043d\u0435 \u043e\u0431\u0445\u043e\u0434, \u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f SRv6 network programming: End \u043d\u0430 P-1\/P-3 \u0438 End.DT4 \u043d\u0430 PE-2, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043d\u0438\u043c\u0435\u0442 IPv6\/SRH \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 IPv4 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 VRF RED.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"ip -6 route replace fd10:6:0:2:1::\/128 \\     encap seg6local action End dev lo; \\   ip -6 route show fd10:6:0:2:1::\/128; \\   sysctl -n net.ipv6.conf.ens4.seg6_enabled\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Endpoint\u2019\u044b \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e: \u043d\u0430 PE-2 \u0432\u0438\u0434\u0435\u043d \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 End.DT4 vrftable 1001, \u0430 strict_mode=1 \u0432\u043a\u043b\u044e\u0447\u0451\u043d, \u043a\u0430\u043a \u0442\u0440\u0435\u0431\u0443\u0435\u0442 Linux \u0434\u043b\u044f VRF lookup. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u043d\u0430 PE-1 \u043e\u0434\u0438\u043d \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 static route \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0439 RED \/31: \u043e\u043d \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 IPv4 \u0432 SRH \u0441 \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430\u043c\u0438 P-1 \u2192 P-3 \u2192 PE-2. MPLS BGP-\u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043a\u0430\u043a fallback.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route replace 10.10.0.22\/31 \\     table 1001 metric 10 \\     encap seg6 mode encap \\     segs fd10:6:0:2:1::,fd10:6:0:4:1::,fd10:6:0:6:100:: \\     dev ens4; \\   ip route show table 1001 10.10.0.22\/31; \\   ip route get 10.10.0.22 vrf RED; \\   ip vrf exec RED ping -c 2 -W 2 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 SRv6 service delivery \u043d\u0435 \u0432\u0437\u043b\u0435\u0442\u0435\u043b\u0430: route \u043d\u0430 PE-1 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043d\u043e echo reply \u043d\u0435\u0442. \u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u043f\u043e\u0432\u043e\u0434 \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433 \u043d\u0430\u0443\u0433\u0430\u0434. \u0421\u043d\u0438\u043c\u0443 SRH \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 P-1: \u0443\u0437\u043d\u0430\u0435\u043c, \u0432 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 Linux \u043f\u043e\u043b\u043e\u0436\u0438\u043b \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u044b \u0438 \u0434\u043e\u0448\u0451\u043b \u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e End.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"timeout 60 tcpdump -nn -vv -c 1 \\     -i ens4 \\     'ip6 and (host fd10:6:0:2:1:: or host fd10:6:0:4:1:: or host fd10:6:0:6:100::)'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>SRH \u043d\u0430 P-1 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u043c: outer DA \u2014 P-1 SID, segleft=2, \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 P-1 \u2192 P-3 \u2192 PE-2. \u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0435\u0440\u0432\u044b\u0439 End \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b. \u041d\u043e capture \u043d\u0430\u0448\u0451\u043b \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0443\u044e \u043f\u0440\u0438\u0447\u0438\u043d\u0443: inner IPv4 source \u0441\u0442\u0430\u043b 0.0.0.0. Static route \u0432 VRF \u043d\u0435 \u0432\u044b\u0431\u0440\u0430\u043b source \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u044f\u0432\u043d\u044b\u0439 src 10.10.0.17; \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 MPLS-\u043f\u0443\u0442\u044c \u0441\u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c echo reply.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route replace 10.10.0.22\/31 \\     table 1001 metric 10 \\     src 10.10.0.17 \\     encap seg6 mode encap \\     segs fd10:6:0:2:1::,fd10:6:0:4:1::,fd10:6:0:6:100:: \\     dev ens4; \\   ip route get 10.10.0.22 vrf RED; \\   ip vrf exec RED ping -c 3 -W 2 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u0437\u0430\u0434\u0430\u0442\u044c PE access-IP \u043a\u0430\u043a prefsrc \u0437\u0430\u043a\u043e\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u043e\u0442\u0432\u0435\u0440\u0433\u043d\u0443\u0442\u0430: \u0434\u043b\u044f route \u0441 egress ens4 \u044f\u0434\u0440\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 10.10.0.17 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u043c source. \u042d\u0442\u043e \u043d\u0435 \u043b\u043e\u043c\u0430\u0435\u0442 \u043d\u0430\u0448 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439: \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0443\u0436\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 PE-1 \u0441 source RED-PC-1 (10.10.0.16) \u0438 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u044f\u0446\u0438\u044f \u0435\u0433\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u043e\u0442 \u0442\u0440\u0430\u0444\u0438\u043a, \u0440\u0430\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0441\u0442\u0440\u043e\u0438\u043c \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 \u043d\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 ping \u0441\u0430\u043c\u043e\u0433\u043e PE.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  \"ip route get 10.10.0.22; \\   ping -c 3 -W 2 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0430\u043a\u0435\u0442 \u043e\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e RED-PC \u0442\u043e\u0436\u0435 \u043d\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, source \u0431\u044b\u043b \u043b\u0438\u0448\u044c \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438: P-3. \u0415\u0441\u043b\u0438 \u043e\u043d \u0443\u0432\u0438\u0434\u0438\u0442 SRH \u0441 \u0443\u0436\u0435 \u0441\u043d\u044f\u0442\u044b\u043c P-1 SID, P-1 End \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442; \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 local SID.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  \"timeout 60 tcpdump -nn -vv -c 1 \\     -i ens4 \\     'ip6 and (host fd10:6:0:4:1:: or host fd10:6:0:6:100::)'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u043e\u0447\u043d\u0430\u044f: P-3 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0443\u0432\u0438\u0434\u0435\u043b, \u0437\u043d\u0430\u0447\u0438\u0442 P-1 \u043d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b End. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u2014 locator \/64 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0432 local table \u043a\u0430\u043a anycast route, \u0430 \u043d\u0430\u0448 \/128 \u0431\u044b\u043b \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0432 main \u0438 \u0434\u043e \u043d\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u043b lookup. \u041f\u0435\u0440\u0435\u043d\u043e\u0448\u0443 SID functions \u0432 table local, \u0433\u0434\u0435 \/128 \u043f\u043e\u0431\u0435\u0434\u0438\u0442 locator \/64; \u044d\u0442\u043e \u0432\u0430\u0436\u043d\u0430\u044f, \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f Linux-\u0434\u0435\u0442\u0430\u043b\u044c, \u0430 \u043d\u0435 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u0442\u0435\u043d\u0434\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"ip -6 route replace fd10:6:0:2:1::\/128 \\     table local \\     encap seg6local action End \\     dev lo; \\   ip -6 route show table local fd10:6:0:2:1::\/128; \\   ip -6 route get fd10:6:0:2:1::\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \/128 SID \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0438\u0433\u0440\u044b\u0432\u0430\u0435\u0442 lookup \u0432 table local; PE-2 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 End.DT4 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e service ping. \u0415\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u043e\u0439\u0434\u0451\u0442, \u0437\u0430\u0442\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0439\u043c\u0430\u0435\u043c SRH \u043d\u0430 P-1 \u0438 P-3 \u0443\u0436\u0435 \u043a\u0430\u043a final dataplane evidence.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  \"ping -c 3 -W 2 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0430\u043b\u043e \u0445\u0443\u0436\u0435, \u043d\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0432\u043d\u0435\u0435: RED-PC \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 immediate Destination Host Unreachable. \u0417\u043d\u0430\u0447\u0438\u0442, \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f SID lookup \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f, \u043e\u0434\u043d\u0430\u043a\u043e \u0433\u0434\u0435-\u0442\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c function \u043f\u0430\u043a\u0435\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u043f\u0443\u0442\u044c. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0434\u0432\u0435 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u044b \u0431\u0435\u0437 \u043d\u043e\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439: \u0435\u0441\u0442\u044c \u043b\u0438 \u0443 P-1 IPv6 route \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 SID \u0438 \u043a\u0430\u043a\u043e\u0439 \u0438\u043c\u0435\u043d\u043d\u043e local-route \u043f\u043e\u0431\u0435\u0436\u0434\u0430\u0435\u0442 \u0434\u043b\u044f \u0435\u0433\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e SID.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"ip -6 route get fd10:6:0:4:1::; \\   ip -6 route get fd10:6:0:2:1::; \\   ip -6 route show table local | \\     grep 'fd10:6:0:2'; \\   ip -6 -s route show table local fd10:6:0:2:1::\/128; \\   sysctl \\     net.ipv6.conf.all.forwarding \\     net.ipv6.conf.ens5.forwarding \\     net.ipv6.conf.ens4.seg6_enabled; \\   vtysh -c 'show ipv6 route fd10:6:0:4::\/64'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e \u201cencap seg6local action End dev lo\u201d Linux SRv6<\/p>\n<\/blockquote>\n<p>\u041d\u0430\u0448\u0451\u043b \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u043d\u044e\u0430\u043d\u0441 Linux dataplane: \u0434\u043b\u044f seg6local \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 non-loopback device; \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 lo, \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0445\u043e\u0436\u0435 \u0434\u0430\u0451\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 ICMP unreachable. \u041c\u0435\u043d\u044f\u044e End functions P-1\/P-3 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0445\u043e\u0434\u043d\u044b\u0435 core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b (ens4). End.DT4 \u043d\u0430 PE-2 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043a VRF RED \u2014 \u0442\u0430\u043c \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 device \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"ip -6 route replace fd10:6:0:2:1::\/128 \\     table local \\     encap seg6local action End \\     dev ens4; \\   ip -6 route show table local fd10:6:0:2:1::\/128\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>End \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u0434\u0432\u0443\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u043b\u0430\u0434\u0435\u043d\u0438\u044f locator\u2019\u043e\u043c: FRR 8.4 \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 table local broad anycast \/64, \u0430 \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0432\u0435\u0441\u0438\u0442\u044c Linux seg6local functions \u0432\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u0436\u0435 \/64. \u0414\u043b\u044f \u0440\u0443\u0447\u043d\u043e\u0433\u043e SRv6 programming \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e\u0435 \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u043e. \u0423\u0431\u0435\u0440\u0443 locator ownership FRR \u043d\u0430 \u0442\u0440\u0451\u0445 \u0443\u0437\u043b\u0430\u0445 \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438, \u043d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044e IPv6 \/64 \u043d\u0430 loopback \u0438 OSPFv3 advertisement \u2014 SID block \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c\u044b\u043c, \u0437\u0430\u0442\u043e \/128 \u0441\u043c\u043e\u0436\u0435\u0442 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c kernel.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"vtysh -c 'configure terminal' \\         -c 'segment-routing' \\         -c 'srv6' \\         -c 'locators' \\         -c 'no locator LOC-P1' \\         -c 'end' \\         -c 'write memory'; \\   ip -6 route del fd10:6:0:2:1::\/128 table local 2&gt;\/dev\/null || true; \\   ip -6 route replace fd10:6:0:2:1::\/128 \\     encap seg6local action End \\     dev ens4; \\   ip -6 route show fd10:6:0:2:1::\/128; \\   ip -6 route show table local | \\     grep 'fd10:6' || true\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0445\u043e\u0436\u0435, \u043a\u043e\u0440\u0435\u043d\u044c \u043d\u0435 \u0432 End, \u0430 \u0432 \u043d\u0430\u0448\u0435\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 locator\u2019\u0430: \u0430\u0434\u0440\u0435\u0441 \/64 \u043d\u0430 loopback \u0441\u043e\u0437\u0434\u0430\u0451\u0442 kernel anycast local route \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u0414\u043b\u044f Linux SRv6 \u044d\u0442\u043e \u043c\u0435\u0448\u0430\u0435\u0442 \u0442\u0438\u043f\u043e\u0432\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 localsid table + rule. \u041f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e locator reachability \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u0435: OSPFv3 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0442\u044c static \/64 \u0447\u0435\u0440\u0435\u0437 Null0, \u0430 \u0441\u0430\u043c\u0438 SID \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u043d\u0435 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 localsid.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"vtysh -c 'configure terminal' \\         -c 'ipv6 route fd10:6:0:2::\/64 Null0' \\         -c 'router ospf6' \\         -c 'redistribute static' \\         -c 'exit' \\         -c 'interface lo' \\         -c 'no ipv6 address fd10:6:0:2::1\/64' \\         -c 'end' \\         -c 'write memory'; \\   ip -6 route del fd10:6:0:2:1::\/128 table local 2&gt;\/dev\/null || true; \\   ip -6 route del fd10:6:0:2:1::\/128 2&gt;\/dev\/null || true; \\   ip -6 rule del priority 999 2&gt;\/dev\/null || true; \\   ip -6 rule add \\     to fd10:6:0:2::\/64 \\     lookup 200 \\     priority 999; \\   ip -6 route replace fd10:6:0:2:1::\/128 \\     table 200 \\     encap seg6local action End \\     dev ens4; \\   ip -6 rule show | \\     grep 999; \\   ip -6 route show table 200\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u043a\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430: \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u0443\u0436\u043d\u043e\u043c \u0443\u0437\u043b\u0435 \u0435\u0441\u0442\u044c rule priority 999 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e table 200 \u0438 SID function \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0451. \u042d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 kernel selftests \u0434\u043b\u044f SRv6 L3VPN. \u0416\u0434\u0443 \u043a\u043e\u0440\u043e\u0442\u043a\u0443\u044e OSPFv3-\u0441\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e, \u0447\u0442\u043e PE-1 \u0432\u0438\u0434\u0438\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 loopback address, \u0430 locator prefix route \u043a \u043a\u0430\u0436\u0434\u043e\u043c\u0443 SID.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"sleep 5; \\   vtysh -c 'show ipv6 route fd10:6:0:2::\/64'; \\   vtysh -c 'show ipv6 route fd10:6:0:4::\/64'; \\   vtysh -c 'show ipv6 route fd10:6:0:6::\/64'; \\   ip -6 route get fd10:6:0:2:1::; \\   ip -6 route get fd10:6:0:4:1::; \\   ip -6 route get fd10:6:0:6:100::\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>OSPF locator routes \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u043d\u043e RED-PC \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 unreachable. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u043d\u0435 \u0433\u0430\u0434\u0430\u0442\u044c, \u0432\u044b\u0448\u0435\u043b \u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 PE-1 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u043a\u0438 localsid. \u0421\u043d\u0438\u043c\u0430\u044e \u043e\u0434\u0438\u043d SRH \u043d\u0430 P-1; \u044d\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442 ingress-\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 End.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"timeout 60 tcpdump -nn -vv -c 1 \\     -i ens4 \\     'ip6 and host fd10:6:0:2:1::'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Capture \u043f\u043e\u043a\u0430\u0437\u0430\u043b: \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u043a\u0438 packet \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u043e\u043a\u0438\u0434\u0430\u0435\u0442 PE-1. \u0417\u043d\u0430\u0447\u0438\u0442, SID functions \u0442\u0443\u0442 \u043d\u0438 \u043f\u0440\u0438 \u0447\u0451\u043c. \u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043b \u0432\u0430\u0436\u043d\u0443\u044e \u0434\u0435\u0442\u0430\u043b\u044c kernel selftest: SRv6 encap, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0432 VRF table, \u0434\u0435\u043b\u0430\u0435\u0442 outer IPv6 lookup \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 VRF. \u0423 RED \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e SID P-1, \u0445\u043e\u0442\u044f \u043e\u043d \u0435\u0441\u0442\u044c \u0432 global OSPF table. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u044d\u0442\u043e\u0442 underlay route \u0432 table 1001 \u2014 \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u0443\u0441\u043e\u043a \u043c\u0435\u0436\u0434\u0443 VRF \u0438 SRv6 transport.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -6 route replace fd10:6:0:2::\/64 \\     table 1001 \\     via fd10:10:0:1::1 \\     dev ens4 \\     onlink; \\   ip -6 route get fd10:6:0:2:1:: vrf RED; \\   ip -6 route show table 1001 fd10:6:0:2::\/64\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>VRF \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u043c\u0435\u0435\u0442 lookup \u0434\u043e P-1 SID, \u043d\u043e ping \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f. \u0415\u0449\u0451 \u0440\u0430\u0437 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0445\u043e\u0434 \u043d\u0430 P-1 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u2014 \u044d\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 ingress before deciding whether the remaining issue is SRv6 local processing or VRF policy.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"timeout 45 tcpdump -nn -vv -c 1 \\     -i ens4 \\     'ip6 and host fd10:6:0:2:1::'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u043e\u0432\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0441\u043d\u0430: \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435 \u0432 SRH \u2014 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 VRF RED \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 core. \u042d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0435\u0439 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0439 \u0441\u0445\u0435\u043c\u044b: Linux \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c outer lookup \u0432 L3mdev\/VRF context, \u0430 transport-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 default VRF. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u0434\u0435\u0440\u0436\u0430\u0442\u044c RED \u0441\u0435\u0440\u0432\u0438\u0441 \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u044b\u043c \u0440\u0430\u0434\u0438 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430: \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e MPLS BGP route \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0443\u0442\u044c, \u0430 SRv6 dataplane \u0434\u043e\u043a\u0430\u0436\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c IPv6 flow \u0432 global table. \u042d\u0442\u043e \u0447\u0435\u0441\u0442\u043d\u0435\u0435, \u0447\u0435\u043c \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 hybrid \u0437\u0430 SRv6 L3VPN.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<p>MPLS \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0435 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043e\u0442 \u043c\u044f\u0433\u043a\u043e\u0433\u043e refresh: BGP \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043b Zebra, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0435\u0433\u043e RIB \u043d\u0435 \u0441\u0447\u0451\u043b path \u0438\u0437\u043c\u0435\u043d\u0438\u0432\u0448\u0438\u043c\u0441\u044f. \u042d\u0442\u043e \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u043d\u0430\u0448\u0435\u0433\u043e kernel override, \u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f VPN route. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u0442\u043e\u043b\u044c\u043a\u043e MP-BGP session PE-1\u2194PE-2 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u2014 control plane \u0443\u0436\u0435 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e \u0443\u043c\u0435\u0435\u0442 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0442\u0430\u043a\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route del 10.10.0.22\/31 \\     table 1001 \\     metric 10 2&gt;\/dev\/null || true; \\   ip -6 route del fd10:6:0:2::\/64 \\     table 1001 2&gt;\/dev\/null || true; \\   ip route get 10.10.0.22 vrf RED\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>BGP session \u043f\u043e\u0434\u043d\u044f\u043b\u0430\u0441\u044c, \u043d\u043e PE-2 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0451 \u043d\u0435 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442 VPN prefixes \u2014 \u044d\u0442\u043e \u0443\u0436\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 control-plane side effect, \u0430 \u043d\u0435 SRv6 data-plane. \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e \u0441\u0442\u0435\u043d\u0434 \u0432 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0430\u043c\u044b\u043c \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c: \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e FRR \u043d\u0430 PE-2, \u0437\u0430\u0442\u0435\u043c \u0436\u0434\u0443 MP-BGP routes \u043d\u0430 PE-1.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"systemctl restart frr; \\   sleep 5; \\   vtysh -c 'show bgp ipv4 vpn summary'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>MP-BGP \u0441\u0435\u0441\u0441\u0438\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0430\u0441\u044c, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0440\u0443\u0447\u043d\u043e\u0433\u043e kernel override \u0435\u0439 \u0432\u0441\u0451 \u0435\u0449\u0451 \u043d\u0435\u0447\u0435\u0433\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 VPN RIB. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044e \u0431\u0435\u0437 RED-\u0441\u0435\u0440\u0432\u0438\u0441\u0430, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0439 forwarding-\u0441\u0442\u0435\u043a \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 (16004\/16006\/144 via P-1); control-plane reconciliation \u0437\u0430\u0442\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u043d\u0435 \u043f\u043e\u0434 \u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u043e\u043c\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route replace 10.10.0.22\/31 \\     table 1001 \\     metric 20 \\     encap mpls 16004\/16006\/144 \\     via 10.10.0.1 \\     dev ens4; \\   ip route get 10.10.0.22 vrf RED; \\   ip vrf exec RED ping -c 1 -W 2 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MPLS \u0441\u0442\u0435\u043a \u0442\u043e\u0436\u0435 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b: \u0437\u043d\u0430\u0447\u0438\u0442, \u043f\u043e\u0441\u043b\u0435 restart PE-2 \u043f\u0440\u043e\u043f\u0430\u043b \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e VPN advertisement, \u043d\u043e \u0438 egress service state\/label resolution. \u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0448\u0442\u0430\u0442\u043d\u044b\u0439 lab-vrf.service \u043f\u0435\u0440\u0435\u0434 FRR \u043d\u0430 PE-2, \u0442\u043e \u0435\u0441\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u043c VRF \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0441\u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"systemctl restart lab-vrf.service; \\   systemctl restart frr; \\   sleep 5; \\   ip -br addr show ens7; \\   ip -br addr show ens6; \\   vtysh -c 'show bgp vrf RED ipv4 unicast'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>SRv6-\u044d\u0442\u0430\u043f \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0435\u0435, \u0447\u0435\u043c \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b: IPv6 underlay \u0438 OSPFv3 \u043f\u043e\u0434\u043d\u044f\u043b\u0438\u0441\u044c, locator-\u043f\u0440\u0435\u0444\u0438\u043a\u0441\u044b \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f, \u0430 Linux \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 seg6local \u0438 End.DT4. \u041d\u043e \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 IPv4-over-SRv6 \u043f\u0443\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 VRF RED \u0443\u043f\u0451\u0440\u0441\u044f \u0432 L3mdev\/VRF outer lookup \u2014 \u044d\u0442\u043e \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f L3VPN. \u0417\u0430\u043e\u0434\u043d\u043e \u0432\u0441\u043a\u0440\u044b\u043b\u0438 \u0434\u0432\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u044e\u0430\u043d\u0441\u0430 Linux SRv6:<\/p>\n<ul>\n<li>\n<p>no ipv6 forwarding \u0438\u0437 FRR \u043f\u0435\u0440\u0435\u0442\u0438\u0440\u0430\u043b sysctl \u0438 \u043b\u043e\u043c\u0430\u043b \u0442\u0440\u0430\u043d\u0437\u0438\u0442;<\/p>\n<\/li>\n<li>\n<p>locator \/64 \u0438 \u0440\u0443\u0447\u043d\u044b\u0435 SID \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 localsid table\/rule, \u0438\u043d\u0430\u0447\u0435 kernel lookup \u043b\u043e\u0432\u0438\u0442 broad local route \u0440\u0430\u043d\u044c\u0448\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u042f \u0432\u0435\u0440\u043d\u0443\u043b \u0448\u0442\u0430\u0442\u043d\u044b\u0435 RED-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043d\u0430 PE-2; \u0435\u0433\u043e VRF BGP \u0441\u043d\u043e\u0432\u0430 \u0432\u0438\u0434\u0438\u0442 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 10.10.0.22\/31. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\u043c \u044f \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0434\u043e\u0432\u0435\u0434\u0443 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 MP-BGP \u043d\u0430 PE-1 \u0438 \u043e\u0444\u043e\u0440\u043c\u043b\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443: \u0437\u0430\u0447\u0435\u043c SRv6 \u043d\u0443\u0436\u0435\u043d, \u0447\u0435\u043c SR-MPLS \u0445\u043e\u0440\u043e\u0448, \u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 SRv6 L3VPN \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d \u043f\u0440\u0435\u0440\u0432\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u043c\u0435\u043d\u044f \u043d\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0441\u044f \u043f\u044f\u0442\u0438\u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043b\u0438\u043c\u0438\u0442 \u0442\u043e\u043a\u0435\u043d\u0432 (\u0434\u0430, \u0435\u0441\u0442\u044c \u043b\u0438\u043c\u0438\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0437\u0430 \u0431\u0430\u0431\u043a\u0438), \u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0435\u043c\u0443 \u043d\u0430\u0434\u043e\u0435\u043b\u043e. \u041d\u0435 \u0441\u0443\u0442\u044c, \u043f\u0443\u0441\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af2\/d13\/2c1\/af2d132c1ab9f419be2d0018d034c6fe.png\" alt=\"alt text\" width=\"939\" height=\"285\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/af2\/d13\/2c1\/af2d132c1ab9f419be2d0018d034c6fe.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/af2\/d13\/2c1\/af2d132c1ab9f419be2d0018d034c6fe.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u043b \u0434\u0443\u043c\u0430\u0442\u044c \u0435\u0449\u0451 32 \u043c\u0438\u043d 20 \u0441, \u0440\u043e\u0434\u0438\u043b \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/386\/ede\/2ee\/386ede2ee1c8b0c50aa6d3c393e3f354.png\" alt=\"alt text\" width=\"1552\" height=\"674\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/386\/ede\/2ee\/386ede2ee1c8b0c50aa6d3c393e3f354.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/386\/ede\/2ee\/386ede2ee1c8b0c50aa6d3c393e3f354.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<details class=\"spoiler\">\n<summary>\u0412\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0443\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e SRv6-\u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0432\u0430<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u0432\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0434\u0435\u043b\u0430: \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0448\u0442\u0430\u0442\u043d\u044b\u0439 MPLS L3VPN \u043f\u043e\u0441\u043b\u0435 \u0432\u0447\u0435\u0440\u0430\u0448\u043d\u0435\u0433\u043e \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u0438 \u0434\u043e\u0432\u0435\u0441\u0442\u0438 SRv6 \u0434\u043e \u0447\u0435\u0441\u0442\u043d\u043e\u0433\u043e, \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e dataplane-demo \u0431\u0435\u0437 \u043f\u0440\u0438\u0442\u0432\u043e\u0440\u0441\u0442\u0432\u0430, \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u043e\u043b\u043d\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f VPN. \u0415\u0449\u0451 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0441\u0445\u0435\u043c\u0443 \u0432 \u0437\u0430\u043c\u0435\u0442\u043a\u0443; \u0434\u043b\u044f \u043d\u0435\u0451 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043d\u0430\u0432\u044b\u043a \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u0430\u044e \u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430.<\/p>\n<blockquote>\n<p>\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0436\u0430\u0442<\/p>\n<\/blockquote>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0435\u0440\u043d\u0443 \u0441\u0442\u0435\u043d\u0434 \u0432 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435: SRv6-\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 L3VPN \u0432 \u043f\u043e\u0434\u0432\u0435\u0448\u0435\u043d\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438. \u0417\u0430\u0442\u0435\u043c \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e \u0447\u0435\u0441\u0442\u043d\u044b\u0439 SRv6-\u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0447\u0438\u0442\u0430\u0435\u043c\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0431\u0435\u0437 management-\u0441\u0435\u0442\u0438.<\/p>\n<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"hostname; \\   vtysh -c 'show bgp summary' \\         -c 'show bgp ipv4 vpn' \\         -c 'show bgp vrf RED ipv4 unicast' \\         -c 'show running-config' | \\     sed -n '\/^router bgp\/,\/^!\/p'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0425\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c: VPN-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0443\u0436\u0435 \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0435\u0445\u0430\u043b\u0438 \u0441 PE-2 \u043d\u0430 PE-1. \u041e\u0441\u0442\u0430\u043b\u0441\u044f \u043e\u0434\u0438\u043d \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u043c\u043e\u0435\u0439 \u0441\u0442\u0440\u0430\u0445\u043e\u0432\u043a\u0438 \u2014 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MPLS-\u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u043b BGP-\u0437\u0430\u043f\u0438\u0441\u044c \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438. \u0423\u0431\u0435\u0440\u0443 \u0435\u0433\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0442\u0440\u0430\u0444\u0438\u043a \u043e\u0442 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0433\u043e RED-PC, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u044b.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route del 10.10.0.22\/31 \\     table 1001 \\     metric 20 || true; \\   vtysh -c 'clear bgp ipv4 vpn 10.255.0.6 soft out' \\         -c 'clear bgp ipv4 vpn 10.255.0.6 soft in'; \\   sleep 2; \\   ip -4 route show table 1001; \\   vtysh -c 'show bgp vrf RED ipv4 unicast'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0430 PE-1 \u0432\u0435\u0440\u043d\u0443\u043b\u0441\u044f \u043f\u043e\u0434 BGP, \u043d\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 ping \u0432\u0441\u0451 \u0435\u0449\u0451 \u043f\u0430\u0434\u0430\u0435\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 VPN RIB: \u0431\u0443\u0434\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e transport dataplane \u2014 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043b\u0438 \u043d\u0430 PE-2 \u0432\u0445\u043e\u0434\u044f\u0449\u0430\u044f VPN-\u043c\u0435\u0442\u043a\u0430 80 \u0438 \u043a\u0430\u043a \u0435\u0451 \u043f\u0440\u043e\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u044e\u0442 \u0442\u0440\u0430\u043d\u0437\u0438\u0442\u043d\u044b\u0435 P. \u042d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439, \u0433\u0434\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0439 BGP-\u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u043d\u043e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"hostname; \\   vtysh -c 'show mpls table' | \\     grep -E '(^Local| 80 |16004|16006|10\\\\.255\\\\.0\\\\.6|10\\\\.10\\\\.0\\\\.22)' || true; \\   ip -f mpls route show | \\     grep -E '(^80|16004|16006)' || true; \\   sysctl -n net.mpls.conf.ens4.input 2&gt;\/dev\/null; \\   sysctl -n net.mpls.conf.ens5.input 2&gt;\/dev\/null; \\   sysctl -n net.mpls.conf.ens6.input 2&gt;\/dev\/null\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0448\u043b\u0430\u0441\u044c: \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043d\u0430 PE-2 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u2014 PE-1 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 \/31 \u0432 VPNv4. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 PE-1 \u0438\u0441\u0447\u0435\u0437\u043b\u0438 \u0438\u0437 \u0435\u0433\u043e VRF\/BGP (\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, VRF \u0438 daemon). \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u043d\u0451\u043c export, MPLS-\u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442 \u0443\u0436\u0435 \u0433\u043e\u0442\u043e\u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u043e\u0431\u0440\u0430\u0442\u043d\u043e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -br -4 addr show ens6 ens7 RED BLUE; \\   ip -d link show RED; \\   ip -d link show BLUE; \\   ip -4 route show table 1001; \\   ip -4 route show table 1002; \\   systemctl is-active lab-vrf.service; \\   systemctl status lab-vrf.service --no-pager -n 12; \\   vtysh -c 'show bgp vrf RED ipv4 unicast' \\         -c 'show bgp vrf BLUE ipv4 unicast' \\         -c 'show bgp ipv4 vpn'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430\u0448\u0451\u043b \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u043f\u0440\u0438\u0447\u0438\u043d\u0443: IPv6 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0441\u044f \u0447\u0435\u0440\u0435\u0437 netplan apply, \u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f IPv4-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u043b\u0430\u0441\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c VRF-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. Netplan \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0431\u0440\u043e\u0441\u0438\u043b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 ens6\/ens7, \u0430 \u0441\u0435\u0440\u0432\u0438\u0441 VRF \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 boot. \u041b\u0438\u043d\u043a \u0432 VRF \u043e\u0441\u0442\u0430\u043b\u0441\u044f, \u043d\u043e \u0431\u0435\u0437 IP \u2014 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 BGP \u043d\u0435\u0447\u0435\u0433\u043e \u0431\u044b\u043b\u043e \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0443 \u0448\u0442\u0430\u0442\u043d\u044b\u0439 lab-VRF-\u0441\u043a\u0440\u0438\u043f\u0442 \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u043e\u0431\u044a\u044f\u0432\u043b\u044e \u0441\u0435\u0442\u0438 BGP.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"\/usr\/local\/sbin\/lab-vrf-setup; \\   vtysh -c 'clear bgp vrf RED ipv4 unicast *' \\         -c 'clear bgp vrf BLUE ipv4 unicast *'; \\   sleep 3; \\   ip -br -4 addr show dev ens6; \\   ip -br -4 addr show dev ens7; \\   ip -4 route show table 1001; \\   ip -4 route show table 1002; \\   vtysh -c 'show bgp ipv4 vpn' \\         -c 'show bgp summary'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442: PE-2 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442 PE-1, \u043d\u043e \u043d\u0435 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b \u0435\u0433\u043e \u0432 RED VRF. \u0423 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 RD\/RT \u0432\u043c\u0435\u0441\u0442\u043e \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u044b\u0445 65000:101 \/ 65000:100 \u2014 \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e route-target \u043d\u0435 \u0441\u043e\u0432\u043f\u0430\u043b. \u042f\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u044e VPN-\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b PE-1 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0443 \u0442\u043e\u043b\u044c\u043a\u043e BGP-\u0441\u0435\u0430\u043d\u0441; \u044f\u0434\u0440\u043e \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043b\u0438\u043d\u043a-\u0438 \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'configure terminal' \\         -c 'router bgp 65000 vrf RED' \\         -c 'address-family ipv4 unicast' \\         -c 'rd vpn export 65000:101' \\         -c 'rt vpn both 65000:100' \\         -c 'label vpn export auto' \\         -c 'export vpn' \\         -c 'import vpn' \\         -c 'exit-address-family' \\         -c 'exit' \\         -c 'router bgp 65000 vrf BLUE' \\         -c 'address-family ipv4 unicast' \\         -c 'rd vpn export 65000:201' \\         -c 'rt vpn both 65000:200' \\         -c 'label vpn export auto' \\         -c 'export vpn' \\         -c 'import vpn' \\         -c 'end' \\         -c 'write memory' \\         -c 'clear bgp ipv4 vpn 10.255.0.6'; \\   sleep 4; \\   vtysh -c 'show bgp ipv4 vpn' \\         -c 'show bgp summary'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>L3VPN \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0451\u043d \u0438 \u0434\u043e\u043a\u0430\u0437\u0430\u043d \u0441 \u043e\u0431\u043e\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432: RED \u0438 BLUE \u0434\u0430\u043b\u0438 3\/3 \u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043c\u0435\u0436\u0434\u0443 PC. \u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435 \u00ab\u0434\u043e\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c SRv6 \u043b\u044e\u0431\u043e\u0439 \u0446\u0435\u043d\u043e\u0439\u00bb, \u0430 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u043e\u0444\u043e\u0440\u043c\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442: \u043e\u0442\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 SRv6 dataplane-\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442 \u043e\u0442 \u043d\u0435\u0443\u0434\u0430\u0432\u0448\u0435\u0439\u0441\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0441\u0430\u043c L3VPN \u043d\u0430 SRv6, \u043d\u0435 \u043f\u0440\u0438\u0442\u0432\u043e\u0440\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435, \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u044d\u0442\u043e\u043c\u0443 \u0441\u0445\u0435\u043c\u0443. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0443\u0436\u0435 \u0437\u0430\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0445 SID \u043d\u0430 \u0442\u0440\u0451\u0445 \u0443\u0437\u043b\u0430\u0445 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u0442 MPLS-\u0441\u0435\u0440\u0432\u0438\u0441.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"hostname; \\   ip -6 addr show dev lo scope global; \\   ip -6 rule show; \\   ip -6 route show table 200; \\   sysctl -n net.ipv6.conf.all.seg6_enabled 2&gt;\/dev\/null; \\   sysctl -n net.vrf.strict_mode 2&gt;\/dev\/null || true\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0447\u0435\u0441\u0442\u043d\u043e \u0442\u0430\u043a\u043e\u0435: End-SID \u043d\u0430 P1\/P3 \u0438 End.DT4 \u043d\u0430 PE-2 \u0437\u0430\u0432\u0435\u0434\u0435\u043d\u044b, \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 seg6_enabled \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u0445 \u0432\u0441\u0451 \u0435\u0449\u0451 \u0431\u044b\u043b 0; \u043d\u0430 \u0442\u0430\u043a\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u0430\u044f\u0432\u043b\u044f\u0442\u044c \u00abSRv6 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb \u043d\u0435\u043b\u044c\u0437\u044f. \u041f\u043e\u0434\u043d\u0438\u043c\u0443 \u0435\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043d\u0443\u0436\u043d\u044b\u0445 data-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u0438 \u0441\u0434\u0435\u043b\u0430\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 IPv6 End.DT6 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 endpoint. \u041e\u043d \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u0442 RED\/BLUE VRF \u0438\u043b\u0438 \u0438\u0445 MPLS-\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"sysctl -w \\     net.ipv6.conf.all.seg6_enabled=1 \\     net.ipv6.conf.ens4.seg6_enabled=1 \\     net.ipv6.conf.ens5.seg6_enabled=1 \\     net.ipv6.conf.ens6.seg6_enabled=1; \\   ip -6 rule show; \\   ip -6 route show table 200\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 ping \u043d\u0435 \u0431\u044b\u043b \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e\u043c: \u0443 PE-1 \u0434\u043e fd10:100::2 \u0443\u0436\u0435 \u043f\u0440\u0438\u0435\u0445\u0430\u043b \u043e\u0431\u044b\u0447\u043d\u044b\u0439 OSPFv3-\u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441 \u043c\u0435\u043d\u044c\u0448\u0435\u0439 \u043c\u0435\u0442\u0440\u0438\u043a\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f\u0434\u0440\u043e \u0432\u044b\u0431\u0440\u0430\u043b\u043e \u0435\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043d\u0430\u0448\u0435\u0433\u043e SRv6-encap route. \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e \u043f\u043e\u0439\u043c\u0430\u043b\u0438 \u2014 \u044d\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430 \u0434\u0435\u0442\u0430\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0438\u043c \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c \u043e\u0442\u0432\u0435\u0442\u043e\u043c. \u041f\u043e\u043d\u0438\u0436\u0443 \u043c\u0435\u0442\u0440\u0438\u043a\u0443 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044e, \u0447\u0442\u043e \u0432\u044b\u0431\u0440\u0430\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -6 route replace fd10:100::2\/128 \\     metric 10 \\     encap seg6 mode encap \\     segs fd10:6:0:2:1::,fd10:6:0:4:1::,fd10:6:0:6:200:: \\     via fd10:10:0:1::1 \\     dev ens4; \\   ip -6 route show fd10:100::2\/128; \\   ip -6 route get fd10:100::2; \\   ping -6 -c 3 -W 1 fd10:100::2\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c SRv6 route \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043d, \u0430 ICMP error \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0443\u0436\u0435 \u043e\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e fd10:100::2. \u0417\u043d\u0430\u0447\u0438\u0442, SRH \u0434\u043e\u0448\u0451\u043b \u0434\u043e PE-2 \u0438 End.DT6 \u0441\u043d\u044f\u043b \u043e\u0431\u0451\u0440\u0442\u043a\u0443; \u0441\u043b\u043e\u043c\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u0441\u043b\u0435 decap: End.DT6 table main \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 local-table route \u0441\u0430\u043c\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u0414\u043e\u0431\u0430\u0432\u043b\u044e \u044f\u0432\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \/128 \u0432 main table \u2014 \u044d\u0442\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438, \u0430 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0430\u044f \u0447\u0430\u0441\u0442\u044c lookup \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e endpoint.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"ip -6 route replace fd10:100::2\/128 \\     dev lo \\     table main; \\   ip -6 route show table main fd10:100::2\/128; \\   ip -6 route show table 200\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042f\u0432\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435: endpoint \u0432\u0441\u0451 \u0435\u0449\u0451 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 No route. \u0412\u043c\u0435\u0441\u0442\u043e \u0443\u0433\u0430\u0434\u044b\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0443\u0449\u0443 \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 \u0437\u0430\u0445\u0432\u0430\u0442 \u043d\u0430 P1, P3 \u0438 PE-2 \u0438 \u043e\u0434\u0438\u043d \u043f\u0430\u043a\u0435\u0442. \u041e\u043d \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 SID \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f: \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u043c End, \u0432\u0442\u043e\u0440\u043e\u043c End \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 End.DT6.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"nohup timeout 12 tcpdump -nn -vv \\     -i ens4 \\     'ip6 and (dst host fd10:6:0:2:1:: or dst host fd10:100::2)' \\     &gt;\/tmp\/srv6-p1.cap 2&gt;&amp;1 &lt;\/dev\/null &amp;\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b \u0432\u043e\u0442 \u044d\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0438: <a href=\"https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/srv6_end_dt4_l3vpn_test.sh\" rel=\"noopener nofollow\">https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/srv6_end_dt4_l3vpn_test.sh<\/a> <a href=\"https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/lib.sh\" rel=\"noopener nofollow\">https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/lib.sh<\/a><\/p>\n<\/blockquote>\n<p>\u041d\u0430\u0448\u0451\u043b \u043a\u043b\u044e\u0447\u0435\u0432\u0443\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c Linux self-test: SRv6 Encap route \u0436\u0438\u0432\u0451\u0442 \u0432 VRF-table, \u0430 IPv6 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e SID \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u0432 \u0442\u043e\u0439 \u0436\u0435 VRF-table. \u041c\u044b \u0440\u0430\u043d\u044c\u0448\u0435 \u0441\u043c\u0435\u0448\u0430\u043b\u0438 \u044d\u0442\u043e\u0442 outer lookup \u0441 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u00ab\u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u043e \u043d\u0435 \u0435\u0434\u0435\u0442\u00bb. \u041f\u0440\u043e\u0432\u0435\u0440\u044e \u044d\u0442\u043e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 RED \u2192 PE-2; \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u0440\u0435\u0436\u043d\u0438\u043c MPLS, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043e\u0431\u0440\u0430\u0442\u0438\u043c\u0430 \u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -6 route replace fd10:6:0:6:100::\/128 \\     table 1001 \\     via fd10:10:0:1::1 \\     dev ens4; \\   ip -4 route replace 10.10.0.22\/31 \\     table 1001 \\     metric 10 \\     encap seg6 mode encap \\     segs fd10:6:0:6:100:: \\     dev ens4; \\   ip -4 route show table 1001; \\   ip -6 route show table 1001 fd10:6:0:6:100::\/128\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0428\u0430\u0431\u043b\u043e\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043d\u043e RED \u0432\u0441\u0451 \u0435\u0449\u0451 \u043c\u043e\u043b\u0447\u0438\u0442. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u044c\u043c\u0443 \u043d\u0435 \u0434\u043e\u0433\u0430\u0434\u043a\u0443, \u0430 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0434\u043d\u043e\u043f\u0430\u043a\u0435\u0442\u043d\u044b\u0439 tcpdump \u043d\u0430 P1: \u0443\u0432\u0438\u0434\u0438\u043c, \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 outer IPv6+SRH \u0432\u043e\u043e\u0431\u0449\u0435, \u0438 \u0435\u0441\u043b\u0438 \u0434\u0430 \u2014 \u043a\u0430\u043a\u043e\u0439 SID\/\u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0435\u043c\u0443 \u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"tcpdump -c 3 -nn -vv -i ens4 ip6\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u0445\u0432\u0430\u0442 \u0434\u0430\u043b \u0432\u0430\u0436\u043d\u044b\u0439 \u0444\u0430\u043a\u0442: \u043d\u0430 P1 \u043d\u0435\u0442 \u0434\u0430\u0436\u0435 outer SRv6-\u043f\u0430\u043a\u0435\u0442\u0430 \u2014 PE-1 \u043d\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0433\u043e. \u0417\u043d\u0430\u0447\u0438\u0442, \u0434\u043e End.DT4 \u043c\u044b \u0435\u0449\u0451 \u043d\u0435 \u0434\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c; \u043a\u043e\u043f\u0430\u0435\u043c \u0440\u043e\u0432\u043d\u043e PE-1 VRF lookup \u0438 \u0435\u0433\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u0432\u0441\u0451 \u043f\u043e\u0434\u0440\u044f\u0434.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route get 10.10.0.22 \\     from 10.10.0.16 \\     iif ens6; \\   ip -6 route get fd10:6:0:6:100:: vrf RED; \\   sysctl \\     net.ipv4.conf.all.rp_filter \\     net.ipv4.conf.ens6.rp_filter \\     net.ipv6.conf.all.forwarding \\     net.ipv6.conf.ens4.seg6_enabled; \\   ip -s link show dev ens4; \\   ip -s -4 route show table 1001; \\   dmesg | \\     tail -n 20\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u043f\u0435\u0440\u0432\u043e\u0439 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b: P1 \u0443\u0432\u0438\u0434\u0435\u043b IPv6+SRH, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 IPv4 10.10.0.16 \u2192 10.10.0.22; \u0432\u043d\u0435\u0448\u043d\u0438\u0439 destination \u2014 End.DT4 SID PE-2. \u0422\u043e \u0435\u0441\u0442\u044c Encap \u0432 RED VRF \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u0434\u043e PE-2 \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 IPv4 \u043f\u0430\u043a\u0435\u0442.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9903] \\  \"tcpdump -c 1 -nn -vv \\     -i ens4 \\     'ip6 and dst host fd10:6:0:6:100::'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421 P1 \u043f\u0430\u043a\u0435\u0442 \u0443\u0448\u0451\u043b \u0434\u0430\u043b\u044c\u0448\u0435, \u043d\u043e \u043d\u0430 P3 \u0435\u0433\u043e \u043d\u0435\u0442 \u2014 \u044d\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e \u043f\u0440\u0438 \u0440\u0430\u0432\u043d\u043e\u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u043d\u044b\u0445 \u043f\u0443\u0442\u044f\u0445: P1 \u043c\u043e\u0433 \u0432\u044b\u0431\u0440\u0430\u0442\u044c P4. \u041f\u0440\u043e\u0432\u0435\u0440\u044e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 IPv6 next-hop \u0434\u043b\u044f SID \u0438 \u0437\u0430\u0445\u0432\u0430\u0447\u0443 \u043d\u0430 PE-2 \u0441 any, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0435\u0440\u0435\u043f\u0443\u0442\u0430\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 \u0444\u0430\u0431\u0440\u0438\u043a\u0438.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"ip -6 route get fd10:6:0:6:100::; \\   ip -6 route show fd10:6:0:6::\/64\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"tcpdump -c 1 -nn -vv \\     -i any \\     'ip6 and dst host fd10:6:0:6:100::'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>PE-2 \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u043f\u0430\u043a\u0435\u0442 \u043d\u0430 ens5; \u044d\u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e \u0437\u0430\u0445\u0432\u0430\u0442\u043e\u043c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c IPv4 \u0432\u043d\u0443\u0442\u0440\u0438 SRH. \u041d\u043e End.DT4 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u0442 decapsulated packet \u0432 RED \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, \u044d\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 SID, \u0430 \u043d\u0435 underlay, \u043d\u0435 OSPF \u0438 \u043d\u0435 PE-1 Encap. \u0421\u0434\u0435\u043b\u0430\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u0442\u043e\u0447\u0435\u0447\u043d\u0443\u044e \u0441\u0432\u0435\u0440\u043a\u0443 policy lookup \u0441 \u0432\u0445\u043e\u0434\u043d\u044b\u043c iif ens5; \u043f\u043e\u0441\u043b\u0435 \u043d\u0435\u0451 \u0443\u0431\u0435\u0440\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u0438 \u0432\u0435\u0440\u043d\u0443 RED \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u0439 MPLS, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u0430\u0431\u0443 \u0432 \u043f\u043e\u043b\u0443\u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0432\u0438\u0434\u0435.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"ip -6 route get fd10:6:0:6:100:: \\     from fd10:10:0:1:: \\     iif ens5; \\   sysctl \\     net.ipv6.conf.all.seg6_enabled \\     net.ipv6.conf.ens5.seg6_enabled \\     net.ipv6.conf.ens5.forwarding \\     net.vrf.strict_mode; \\   ip -6 -s route show table 200; \\   ip -s link show dev ens7\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0437\u0430\u043c\u043a\u043d\u0443\u043b\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u0443: PE-2 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u0438\u043c\u0435\u043d\u043d\u043e End.DT4 vrftable 1001, seg6_enabled=1, forwarding \u0438 VRF strict mode \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u2014 \u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u0439 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u0438 Linux\/FRR decapsulation \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u043e\u0442\u0434\u0430\u0451\u0442 \u043f\u0430\u043a\u0435\u0442 \u0432 access VRF. \u042d\u0442\u043e \u043d\u0435 \u00ab\u043f\u043e\u0445\u043e\u0436\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e\u00bb, \u0430 \u0447\u0435\u0441\u0442\u043d\u043e \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 dataplane gap. \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 RED static route \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0431\u0435\u0440\u0443; BGP\/MPLS route \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0438 \u0431\u0443\u0434\u0435\u0442 \u0441\u043d\u043e\u0432\u0430 \u0432\u044b\u0431\u0440\u0430\u043d.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -4 route del 10.10.0.22\/31 \\     table 1001 \\     metric 10; \\   ip -6 route del fd10:6:0:6:100::\/128 \\     table 1001; \\   ip -6 route del fd10:100::2\/128 \\     metric 10 2&gt;\/dev\/null || true; \\   vtysh -c 'clear bgp ipv4 vpn 10.255.0.6 soft in'; \\   sleep 2; \\   ip -4 route show table 1001; \\   ip -6 route show fd10:100::2\/128\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9923] \\  \"ping -c 2 -W 1 10.10.0.20\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0435\u043d\u0434 \u0441\u043d\u043e\u0432\u0430 \u0432 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438: RED \u0438 BLUE \u043f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u0430\u0442\u0430 \u0434\u0430\u043b\u0438 \u043f\u043e 2\/2 \u043e\u0442\u0432\u0435\u0442\u043e\u0432, BGP\/MPLS \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u043e\u043f\u044f\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u044b. \u041f\u0435\u0440\u0435\u0445\u043e\u0436\u0443 \u043a \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\u043c: \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u0447\u0435\u0441\u0442\u043d\u044b\u0439 SRv6-\u0440\u0430\u0437\u0434\u0435\u043b \u0441 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435\u043c End.DT4, \u043f\u043b\u044e\u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 data plane.<\/p>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<hr\/>\n<p>\u0414\u043e\u0432\u0451\u043b \u0434\u043e \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.<\/p>\n<ul>\n<li>\n<p>RED \u0438 BLUE L3VPN \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b: \u043e\u0431\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0442\u0435\u0441\u0442\u0430 \u0434\u0430\u043b\u0438 2\/2, 0% loss.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u0448\u0451\u043b \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u043b \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 netplan apply: \u043e\u043d \u0441\u0431\u0440\u043e\u0441\u0438\u043b IPv4-\u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 VRF-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 PE-1, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u043f\u0440\u043e\u043f\u0430\u043b VPN export.<\/p>\n<\/li>\n<li>\n<p>SRv6 underlay, OSPFv3, Encap \u0432 RED VRF \u0438 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 IPv6+SRH \u0434\u043e PE-2 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u044b tcpdump\u2019\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>End.DT4 \u043d\u0430 PE-2 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c kernel\/FRR \u0441\u0442\u0435\u043d\u0434\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 decapsulated IPv4 \u043f\u0430\u043a\u0435\u0442 \u0432 RED VRF. \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0443\u0434\u0430\u043b\u0451\u043d \u2014 \u044f \u043d\u0435 \u0441\u0442\u0430\u043b \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c SRv6 L3VPN. \u0414\u043e\u0431\u0430\u0432\u0438\u043b:<\/p>\n<\/li>\n<li>\n<p><code>\u043f\u043e\u044f\u0441\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u043c\u0435\u0442\u043a\u0443 SRv6<\/code><\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/Draw.io\" rel=\"noopener nofollow\"><code>Draw.io<\/code><\/a><code>-\u0441\u0445\u0435\u043c\u0443 SRv6 dataplane<\/code> \u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c SRH, \u043f\u0443\u043d\u043a\u0442\u0438\u0440\u043e\u043c \u2014 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 End.DT4.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043e\u043d \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 &#8212; \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u044f \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u043e\u043f\u0438\u043b\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e. \u042d\u0442\u043e \u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u044d\u0442\u0430\u043f &#8212; \u044f \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043b \u044d\u0442\u043e \u0432\u0441\u0451 \u043f\u0438\u0441\u0430\u0442\u044c \ud83d\ude41 \u0412\u043e\u0442 \u0431\u044b \u0440\u043e\u0431\u043e\u0442\u044b \u0434\u0435\u043b\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0443 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u043a\u0443\u044e\u2026 \u0410 \u043f\u043e\u043a\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043a\u0443 \u043f\u043e SRv6 <\/p>\n<details class=\"spoiler\">\n<summary>08-srv6.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 8. SRv6: IPv6 transport, SID \u0438 \u0447\u0435\u0441\u0442\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430<\/h2>\n<p>SR-MPLS \u0443\u0436\u0435 \u0440\u0435\u0448\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 steering: PE-1 \u043a\u043b\u0430\u0434\u0451\u0442 \u0432 MPLS stack Node SID, \u0430 P-\u0443\u0437\u043b\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e. \u041d\u043e \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 MPLS data plane. SRv6 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442 \u0442\u0443 \u0436\u0435 \u0438\u0434\u0435\u044e \u0432 IPv6: \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0435\u0441\u0451\u0442 <strong>Segment Routing Header (SRH)<\/strong>, \u0430 segment \u2014 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u044b\u0439 IPv6 SID.<\/p>\n<p>\u042d\u0442\u043e \u043d\u0435 \u00abSR-MPLS, \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0434\u043b\u0438\u043d\u043d\u044b\u043c\u0438 \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438\u00bb. \u0423 SID \u0435\u0441\u0442\u044c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code>LOC:FUNCT:ARG<\/code>: locator \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0443\u0437\u043b\u0443, function \u0437\u0430\u0434\u0430\u0451\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <code>End<\/code> \u0438\u043b\u0438 <code>End.DT4<\/code>), \u0430 ARG \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u0424\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 \u2014 <a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8986.html\" rel=\"noopener nofollow\">RFC 8986<\/a>.<\/p>\n<h3>\u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0443\u0436\u0435\u043d SRv6<\/h3>\n<p>SR-MPLS \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u043c \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u0434\u043b\u044f MPLS core: \u043a\u043e\u0440\u043e\u0442\u043a\u0438\u0439 label stack, \u0437\u0440\u0435\u043b\u0430\u044f \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0438 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u0430\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f. \u0415\u0433\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u00ab\u0437\u0430\u043c\u0435\u043d\u044f\u0442\u044c \u0440\u0430\u0434\u0438 \u0437\u0430\u043c\u0435\u043d\u044b\u00bb.<\/p>\n<p>SRv6 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c, \u043a\u043e\u0433\u0434\u0430 IPv6 \u0443\u0436\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043e\u043c \u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u0438 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u043e\u0434\u043d\u0438\u043c IPv6 SID, \u0430 \u043d\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c MPLS label;<\/p>\n<\/li>\n<li>\n<p>\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043d\u0430 endpoint: decap \u0432 VRF, service chaining, mobile\/user-plane gateway \u0438 \u0442. \u043f.;<\/p>\n<\/li>\n<li>\n<p>\u0441\u0442\u0440\u043e\u0438\u0442\u044c policy \u043d\u0430 ingress, \u043d\u0435 \u0437\u0430\u0432\u043e\u0434\u044f per-LSP state \u043d\u0430 transit-\u0443\u0437\u043b\u0430\u0445;<\/p>\n<\/li>\n<li>\n<p>\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c IPv6 routing, TE steering \u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u0426\u0435\u043d\u0430 \u2014 \u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a (IPv6 + SRH), \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a MTU\/ASIC \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u00ab\u0432\u0435\u0437\u0434\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c SR-MPLS \u043d\u0430 SRv6\u00bb \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435\u043c. \u0412 \u044d\u0442\u043e\u0439 \u043b\u0430\u0431\u0435 SR-MPLS L3VPN \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u0441\u0435\u0440\u0432\u0438\u0441, \u0430 SRv6 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0440\u044f\u0434\u043e\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430: <code>08-srv6-dataplane.drawio<\/code>.<\/p>\n<h3>\u041f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0439 IPv6 underlay<\/h3>\n<p>\u041d\u0430 \u0432\u043e\u0441\u044c\u043c\u0438 core links \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b IPv6 \/127 \u0438\u0437 <code>fd10:10:0:x::\/127<\/code>; management <code>ens3<\/code> \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0441\u044f. OSPFv3 \u043f\u043e\u0434\u043d\u044f\u043b \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u0430 \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 locator prefixes. \u041f\u0440\u0438\u043c\u0435\u0440 PE-1 \u2194 P-1:<\/p>\n<pre><code class=\"yaml\"># \/etc\/netplan\/99-lab-data-plane.yaml, PE-1network:  version: 2  ethernets:    ens4:      addresses: [10.10.0.0\/31, fd10:10:0:1::\/127]    ens5:      addresses: [10.10.0.2\/31, fd10:10:0:2::\/127]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 underlay \u043f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f OSPFv3:<\/p>\n<pre><code>PE-1# show ipv6 route fd10:6:0:6::\/64O&gt;* fd10:6:0:6::\/64 ... via P-1 \/ P-2PE-1# ping -6 fd10:6:0:6::13 packets transmitted, 3 received, 0% packet loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c IPv6 transport \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0438 \u0431\u044b\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d \u0434\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043a\u043b\u0430\u0441\u0442\u044c \u0432 \u043d\u0435\u0433\u043e SRH. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e: \u0438\u043d\u0430\u0447\u0435 SRv6 debugging \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0447\u0438\u043d\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u0451.<\/p>\n<h3>SID \u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 dataplane<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u044b \u0442\u0430\u043a\u0438\u0435 SID:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0423\u0437\u0435\u043b<\/p>\n<\/th>\n<th>\n<p align=\"left\">SID<\/p>\n<\/th>\n<th>\n<p align=\"left\">Behavior<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-1<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>fd10:6:0:2:1::\/128<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>End<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">P-3<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>fd10:6:0:4:1::\/128<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>End<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PE-2<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>fd10:6:0:6:100::\/128<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>End.DT4 vrftable 1001<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 SID \u043b\u0435\u0436\u0430\u0442 \u043d\u0435 \u0432 main table, \u0430 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 <code>200<\/code>; policy rule \u043b\u043e\u0432\u0438\u0442 locator \u0434\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e lookup. \u041d\u0430 PE-2 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>999:  from all to fd10:6:0:6::\/64 lookup 200fd10:6:0:6:100::  encap seg6local action End.DT4 vrftable 1001 dev RED table 200<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p><code>End.DT4<\/code> \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u043d\u044f\u0442\u044c IPv6+SRH \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c IPv4 lookup \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 RED VRF. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f IPv4 L3VPN \u043f\u043e\u0432\u0435\u0440\u0445 SRv6. \u0414\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f SRH \u043d\u0430 data-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445 \u0432\u043a\u043b\u044e\u0447\u0451\u043d <code>net.ipv6.conf.&lt;if&gt;.seg6_enabled=1<\/code>; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Linux \u0435\u0433\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0435\u0442. \u042d\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/kernel.org\/doc\/html\/latest\/networking\/seg6-sysctl.html\" rel=\"noopener nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 Linux<\/a>.<\/p>\n<h3>\u0427\u0442\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0434\u043e\u0448\u043b\u043e \u0434\u043e dataplane<\/h3>\n<p>\u041d\u0430 PE-1 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0431\u044b\u043b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d <strong>\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 Linux-\u0448\u0430\u0431\u043b\u043e\u043d<\/strong> \u0434\u043b\u044f SRv6 L3VPN: IPv4 encap route \u0432 RED VRF \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 IPv6 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0434\u043e SID \u0432 \u044d\u0442\u043e\u0439 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435.<\/p>\n<pre><code>PE-1, table 1001 (\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442)10.10.0.22\/31  encap seg6 mode encap segs [ fd10:6:0:6:100:: ] dev ens4fd10:6:0:6:100:: via fd10:10:0:1::1 dev ens4<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0417\u0430\u0445\u0432\u0430\u0442 \u043d\u0430 P-1 \u0434\u043e\u043a\u0430\u0437\u0430\u043b, \u0447\u0442\u043e IPv4 \u043f\u0430\u043a\u0435\u0442 RED-PC-1 \u0431\u044b\u043b \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0432 IPv6+SRH:<\/p>\n<pre><code>fd10:10:0:1:: &gt; fd10:6:0:6:100::RT6 (type=4, segleft=0, [0] fd10:6:0:6:100::)10.10.0.16 &gt; 10.10.0.22: ICMP echo request<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0430\u043a\u0435\u0442 \u0434\u043e\u0448\u0451\u043b \u0434\u043e PE-2 (\u043d\u0430 <code>ens5<\/code>) \u0441 \u0442\u0435\u043c \u0436\u0435 outer SID \u0438 inner IPv4 echo request. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u044b underlay reachability, SRv6 Encap \u043d\u0430 ingress \u0438 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 SRH \u0447\u0435\u0440\u0435\u0437 core.<\/p>\n<h3>\u0413\u0434\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043d\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c SRv6 L3VPN<\/h3>\n<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 policy lookup \u043d\u0430 PE-2, <code>seg6_enabled=1<\/code>, forwarding \u0438 <code>net.vrf.strict_mode=1<\/code>, Linux \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u043b decapsulated IPv4 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437 <code>End.DT4<\/code> \u0432 access VRF. RED-PC-1 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b reply. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 <strong>End.DT4 \u2192 IPv4 forwarding \u0432 VRF<\/strong> \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d.<\/p>\n<p>\u042d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 OSPFv3 \u0438\u043b\u0438 SRH: \u0437\u0430\u0445\u0432\u0430\u0442 \u043d\u0430 PE-2 \u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 packet, \u0430 <code>ip -6 route get ... iif ens5<\/code> \u0432\u044b\u0431\u0438\u0440\u0430\u043b \u0438\u043c\u0435\u043d\u043d\u043e:<\/p>\n<pre><code>encap seg6local action End.DT4 vrftable 1001 dev RED table 200<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u2014 \u0441\u0432\u0435\u0440\u043a\u0430 \u0441 kernel selftest \u0434\u043b\u044f \u0442\u043e\u0447\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u044f\u0434\u0440\u0430, \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 reproduction \u0432 netns \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f VRF\/table\/seg6local \u0431\u0435\u0437 FRR. Linux upstream selftest \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0441\u0442\u0440\u043e\u0438\u0442 IPv4 L3VPN: Encap route \u0432 VRF, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 route \u043a SID \u0438 <code>End.DT4 vrftable<\/code> \u043d\u0430 egress (<a href=\"https:\/\/github.com\/torvalds\/linux\/blob\/master\/tools\/testing\/selftests\/net\/srv6_end_dt4_l3vpn_test.sh\" rel=\"noopener nofollow\">\u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a \u0442\u0435\u0441\u0442\u0430<\/a>).<\/p>\n<p>\u041c\u044b \u043d\u0435 \u0441\u0442\u0430\u043b\u0438 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0437\u0430 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441. \u0412\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 SRv6 route \u0443\u0434\u0430\u043b\u0451\u043d, \u0438 BGP\/SR-MPLS L3VPN \u0441\u043d\u043e\u0432\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 RED \u0438 BLUE:<\/p>\n<pre><code>RED-PC-1 -&gt; RED-PC-2:   2\/2 replies, 0% lossBLUE-PC-1 -&gt; BLUE-PC-2: 2\/2 replies, 0% lossPE-1 RED FIB:10.10.0.22\/31 encap mpls 16004\/16006\/80 via 10.10.0.1 dev ens4 proto bgp<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0442\u043e\u0433 \u044d\u0442\u0430\u043f\u0430 \u043f\u043e\u043b\u0435\u0437\u0435\u043d \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0432\u043e\u0435\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u0435\u0439: \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0439 IPv6\/SRv6 transport experiment \u0438 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 SRH \u043d\u0430 \u043f\u0440\u043e\u0432\u043e\u0434\u0435, \u043d\u043e \u043d\u0435\u0442 \u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u0438\u044f, \u0447\u0442\u043e MP-BGP L3VPN \u0443\u0436\u0435 \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u043d\u0430 SRv6. \u0414\u043b\u044f production-\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043d\u0443\u0436\u0435\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0441\u0442\u0435\u043a BGP SRv6 service control plane \u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f End.DT4 dataplane \u043d\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 kernel\/FRR.<\/p>\n<\/div>\n<\/details>\n<h4>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439, 9-\u044b\u0439 \u044d\u0442\u0430\u043f. SRv6 L3VPN: \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c dataplane gap (\u0441)<\/h4>\n<p>\u0423\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0441\u043b\u043e\u0432\u0430 \u0430\u0433\u0435\u043d\u0442\u0430 &#8212; \u201c\u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0444\u0438\u043e\u043b\u0435\u0442\u043e\u0432\u044b\u043c \u043f\u043e\u043a\u0430\u0437\u0430\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c SRH, \u043f\u0443\u043d\u043a\u0442\u0438\u0440\u043e\u043c \u2014 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043f\u043e\u0441\u043b\u0435 End.DT4.\u201d &#8212; \u044f \u043f\u0440\u043e\u0448\u0443 \u0435\u0433\u043e \u0434\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0451:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/977\/cb8\/cd3\/977cb8cd360be919185d2f6da99f22fa.png\" width=\"766\" height=\"247\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/977\/cb8\/cd3\/977cb8cd360be919185d2f6da99f22fa.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/977\/cb8\/cd3\/977cb8cd360be919185d2f6da99f22fa.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041e\u043d \u043f\u043e\u0434\u0443\u043c\u0430\u043b 25 \u043c\u0438\u043d 13 \u0441 \u0438 \u0432\u044b\u0434\u0430\u043b \u043a\u043e\u0435-\u0447\u0442\u043e.<\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043c\u044b\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u044f \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0449\u0451 \u0441\u0442\u0440\u0430\u043d\u043d\u0435\u0435 &#8212; \u0441\u0443\u0434\u044f \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c \u0443 \u043d\u0435\u0433\u043e \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043a\u043e\u043b. Codex \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u043f\u043e SSH \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c <code>base64 -d | bash<\/code>, \u0430 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u044f \u0432\u0438\u0436\u0443 \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 \u0434\u043b\u0438\u043d\u043d\u043e\u0439 base64 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 &#8212; \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0447\u0442\u043e Codex \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 ssh \u0441\u0435\u0441\u0441\u0438\u0438 \u0447\u0435\u0440\u0435\u0437 <code>stdin<\/code> \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e bash-\u0441\u043a\u0440\u0438\u043f\u0442. \u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0449\u0451 \u0440\u0430\u0437 &#8212; \u043e\u043d \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 shell-\u0441\u043a\u0440\u0438\u043f\u0442, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0441 \u043c\u043e\u0435\u0439 \u0432\u0438\u043d\u0434\u043e\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b ssh-\u0441\u0435\u0441\u0441\u0438\u044e, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442 \u044d\u0442\u043e\u0442 shell \u0441\u043a\u0440\u0438\u043f\u0442, \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0432 \u0435\u0433\u043e \u0432 base64 \u0441\u0442\u0440\u043e\u043a\u0443. \u042f \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u043c \u044d\u0442\u043e, \u0435\u0441\u043b\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0441\u044c \u0421\u043a\u0440\u0438\u043f\u0442\u044b, \u043a\u0441\u0442\u0430\u0442\u0438, \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 &#8212; \u043e\u043d \u0446\u0435\u043b\u0443\u044e \u043c\u0438\u043d\u0438-\u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044e \u043d\u0430 \u0445\u043e\u0441\u0442\u0435 \u044d\u0442\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u0442.<\/p>\n<details class=\"spoiler\">\n<summary>\u041a\u0430\u043a \u0434\u0443\u043c\u0430\u043b \u0438 \u0447\u0442\u043e \u0432\u044b\u0434\u0430\u043b<\/summary>\n<div class=\"spoiler__content\">\n<p>\u0414\u0430 \u2014 \u00ab\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439, \u043d\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0439\u00bb \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043d\u0435 \u00ab\u044f \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u00bb, \u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e: IPv4 packet \u0443\u0436\u0435 \u043f\u0440\u0438\u0435\u0445\u0430\u043b \u043d\u0430 PE-2 \u0432\u043d\u0443\u0442\u0440\u0438 SRH, local SID rule \u0432\u044b\u0431\u0440\u0430\u043b End.DT4, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 decap Linux \u043d\u0435 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u043f\u0430\u043a\u0435\u0442 \u0432 RED access VRF. \u0422\u043e \u0435\u0441\u0442\u044c \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0434\u044b\u0440\u0430 \u2014 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 dataplane hop End.DT4 \u2192 VRF, \u0430 \u043d\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0432 core. \u0418 \u0434\u0430, \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f 9: \u043d\u0435 \u0435\u0449\u0451 \u043e\u0434\u043d\u0430 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f, \u0430 \u0434\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 SRv6 L3VPN \u0434\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f. \u0414\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0445\u0432\u0430\u0442\u0430\u0435\u0442. \u041d\u0430\u0447\u043d\u0443 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0433\u043e upstream-\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u0432 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 network namespaces \u043d\u0430 \u043e\u0434\u043d\u043e\u043c PE: \u043e\u043d \u043e\u0442\u0434\u0435\u043b\u0438\u0442 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 kernel \u043e\u0442 FRR, OSPF \u0438 \u043d\u0430\u0448\u0435\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u0415\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u2014 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0443 \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u0443\u044e \u0440\u0430\u0437\u043d\u0438\u0446\u0443 \u0432 \u0441\u0442\u0435\u043d\u0434; \u0435\u0441\u043b\u0438 \u043d\u0435\u0442 \u2014 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0447\u043d\u043e\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e kernel-side \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f, \u0430 \u043d\u0435 \u0434\u043e\u0433\u0430\u0434\u043a\u0430.  <\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"uname -r; \\   ip netns list; \\   command -v ip; \\   lsmod | \\     grep -E 'seg6|vrf' || true; \\   sysctl \\     net.ipv4.ip_forward \\     net.ipv6.conf.all.forwarding \\     net.vrf.strict_mode; \\   ip -6 route show table 200; \\   ip -4 route show table 1001\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Baseline \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0434\u043b\u044f \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438: PE-2 \u043d\u0430 kernel 6.8.0-138, VRF \u0438 IPv4\/IPv6 forwarding \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b, network namespaces \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u044b. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0434\u043d\u0438\u043c\u0443 \u0447\u0435\u0442\u044b\u0440\u0435 \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0445 namespace (host \u2192 VRF-router \u2194 VRF-router \u2192 host) \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u0441\u0445\u0435\u043c\u0435, \u0447\u0442\u043e \u0438 Linux selftest. \u041e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043d\u0438 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 lab-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b (\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 base64)<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"base64 -d | bash\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">#!\/bin\/bashset -euo pipefailnames=\"s9h1 s9r1 s9r2 s9h2\"cleanup() {    for n in $names; do        ip netns del \"$n\" 2&gt;\/dev\/null || true    done}cleanuptrap cleanup EXIT# \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0447\u0435\u0442\u044b\u0440\u0435 namespacefor n in $names; do    ip netns add \"$n\"    ip -n \"$n\" link set lo updone# \u041b\u0438\u043d\u043a \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \"PE\"ip link add s9r1c type veth peer name s9r2cip link set s9r1c netns s9r1ip link set s9r2c netns s9r2# Host1 &lt;-&gt; R1ip link add s9h1e type veth peer name s9r1aip link set s9h1e netns s9h1ip link set s9r1a netns s9r1# Host2 &lt;-&gt; R2ip link add s9h2e type veth peer name s9r2aip link set s9h2e netns s9h2ip link set s9r2a netns s9r2# \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0445\u043e\u0441\u0442\u044bip -n s9h1 addr add 10.9.0.1\/24 dev s9h1eip -n s9h1 link set s9h1e upip -n s9h1 route add default via 10.9.0.254ip -n s9h2 addr add 10.9.0.2\/24 dev s9h2eip -n s9h2 link set s9h2e upip -n s9h2 route add default via 10.9.0.254# VRF RED \u043d\u0430 \u0434\u0432\u0443\u0445 \"\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u0445\"for r in s9r1 s9r2; do    ip -n \"$r\" link add red type vrf table 100    ip -n \"$r\" link set red up    ip netns exec \"$r\" sysctl -qw net.ipv4.ip_forward=1    ip netns exec \"$r\" sysctl -qw net.ipv6.conf.all.forwarding=1    ip netns exec \"$r\" sysctl -qw net.vrf.strict_mode=1done# R1: \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430ip -n s9r1 link set s9r1a master redip -n s9r1 addr add 10.9.0.254\/24 dev s9r1aip -n s9r1 link set s9r1a up# R1: IPv6 transportip -n s9r1 addr add fd00:9::1\/64 dev s9r1cip -n s9r1 link set s9r1c upip netns exec s9r1 sysctl -qw net.ipv6.conf.s9r1c.seg6_enabled=1# R2: \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430ip -n s9r2 link set s9r2a master redip -n s9r2 addr add 10.9.0.254\/24 dev s9r2aip -n s9r2 link set s9r2a up# R2: IPv6 transportip -n s9r2 addr add fd00:9::2\/64 dev s9r2cip -n s9r2 link set s9r2c upip netns exec s9r2 sysctl -qw net.ipv6.conf.s9r2c.seg6_enabled=1# \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0434\u043b\u044f SRv6 SIDfor r in s9r1 s9r2; do    ip -n \"$r\" -6 rule add to fc00:9::\/16 lookup 90 priority 999done# Local SID: End.DT4 -&gt; VRF REDip -n s9r1 -6 route add \\    fc00:9:1::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 vrftable 100 \\    dev redip -n s9r2 -6 route add \\    fc00:9:2::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 vrftable 100 \\    dev red# R1 -&gt; \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u0447\u0435\u0440\u0435\u0437 SID R2ip -n s9r1 -4 route add \\    10.9.0.2\/32 \\    vrf red \\    encap seg6 mode encap segs fc00:9:2::6004 \\    dev s9r1cip -n s9r1 -6 route add \\    fc00:9:2::6004\/128 \\    vrf red \\    via fd00:9::2 \\    dev s9r1c# R2 -&gt; \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u0447\u0435\u0440\u0435\u0437 SID R1ip -n s9r2 -4 route add \\    10.9.0.1\/32 \\    vrf red \\    encap seg6 mode encap segs fc00:9:1::6004 \\    dev s9r2cip -n s9r2 -6 route add \\    fc00:9:1::6004\/128 \\    vrf red \\    via fd00:9::1 \\    dev s9r2cecho \"--- r2 local SID ---\"ip -n s9r2 -6 route show table 90echo \"--- SRv6 VPN ping ---\"ip netns exec s9h1 ping -c 2 -W 1 10.9.0.2echo \"--- reverse SRv6 VPN ping ---\"ip netns exec s9h2 ping -c 2 -W 1 10.9.0.1echo \"STAGE9_MINIMAL_TEST=PASS\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0434\u043e kernel: SSH \u0441\u044a\u0435\u043b \u043d\u0430\u0447\u0430\u043b\u043e base64-\u043f\u043e\u0442\u043e\u043a\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0430\u0440\u043e\u043b\u044c \u0438 \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043b\u0435\u0442\u0435\u043b\u0438 \u043e\u0434\u043d\u0438\u043c terminal write. Namespace \u043d\u0435 \u0431\u044b\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u2014 \u044d\u0442\u043e \u0447\u0438\u0441\u0442\u043e \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u043f\u043e\u043c\u0435\u0445\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0432\u0432\u043e\u0434\u043e\u043c: \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0443 SSH-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0437\u0430\u0442\u0435\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u043c \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"base64 -d | bash\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">#!\/bin\/bashset -euo pipefailnames=\"s9h1 s9r1 s9r2 s9h2\"cleanup() {    for n in $names; do        ip netns del \"$n\" 2&gt;\/dev\/null || true    done}cleanuptrap cleanup EXITfor n in $names; do    ip netns add \"$n\"    ip -n \"$n\" link set lo updoneip link add s9r1c type veth peer name s9r2cip link set s9r1c netns s9r1ip link set s9r2c netns s9r2ip link add s9h1e type veth peer name s9r1aip link set s9h1e netns s9h1ip link set s9r1a netns s9r1ip link add s9h2e type veth peer name s9r2aip link set s9h2e netns s9h2ip link set s9r2a netns s9r2ip -n s9h1 addr add 10.9.0.1\/24 dev s9h1eip -n s9h1 link set s9h1e upip -n s9h1 route add default via 10.9.0.254ip -n s9h2 addr add 10.9.0.2\/24 dev s9h2eip -n s9h2 link set s9h2e upip -n s9h2 route add default via 10.9.0.254for r in s9r1 s9r2; do    ip -n \"$r\" link add red type vrf table 100    ip -n \"$r\" link set red up    ip netns exec \"$r\" sysctl -qw net.ipv4.ip_forward=1    ip netns exec \"$r\" sysctl -qw net.ipv6.conf.all.forwarding=1    ip netns exec \"$r\" sysctl -qw net.vrf.strict_mode=1doneip -n s9r1 link set s9r1a master redip -n s9r1 addr add 10.9.0.254\/24 dev s9r1aip -n s9r1 link set s9r1a upip -n s9r1 addr add fd00:9::1\/64 dev s9r1cip -n s9r1 link set s9r1c upip netns exec s9r1 sysctl -qw net.ipv6.conf.s9r1c.seg6_enabled=1ip -n s9r2 link set s9r2a master redip -n s9r2 addr add 10.9.0.254\/24 dev s9r2aip -n s9r2 link set s9r2a upip -n s9r2 addr add fd00:9::2\/64 dev s9r2cip -n s9r2 link set s9r2c upip netns exec s9r2 sysctl -qw net.ipv6.conf.s9r2c.seg6_enabled=1for r in s9r1 s9r2; do    ip -n \"$r\" -6 rule add to fc00:9::\/16 lookup 90 priority 999doneip -n s9r1 -6 route add \\    fc00:9:1::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 vrftable 100 \\    dev redip -n s9r2 -6 route add \\    fc00:9:2::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 vrftable 100 \\    dev redip -n s9r1 -4 route add \\    10.9.0.2\/32 \\    vrf red \\    encap seg6 mode encap segs fc00:9:2::6004 \\    dev s9r1cip -n s9r1 -6 route add \\    fc00:9:2::6004\/128 \\    vrf red \\    via fd00:9::2 \\    dev s9r1cip -n s9r2 -4 route add \\    10.9.0.1\/32 \\    vrf red \\    encap seg6 mode encap segs fc00:9:1::6004 \\    dev s9r2cip -n s9r2 -6 route add \\    fc00:9:1::6004\/128 \\    vrf red \\    via fd00:9::1 \\    dev s9r2cecho \"--- r2 local SID ---\"ip -n s9r2 -6 route show table 90echo \"--- SRv6 VPN ping ---\"ip netns exec s9h1 ping -c 2 -W 1 10.9.0.2echo \"--- reverse SRv6 VPN ping ---\"ip netns exec s9h2 ping -c 2 -W 1 10.9.0.1echo \"STAGE9_MINIMAL_TEST=PASS\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u043f\u043e \u2018seg6_enabled\u2019<\/p>\n<\/blockquote>\n<p>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u043e\u0436\u0435 \u0443\u043f\u0430\u043b, \u043d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u0430\u044f \u043c\u043e\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0441\u0430\u043c\u043e\u043c harness: \u043e\u0431\u0430 test-host \u0431\u044b\u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u0439 IPv4 \/24, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 10.9.0.1 ARP\u2019\u0438\u043b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e 10.9.0.2; \u044f \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u043b proxy_arp \u043d\u0430 access-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445, \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 upstream selftest. \u0414\u043e SRv6 packet \u043d\u0435 \u0434\u043e\u0448\u0451\u043b. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0440\u043e\u0432\u043d\u043e \u044d\u0442\u043e\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0441\u0442\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 End.DT4, \u0430 \u043d\u0435 ARP-\u0442\u0435\u0441\u0442.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 (\u0441 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c)<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"base64 -d | bash\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">#!\/bin\/bashset -euo pipefailN=\"s9h1 s9r1 s9r2 s9h2\"cleanup() {    for n in $N; do        ip netns del \"$n\" 2&gt;\/dev\/null || true    done}cleanuptrap cleanup EXITfor n in $N; do    ip netns add \"$n\"    ip -n \"$n\" link set lo updoneip link add s9r1c type veth peer name s9r2cip link set s9r1c netns s9r1ip link set s9r2c netns s9r2ip link add s9h1e type veth peer name s9r1aip link set s9h1e netns s9h1ip link set s9r1a netns s9r1ip link add s9h2e type veth peer name s9r2aip link set s9h2e netns s9h2ip link set s9r2a netns s9r2ip -n s9h1 addr add 10.9.0.1\/24 dev s9h1eip -n s9h1 link set s9h1e upip -n s9h2 addr add 10.9.0.2\/24 dev s9h2eip -n s9h2 link set s9h2e upfor r in s9r1 s9r2; do    ip -n \"$r\" link add red type vrf table 100    ip -n \"$r\" link set red up    ip netns exec \"$r\" sysctl -qw \\        net.ipv4.ip_forward=1 \\        net.ipv6.conf.all.forwarding=1 \\        net.vrf.strict_mode=1doneip -n s9r1 link set s9r1a master redip -n s9r1 addr add 10.9.0.254\/24 dev s9r1aip -n s9r1 link set s9r1a upip -n s9r2 link set s9r2a master redip -n s9r2 addr add 10.9.0.254\/24 dev s9r2aip -n s9r2 link set s9r2a upip netns exec s9r1 sysctl -qw net.ipv4.conf.s9r1a.proxy_arp=1ip netns exec s9r2 sysctl -qw net.ipv4.conf.s9r2a.proxy_arp=1ip -n s9r1 addr add fd00:9::1\/64 dev s9r1cip -n s9r1 link set s9r1c upip -n s9r2 addr add fd00:9::2\/64 dev s9r2cip -n s9r2 link set s9r2c upip netns exec s9r1 sysctl -qw net.ipv6.conf.s9r1c.seg6_enabled=1ip netns exec s9r2 sysctl -qw net.ipv6.conf.s9r2c.seg6_enabled=1for r in s9r1 s9r2; do    ip -n \"$r\" -6 rule add to fc00:9::\/16 lookup 90 priority 999doneip -n s9r1 -6 route add \\    fc00:9:1::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 \\    vrftable 100 \\    dev redip -n s9r2 -6 route add \\    fc00:9:2::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 \\    vrftable 100 \\    dev redip -n s9r1 -4 route add \\    10.9.0.2\/32 \\    vrf red \\    encap seg6 mode encap segs fc00:9:2::6004 \\    dev s9r1cip -n s9r1 -6 route add \\    fc00:9:2::6004\/128 \\    vrf red \\    via fd00:9::2 \\    dev s9r1cip -n s9r2 -4 route add \\    10.9.0.1\/32 \\    vrf red \\    encap seg6 mode encap segs fc00:9:1::6004 \\    dev s9r2cip -n s9r2 -6 route add \\    fc00:9:1::6004\/128 \\    vrf red \\    via fd00:9::1 \\    dev s9r2cecho \"--- r2 End.DT4 ---\"ip -n s9r2 -6 route show table 90echo \"--- h1 to h2 through SRv6 L3VPN ---\"ip netns exec s9h1 ping -c 2 -W 1 10.9.0.2echo \"--- h2 to h1 through SRv6 L3VPN ---\"ip netns exec s9h2 ping -c 2 -W 1 10.9.0.1echo \"STAGE9_MINIMAP_TEST=PASS\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 harness \u0442\u043e\u0436\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0447\u0438\u0441\u0442\u044b\u043c: \u044f \u043e\u043f\u0438\u0440\u0430\u043b\u0441\u044f \u043d\u0430 proxy ARP, \u0445\u043e\u0442\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 End.DT4 \u043e\u043d \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u0423\u0431\u0435\u0440\u0443 \u044d\u0442\u043e\u0442 \u043b\u0438\u0448\u043d\u0438\u0439 L2-\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c: \u0434\u0430\u043c hosts \u0440\u0430\u0437\u043d\u044b\u0435 IPv4 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0438 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 default gateway. \u0422\u0430\u043a test \u043d\u0430\u0447\u043d\u0451\u0442\u0441\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u0441 IPv4 forwarding \u0432 VRF \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e SRv6 service path.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0421\u0440\u0430\u0437\u0443 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430:<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">#!\/bin\/bashset -euo pipefailN=\"s9h1 s9r1 s9r2 s9h2\"cleanup() {    for n in $N; do        ip netns del \"$n\" 2&gt;\/dev\/null || true    done}cleanuptrap cleanup EXITfor n in $N; do    ip netns add \"$n\"    ip -n \"$n\" link set lo updoneip link add s9r1c type veth peer name s9r2cip link set s9r1c netns s9r1ip link set s9r2c netns s9r2ip link add s9h1e type veth peer name s9r1aip link set s9h1e netns s9h1ip link set s9r1a netns s9r1ip link add s9h2e type veth peer name s9r2aip link set s9h2e netns s9h2ip link set s9r2a netns s9r2ip -n s9h1 addr add 10.9.1.1\/24 dev s9h1eip -n s9h1 link set s9h1e upip -n s9h1 route add default via 10.9.1.254ip -n s9h2 addr add 10.9.2.2\/24 dev s9h2eip -n s9h2 link set s9h2e upip -n s9h2 route add default via 10.9.2.254for r in s9r1 s9r2; do    ip -n \"$r\" link add red type vrf table 100    ip -n \"$r\" link set red up    ip netns exec \"$r\" sysctl -qw \\        net.ipv4.ip_forward=1 \\        net.ipv6.conf.all.forwarding=1 \\        net.vrf.strict_mode=1doneip -n s9r1 link set s9r1a master redip -n s9r1 addr add 10.9.1.254\/24 dev s9r1aip -n s9r1 link set s9r1a upip -n s9r2 link set s9r2a master redip -n s9r2 addr add 10.9.2.254\/24 dev s9r2aip -n s9r2 link set s9r2a upip -n s9r1 addr add fd00:9::1\/64 dev s9r1cip -n s9r1 link set s9r1c upip -n s9r2 addr add fd00:9::2\/64 dev s9r2cip -n s9r2 link set s9r2c upip netns exec s9r1 sysctl -qw net.ipv6.conf.s9r1c.seg6_enabled=1ip netns exec s9r2 sysctl -qw net.ipv6.conf.s9r2c.seg6_enabled=1for r in s9r1 s9r2; do    ip -n \"$r\" -6 rule add to fc00:9::\/16 lookup 90 priority 999doneip -n s9r1 -6 route add \\    fc00:9:1::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 \\    vrftable 100 \\    dev redip -n s9r2 -6 route add \\    fc00:9:2::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 \\    vrftable 100 \\    dev redip -n s9r1 -4 route add \\    10.9.2.2\/32 \\    vrf red \\    encap seg6 mode encap \\    segs fc00:9:2::6004 \\    dev s9r1cip -n s9r1 -6 route add \\    fc00:9:2::6004\/128 \\    vrf red \\    via fd00:9::2 \\    dev s9r1cip -n s9r2 -4 route add \\    10.9.1.1\/32 \\    vrf red \\    encap seg6 mode encap \\    segs fc00:9:1::6004 \\    dev s9r2cip -n s9r2 -6 route add \\    fc00:9:1::6004\/128 \\    vrf red \\    via fd00:9::1 \\    dev s9r2cecho \"--- r2 End.DT4 ---\"ip -n s9r2 -6 route show table 90echo \"--- forward ---\"ip netns exec s9h1 ping -c 2 -W 1 10.9.2.2echo \"--- reverse ---\"ip netns exec s9h2 ping -c 2 -W 1 10.9.1.1echo \"STAGE9_MINIMAL_TEST=PASS\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u043e\u0442 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0441 upstream: \u0435\u0433\u043e namespace harness \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 IPv4 rp_filter \u0434\u043e \u0442\u0435\u0441\u0442\u0430. \u0412 \u043c\u043e\u0451\u043c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0442\u0435\u0441\u0442\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0431\u044b\u043b\u043e. \u0414\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e L3VPN reverse route \u043b\u0435\u0436\u0438\u0442 \u0432 VRF, \u0430 \u043f\u043e\u0441\u043b\u0435 SRv6 decap \u043f\u0430\u043a\u0435\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u2014 strict\/loose RPF \u0437\u0434\u0435\u0441\u044c \u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0448\u0430\u0435\u0442, \u0447\u0442\u043e source \u00ab\u043d\u0435 \u043e\u0442\u0442\u0443\u0434\u0430\u00bb. \u041f\u043e\u0432\u0442\u043e\u0440\u044e minimal test \u0441 \u0442\u0435\u043c \u0436\u0435 RPF \u0443\u0441\u043b\u043e\u0432\u0438\u0435\u043c, \u0447\u0442\u043e \u0443 Linux selftest. \u0415\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u043e\u0439\u0434\u0451\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0443\u0437\u043a\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 rp_filter=0 \u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c PE, \u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u043c \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0432\u0441\u0451\u043c \u0434\u043e\u043c\u0435\u043d\u0435.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 (\u0420\u043e\u043c\u0430 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043b)<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">#!\/bin\/bashset -euo pipefailN=\"s9h1 s9r1 s9r2 s9h2\"cleanup() {    for n in $N; do        ip netns del \"$n\" 2&gt;\/dev\/null || true    done}cleanuptrap cleanup EXITfor n in $N; do    ip netns add \"$n\"    ip -n \"$n\" link set lo updoneip link add s9r1c type veth peer name s9r2cip link set s9r1c netns s9r1ip link set s9r2c netns s9r2ip link add s9h1e type veth peer name s9r1aip link set s9h1e netns s9h1ip link set s9r1a netns s9r1ip link add s9h2e type veth peer name s9r2aip link set s9h2e netns s9h2ip link set s9r2a netns s9r2ip -n s9h1 addr add 10.9.1.1\/24 dev s9h1eip -n s9h1 link set s9h1e upip -n s9h1 route add default via 10.9.1.254ip -n s9h2 addr add 10.9.2.2\/24 dev s9h2eip -n s9h2 link set s9h2e upip -n s9h2 route add default via 10.9.2.254for r in s9r1 s9r2; do    ip -n \"$r\" link add red type vrf table 100    ip -n \"$r\" link set red up    ip netns exec \"$r\" sysctl -qw \\        net.ipv4.conf.all.rp_filter=0 \\        net.ipv4.conf.default.rp_filter=0    ip netns exec \"$r\" sysctl -qw \\        net.ipv4.ip_forward=1 \\        net.ipv6.conf.all.forwarding=1 \\        net.vrf.strict_mode=1doneip -n s9r1 link set s9r1a master redip -n s9r1 addr add 10.9.1.254\/24 dev s9r1aip -n s9r1 link set s9r1a upip -n s9r2 link set s9r2a master redip -n s9r2 addr add 10.9.2.254\/24 dev s9r2aip -n s9r2 link set s9r2a upip -n s9r1 addr add fd00:9::1\/64 dev s9r1cip -n s9r1 link set s9r1c upip -n s9r2 addr add fd00:9::2\/64 dev s9r2cip -n s9r2 link set s9r2c upip netns exec s9r1 sysctl -qw net.ipv6.conf.s9r1c.seg6_enabled=1ip netns exec s9r2 sysctl -qw net.ipv6.conf.s9r2c.seg6_enabled=1for r in s9r1 s9r2; do    ip -n \"$r\" -6 rule add to fc00:9::\/16 lookup 90 priority 999doneip -n s9r1 -6 route add \\    fc00:9:1::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 \\    vrftable 100 \\    dev redip -n s9r2 -6 route add \\    fc00:9:2::6004\/128 \\    table 90 \\    encap seg6local action End.DT4 \\    vrftable 100 \\    dev redip -n s9r1 -4 route add \\    10.9.2.2\/32 \\    vrf red \\    encap seg6 mode encap \\    segs fc00:9:2::6004 \\    dev s9r1cip -n s9r1 -6 route add \\    fc00:9:2::6004\/128 \\    vrf red \\    via fd00:9::2 \\    dev s9r1cip -n s9r2 -4 route add \\    10.9.1.1\/32 \\    vrf red \\    encap seg6 mode encap \\    segs fc00:9:1::6004 \\    dev s9r2cip -n s9r2 -6 route add \\    fc00:9:1::6004\/128 \\    vrf red \\    via fd00:9::1 \\    dev s9r2cecho \"--- r2 End.DT4 ---\"ip -n s9r2 -6 route show table 90echo \"--- forward ---\"ip netns exec s9h1 ping -c 2 -W 1 10.9.2.2echo \"--- reverse ---\"ip netns exec s9h2 ping -c 2 -W 1 10.9.1.1echo \"STAGE9_MINIMAL_TEST=PASS\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0440\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0434\u0430\u043b\u0438 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 fail, \u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0441\u0430\u043c\u043e\u0434\u0435\u043b\u044c\u043d\u044b\u0439 harness \u0443\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043c\u0435\u0448\u0430\u0442\u044c: \u043e\u043d \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 upstream \u0432 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0439 \u043c\u0435\u043b\u043e\u0447\u0438. \u041f\u0435\u0440\u0435\u0445\u043e\u0436\u0443 \u043d\u0430 \u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u2014 \u0437\u0430\u043f\u0443\u0449\u0443 \u0440\u043e\u0432\u043d\u043e Linux upstream srv6_end_dt4_l3vpn_<a href=\"http:\/\/test.sh\" rel=\"noopener nofollow\">test.sh<\/a> \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0435\u0433\u043e helper-\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 \/tmp PE-2. \u0422\u0435\u0441\u0442 \u0441\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u0451\u0442\/\u0443\u0434\u0430\u043b\u044f\u0435\u0442 namespace, \u0442\u0430\u043a \u0447\u0442\u043e \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u043b\u0430\u0431\u0430 \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0430.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"mkdir -p \/tmp\/srv6-ksft\/lib\/sh; \\   curl -fsSL \\     https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/srv6\\_end\\_dt4\\_l3vpn\\_test.sh \\     -o \/tmp\/srv6-ksft\/srv6_end_dt4_l3vpn_test.sh; \\   curl -fsSL \\     https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/lib.sh \\     -o \/tmp\/srv6-ksft\/lib.sh; \\   curl -fsSL \\     https:\/\/raw.githubusercontent.com\/torvalds\/linux\/master\/tools\/testing\/selftests\/net\/lib\/sh\/defer.sh \\     -o \/tmp\/srv6-ksft\/lib\/sh\/defer.sh; \\   cd \/tmp\/srv6-ksft; \\   bash .\/srv6_end_dt4_l3vpn_test.sh\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0415\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043b\u043e\u043c: \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 upstream selftest \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 PE-2 \u0438 \u0442\u043e\u043c \u0436\u0435 kernel \u043f\u0440\u043e\u0448\u0451\u043b 18\/18, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 IPv4 L3VPN \u0447\u0435\u0440\u0435\u0437 End.DT4. \u0417\u043d\u0430\u0447\u0438\u0442, kernel \u0438 feature \u043d\u0435 \u0432\u0438\u043d\u043e\u0432\u0430\u0442\u044b \u2014 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e namespace\/production-like \u0441\u0442\u0435\u043d\u0434\u0430. \u041d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0441\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u0433\u0438\u043f\u043e\u0442\u0435\u0437\u0430, \u0430 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435: upstream \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 IPv4 rp_filter, \u0430 \u043d\u0430 PE-2 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b 2 (loose). \u041f\u043e\u0441\u043b\u0435 End.DT4 inner source 10.10.0.16 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 RED VRF; \u0434\u043b\u044f \u043f\u0430\u043a\u0435\u0442\u0430, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u0433\u043e\u0441\u044f \u043d\u0430 core ens5, global RPF lookup \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u043d\u0430\u0439\u0442\u0438 \u044d\u0442\u043e\u0442 source \u0438 \u043c\u043e\u043b\u0447\u0430 \u0435\u0433\u043e \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044c. \u041f\u0440\u043e\u0432\u0435\u0440\u044e \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0443 RPF \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core ingress ens4\/ens5 PE-2, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044e RED\u2192PE-2 SRv6 dataplane.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"sysctl \\     net.ipv4.conf.all.rp_filter \\     net.ipv4.conf.ens3.rp_filter \\     net.ipv4.conf.ens4.rp_filter \\     net.ipv4.conf.ens5.rp_filter; \\   ip -4 route get 10.10.0.16 \\     from 10.10.0.12 \\     iif ens4 2&gt;&amp;1; \\   ip -4 route get 10.10.0.16 \\     from 10.10.0.14 \\     iif ens5 2&gt;&amp;1\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043e: \u0434\u043b\u044f source 10.10.0.16 reverse lookup \u043d\u0430 PE-2 \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0447\u0435\u0440\u0435\u0437 ens4\/ens5 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 Network is unreachable; \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0441\u0435 relevant rp_filter=2. \u042d\u0442\u043e \u0438 \u0435\u0441\u0442\u044c drop-\u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c. \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u044e RPF \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core ingress PE-2 (management ens3 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u043a\u0430\u043a \u0431\u044b\u043b), \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 RED SRv6 route \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 ping.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9912] \\  \"sysctl -w \\     net.ipv4.conf.all.rp_filter=0 \\     net.ipv4.conf.ens4.rp_filter=0 \\     net.ipv4.conf.ens5.rp_filter=0; \\   sysctl \\     net.ipv4.conf.all.rp_filter \\     net.ipv4.conf.ens3.rp_filter \\     net.ipv4.conf.ens4.rp_filter \\     net.ipv4.conf.ens5.rp_filter\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"ip -6 route replace fd10:6:0:6:100::\/128 \\     table 1001 \\     via fd10:10:0:1::1 \\     dev ens4; \\   ip -4 route replace 10.10.0.22\/31 \\     table 1001 \\     metric 10 \\     encap seg6 mode encap \\     segs fd10:6:0:6:100:: \\     dev ens4; \\   ip -4 route show table 1001\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0423\u0437\u043a\u043e\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e ens4\/ens5 \u043d\u0435 \u0434\u0430\u043b\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u2014 \u0437\u043d\u0430\u0447\u0438\u0442, RPF \u0431\u044b\u043b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043c upstream, \u043d\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0442\u043e\u0447\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0434\u043e \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u0440\u044f\u043b\u0438: End.DT4 \u0432 kernel \u0441\u043e\u0437\u0434\u0430\u0451\u0442 inner packet \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 RED VRF, \u0430 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u043c core-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u041f\u0440\u043e\u0432\u0435\u0440\u044e RPF \u0438\u043c\u0435\u043d\u043d\u043e \u043d\u0430 RED \u0438 access-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435; upstream \u0441\u043e\u0437\u0434\u0430\u0451\u0442 VRF \u0443\u0436\u0435 \u043f\u0440\u0438 rp_filter=0, \u0443 \u043d\u0430\u0441 RED \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 \u0438 \u043c\u043e\u0433 \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c 2.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  \"ping -c 3 -W 1 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0412\u043e\u0442 \u043e\u043d\u043e: \u043f\u043e\u0441\u043b\u0435 rp_filter=0 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 core, \u043d\u043e \u0438 \u043d\u0430 RED VRF\/access data plane PE-2, RED-PC-1 \u2192 RED-PC-2 \u0447\u0435\u0440\u0435\u0437 SRv6 Encap \u2192 End.DT4 \u0434\u0430\u043b 3\/3, 0% loss. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043d\u0430\u0439\u0434\u0435\u043d\u0430 \u0438 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u043a\u0440\u043e\u044e \u044d\u0442\u0430\u043f \u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u043e: \u0437\u0430\u0432\u0435\u0434\u0443 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 End.DT4 SID \u043d\u0430 PE-1, \u043e\u0431\u044a\u044f\u0432\u043b\u044e \u0435\u0433\u043e locator \u043f\u043e OSPFv3 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0443 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 RED \u043f\u0443\u0442\u044c PE-2 \u2192 PE-1 \u043d\u0430 SRv6. \u041f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 RED L3VPN \u0431\u0435\u0437 MPLS \u0432 transport; BLUE \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u043d\u0430 SR-MPLS \u043a\u0430\u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"vtysh -c 'show running-config' | \\     sed -n '\/router ospf6\/,\/^!\/p'; \\   ip -6 addr show dev lo scope global; \\   ip -6 rule show; \\   ip -6 route show table 200; \\   sysctl \\     net.ipv4.conf.all.rp_filter \\     net.ipv4.conf.RED.rp_filter \\     net.ipv4.conf.ens4.rp_filter \\     net.ipv4.conf.ens5.rp_filter\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f, \u043d\u043e \u0432\u0430\u0436\u043d\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u043a\u0430: PE-1 \u043d\u0435 \u043f\u0440\u0438\u043d\u044f\u043b End.DT4, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e net.vrf.strict_mode \u0442\u0430\u043c \u0431\u044b\u043b \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d. \u041d\u0430 PE-2 \u043e\u043d \u0443\u0436\u0435 \u0431\u044b\u043b 1, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u044f\u043c\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e. \u0412\u043a\u043b\u044e\u0447\u0430\u044e strict mode \u043d\u0430 PE-1, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 SID \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e management-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443 \u043f\u0440\u0435\u0436\u043d\u0438\u0439 rp_filter=2; data-\u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c RED\/core \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441 0.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"sysctl -w \\     net.vrf.strict_mode=1 \\     net.ipv4.conf.ens3.rp_filter=2; \\   ip -6 route replace fd10:6:0:11:100::\/128 \\     table 200 \\     encap seg6local action End.DT4 \\     vrftable 1001 \\     dev RED; \\   ip -6 route show table 200; \\   sysctl \\     net.vrf.strict_mode \\     net.ipv4.conf.ens3.rp_filter\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 SID PE-1 \u0443\u0436\u0435 \u0440\u0430\u0437\u043e\u0448\u0451\u043b\u0441\u044f \u0447\u0435\u0440\u0435\u0437 OSPFv3; PE-2 \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u0435\u0442 RED \u0432 SRH, \u0430 \u043d\u0435 \u0432 MPLS. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u043e\u0431\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u043c\u0438 RED-PC.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9921] \\  \"hostname; \\   ping -c 3 -W 1 10.10.0.22\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 RED SRv6 L3VPN \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b: 3\/3 reply \u0441\u043b\u0435\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043e \u0438 \u0441\u043f\u0440\u0430\u0432\u0430 \u043d\u0430\u043b\u0435\u0432\u043e. TTL 63 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e \u043d\u0430 \u043e\u0434\u0438\u043d \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0440\u0435\u0436\u043d\u0435\u0433\u043e MPLS-\u043f\u0443\u0442\u0438: outer IPv6 processing \u0438 decap \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u0438\u0434\u0438\u043c\u044b\u0439 L3-hop. \u041f\u0435\u0440\u0435\u0434 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 BLUE \u0441\u0435\u0440\u0432\u0438\u0441 \u0438 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 persistent \u0444\u0430\u0439\u043b\u044b. RED \u0442\u0435\u043f\u0435\u0440\u044c transport-\u0438\u0442\u0441\u044f SRv6; BLUE \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c SR-MPLS \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u043c \u043a\u043e\u043d\u0442\u0443\u0440\u043e\u043c.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9923] \\  \"ping -c 2 -W 1 10.10.0.20\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043f\u0440\u043e\u0448\u0451\u043b: BLUE \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430 SR-MPLS (MPLS 16004\/16006\/81), ping 2\/2. \u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e RED SRv6 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e: \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 systemd one-shot \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c PE \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435 boot\/netplan \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0435 rules, End.DT4 \u0438 static Encap routes; FRR \u0443\u0436\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 locator route \u0438 OSPFv3 redistribution. Management ens3 \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0441 rp_filter=2.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"echo IyEvYmluL3NoCnNldCAtZXUKc3lzY3RsIC1xdyBuZXQudnJmLnN0cmljdF9tb2RlPTEKc3lzY3RsIC1xdyBuZXQuaXB2NC5jb25mLmFsbC5ycF9maWx0ZXI9MApzeXNjdGwgLXF3IG5ldC5pcHY0LmNvbmYuZGVmYXVsdC5ycF9maWx0ZXI9MApzeXNjdGwgLXF3IG5ldC5pcHY0LmNvbmYuZW5zMy5ycF9maWx0ZXI9MgpjYXNlICIkKGhvc3RuYW1lKSIgaW4KICBQRS0xLUxlZnQpCiAgICBzeXNjdGwgLXF3IG5ldC5pcHY0LmNvbmYuUkVELnJwX2ZpbHRlcj0wIG5ldC5pcHY0LmNvbmYuZW5zNC5ycF9maWx0ZXI9MCBuZXQuaXB2NC5jb25mLmVuczUucnBfZmlsdGVyPTAgbmV0LmlwdjQuY29uZi5lbnM2LnJwX2ZpbHRlcj0wCiAgICBpcCAtNiBydWxlIHNob3cgfCBncmVwIC1xICd0byBmZDEwOjY6MDoxMTo6LzY0IGxvb2t1cCAyMDAnIHx8IGlwIC02IHJ1bGUgYWRkIHRvIGZkMTA6NjowOjExOjovNjQgbG9va3VwIDIwMCBwcmlvcml0eSA5OTkKICAgIGlwIC02IHJvdXRlIHJlcGxhY2UgZmQxMDo2OjA6MTE6MTAwOjovMTI4IHRhYmxlIDIwMCBlbmNhcCBzZWc2bG9jYWwgYWN0aW9uIEVuZC5EVDQgdnJmdGFibGUgMTAwMSBkZXYgUkVECiAgICBpcCAtNiByb3V0ZSByZXBsYWNlIGZkMTA6NjowOjY6MTAwOjovMTI4IHRhYmxlIDEwMDEgdmlhIGZkMTA6MTA6MDoxOjoxIGRldiBlbnM0CiAgICBpcCAtNCByb3V0ZSByZXBsYWNlIDEwLjEwLjAuMjIvMzEgdGFibGUgMTAwMSBtZXRyaWMgMTAgZW5jYXAgc2VnNiBtb2RlIGVuY2FwIHNlZ3MgZmQxMDo2OjA6NjoxMDA6OiBkZXYgZW5zNAogICAgOzsKICBQRS0yLVJpZ2h0KQogICAgc3lzY3RsIC1xdyBuZXQuaXB2NC5jb25mLlJFRC5ycF9maWx0ZXI9MCBuZXQuaXB2NC5jb25mLmVuczQucnBfZmlsdGVyPTAgbmV0LmlwdjQuY29uZi5lbnM1LnJwX2ZpbHRlcj0wIG5ldC5pcHY0LmNvbmYuZW5zNy5ycF9maWx0ZXI9MAogICAgaXAgLTYgcnVsZSBzaG93IHwgZ3JlcCAtcSAndG8gZmQxMDo2OjA6Njo6LzY0IGxvb2t1cCAyMDAnIHx8IGlwIC02IHJ1bGUgYWRkIHRvIGZkMTA6NjowOjY6Oi82NCBsb29rdXAgMjAwIHByaW9yaXR5IDk5OQogICAgaXAgLTYgcm91dGUgcmVwbGFjZSBmZDEwOjY6MDo2OjEwMDo6LzEyOCB0YWJsZSAyMDAgZW5jYXAgc2VnNmxvY2FsIGFjdGlvbiBFbmQuRFQ0IHZyZnRhYmxlIDEwMDEgZGV2IFJFRAogICAgaXAgLTYgcm91dGUgcmVwbGFjZSBmZDEwOjY6MDoxMToxMDA6Oi8xMjggdGFibGUgMTAwMSB2aWEgZmQxMDoxMDowOjc6OiBkZXYgZW5zNAogICAgaXAgLTQgcm91dGUgcmVwbGFjZSAxMC4xMC4wLjE2LzMxIHRhYmxlIDEwMDEgbWV0cmljIDEwIGVuY2FwIHNlZzYgbW9kZSBlbmNhcCBzZWdzIGZkMTA6NjowOjExOjEwMDo6IGRldiBlbnM0CiAgICA7OwogICopIGVjaG8gInVuZXhwZWN0ZWQgUEUgaG9zdG5hbWU6ICQoaG9zdG5hbWUpIiA+JjI7IGV4aXQgMSA7Owplc2FjCg== | \\     base64 -d &gt; \/usr\/local\/sbin\/lab-srv6-red; \\   chmod 0755 \/usr\/local\/sbin\/lab-srv6-red; \\   echo W1VuaXRdCkRlc2NyaXB0aW9uPVJlc3RvcmUgU1J2NiBSRUQgTDNWUE4gZGF0YXBsYW5lCldhbnRzPW5ldHdvcmstb25saW5lLnRhcmdldApBZnRlcj1uZXR3b3JrLW9ubGluZS50YXJnZXQgbGFiLXZyZi5zZXJ2aWNlIGZyci5zZXJ2aWNlClJlcXVpcmVzPWxhYi12cmYuc2VydmljZQoKW1NlcnZpY2VdClR5cGU9b25lc2hvdApSZW1haW5BZnRlckV4aXQ9eWVzCkV4ZWNTdGFydD0vdXNyL2xvY2FsL3NiaW4vbGFiLXNydjYtcmVkCgpbSW5zdGFsbF0KV2FudGVkQnk9bXVsdGktdXNlci50YXJnZXQK | \\     base64 -d &gt; \/etc\/systemd\/system\/lab-srv6-red.service; \\   systemctl daemon-reload; \\   systemctl enable --now lab-srv6-red.service; \\   systemctl is-active lab-srv6-red.service\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Persistence \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 PE. \u041d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0431\u0435\u0449\u0430\u0442\u044c, \u0447\u0442\u043e systemd unit \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0439, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u0435\u0433\u043e \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440: \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0443 \u043e\u0431\u0430 unit \u0431\u0435\u0437 reboot, \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u044e RED \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u044e FIB.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9911] \\  \"systemctl restart lab-srv6-red.service; \\   systemctl is-active lab-srv6-red.service; \\   ip -4 route show table 1001; \\   ip -6 route show table 200\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Unit \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0442 \u0438\u043c\u0435\u043d\u043d\u043e SRv6 FIB: \u043d\u0430 PE-1 route \u043a RED-PC-2 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 SID PE-2, \u043d\u0430 PE-2 \u2014 SID PE-1. \u041e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0445\u043e\u0440\u043e\u0448\u0430\u044f \u0443\u043b\u0438\u043a\u0430 \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0438: \u043f\u043e\u0439\u043c\u0430\u044e SRH \u0432 core \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438, \u0437\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u0441\u043b\u0435 restart unit.<\/p>\n<blockquote>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/p>\n<\/blockquote>\n<pre><code class=\"bash\">ssh -6 -tt \\  root@[fde0:3307:31:222::9901] \\  \"tcpdump -c 1 -nn -vv \\     -i ens4 \\     'ip6 and dst host fd10:6:0:6:100::'\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0439\u043c\u0430\u043d\u044b \u043e\u0431\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 SRH-\u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 restart unit:<\/p>\n<ul>\n<li>\n<p>P1 \u0432\u0438\u0434\u0438\u0442 10.10.0.16 \u2192 10.10.0.22 \u0432\u043d\u0443\u0442\u0440\u0438 SRH \u0441 End.DT4 SID PE-2.<\/p>\n<\/li>\n<li>\n<p>P3 \u0432\u0438\u0434\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 echo reply \u0432\u043d\u0443\u0442\u0440\u0438 SRH \u0441 End.DT4 SID PE-1. \u0422\u043e \u0435\u0441\u0442\u044c \u044d\u0442\u043e \u0443\u0436\u0435 \u043d\u0435 \u00ab\u043f\u043e\u0445\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00bb: RED \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0434\u0438\u0442 \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0435 \u0447\u0435\u0440\u0435\u0437 SRv6. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u044e \u0434\u0435\u0432\u044f\u0442\u044b\u0439 \u044d\u0442\u0430\u043f \u0438 \u0447\u0438\u0441\u0442\u043e\u0432\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c RPF-\u043f\u0440\u0438\u0447\u0438\u043d\u044b.<\/p>\n<\/li>\n<\/ul>\n<blockquote>\n<p>\u041e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0444\u0430\u0439\u043b\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0421\u043e\u0437\u0434\u0430\u043d\u043e 09-srv6-l3vpn.drawio+24-0<\/p>\n<\/blockquote>\n<p>\u0421\u043e\u0437\u0434\u0430\u043d\u043e <a href=\"http:\/\/09-srv6-l3vpn.md\" rel=\"noopener nofollow\">09-srv6-l3vpn.md<\/a>+128-0<\/p>\n<pre><code class=\"powershell\">[xml](Get-Content -Raw 09-srv6-l3vpn.drawio) | Out-NullWrite-Output 'drawio XML: valid'rg -n \"rp_filter|3\/3|End.DT4|BLUE\" `  09-srv6-l3vpn.md `  09-srv6-l3vpn.drawio<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<hr\/>\n<p>\u042d\u0442\u0430\u043f 9 \u0437\u0430\u043a\u0440\u044b\u0442: RED \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 static SRv6 L3VPN. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u0432 rp_filter: \u043f\u043e\u0441\u043b\u0435 End.DT4 inner IPv4 source \u0432\u0438\u0434\u0435\u043b\u0441\u044f \u0438\u0437 core context, \u0430 \u0435\u0433\u043e reverse-route \u0436\u0438\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 RED VRF. Linux \u043c\u043e\u043b\u0447\u0430 \u0434\u0440\u043e\u043f\u0430\u043b \u043f\u0430\u043a\u0435\u0442. RPF \u043e\u0442\u043a\u043b\u044e\u0447\u0451\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f RED\/core data plane; management ens3 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u0441 rp_filter=2. \u0414\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430:<\/p>\n<ul>\n<li>\n<p>RED-PC-1 \u2192 RED-PC-2: 3\/3, 0% loss;<\/p>\n<\/li>\n<li>\n<p>RED-PC-2 \u2192 RED-PC-1: 3\/3, 0% loss;<\/p>\n<\/li>\n<li>\n<p>SRH \u043f\u043e\u0439\u043c\u0430\u043d \u0432 core \u0432 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445;<\/p>\n<\/li>\n<li>\n<p>persistent lab-srv6-red.service \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 PE \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b SID\/FIB;<\/p>\n<\/li>\n<li>\n<p>BLUE \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u043c SR-MPLS L3VPN \u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 2\/2. \u0414\u043e\u0431\u0430\u0432\u0438\u043b:<\/p>\n<\/li>\n<li>\n<p><code>\u044d\u0442\u0430\u043f 9: \u043f\u0440\u0438\u0447\u0438\u043d\u0430, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 evidence<\/code><\/p>\n<\/li>\n<li>\n<p><code>\u0447\u0438\u0441\u0442\u043e\u0432\u0443\u044e <\/code><a href=\"http:\/\/Draw.io\" rel=\"noopener nofollow\"><code>Draw.io<\/code><\/a><code>-\u0441\u0445\u0435\u043c\u0443 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0433\u043e SRv6 L3VPN<\/code> \u0418 \u0432\u0430\u0436\u043d\u0430\u044f \u0433\u0440\u0430\u043d\u0438\u0446\u0430: \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0439 static SRv6 dataplane. Native BGP SRv6 service control plane \u043c\u044b \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u0442\u0440\u043e\u0438\u043b\u0438.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u0421\u0445\u0435\u043c\u0443, \u043a\u0441\u0442\u0430\u0442\u0438, \u043e\u0431\u043d\u043e\u0432\u0438\u043b:  <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ec\/bcd\/dc2\/4ecbcddc220b650fc4187355c6a9959f.png\" alt=\"alt text\" width=\"1578\" height=\"703\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/4ec\/bcd\/dc2\/4ecbcddc220b650fc4187355c6a9959f.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4ec\/bcd\/dc2\/4ecbcddc220b650fc4187355c6a9959f.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u043e\u0442 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0433\u043b\u0430\u0432\u0430. TLDR &#8212; \u0434\u0435\u043b\u043e \u0431\u044b\u043b\u043e \u0432 Reverse Path \u0444\u0438\u043b\u044c\u0442\u0440\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d <a href=\"https:\/\/blog.pomazanov.com\/posts\/ldp-srv6-with-ai\/#Ssyklo\" rel=\"noopener nofollow\">\u0437\u0430\u0441\u0441\u0430\u043b \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c<\/a><\/p>\n<details class=\"spoiler\">\n<summary>09-srv6-l3vpn.md<\/summary>\n<div class=\"spoiler__content\">\n<h2>\u042d\u0442\u0430\u043f 9. SRv6 L3VPN: \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0435\u043c dataplane gap<\/h2>\n<p>\u041d\u0430 \u044d\u0442\u0430\u043f\u0435 8 \u043c\u044b \u0434\u043e\u043a\u0430\u0437\u0430\u043b\u0438 Encap \u0438 \u043f\u0440\u0438\u0445\u043e\u0434 SRH \u043d\u0430 PE-2, \u043d\u043e <code>End.DT4<\/code> \u043d\u0435 \u043e\u0442\u0434\u0430\u0432\u0430\u043b inner IPv4 packet \u0432 RED VRF. \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u043e \u043a\u0430\u043a \u00ab\u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, kernel \u043d\u0435 \u0443\u043c\u0435\u0435\u0442\u00bb \u0431\u044b\u043b\u043e \u0431\u044b \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0443\u0434\u043e\u0431\u043d\u043e. \u042d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f \u0434\u043e\u0432\u0451\u043b \u043f\u0443\u0442\u044c \u0434\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f.<\/p>\n<p>\u0421\u0445\u0435\u043c\u0430 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430: <code>09-srv6-l3vpn.drawio<\/code>.<\/p>\n<h3>\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0438: kernel \u0443\u043c\u0435\u0435\u0442<\/h3>\n<p>\u041d\u0430 PE-2 \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 Linux <a href=\"https:\/\/github.com\/torvalds\/linux\/blob\/master\/tools\/testing\/selftests\/net\/srv6_end_dt4_l3vpn_test.sh\" rel=\"noopener nofollow\"><code>srv6_end_dt4_l3vpn_<\/code><\/a><a href=\"http:\/\/test.sh\" rel=\"noopener nofollow\"><code>test.sh<\/code><\/a> \u0432 \u043e\u0434\u043d\u043e\u0440\u0430\u0437\u043e\u0432\u044b\u0445 network namespaces. \u041e\u043d \u043f\u0440\u043e\u0448\u0451\u043b <code>18\/18<\/code>: IPv6 transport, \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 IPv4 L3VPN \u043e\u0434\u043d\u043e\u0433\u043e tenant \u0438 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f tenant \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430.<\/p>\n<p>\u042d\u0442\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u043b\u043e \u00ab\u0432 \u044d\u0442\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 kernel \u043d\u0435\u0442 End.DT4\u00bb \u0438 \u0441\u0443\u0437\u0438\u043b\u043e \u043f\u043e\u0438\u0441\u043a \u0434\u043e \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u043c\u0435\u0436\u0434\u0443 test namespace \u0438 \u043d\u0430\u0448\u0438\u043c PE.<\/p>\n<h3>\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0430\u044f \u043f\u0440\u0438\u0447\u0438\u043d\u0430: reverse-path filtering<\/h3>\n<p>\u041d\u0430 PE-2 \u0434\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f:<\/p>\n<pre><code>net.ipv4.conf.all.rp_filter  = 2net.ipv4.conf.ens4.rp_filter = 2net.ipv4.conf.ens5.rp_filter = 2# source inner packet \u0438\u0437 core contextip route get 10.10.0.16 from 10.10.0.14 iif ens5RTNETLINK answers: Network is unreachable<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 <code>End.DT4<\/code> inner packet \u0438\u043c\u0435\u0435\u0442 source <code>10.10.0.16<\/code>, \u043d\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0437 core context. \u0415\u0433\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 RED VRF, \u0430 \u043d\u0435 \u0432 global IPv4 table. RPF lookup \u043d\u0435 \u0432\u0438\u0434\u0435\u043b \u044d\u0442\u043e\u0442 VRF route \u0438 \u0432\u044b\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u043b \u043f\u0430\u043a\u0435\u0442 \u0434\u043e \u0432\u044b\u0434\u0430\u0447\u0438 \u043d\u0430 access-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 tcpdump \u0432\u0438\u0434\u0435\u043b SRH \u043d\u0430 PE-2, \u0430 RED-PC-2 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u0438\u0434\u0435\u043b.<\/p>\n<p>Upstream selftest \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c VRF \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 RPF. \u041c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0437\u043a\u043e\u0435 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435:<\/p>\n<pre><code># PE-1 \u0438 PE-2: RED \u0438 data interfacesnet.ipv4.conf.all.rp_filter=0net.ipv4.conf.default.rp_filter=0net.ipv4.conf.RED.rp_filter=0net.ipv4.conf.&lt;core-interface&gt;.rp_filter=0net.ipv4.conf.&lt;RED-access-interface&gt;.rp_filter=0# management ens3 \u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043enet.ipv4.conf.ens3.rp_filter=2<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u042d\u0442\u043e \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u0430\u044f production-\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f \u00ab\u0432\u0435\u0437\u0434\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0438\u0442\u044c RPF\u00bb. \u0412 production \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u0443\u044e\u0442 policy routing\/RPF \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0435\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 service-chain. \u0417\u0434\u0435\u0441\u044c \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u0435 \u0434\u043b\u044f Linux SRv6 End.DT4 \u0441 VRF; \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u043e \u0437\u0430\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0438 \u043f\u0435\u0440\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<h3>\u0414\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 RED service<\/h3>\n<p>RED \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043e\u0434\u043d\u0438\u043c tenant VRF\/table <code>1001<\/code>, \u043d\u043e MPLS transport label \u0437\u0430\u043c\u0435\u043d\u0451\u043d \u0434\u0432\u0443\u043c\u044f \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 SRv6 service routes.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p align=\"left\">Encap SID<\/p>\n<\/th>\n<th>\n<p align=\"left\">Egress behavior<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RED-PC-1 \u2192 RED-PC-2<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>fd10:6:0:6:100::<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">PE-2 <code>End.DT4 vrftable 1001<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RED-PC-2 \u2192 RED-PC-1<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>fd10:6:0:11:100::<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">PE-1 <code>End.DT4 vrftable 1001<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>PE-1 locator <code>fd10:6:0:11::\/64<\/code> \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d \u043a\u0430\u043a static <code>Null0<\/code> route \u0447\u0435\u0440\u0435\u0437 OSPFv3, \u0447\u0442\u043e\u0431\u044b core \u0437\u043d\u0430\u043b, \u043a\u0443\u0434\u0430 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c SID. \u0412 PE VRF \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 IPv6 routes \u043a SID \u0438 IPv4 SRv6 Encap routes; \u044d\u0442\u043e \u0440\u043e\u0432\u043d\u043e \u043c\u043e\u0434\u0435\u043b\u044c Linux L3VPN selftest, \u0430 \u043d\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043f\u043e\u0434\u0441\u0443\u043d\u0443\u0442\u044c SRH \u0432 main table.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 restart persistent units \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 FIB \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>PE-1, RED table 100110.10.0.22\/31 encap seg6 mode encap segs [fd10:6:0:6:100::] dev ens4PE-2, RED table 100110.10.0.16\/31 encap seg6 mode encap segs [fd10:6:0:11:100::] dev ens4<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>Endpoint state:<\/p>\n<pre><code>PE-2: fd10:6:0:6:100::  End.DT4 vrftable 1001 dev REDPE-1: fd10:6:0:11:100:: End.DT4 vrftable 1001 dev RED<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>Dataplane evidence<\/h3>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u043e\u0448\u043b\u0438 \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430 <code>lab-srv6-red.service<\/code> \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 PE:<\/p>\n<pre><code>RED-PC-1 \u2192 10.10.0.22: 3\/3 replies, 0% lossRED-PC-2 \u2192 10.10.0.16: 3\/3 replies, 0% loss<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u0442\u0440\u0430\u0444\u0438\u043a \u0443\u0432\u0438\u0434\u0435\u043d \u0432 core \u043a\u0430\u043a SRH \u0432 \u043e\u0431\u043e\u0438\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445:<\/p>\n<pre><code>P-1 ens4fd10:10:0:1:: \u2192 fd10:6:0:6:100::  SRHinner: 10.10.0.16 \u2192 10.10.0.22 ICMP echo requestP-3 ens6fd10:10:0:7::1 \u2192 fd10:6:0:11:100:: SRHinner: 10.10.0.22 \u2192 10.10.0.16 ICMP echo reply<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>BLUE \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e \u043d\u0435 \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u0438: \u043e\u043d \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u043c MPLS L3VPN. \u0415\u0433\u043e FIB \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 <code>encap mpls 16004\/16006\/81<\/code>, \u0430 BLUE-PC-1 \u2192 BLUE-PC-2 \u043f\u0440\u043e\u0448\u0451\u043b <code>2\/2<\/code>. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0440\u0430\u0437\u043d\u0438\u0446\u0443 SRv6 \u0438 SR-MPLS \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435.<\/p>\n<h3>\u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f<\/h3>\n<p>\u041d\u0430 PE-1 \u0438 PE-2 \u0432\u043a\u043b\u044e\u0447\u0451\u043d <code>lab-srv6-red.service<\/code>. \u041f\u043e\u0441\u043b\u0435 network, VRF \u0438 FRR \u043e\u043d \u0438\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 RPF settings, locator rule, <code>End.DT4<\/code>, IPv6 route \u043a peer SID \u0438 IPv4 SRv6 Encap route. Locator routes \u0438 OSPFv3 redistribution \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 FRR.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 <strong>static SRv6 L3VPN dataplane<\/strong>. \u041e\u043d \u0435\u0449\u0451 \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f native BGP SRv6 L3VPN control plane: SID \u0438 steering routes \u0437\u0430\u0434\u0430\u044e\u0442\u0441\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e systemd-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0435 \u0443\u0441\u043b\u043e\u0436\u043d\u0435\u043d\u0438\u0435 \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e BGP SRv6 service advertisement\/control plane, \u043d\u043e \u0434\u043b\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0438 \u043d\u0443\u0436\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u0438 \u0434\u043e\u043a\u0430\u0437\u0430\u043d.<\/p>\n<\/div>\n<\/details>\n<h4>\u0427\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/h4>\n<p>\u0414\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c, \u0434\u0443\u043c\u0430\u044e, \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c &#8212; \u043d\u0430 \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0448\u0430 \u0444\u0430\u043d\u0442\u0430\u0437\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \u0432 \u043f\u043b\u0430\u043d\u0435 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f SRv6. \u041d\u0443 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u043d, \u043a \u0421\u0435\u0440\u0451\u0433\u0435 \u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c <a href=\"https:\/\/t.me\/like_a_bus_channel\/344\" rel=\"noopener nofollow\">\u043f\u0440\u043e SRv6 \u0438 \u0435\u0433\u043e \u043b\u0430\u0431\u0443<\/a>, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438. \u0418\u043b\u0438 \u0437\u0430\u043b\u0435\u0442\u0435\u0442\u044c \u0432 <a href=\"https:\/\/t.me\/srv6_ru\" rel=\"noopener nofollow\">\u0433\u0440\u0443\u043f\u043f\u0443 \u0442\u0435\u043b\u0435\u0433\u0440\u0430\u043c\u043c \u043f\u043e \u043f\u0440\u043e SRv6<\/a> \u0438 \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u201c\u041d\u0443 \u0447\u0451, \u043f\u0430\u0446\u0430\u043d\u044b, \u0433\u043e\u0442\u043e\u0432 \u0437\u0430 500 \u0431\u0430\u043a\u0441\u043e\u0432 \u043b\u044e\u0431\u0443\u044e \u0432\u0430\u0448\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0440\u0435\u0448\u0438\u0442\u044c\u201d &#8212; \u0438 \u0441\u043a\u043e\u0440\u043c\u0438\u0442\u044c \u0435\u0451 \u0430\u0433\u0435\u043d\u0442\u0443.<\/p>\n<h4>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0410\u0433\u0435\u043d\u0442\u0443.<\/h4>\n<p>\u041d\u0443 \u0438 \u0447\u0438\u0441\u0442\u043e \u043f\u0435\u0434\u0430\u0433\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438-\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0441\u043a\u0438\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0430\u0433\u0435\u043d\u0442\u0443 <\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/490\/d4d\/2a7\/490d4d2a706738a78dd093aab020ceb6.png\" alt=\"alt text\" width=\"893\" height=\"236\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/490\/d4d\/2a7\/490d4d2a706738a78dd093aab020ceb6.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/490\/d4d\/2a7\/490d4d2a706738a78dd093aab020ceb6.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0443 \u0438 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043d\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043e\u0442\u0432\u0435\u0442:<\/p>\n<blockquote>\n<p>\u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u0433\u043b\u0430\u0432\u043d\u043e\u0435: \u044d\u0442\u043e \u0431\u044b\u043b\u0430 \u043d\u0435 \u0441\u0435\u0440\u0438\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u0432, \u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u0430\u044f \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f \u0441 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430\u043c\u0438.<\/p>\n<ul>\n<li>\n<p>\u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043f\u043e \u0444\u0430\u043a\u0442\u0430\u043c, \u0430 \u043d\u0435 \u043f\u043e \u0438\u043c\u0435\u043d\u0430\u043c \u0445\u043e\u0441\u0442\u043e\u0432; \u0441\u0445\u0435\u043c\u0430 \u0441\u0442\u0430\u043b\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0433\u043e\u0434\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u043e\u0439 \u043e\u043f\u0438\u0440\u0430\u043b\u0441\u044f \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439: IP \u2192 OSPF \u2192 LDP \u2192 L3VPN \u2192 TE \u2192 SR-MPLS \u2192 SR policy \u2192 SRv6.<\/p>\n<\/li>\n<li>\n<p>\u0414\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0432\u0435\u0449\u0435\u0439 \u0435\u0441\u0442\u044c dataplane evidence: MPLS\/SRH \u0432 tcpdump, FIB\/LFIB, BGP\/OSPF state, \u0434\u0432\u0443\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 ping.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0437\u0430\u043c\u0435\u043b\u0438 \u043f\u043e\u0434 \u043a\u043e\u0432\u0451\u0440 \u043d\u0435\u0443\u0434\u0430\u0447\u0443 \u0441 <code>End.DT4<\/code>: \u043e\u043d\u0430 \u0438 \u043f\u0440\u0438\u0432\u0435\u043b\u0430 \u043a \u0441\u0430\u043c\u043e\u043c\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u043c\u0443 troubleshooting-\u0440\u0430\u0437\u0434\u0435\u043b\u0443 \u043f\u0440\u043e <code>rp_filter<\/code>.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0435\u0441\u0442\u044c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0435\u043d\u0434, \u043d\u043e \u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043e\u043a, \u043f\u043b\u044e\u0441 <a href=\"http:\/\/Draw.io\" rel=\"noopener nofollow\">Draw.io<\/a>-\u0441\u0445\u0435\u043c\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u044b\u043b\u0438 \u0432 \u0441\u0442\u044b\u043a\u0435 \u0442\u0440\u0451\u0445 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c: Linux kernel, VRF\/policy routing \u0438 FRR. \u041a\u043e\u043d\u0444\u0438\u0433 \u043c\u043e\u0433 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u043c \u0432 FRR, SID \u043c\u043e\u0433 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 <code>ip route get<\/code>, \u043f\u0430\u043a\u0435\u0442 \u043c\u043e\u0433 \u0434\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0434\u043e PE \u2014 \u0438 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e drop \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u043b \u0443\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 decapsulation. RPF \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u043c: source \u0431\u044b\u043b \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c \u043b\u0438\u0448\u044c \u0447\u0435\u0440\u0435\u0437 VRF, \u0430 kernel \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u043b \u0435\u0433\u043e \u0438\u0437 core context.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u2014 state drift. <code>netplan apply<\/code> \u0441\u0431\u0440\u043e\u0441\u0438\u043b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u043e\u0434\u043d\u044f\u0442\u044b\u0435 IPv4-\u0430\u0434\u0440\u0435\u0441\u0430 VRF-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0438\u0441\u0447\u0435\u0437 VPN export. \u0421\u0435\u0442\u044c \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c \u00ab\u0438\u0437-\u0437\u0430 SRv6\u00bb \u2014 \u043e\u043d\u0430 \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0438\u0441\u0442\u0438\u043d\u044b \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p><strong>\u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u0431\u044b \u0438\u043d\u0430\u0447\u0435 \u0441 \u043d\u0443\u043b\u044f:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0421\u0440\u0430\u0437\u0443 \u0437\u0430\u0432\u0451\u043b \u0431\u044b \u0435\u0434\u0438\u043d\u044b\u0439 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438: \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 systemd units\/\u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0434\u043b\u044f VRF \u0438 service dataplane, \u0430 netplan \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0431\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0434 SRv6 \u0432 \u0441\u0430\u043c\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b \u0431\u044b upstream Linux <code>End.DT4<\/code> selftest \u0432 namespace. \u041e\u043d \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u043b, \u0447\u0442\u043e kernel \u0443\u043c\u0435\u0435\u0442 \u043d\u0443\u0436\u043d\u043e\u0435, \u0438 \u0441\u0443\u0437\u0438\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0437\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043b \u0431\u044b version matrix: kernel, FRR, iproute2, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 daemon\u2019\u044b \u0438 kernel features.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0440\u0430\u0437\u0443 \u043e\u043f\u0438\u0441\u0430\u043b \u0431\u044b \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441: RED \u043c\u0438\u0433\u0440\u0438\u0440\u0443\u0435\u0442 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c, BLUE \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u0430\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u0435\u0433\u043e \u0441\u0442\u043e\u0438\u043b\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0431\u044b \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u044b\u0439 IPv6-\u043f\u0440\u0435\u0444\u0438\u043a\u0441 \u0432 SSH-\u043a\u043e\u043c\u0430\u043d\u0434\u0435. \u042d\u0442\u043e \u0431\u044b\u043b\u0430 \u043c\u043e\u044f \u043e\u0448\u0438\u0431\u043a\u0430: \u043d\u0443\u0436\u043d\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0440\u0430\u0442\u044c \u0442\u043e\u0447\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 inventory, \u0431\u0435\u0437 \u00ab\u043f\u043e\u0445\u043e\u0436\u0438\u0445\u00bb \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c, \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u0430\u0447\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u2014 \u043d\u0435 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 SRv6 ping, \u0430 \u0442\u043e, \u0447\u0442\u043e \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u043e\u043d \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c.<\/p>\n<\/blockquote>\n<h3>\u0427\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043c\u043e\u0434\u043d\u043e\u043c\u0443 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u0431\u043b\u043e\u0433\u0435\u0440\u0443?<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0431\u044b \u044f \u0445\u043e\u0442\u0435\u043b \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043a\u0430\u043b\u044f\u043a\u0430\u0442\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e \u0431\u044b \u0437\u0430\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u043d\u0435 \u0440\u0430\u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0442\u0443\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0442\u043e\u0433\u043e \u041a\u0410\u041a \u042d\u0422\u041e \u041c\u041e\u0416\u041d\u041e \u0421\u0414\u0415\u041b\u0410\u0422\u042c, \u044f \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435.<\/p>\n<p>\u042f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u044e \u043d\u043e\u0432\u044b\u0439 \u0447\u0430\u0442 \u0432 \u044d\u0442\u043e\u043c \u0436\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0438 \u043f\u0438\u0448\u0443 \u043f\u0440\u043e\u043c\u0442:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/220\/871\/e8f\/220871e8f48b5b73b3b8ff5ba0a8924e.png\" alt=\"alt text\" width=\"830\" height=\"611\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/220\/871\/e8f\/220871e8f48b5b73b3b8ff5ba0a8924e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/220\/871\/e8f\/220871e8f48b5b73b3b8ff5ba0a8924e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>alt text<\/figcaption><\/div>\n<\/figure>\n<p>\u041d\u0443 \u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e <a href=\"https:\/\/blog.pomazanov.com\/posts\/srh-vs-two-labels\/\" rel=\"noopener nofollow\">\u0443\u0436\u0435 \u0432\u0438\u0434\u0435\u043b\u0438<\/a> &#8212; \u044f \u043d\u0438 \u0437\u043d\u0430\u043a\u0430 \u0442\u0430\u043c \u043d\u0435 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b.<\/p>\n<p>\u041d\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u043e \u0441 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f &#8212; \u0445\u0437, \u044f \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u0441\u0435\u0442\u0435\u0432\u0438\u043a, \u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <s>\u041f\u042d\u041c\u0412<\/s> LLM<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<ol>\n<li>\n<p>\u0421\u0435\u0442\u0435\u0432\u0438\u043a\u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u0442 <s>\u0441\u043c\u044b\u0441\u043b\u0430<\/s> \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043f\u043e \u0441\u0435\u0442\u044f\u043c, \u0434\u0430 \u0438 \u043b\u044e\u0431\u043e\u0439 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 &#8212; \u044d\u0442\u043e \u0432\u0441\u0451 \u043c\u043e\u0436\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u0432\u0430\u0441 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c \u0443\u0436\u0435. \u0422\u0443\u0442 \u043d\u0430\u0434\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043d\u0435 \u0441\u0430\u043c\u0443\u044e \u0441\u0438\u043b\u044c\u043d\u0443\u044e \u043c\u043e\u0434\u0435\u043b\u044c \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 &#8212; \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u043d\u0430 \u0434\u043d\u044f\u0445 \u0443 GPT \u0432\u044b\u0448\u043b\u0430 \u0444\u043b\u0430\u0433\u043c\u0430\u043d\u0441\u043a\u0430\u044f <a href=\"https:\/\/openai.com\/index\/gpt-6-astra\/\" rel=\"noopener nofollow\">GPT Astra<\/a> &#8212; \u0442\u0430\u043c \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0438\u0437\u0434\u0435\u0446. \u0410 \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430 \u0434\u0432\u0430 \u0448\u0430\u0433\u0430 \u043d\u0430\u0437\u0430\u0434 \u043e\u0442 \u0410\u0441\u0442\u0440\u044b.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e. \u041d\u043e \u0434\u0443\u043c\u0430\u044e, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u0436\u0435, \u043a\u0430\u043a \u0431\u044b\u043b\u043e \u0432 \u043a\u043e\u043d\u0446\u0435 18-\u0433\u043e \u0432\u0435\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u043e\u0432\u043e\u0433\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044f<\/p>\n<\/li>\n<li>\n<p>\u041d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0440\u0430\u0434\u043e\u0441\u0442\u043d\u043e &#8212; \u043d\u0435 \u0440\u0430\u0437 \u0441\u043b\u044b\u0448\u0430\u043b \u0432\u0438\u0434\u0435\u043d\u0438\u0435 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e LLM-\u043a\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0438\u0439 \u201c\u0443\u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u201d &#8212; \u0443\u043c\u043d\u044b\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0443\u043c\u043d\u0435\u0435, \u0442\u0443\u043f\u044b\u0435 &#8212; \u0442\u0443\u043f\u0435\u0435.<\/p>\n<\/li>\n<\/ol>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1084608\/\">https:\/\/habr.com\/ru\/articles\/1084608\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0424\u0430\u043a\u0442 1. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0436\u0435\u043b\u0430\u043d\u0438\u0435 &#8212; \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043e\u0447\u043a\u0443 \u043f\u0440\u043e SRv6, \u0432\u0435\u0440\u043d\u0435\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043f\u0440\u043e SRv6 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0432\u043e\u0439, \u0430 \u043f\u0440\u043e \u0442\u043e \u043a\u0430\u043a \u0438\u043d\u0434\u0443\u0441\u0442\u0440\u0438\u044f \u043f\u0440\u0438\u0448\u043b\u0430 \u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e LDP \u043a \u043a\u0430\u043a\u0438\u043c-\u0442\u043e \u0442\u0430\u043c SRv6  \u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440 \u21161\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e \u0434\u0430\u043b\u044c\u0448\u0435 &#8212; \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 https:\/\/blog.pomazanov.com\/posts\/srh-vs-two-labels\/ &#8212; \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0435\u0451, \u043d\u0435 \u043e\u0441\u043e\u0431\u043e \u0432\u0434\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u0438, \u043c\u0438\u043d\u0443\u0442 \u043f\u044f\u0442\u044c \u0437\u0430\u0439\u043c\u0451\u0442. \u042d\u0442\u043e \u0434\u043b\u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0441 \u0441\u0443\u0442\u044c\u044e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u0444\u0430\u043a\u0442\u0430 1.  \u0424\u0430\u043a\u0442 2. \u041b\u0438\u0441\u0442\u0430\u044f \u043d\u0430 \u0434\u043d\u044f\u0445 \u043b\u0435\u043d\u0442\u0443 Linkedin, \u0437\u043d\u0430\u043c\u0435\u043d\u0438\u0442\u043e\u0439 \u044f\u0440\u043c\u0430\u0440\u043a\u0435 \u0442\u0449\u0435\u0441\u043b\u0430\u0432\u0438\u044f, \u0437\u0430\u043c\u0435\u0442\u0438\u043b \u0447\u0442\u043e \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0447\u0443\u0432\u0430\u043a\u0430 \u0432 \u043b\u0435\u043d\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u043c\u043e\u0434\u043d\u0430\u044f AI-\u043f\u0440\u0438\u0441\u0442\u0430\u0432\u043a\u0430 \u043a \u0435\u0433\u043e \u0440\u043e\u043b\u0438: \u0412\u043e\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e &#8212; AI \u0438\u043d\u0444\u043b\u0443\u0435\u043d\u0441\u0435\u0440, \u0451\u043f\u0442\u0430!\u041d\u0443 \u044d\u0442\u043e \u044f \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0443\u0436\u0435 \u0438 \u043f\u0440\u043e AI-\u0448\u0435\u0447\u043a\u0443 \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u0442\u044c, \u043a\u0430\u0436\u0435\u0442\u0441\u044f. \u041d\u0443 \u043b\u0438\u0431\u043e \u0447\u0442\u043e\u0431\u044b AI-\u0448\u0435\u0447\u043a\u0430 \u0447\u0442\u043e-\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u0430, \u0438\u043b\u0438 \u0434\u0435\u043b\u0430\u043b\u0430, \u0430 \u0442\u044b \u043f\u0440\u043e \u044d\u0442\u043e \u043f\u0438\u0441\u0430\u043b.\u0414\u0438\u0441\u043a\u043b\u0435\u0439\u043c\u0435\u0440 \u21162\u0412\u043e\u0442 \u044d\u0442\u0430 \u0432\u043e\u0442 \u0441\u0442\u0430\u0442\u044c\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\u0441\u044c \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430 90% \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d AI. \u0412\u0441\u0451, \u0447\u0442\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043e AI, \u044f \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0441\u044f \u0441\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u044b, \u0447\u0442\u043e\u0431\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0442\u0435\u043a\u0441\u0442. \u041d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u0447\u043d\u043e, \u044f \u0441\u0430\u043c \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u0433\u0434\u0435 AI, \u0430 \u0433\u0434\u0435 \u044f &#8212; \u043c\u044b \u0441\u0442\u0430\u043b\u0438 \u043e\u0434\u043d\u0438\u043c \u0446\u0435\u043b\u044b\u043c.  \u0421\u0442\u0430\u0442\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044f\u0445:\u041e\u0434\u043d\u0430 \u0447\u0430\u0441\u0442\u044c, \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 &#8212; \u044d\u0442\u043e \u0420\u0410\u0417\u041c\u042b\u0428\u041b\u0415\u041d\u0418\u042f AI \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044f \u0435\u043c\u0443 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043b. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e :)\u0414\u0440\u0443\u0433\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 &#8212; \u044d\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b AI &#8212; \u043e\u043d\u0430 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0438\u043a\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437\u0443\u0447\u0430\u044e\u0442 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438 \u0445\u043e\u0442\u044f\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u0443\u0442\u044c \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u043d\u0430 \u041b\u0438\u043d\u0443\u043a\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0430\u0431\u0443 \u043f\u043e LDP\\MPLS\\TE\\SRv6. \u0415\u0451 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c )\u0412\u0441\u0451, \u0447\u0442\u043e \u043f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0430\u043c\u0438 \u043d\u0435 \u0441\u043a\u0440\u044b\u0442\u043e &#8212; \u044d\u0442\u043e \u043c\u043e\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u0438\u0439 \u0442\u0435\u043a\u0441\u0442 \u043e\u0431\u043e \u0432\u0441\u0451\u043c, \u0447\u0442\u043e \u0442\u0443\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442. \u041f\u043e\u0440\u043e\u0439 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u044b &#8212; \u0432 \u044d\u0442\u043e\u043c \u0438 \u043f\u0440\u0435\u043b\u0435\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0439 \u044d\u043f\u043e\u0445\u0438. \u041c\u043e\u0436\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u0447\u0438\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e, \u043d\u0435 \u0432\u0434\u0430\u0432\u0430\u044f\u0441\u044c \u0432 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438\u0412 \u043e\u0431\u0449\u0435\u043c, \u0441\u043e\u0431\u0440\u0430\u043b \u044f \u0432 \u0441\u0432\u043e\u0451\u043c \u043b\u044e\u0431\u0438\u043c\u043e\u043c PnetLab, \u0432\u043e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0435\u043d\u0434 \u0441 \u043b\u0438\u043d\u0443\u043a\u0441\u0430\u043c\u0438:\u0425\u043e\u0447\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0442 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435 \u0432\u0441\u044f\u043a\u0438\u0435 \u043e\u0432\u0435\u0440\u043b\u0435\u0439\u043d\u044b\u0435, \u043a\u0430\u043a \u043d\u0430\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0438 \u041a\u0440\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0421\u0438\u043d\u0435\u0433\u043e, \u0434\u0430 \u0442\u0430\u043a, \u0447\u0442\u043e \u0431\u044b \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d \u0431\u044b\u043b \u043c\u0435\u0436\u0434\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438.\u041d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043d\u0435 \u0432\u0441\u0451 \u043b\u0435\u043d\u044c, \u043f\u0443\u0441\u0442\u044c AI-\u0448\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442.\u041c\u043e\u044f \u0433\u043b\u0430\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 AI\u042d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e. \u042d\u0442\u043e \u043f\u0440\u044f\u043c \u043f\u0443\u0433\u0430\u043b\u043e. \u0418 \u044f \u0434\u043e\u043b\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u0431\u044b\u043b \u043e\u0441\u043b\u043e\u043c, \u0411\u0443\u0440\u0438\u0434\u0430\u043d\u043e\u0432\u044b\u043c \u043e\u0441\u043b\u043e\u043c &#8212; \u044f \u0441\u0438\u0434\u0435\u043b, \u0442\u0438\u0445\u043e-\u043c\u0438\u0440\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u043c DeepSeek-\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e (\u043a\u0430\u043a \u043c\u043d\u0435 \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c) \u0440\u0435\u0448\u0430\u043b \u043c\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u041d\u0415 \u0420\u0415\u0428\u0410\u041b\u0421\u042f \u0421\u0414\u0415\u041b\u0410\u0422\u042c \u0412\u042b\u0411\u041e\u0420. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u044f \u0440\u0435\u0448\u0438\u043b \u0447\u0442\u043e \u0434\u0432\u0435 \u0442\u044b\u0441\u044f\u0447\u0438 \u043f\u0438\u0446\u043e\u0442 \u0440\u0443\u0431\u043b\u0435\u0439 \u0434\u043b\u044f \u043f\u0430\u0446\u0430\u043d\u0430 \u043d\u0435 \u0431\u0430\u0431\u043a\u0438 \u0438 \u043a\u0443\u043f\u0438\u043b \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0443 \u043d\u0430 ChatGPT &#8212; \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u044b\u0442\u0438\u044f \u043f\u0435\u0440\u0435\u0448\u0451\u043b \u0432 \u043e\u0431\u0449\u0435\u043c. \u0412 \u0446\u0435\u043b\u043e\u043c, \u044f \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0440\u0435\u0448\u0438\u043b \u0442\u0443\u0442 \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u0438 \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0435\u043d\u0434\u043e\u0440\u043e\u0432. \u0411\u0443\u0434\u0443 \u0430\u0434\u0435\u043f\u0442\u043e\u043c OpenAI \u0432 \u043e\u0431\u0449\u0435\u043c (\u044d\u0442\u043e \u041d\u0415 \u043f\u0440\u043e\u043f\u0430\u0433\u0430\u043d\u0434\u0430 \u041b\u0413\u0411\u0422, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e, \u043e\u0441\u0443\u0436\u0434\u0430\u044e). \u041d\u0443 \u044f, \u0432 \u043e\u0431\u0449\u0435\u043c, \u0441\u0438\u0434\u0435\u043b \u0432 \u0447\u0430\u0442\u0438\u043a\u0435 \u0442\u0430\u043a\u043e\u0439, \u043e\u0431\u0449\u0430\u043b\u0441\u044f \u0441 ChatGPT \u0438 \u0447\u0443\u044f\u043b \u043a\u0430\u043a \u0420\u0410\u0421\u0422\u0401\u0422 \u041c\u041e\u042f \u042d\u0424\u0424\u0415\u041a\u0422\u0418\u0412\u041d\u041e\u0421\u0422\u042c. \u041d\u043e \u0431\u044b\u043b \u0435\u0449\u0451 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e Codex\u2026 \u041f\u043e\u043e\u0431\u0449\u0430\u0432\u0448\u0438\u0441\u044c \u0441 \u043f\u0430\u0440\u043e\u0447\u043a\u043e\u0439 \u0442\u0435\u0445 \u0441\u0430\u043c\u044b\u0445 AI-\u0438\u043d\u0444\u043b\u044e\u0435\u043d\u0441\u0435\u0440\u043e\u0432 \u043c\u043d\u0435 \u0441\u043a\u0430\u0437\u0430\u043b\u0438 &#8212; \u201c\u041d\u0443 \u0442\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 Codex. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0439 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u044b \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0448\u044c \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0436\u0438\u0442\u044c. \u0421\u0442\u0440\u0430\u0448\u043d\u043e, \u043d\u043e \u044f \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435 \u043c\u043e\u0433\u0443 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e \u0436\u0438\u0442\u044c, \u0434\u0430\u2026 \u041d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0433\u043b\u0443\u0431\u043b\u044f\u0442\u044c\u0441\u044f \u0432 \u043f\u0441\u0438\u0445\u043e\u043b\u043e\u0433\u0438\u044e \u043f\u0440\u0438\u0432\u044b\u043a\u0430\u043d\u0438\u044f, \u0441\u043a\u0430\u0436\u0443 \u0432\u043a\u0440\u0430\u0442\u0446\u0435 &#8212; AI \u043a\u0430\u043a \u043d\u0430\u0440\u043a\u043e\u0442\u0438\u043a. \u0418 \u043f\u043e\u0440\u043e\u0439 \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0441 AI, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0445\u0430\u0440\u043d\u0435\u0441\u0430 \u0434\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u041f\u0420\u0410\u0412\u0418\u041b\u042c\u041d\u041e\u0413\u041e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u0442\u044b \u0425\u041e\u0427\u0415\u0428\u042c &#8212; \u0443\u0445\u043e\u0434\u0438\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0442\u043e\u0439\u0436\u0435 \u0441\u0430\u043c\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u0431\u0435\u0437 AI. \u041d\u043e \u044f \u0441\u0430\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0447\u0443\u0441\u044c \u0441 \u044d\u0442\u0438\u043c \u0432\u0441\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c\u2026.  \u0414\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0430\u0433\u0435\u043d\u0442\u0430\u0412 \u043e\u0431\u0449\u0435\u043c, \u0442\u0430\u043a \u043a\u0430\u043a \u044f \u0432\u0438\u043d\u0434\u0443\u0437\u044f\u0442\u043d\u0438\u043a, \u0441\u0442\u0430\u0432\u0438\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u0435\u0431\u0435 ChatGPT.exe. \u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0442\u0430\u043c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0432\u043e\u0442 \u0442\u0430\u043a:  \u0412 \u0432\u0438\u043d\u0434\u0435 \u044f \u0441\u043e\u0437\u0434\u0430\u043b \u043f\u0430\u043f\u043a\u0443 \u0438 \u0443\u043a\u0430\u0437\u0430\u043b \u0435\u0451 \u043a\u0430\u043a \u201c\u0440\u0430\u0431\u043e\u0447\u0443\u044e\u201d \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412 \u043f\u0430\u043f\u043a\u0435 \u0431\u0443\u0434\u0443\u0442 \u0432\u0441\u044f\u043a\u0438\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 &#8212; \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430. \u0412 \u0446\u0435\u043b\u043e\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u201cCodex\u201d \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u201cCode\u201d &#8212; \u0438 \u0434\u0430, \u043f\u043e \u0444\u0430\u043a\u0442\u0443, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u0433\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0421\u041e\u0417\u0414\u0410\u0412\u0410\u0422\u042c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043a\u043e\u0434, \u0442\u043e \u0435\u0441\u0442\u044c \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u0418\u0420\u041e\u0412\u0410\u0422\u042c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0440\u0435\u0448\u0430\u044f \u043d\u0430\u0448\u0438 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u0443 \u0438 \u043a\u0430\u043a \u0442\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0434\u0435\u043b\u0430\u044f \u043d\u0435\u043a\u0438\u0435 \u0412\u042b\u0412\u041e\u0414\u042b.\u0412 \u0446\u0435\u043b\u043e\u043c, \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u044f\u043c \u0434\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0432 \u043b\u0430\u0431\u0443 \u0443\u0436\u0435 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443, \u043d\u043e \u0438\u0441\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442, \u0445\u043e\u0442\u044c \u0438 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442, \u043d\u043e \u0438\u0441\u043a\u0443\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 &#8212; \u043d\u0430\u0434\u043e \u0438\u043c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0442\u044c, \u0442\u0430\u043a \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043c\u044b\u0441\u043b\u044c \u0435\u0433\u043e \u0443\u0436 \u043e\u0447\u0435\u043d\u044c \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e \u0434\u0440\u0435\u0432\u0443 \u043d\u0435 \u0440\u0430\u0441\u0442\u0435\u043a\u0430\u043b\u0430\u0441\u044c. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u043d\u0435\u043a\u0438\u0435 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0440\u0430\u043c\u043a\u0430 \u0435\u0433\u043e \u043c\u044b\u0441\u043b\u044c\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043f\u0443\u0442\u0451\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u0430 AGENTS.md \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043a\u0438\u0439 \u201c\u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u201d \u0432\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0435\u0439\u0447\u0430\u0441, \u0441\u0430\u043c\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u043d\u0430\u0432\u044b\u043a, \u0447\u0442\u043e \u0431\u044b \u0433\u043e\u0440\u0434\u043e \u0437\u0432\u0430\u0442\u044c\u0441\u044f AI-\u0431\u0438\u043b\u0434\u0435\u0440\u043e\u043c &#8212; \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u0430\u0432\u044b\u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0439 \u044d\u0442\u043e \u043e\u0431\u0432\u044f\u0437\u043a\u0438 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u0423\u0436\u0435 \u0436\u0435 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u043e \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u0435 \u043f\u043e\u0448\u043b\u0430 \u0438 \u0432\u0441\u0451 \u0442\u0430\u043a\u043e\u0435. \u041a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c agents.md \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0442\u0443\u0442 &#8212; https:\/\/learn.chatgpt.com\/docs\/agent-configuration\/agents-md \u0438\u043b\u0438 \u0442\u0443\u0442 &#8212; https:\/\/code.claude.com\/docs\/ru\/memory\u042f \u043d\u0430 \u0440\u043e\u043b\u044c AI-\u0431\u0438\u043b\u0434\u0435\u0440\u0430 \u043d\u0435 \u0440\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0443\u0441\u0441\u043a\u0438\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0435\u043c\u0443 \u043e\u043f\u0438\u0448\u0443 \u0447\u0442\u043e \u044f \u0445\u043e\u0447\u0443 \u0432\u043e\u043e\u0431\u0449\u0435. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a (\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u044e \u0437\u0430 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c)\u041c\u043e\u0439 AGENTS.mdMPLS \/ Segment Routing AI Lab\u041a\u0442\u043e \u0442\u044b \u0437\u0434\u0435\u0441\u044c \u0432\u043e\u043e\u0431\u0449\u0435 \u0442\u0430\u043a\u043e\u0439\u0422\u044b \u2014 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0434\u0430\u043b\u0438 \u043d\u0430\u0431\u043e\u0440 Linux-\u043c\u0430\u0448\u0438\u043d, \u0441\u043e\u0435\u0434\u0438\u043d\u0451\u043d\u043d\u044b\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u043b\u0438\u043d\u043a\u0430\u043c\u0438, SSH-\u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0447\u0430\u0442\u0443\u044e \u0437\u0430\u0434\u0430\u0447\u0443:\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043d\u0430\u0431\u043e\u0440 \u043c\u0430\u0448\u0438\u043d \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u043e\u0431\u044b\u0447\u043d\u0443\u044e IP-\u0441\u0435\u0442\u044c, \u0437\u0430\u0442\u0435\u043c \u0432 MPLS-\u0441\u0435\u0442\u044c, \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0432\u0435\u0441\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0451 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u0437\u0430\u0442\u0435\u043c \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0437\u0430\u0447\u0435\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u043e Traffic Engineering, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0440\u0430\u0434\u0438 Segment Routing \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0434\u043e\u0435\u0445\u0430\u0442\u044c \u0434\u043e SRv6.\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0439, \u0447\u0442\u043e IP-\u0441\u0435\u0442\u044c \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442.\u041c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e:Linux-\u043c\u0430\u0448\u0438\u043d\u044b;\u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b;\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043b\u0438\u043d\u043a-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438;management-\u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e SSH.\u0410\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044e, L3-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c, IGP \u0438 \u0432\u0441\u0451 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0435\u0449\u0451 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c.\u0422\u0432\u043e\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0435 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c CLI-generator \u0438 \u043d\u0435 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u0438\u043b\u043e\u043c\u0435\u0442\u0440\u043e\u0432\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e.\u0422\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0435\u043d\u0434\u043e\u043c \u043a\u0430\u043a \u0438\u043d\u0436\u0435\u043d\u0435\u0440:\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u2192 \u043f\u043e\u043d\u044f\u0442\u044c \u2192 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u0442\u044c \u2192 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u2192 \u0447\u0442\u043e-\u043d\u0438\u0431\u0443\u0434\u044c \u0441\u043b\u043e\u043c\u0430\u0442\u044c \u2192 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u043e\u0447\u0435\u043c\u0443 \u2192 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u2192 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.\u0415\u0441\u043b\u0438 \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0442\u044c \u2014 \u0442\u043e\u0436\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u041d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0440\u0430\u0434\u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0439 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0435 \u043d\u0430\u0434\u043e.\u0427\u0442\u043e \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043c\u041b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u043f\u0443\u0442\u044c:\u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043d\u0434\u0430 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438;\u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0439 IP-\u0441\u0435\u0442\u0438;\u0432\u044b\u0431\u043e\u0440 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 IGP;MPLS + LDP;MPLS L3VPN;\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MPLS Traffic Engineering;Segment Routing MPLS;SRv6.\u042d\u0442\u043e \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440, \u0430 \u043d\u0435 \u0436\u0451\u0441\u0442\u043a\u0438\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439.\u0415\u0441\u043b\u0438 \u0432 \u0445\u043e\u0434\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430 \u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043d\u0443\u0436\u0435\u043d \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u0447\u043d\u044b\u0439 \u0448\u0430\u0433 \u2014 \u0434\u043e\u0431\u0430\u0432\u044c \u0435\u0433\u043e \u0438 \u043e\u0431\u044a\u044f\u0441\u043d\u0438 \u0437\u0430\u0447\u0435\u043c.\u041d\u0435 \u043f\u044b\u0442\u0430\u0439\u0441\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0441\u0451 \u0441\u0440\u0430\u0437\u0443.\u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 IP-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c\u044e \u2014 \u043d\u0435 \u043d\u0430\u0434\u043e \u043c\u0435\u0436\u0434\u0443 \u0434\u0435\u043b\u043e\u043c \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c MPLS \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043c\u044b \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043a\u043e\u0433\u0434\u0430-\u043d\u0438\u0431\u0443\u0434\u044c \u0434\u043e \u043d\u0435\u0433\u043e \u0434\u043e\u0439\u0434\u0451\u043c.\u041a\u0430\u0436\u0434\u044b\u0439 \u044d\u0442\u0430\u043f \u2014 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442.\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.\u041d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0439 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u0441\u0435\u0442\u0438\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0441 \u0438\u043c\u0435\u043d\u0435\u043c R1 \u0435\u0449\u0451 \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c \u0432 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0441\u043c\u044b\u0441\u043b\u0435.\u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e Linux-\u043c\u0430\u0448\u0438\u043d\u0430 \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c\u0438.\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u044f\u0441\u043d\u044f\u0439 \u0444\u0430\u043a\u0442\u044b:\u043a\u0430\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442;\u043a\u0430\u043a\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0434\u043d\u044f\u0442\u044b;\u043a\u0430\u043a\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u043b\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439;\u043a\u0430\u043a\u0438\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u0443\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b;\u043a\u0430\u043a\u0438\u0435 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442;\u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u043b\u0438\u0431\u043e routing daemons;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043b\u0438 FRR;\u0435\u0441\u0442\u044c \u043b\u0438 LLDP;\u0447\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0442\u0435\u043d\u0434\u0435 \u0441\u0435\u0439\u0447\u0430\u0441.\u041d\u0435 \u0434\u043e\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0439 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0444\u0430\u043a\u0442\u044b \u0438\u0437 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0445\u043e\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438.\u0415\u0441\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f R3, \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043e\u043d\u0430 \u0443\u0436\u0435 \u0443\u043c\u0435\u0435\u0442 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e\u041d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u0434\u043c\u0435\u043d\u044f\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0443\u044e \u0441\u0435\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u043c.\u0422\u043e, \u0447\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0430\u0441\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043a\u0438, \u0435\u0449\u0451 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.\u0422\u043e, \u0447\u0442\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432 FRR, \u0442\u043e\u0436\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.\u0422\u043e, \u0447\u0442\u043e \u0441\u043e\u0441\u0435\u0434\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u043d\u044f\u043b\u043e\u0441\u044c, \u0438\u043d\u043e\u0433\u0434\u0430 \u0434\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u043d\u043e \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.\u041d\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0443\u0435\u0442 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0438.\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0441\u043b\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0449\u0438 evidence:\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432;neighbor state;routing tables;protocol databases;labels \u0438 LFIB;forwarding;ping;traceroute;tcpdump;counters;\u043b\u043e\u0433\u0438;\u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 Linux networking;\u043b\u044e\u0431\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u043e\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?\u00bb.\u041a\u0430\u043a \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f\u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 chain-of-thought \u043c\u043e\u0434\u0435\u043b\u0438.\u041d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u044b \u0441\u0434\u0435\u043b\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u0448\u0430\u0433.\u041f\u0435\u0440\u0435\u0434 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u043c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u043a\u0440\u0430\u0442\u043a\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0439:\u0447\u0442\u043e \u043c\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u043d\u0430\u0435\u043c;\u0447\u0435\u0433\u043e \u0445\u043e\u0442\u0438\u043c \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f;\u0447\u0442\u043e \u0432 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0442\u0435\u0431\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432\u0430\u0436\u043d\u044b\u043c;\u0447\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0448\u044c\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c;\u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u0440\u0430\u0437\u0443\u043c\u043d\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433.\u041f\u043e\u0441\u043b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:\u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c;\u0441\u043e\u0432\u043f\u0430\u043b\u043e \u043b\u0438 \u044d\u0442\u043e \u0441 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f\u043c\u0438;\u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u043d\u0430\u0435\u043c;\u043a\u0443\u0434\u0430 \u043a\u043e\u043f\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.\u041d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0439 \u044d\u0442\u043e \u0432 \u0431\u044e\u0440\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0442\u0447\u0451\u0442 \u0438\u0437 \u0441\u0435\u043c\u0438 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0443\u043d\u043a\u0442\u043e\u0432.\u042d\u0442\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0445\u043e\u0434 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u043e\u0439 \u043c\u044b\u0441\u043b\u0438.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\u041c\u0435\u0436\u0434\u0443 R1 \u0438 R2 \u043b\u0438\u043d\u043a \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u043d\u044f\u0442, \u043d\u043e IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043d\u0430 \u043d\u0451\u043c \u043f\u043e\u043a\u0430 \u043d\u0435\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u043d\u044b\u0439 \u043f\u043b\u0430\u043d \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u0443\u044e L3-\u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c. \u041f\u043e\u043a\u0430 \u0440\u0430\u043d\u043e \u0434\u0443\u043c\u0430\u0442\u044c \u043f\u0440\u043e OSPF, LDP \u0438 \u043f\u0440\u043e\u0447\u0438\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u2014 \u0443 \u043d\u0430\u0441 \u0435\u0449\u0451 \u0434\u0430\u0436\u0435 IP-\u043f\u0430\u043a\u0435\u0442\u0443 \u0435\u0445\u0430\u0442\u044c \u043d\u0435\u043a\u0443\u0434\u0430.\u0418\u043b\u0438 \u043f\u043e\u0437\u0436\u0435:OSPF \u043f\u043e\u0434\u043d\u044f\u043b\u0441\u044f \u043d\u0430 \u0432\u0441\u0435\u0445 \u043b\u0438\u043d\u043a\u0430\u0445, loopback\u2019\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b. \u041e\u0442\u043b\u0438\u0447\u043d\u043e \u2014 \u0442\u0435\u043f\u0435\u0440\u044c \u0443 LDP \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0435\u0441\u0442\u044c \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0441\u043f\u043e\u0440\u0442\u043d\u0430\u044f \u043e\u0441\u043d\u043e\u0432\u0430. \u0412\u043a\u043b\u044e\u0447\u0438\u043c \u0435\u0433\u043e \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0441\u043e\u0441\u0435\u0434\u0435\u0439, \u043d\u043e \u0438 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c.\u042d\u0442\u043e \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c:\u0428\u0430\u0433 1. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u0430 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c. \u0428\u0430\u0433 2. \u0411\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d OSPF.\u0421\u0442\u0440\u043e\u0438\u043c \u0441\u0435\u0442\u044c \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e\u041a\u0430\u0436\u0434\u044b\u0439 \u043d\u043e\u0432\u044b\u0439 \u0441\u043b\u043e\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u043f\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439.\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430:\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043b\u0438\u043d\u043a \u2192 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u2192 IP-\u0430\u0434\u0440\u0435\u0441\u0430\u0446\u0438\u044f \u2192 connected routes \u2192 IP reachability \u2192 IGP \u2192 MPLS transport \u2192 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u2192 Traffic Engineering \u2192 Segment Routing\u0415\u0441\u043b\u0438 \u043d\u0438\u0436\u043d\u0438\u0439 \u0441\u043b\u043e\u0439 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u043d\u0435 \u043d\u0430\u0434\u043e \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:\u0435\u0441\u043b\u0438 loopback \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0436\u0438\u043c \u043f\u043e IP, \u043d\u0435 \u043d\u0430\u0434\u043e \u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0447\u0438\u043d\u0438\u0442\u044c \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 LDP.\u0415\u0441\u043b\u0438 LDP \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e L3VPN \u043d\u0435\u0442 \u2014 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u044f\u0441\u043d\u0438, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 transport \u0438\u043b\u0438 service plane.\u0415\u0441\u043b\u0438 SRv6 SID \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 control plane, \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u044b\u0439 behavior \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0432 dataplane.Troubleshooting\u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u2014 \u043d\u0435 \u043d\u0430\u0434\u043e \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0445\u0430\u043e\u0442\u0438\u0447\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e.\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0439\u043c\u0438, \u0433\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0447\u0430\u043b\u0438\u0441\u044c \u043d\u0430\u0448\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f.\u0425\u043e\u0440\u043e\u0448\u0438\u0439 troubleshooting \u043e\u0431\u044b\u0447\u043d\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:\u041d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u2192 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0438\u043f\u043e\u0442\u0435\u0437 \u2192 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u2192 \u043d\u043e\u0432\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u2192 \u0432\u044b\u0432\u043e\u0434 \u2192 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433.\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:CE1 \u043f\u0438\u043d\u0433\u0443\u0435\u0442 \u0441\u0432\u043e\u0439 PE. MPLS&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-495395","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/495395","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=495395"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/495395\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=495395"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=495395"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=495395"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}