{"id":465693,"date":"2025-07-02T15:00:43","date_gmt":"2025-07-02T15:00:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=465693"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=465693","title":{"rendered":"<span>\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0442\u044c \u043d\u0430 OVN \u0438 \u043d\u0435 \u0441\u043b\u043e\u043c\u0430\u0442\u044c\u0441\u044f: \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u0433\u0430\u0439\u0434<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5c\/cbe\/a7c\/e5ccbea7c5d835970e6ae1ef8b2ceb24.png\" width=\"3840\" height=\"2160\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/e5c\/cbe\/a7c\/e5ccbea7c5d835970e6ae1ef8b2ceb24.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e5c\/cbe\/a7c\/e5ccbea7c5d835970e6ae1ef8b2ceb24.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0432\u043d\u043e\u0432\u044c \u041a\u0438\u0440\u0438\u043b\u043b \u0421\u0430\u0432\u0438\u043d, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 SDN \u0432 \u041e\u0431\u043b\u0430\u043a\u0435 \u0420\u0435\u0433.\u0440\u0443. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0432\u0437\u0432\u0435\u0441\u0438\u043b\u0438 \u0432\u0441\u0435 \u0440\u0438\u0441\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0432\u043e\u043b\u0435\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0442\u044c \u043d\u0430 OVN. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0434\u0443\u043c\u0430\u043b\u0438 \u043d\u0430\u0434 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u0440\u0435\u0448\u0430\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043d\u0430\u0431\u0438\u0432\u0430\u043b\u0438 \u0448\u0438\u0448\u043a\u0438. \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438.<\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/companies\/runity\/articles\/922172\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d OVN \u0438\u0437\u043d\u0443\u0442\u0440\u0438, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435! \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043e\u043f\u0438\u0448\u0443 \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u043b\u0430\u043a\u0430 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0434\u0430\u0443\u043d\u0442\u0430\u0439\u043c\u043e\u043c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438, \u043d\u043e \u0431\u0435\u0437 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0414\u043b\u044f \u00ab\u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430\u00bb \u044f \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043b \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0438 \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u0412\u043d\u0443\u0442\u0440\u0438 \u2014 \u043f\u043e \u0448\u0430\u0433\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435 \u0438 \u0434\u0435\u043b\u044e\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c.<\/p>\n<h4>\u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443:<\/h4>\n<ul>\n<li>\n<p><a href=\"#1\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u043d\u0430 OVN<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 Grafana<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 OpenFlow-\u0444\u0430\u0439\u0440\u0432\u043e\u043b \u0432 Open vSwitch<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OVN Control plane<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5\" rel=\"noopener noreferrer nofollow\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Control plane OVN \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 Neutron \u043d\u0430 OVN<\/a>\u00a0<\/p>\n<\/li>\n<li>\n<p><a href=\"#6\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438: \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0447\u0435\u0441\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0434 \u0431\u0435\u0437 \u0440\u0430\u0437\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0412\u041c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#8\" rel=\"noopener noreferrer nofollow\">\u0413\u043e\u0442\u043e\u0432\u043e \u2014 \u0432\u0432\u043e\u0434 \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u043e\u0434<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#9\" rel=\"noopener noreferrer nofollow\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#10\" rel=\"noopener noreferrer nofollow\">\u00ab\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435\u00bb, \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#11\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 (\u043d\u043e \u043d\u0435 \u043a\u043e\u043d\u0435\u0446 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438!)<\/a>\u00a0<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h3>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u043d\u0430 OVN<\/h3>\n<p>\u041a\u0430\u043a \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/runity\/articles\/922172\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u043f\u043b\u044e\u0441\u044b OVN \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0438\u043b\u0438 \u0435\u0433\u043e \u043c\u0438\u043d\u0443\u0441\u044b \u2014 \u0438 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041a\u0440\u0430\u0442\u043a\u043e \u043d\u0430\u043f\u043e\u043c\u043d\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430: \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0437\u0430 \u0441\u0447\u0435\u0442 \u043e\u0442\u043a\u0430\u0437\u0430 \u043e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 namespaces, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u044b\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 OVN \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 SDN.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0434 \u043d\u0430\u0448\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e <a href=\"https:\/\/docs.openstack.org\/kolla-ansible\/latest\/user\/quickstart.html\" rel=\"noopener noreferrer nofollow\">kolla-ansible<\/a> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f OpenStack \u0438 Neutron \u0441 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c ML2 Open vSwitch. \u0422\u0430\u043a, \u0432 \u0440\u043e\u043b\u0438 \u0444\u0430\u0439\u0440\u0432\u043e\u043b\u0430 \u2014 <code>nftables<\/code>, \u0430 DHCP-\u0430\u0433\u0435\u043d\u0442\u044b \u0432 namespaces \u0441 dnsmasq \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0430 <code>openvswitch_agent<\/code>.<\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043a \u043f\u043e\u0434\u0445\u043e\u0434\u0443 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u043e \u0442\u043e, \u0447\u0442\u043e kolla-ansible \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u0420\u0430\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u043e\u043b\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441\u043c\u0435\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u043e\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0430\u0447\u0438, \u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043d\u0430 \u0442\u0435\u043c\u0443 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 OVN. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043c\u0435\u0440\u0435.<em> <\/em><\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435:\u00a0<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 <a href=\"https:\/\/www.jimmdenton.com\/migrating-lxb-to-ovn\/\" rel=\"noopener noreferrer nofollow\">LinuxBridge<\/a><\/p>\n<p>Hassle-free migration from <a href=\"https:\/\/www.youtube.com\/watch?v=TpSTDQnoIRM\" rel=\"noopener noreferrer nofollow\">OVS to OVN<\/a><\/p>\n<p>Live-\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f <a href=\"https:\/\/www.youtube.com\/watch?v=V89VlbjjZJY\" rel=\"noopener noreferrer nofollow\">Nectar Research Cloud<\/a>\u00a0<\/p>\n<p><strong>\u0413\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0430\u043d \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f TripleO:\u00a0<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.redhat.com\/en\/documentation\/red_hat_openstack_platform\/17.1\/html\/migrating_to_the_ovn_mechanism_driver\/migrating-ovs-to-ovn#ml2-ovs-to-ovn-migration-prepare_migrating-ovs-to-ovn\" rel=\"noopener noreferrer nofollow\">RedHat Documentation<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/opendev.org\/openstack\/neutron\/src\/branch\/master\/tools\/ovn_migration\" rel=\"noopener noreferrer nofollow\">Neutron Repository<\/a> (\u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0434, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 TripleO, \u0443\u0434\u0430\u043b\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a TripleO \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f).\u00a0<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 dev-\u0441\u0442\u0435\u043d\u0434\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u0441\u0440\u0435\u0434\u0430\u0445, \u043c\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0432\u044b\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0430 \u0438\u0434\u0442\u0438 \u043f\u043e \u043f\u0443\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u0431\u044b \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u0438. \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 Grafana<\/h3>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0440\u0430\u0431\u043e\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c node_exporter \u043d\u0430 \u043d\u043e\u0434\u0430\u0445. \u0414\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 OVS\/OVN \u0435\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u044b \u043e\u0442 <a href=\"https:\/\/github.com\/greenpau\" rel=\"noopener noreferrer nofollow\">Paul Greenberg<\/a>, \u043d\u043e, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u043e\u043d\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445 \u0438, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u043a\u043e\u0434 \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u0440\u0435\u0430\u043b\u0438\u0438 \ud83d\ude42\u00a0<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h3>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 OpenFlow-\u0444\u0430\u0439\u0440\u0432\u043e\u043b \u0432 Open vSwitch<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (security groups) OVN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 OpenFlow-\u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u2014 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 iptables\/nftables \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 Open vSwitch. \u042d\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043c\u0435\u043d\u044b \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0444\u0430\u0439\u0440\u0432\u043e\u043b\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>neutron-openvswitch-agent<\/code>. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<p>1. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b <code>\/etc\/kolla\/config\/neutron\/openvswitch_agent.ini<\/code> \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0431\u043b\u043e\u043a <code>[securitygroup]<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"bash\">[securitygroup] firewall_driver = openvswitch<\/code><\/pre>\n<p>2. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Neutron \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0435 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u043e\u0434\u0430\u0445:<\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode genconfig -t neutron --diff<\/code><\/pre>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432 \u0444\u0430\u0439\u043b\u0435 <code>openvswitch_agent.ini<\/code> \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u0434\u0440\u0430\u0439\u0432\u0435\u0440:<\/p>\n<pre><code class=\"bash\">[securitygroup] -firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver +firewall_driver = openvswitch<\/code><\/pre>\n<p>3. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0430\u0433\u0435\u043d\u0442 <code>neutron-openvswitch-agent<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u043e\u0434:<\/p>\n<pre><code class=\"bash\">systemctl restart kolla-neutron_openvswitch_agent-container<\/code><\/pre>\n<p>4. \u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0437 <code>nftables<\/code> \u0438 <code>ipset<\/code>:<\/p>\n<pre><code class=\"bash\">nft list tables | while read -r table; do nft delete table \"$table\"; done ipset list -n | xargs -I {} ipset destroy {}<\/code><\/pre>\n<p>5. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 security group \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u0435 ICMP \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0412\u041c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>`ping`<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u2014 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f TCP-\u043f\u043e\u0440\u0442\u043e\u0432 80\/443 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>`curl`<\/code> \u0438\u043b\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OVN Control plane<\/h3>\n<p>\u0414\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 Docker-\u043e\u0431\u0440\u0430\u0437\u044b. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0441\u0432\u043e\u0438 \u2014 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c. \u041f\u0435\u0440\u0435\u0434 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0448\u0435\u0434\u0443\u043b\u0438\u043d\u0433 \u043d\u043e\u0432\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043d\u0430 \u0432\u0441\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b.<\/p>\n<pre><code class=\"bash\">for i in `openstack compute service list -c Host -f value`; do openstack compute service set --disable $i nova-compute; done<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u0430\u0433\u0435\u043d\u0442 neutron \u043d\u0430 ovn \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 DHCP \u0432 <code>\/etc\/kolla\/globals.yml<\/code><\/p>\n<pre><code class=\"bash\">-neutron_plugin_agent: \"openvswitch\" -neutron_ovn_dhcp_agent: \"no\" +neutron_plugin_agent: \"ovn\" +neutron_ovn_dhcp_agent: \"yes\"<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <a href=\"https:\/\/docs.openstack.org\/neutron\/latest\/admin\/ovn\/routing.html\" rel=\"noopener noreferrer nofollow\">DVR<\/a>, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 FIP \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0438\u0434\u0435\u0442 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043d\u043e\u0434\u0443, \u0430 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u044d\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f: <code>+neutron_ovn_distributed_fip: \u201cyes\u201d<\/code><\/p>\n<p>\u0412 \u0444\u0438\u043d\u0430\u043b\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 neutron \u0432 <code>\/etc\/kolla\/config\/neutron\/ml2_conf.conf\u00a0 <\/code>[ml2]:<\/p>\n<pre><code class=\"bash\">-mechanism_drivers = openvswitch, 2population +mechanism_drivers = ovn<\/code><\/pre>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 OVN Control Plane \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 Neutron \u043d\u0430 OVN\u00a0<\/h3>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 OVN Control Plane: \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 <code>ovn-nb-db<\/code>, <code>ovn-sb-db<\/code> \u0438 \u0434\u0435\u043c\u043e\u043d <code>ovn-northd<\/code>.<\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043e\u043d\u0438 \u0441\u0442\u0430\u0432\u044f\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u0434\u044b \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 [control] \u0444\u0430\u0439\u043b\u0430 <code>multinode<\/code>. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0445 \u043d\u043e\u0434 \u0442\u0440\u0438 \u2014 OVN \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 <strong>RAFT<\/strong> \u0434\u043b\u044f \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>ovn-nb-db (NorthBound) \u0438 ovn-sb-db (SouthBound) \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>ovn-northd \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <strong>active+standby<\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c OVN Control Plane:<\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode deploy -t ovn --limit control --diff<\/code><\/pre>\n<h4>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Neutron \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 OVN<\/h4>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c <code>neutron-server<\/code> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 OVN \u043a\u0430\u043a SDN-\u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c.<\/p>\n<p><em>\u26a0\ufe0f <\/em><strong><em>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435:<\/em><\/strong><em> \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Neutron \u043d\u0430\u0447\u043d\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OVN. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043f\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 OVS+Hybrid Iptables) \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u0430\u043f\u0443.<\/em><\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode reconfigure -t neutron --limit control --diff --check<\/code><\/pre>\n<h4>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043b\u043e\u0433\u043e\u0432<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 <code>WARNING<\/code>, <code>ERROR<\/code> \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u043b\u0438\u0434\u0435\u0440\u0430 RAFT:<\/p>\n<pre><code class=\"bash\">tail \/var\/log\/kolla\/openvswitch\/ovn-nb-db.log tail \/var\/log\/kolla\/openvswitch\/ovn-sb-db.log tail \/var\/log\/kolla\/openvswitch\/ovn-northd.log tail \/var\/log\/kolla\/neutron\/neutron-server.log<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 OVN:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovs-appctl -t \/var\/run\/ovn\/ovnnb_db.ctl cluster\/status OVN_Northbound<\/code><\/pre>\n<pre><code class=\"bash\">docker exec ovn_sb_db ovs-appctl -t \/var\/run\/ovn\/ovnsb_db.ctl cluster\/status OVN_Southbound<\/code><\/pre>\n<p>\u0418 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 OVN:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl --no-leader-only list NB_Global<\/code><\/pre>\n<pre><code class=\"bash\">docker exec ovn_sb_db ovn-sbctl --no-leader-only list SB_Global<\/code><\/pre>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438: \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0447\u0435\u0441\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435<\/h3>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 Neutron \u0432 OVN \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0440\u044f\u0434\u043e\u043c \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0438 \u043e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430. \u0421\u043e\u0431\u0440\u0430\u043b \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p><strong>1. \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b Neutron \u0441 OVN NB. <\/strong>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f <code>neutron-ovn-db-sync-util<\/code> \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<pre><code class=\"bash\">Unhandled error: neutron.ipam.exceptions.IpAddressGenerationFailureNoMatchingSubnet: No valid service subnet for the given device owner, network &lt;network-uuid&gt;, service type network:distributed.<\/code><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0441 \u0442\u0438\u043f\u043e\u043c <code>network:distributed<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f OVN \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u0440\u0442\u0430\u043c\u0438.\u00a0<\/p>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435:<\/strong> \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<pre><code class=\"bash\">openstack subnet create --no-dhcp --subnet-range \"192.168.100.0\/24\" --gateway 192.168.100.1 --service-type network:distributed --network external distributed_external_subnet<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043c\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043c\u0438\u0440\u0430. \u041f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<p><strong>2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 DHCP \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u043e\u0434\u0441\u0435\u0442\u044f\u0445. <\/strong>\u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d DHCP, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439:<\/p>\n<pre><code class=\"bash\">Failed to create port on network &lt;UUID&gt;, because fixed_ips included invalid subnet &lt;UUID&gt;<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0451 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 Neutron:<\/p>\n<pre><code class=\"bash\">docker exec mariadb mysql -u root -p&lt;PASSWORD&gt;<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"bash\">USE neutron; SELECT id, name, enable_dhcp FROM subnets WHERE network_id = '&lt;external-network-id&gt;';<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e DHCP:<\/p>\n<pre><code class=\"bash\">openstack subnet set --no-dhcp &lt;subnet-id&gt;<\/code><\/pre>\n<p><strong>3. \u0417\u0430\u043f\u0443\u0441\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b Neutron \u0432 OVN<\/strong><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 Neutron \u0432 OVN NB. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <code>neutron_server<\/code>.<\/p>\n<pre><code class=\"bash\">docker exec -it neutron_server bash neutron-ovn-db-sync-util --config-file \/etc\/neutron\/neutron.conf --config-file \/etc\/neutron\/plugins\/ml2\/ml2_conf.ini --log-dir \/var\/log\/kolla\/neutron --debug --ovn-ovsdb_connection_timeout=300 --ovn-neutron_sync_mode repair<\/code><\/pre>\n<p>\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u2014 \u044d\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0432\u0438\u0442\u0447\u0435\u0439, \u0440\u043e\u0443\u0442\u0435\u0440\u043e\u0432, \u043f\u043e\u0440\u0442\u043e\u0432 \u0438 \u0442.\u0434. \u0414\u043b\u044f \u043c\u0430\u043b\u044b\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 100 \u0412\u041c, \u0443\u0439\u0434\u0435\u0442 \u043e\u043a\u043e\u043b\u043e \u043e\u0434\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u044b. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0432 \u043b\u043e\u0433\u0435:<\/p>\n<pre><code class=\"bash\">tail -f \/var\/log\/kolla\/neutron\/neutron-ovn-db-sync-util.log<\/code><\/pre>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0432 \u0431\u0430\u0437\u0435 OVN:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl --no-leader-only show<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0448\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e, \u0432 \u043b\u043e\u0433\u0430\u0445 <code>neutron_server, ovn_nb_db, ovn_northd<\/code> \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0431\u0430\u0437\u0430 OVN NB \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441 Neutron, \u0430 \u043c\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c\u0443 \u044d\u0442\u0430\u043f\u0443 \u2014 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 compute \u0438 network \u043d\u043e\u0434.<\/p>\n<p><a class=\"anchor\" name=\"7\" id=\"7\"><\/a><\/p>\n<h3>\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0434 \u0431\u0435\u0437 \u0440\u0430\u0437\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0412\u041c<\/h3>\n<p>\u0412 \u0438\u0434\u0435\u0430\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043c\u0435\u0436\u0434\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0443\u0437\u043b\u0430\u043c\u0438 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u043e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0432\u043e\u043e\u0431\u0449\u0435, \u043c\u044b \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u043a \u043d\u043e\u0432\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 SDN. \u0418 \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u044b \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u044b\u0445 \u043d\u043e\u0434\u0430\u0445. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043d\u043e\u0441\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u00ab\u043d\u0430 \u043b\u0435\u0442\u0443\u00bb \u0432 Open vSwitch:<\/p>\n<ul>\n<li>\n<p>\u0443\u0434\u0430\u043b\u044f\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u044b \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u2014 \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u043d\u0443\u0436\u043d\u043e \u0434\u043b\u044f \u0441\u0432\u044f\u0437\u043a\u0438 \u0441 <code>neutron_openvswitch_agent<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0443\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u0430\u0442\u0447\u0438 \u0432 <code>br-int<\/code> \u0438 <code>br-tun<\/code> \u0438 \u0431\u0440\u0438\u0434\u0436 <code>br-tun<\/code> \u2014 \u0434\u043b\u044f OVN \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u043e\u043d \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442 Geneve-\u0442\u0443\u043d\u043d\u0435\u043b\u0438 \u0432 \u0431\u0440\u0438\u0434\u0436\u0435 <code>bg-int<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0441\u043d\u0438\u043c\u0430\u0435\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c OpenFlow, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b <code>ovn_controller<\/code> \u0441\u043c\u043e\u0433 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Open vSwitch.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u043e\u0441\u0442\u043e\u0439 Bash-\u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u2014 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043d\u043e\u0434\u0435.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c Bash-\u0441\u043a\u0440\u0438\u043f\u0442:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash  echo stop and disable l3, ovs, metadata agents  systemctl disable \u2013now kolla-neutron_l3_agent-container.service kolla-neutron_openvswitch_agent-container.service kolla-neutron_metadata_agent-container.service   echo delete network namespaces ip --all netns delete  echo delete controller and manager in ovs docker exec openvswitch_vswitchd ovs-vsctl del-manager docker exec openvswitch_vswitchd ovs-vsctl del-controller br-ex docker exec openvswitch_vswitchd ovs-vsctl del-controller br-int  echo delete br-tun and patches docker exec openvswitch_vswitchd ovs-vsctl del-port br-int patch-tun docker exec openvswitch_vswitchd ovs-vsctl del-port br-tun patch-int docker exec openvswitch_vswitchd ovs-vsctl del-br br-tun docker exec openvswitch_vswitchd ovs-vsctl del-port br-int int-br-ex docker exec openvswitch_vswitchd ovs-vsctl del-port br-ex phy-br-ex  echo delete Openflow version protocol limitations docker exec openvswitch_vswitchd ovs-vsctl clear bridge br-int protocols docker exec openvswitch_vswitchd ovs-vsctl clear bridge br-ex protocols<\/code><\/pre>\n<\/div>\n<\/details>\n<ul>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0435\u043f\u043b\u043e\u0438\u043c <code>ovn-controller<\/code> \u0438 <code>neutron ovn metadata agent<\/code> + \u043a\u043e\u043d\u0444\u0438\u0433 <code>openvswitch<\/code> \u0434\u043b\u044f OVN \u043d\u0430 \u0442\u0435 \u043d\u043e\u0434\u044b, \u0433\u0434\u0435 \u0440\u0430\u043d\u0435\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0438 \u0441\u043a\u0440\u0438\u043f\u0442:<\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode deploy -t ovn,neutron,openvswitch --limit computeN<\/code><\/pre>\n<p><u>\u0415\u0441\u043b\u0438 \u043d\u0430 \u044d\u0442\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0432\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0438\u0445 \u0440\u0435\u0448\u0438\u0442\u044c.<\/u><\/p>\n<\/li>\n<\/ul>\n<p>1. \u0415\u0441\u043b\u0438 \u043d\u0430 \u043d\u043e\u0434\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0441\u0435 \u0412\u041c, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 NORMAL-\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 <code>br-ex<\/code>. \u041f\u0440\u0438 \u0435\u0433\u043e \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<pre><code class=\"bash\">docker exec openvswitch_vswitchd ovs-ofctl dump-flows br-ex docker exec openvswitch_vswitchd ovs-ofctl add-flow br-ex priority=0,action=normal<\/code><\/pre>\n<p>2. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0447\u0442\u043e \u043d\u0435\u0442 \u0440\u043e\u0443\u0442\u0435\u0440\u043e\u0432 \u0441 <code>neutron-ovn-invalid-chassis<\/code>:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl --no-leader-only list Gateway_Chassis | grep invalid<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0435\u0441\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0448\u0430\u0441\u0441\u0438 \u0441 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043e\u043c:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl --no-leader-only lrp-set-gateway-chassis lrp-&lt;uuid&gt; network1 1<\/code><\/pre>\n<p>3. \u0415\u0441\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u0412\u041c \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0442\u043e \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c <code>qvo\/tap<\/code> \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043a <code>br-int<\/code> \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c: <\/p>\n<pre><code class=\"bash\">systemctl restart kolla-nova_compute-cointainer<\/code><\/pre>\n<p>4. \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0435\u0440\u0430. \u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043d\u043e\u0434\u0443, \u043f\u0440\u0438 \u0435\u0435 \u043d\u0430\u043b\u0438\u0447\u0438\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u043f\u043e\u0440\u0442 \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 LRP (Logical Router Port) \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0435 \u0448\u0430\u0441\u0441\u0438:<\/p>\n<ul>\n<li>\n<p>\u0438\u0449\u0435\u043c \u043f\u043e\u0440\u0442 \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0432 ovn \u043f\u043e id-\u043f\u043e\u0440\u0442\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438, \u0433\u0434\u0435 lsp-id \u044d\u0442\u043e uuid \u043f\u043e\u0440\u0442\u0430 \u0432 neutron:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl list Logical_switch_port &lt;lsp-id&gt; options: router-port=&lt;lrp-id&gt;<\/code><\/pre>\n<\/li>\n<li>\n<p>\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0448\u0430\u0441\u0441\u0438 \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u044b:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl lrp-get-gateway-chassis &lt;lrp-id&gt;<\/code><\/pre>\n<\/li>\n<li>\n<p>\u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u043c\u044f \u0448\u0430\u0441\u0441\u0438 (\u043e\u043d\u043e \u0436\u0435 \u0438\u043c\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043d\u043e\u0434\u044b) \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442. \u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0446\u0438\u0444\u0440\u0430, \u0442\u0435\u043c \u0432\u044b\u0448\u0435 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl lrp-set-gateway-chassis &lt;lrp-id&gt; network1 3<\/code><\/pre>\n<\/li>\n<li>\n<p>\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0448\u0430\u0441\u0441\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f lrp \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442:<\/p>\n<pre><code class=\"bash\">docker exec ovn_sb_db ovn-sbctl --no-leader-only show<\/code><\/pre>\n<p>\u0410 \u0435\u0441\u043b\u0438 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043d\u043e\u0434\u0430 \u0432\u0441\u0435\u0433\u043e \u043e\u0434\u043d\u0430, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u0438\u0431\u0435\u0433\u043d\u0443\u0442\u044c \u043a \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0440\u043e\u0443\u0442\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 Neutron.<\/p>\n<\/li>\n<\/ul>\n<p>5. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u043b\u043e\u0433\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 OVS\/OVN:<\/p>\n<pre><code class=\"bash\">docker exec openvswitch_vswitchd ovs-vsctl show docker exec openvswitch_vswitchd ovs-vsctl list open docker exec openvswitch_vswitchd ovs-ofctl dump-flows br-ex docker exec ovn_sb_db ovn-sbctl --no-leader-only show  tail \/var\/log\/kolla\/openvswitch\/ovn-controller.log tail \/var\/log\/kolla\/openvswitch\/ovs-vswitchd.log tail \/var\/log\/kolla\/openvswitch\/ovsdb-server.log tail \/var\/log\/kolla\/neutron\/neutron-ovn-metadata-agent.log <\/code><\/pre>\n<p><a class=\"anchor\" name=\"8\" id=\"8\"><\/a><\/p>\n<h3>\u0413\u043e\u0442\u043e\u0432\u043e! \u0412\u0432\u043e\u0434 \u0443\u0437\u043b\u043e\u0432 \u0432 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u044d\u0442\u0430\u043f\u043e\u0432, \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a, \u043c\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0433\u043e\u0442\u043e\u0432\u044b \u0432\u0432\u0435\u0441\u0442\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0437\u043b\u044b \u0432 \u0440\u0430\u0431\u043e\u0442\u0443. \u0418\u0442\u0430\u043a, \u0435\u0441\u043b\u0438 \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0448\u0435\u0434\u0443\u043b\u0438\u043d\u0433 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043d\u0430 \u043d\u043e\u0434\u044b:<\/p>\n<pre><code class=\"bash\">for i in `openstack compute service list -c id -k value`; do openstack compute service set --enable $i nova-compute; done<\/code><\/pre>\n<h4>\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 OVN-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0432 Octavia<\/h4>\n<p>\u041f\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 OVN-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432. \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 ovn \u0432 <code>.\/kolla\/config\/octavia.conf<\/code><\/p>\n<pre><code class=\"bash\">[driver_agent] enabled_provider_agents = amphora_agent, ovn default_provider_driver = amphora_agent<\/code><\/pre>\n<p>\u0412\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u043c:<\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode reconfigure -t octavia --diff<\/code><\/pre>\n<p><a class=\"anchor\" name=\"9\" id=\"9\"><\/a><\/p>\n<h3>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u00ab\u043c\u0443\u0441\u043e\u0440\u00bb \u0438 \u043d\u0430\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0445. \u041f\u043e\u0435\u0445\u0430\u043b\u0438:<\/p>\n<p>1. \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0430\u0433\u0435\u043d\u0442\u043e\u0432 <code>ml2\/ovs<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435:<\/p>\n<pre><code class=\"bash\">docker rm neutron_metadata_agent; docker rm neutron_l3_agent; docker rm neutron_openvswitch_agent<\/code><\/pre>\n<p>\u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0440\u044b\u0435 \u0430\u0433\u0435\u043d\u0442\u044b:<\/p>\n<pre><code class=\"bash\">for agent in `openstack network agent list | grep XXX | awk '{print $2}'`; do openstack network agent delete $agent; done<\/code><\/pre>\n<p>2. \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b-\u00ab\u043f\u043e\u0442\u0435\u0440\u044f\u0448\u043a\u0438\u00bb \u0438\u0437 OVS. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a\u0438\u0435:<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">docker exec openvswitch_vswitchd ovs-vsctl show Port tapa0b5b2fc-d2                                                                                                         tag: 4                                                                                                                  Interface tapa0b5b2fc-d2                                                                                                    error: \"could not open network device tapa0b5b2fc-d2 (No such device)\"  for tap in `docker exec openvswitch_vswitchd ovs-vsctl show | grep \"No such device\" | grep -oP \"tap[a-f0-9]{8}-[a-f0-9]{2}\"`; do docker exec openvswitch_vswitchd ovs-vsctl del-port br-int $tap; done<\/code><\/pre>\n<\/div>\n<\/details>\n<p>3. \u0423\u0434\u0430\u043b\u044f\u0435\u043c distributed-\u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u2014 \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0443\u0436\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438: <\/p>\n<pre><code class=\"bash\">openstack subnet delete distributed_external<\/code><\/pre>\n<p>4. \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0440\u0442\u044b \u0440\u043e\u0443\u0442\u0435\u0440\u043e\u0432. \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b OVN-\u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043b\u0438\u0431\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u0440\u0442\u044b \u0432 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440:<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash OS=\"openstack --os-cloud kolla-admin\"  routers=`$OS router list -c ID -f value` for router in $routers; do         ports=`$OS port list --device-id $router -c ID -f value`         for port in $ports; do                 type=`$OS port show $port -c device_owner -f value`                  if [ \"$type\" == \"network:router_centralized_snat\" ]; then                         echo \"router: $router port: $port type: $type FOR DELETE!!!\"                         $OS port show $port                         $OS port delete $port                 elif [ \"$type\" == \"network:router_interface_distributed\" ]; then                         echo \"router: $router port: $port type: $type FOR CHANGE!!!\"                         $OS port show $port                         $OS port set --device-owner network:router_interface $port                 fi         done done<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0447\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u043e! \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0438 \u043f\u043e\u0440\u0442\u044b \u0441 \u0442\u0438\u043f\u043e\u043c <code>network:floatingip_agent_gateway<\/code>.<strong><em> <\/em><\/strong>\u041e\u043d\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043b\u044f DVR \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 Neutron + Open vSwitch \u2014 \u0432 OVN \u044d\u0442\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 NAT \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u0430\u0432\u0438\u043b OpenFlow.<\/p>\n<p><a class=\"anchor\" name=\"10\" id=\"10\"><\/a><\/p>\n<h3>\u00ab\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435\u00bb, \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u044f \u043f\u043e\u0434\u043c\u0435\u0447\u0430\u043b \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 (\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c) \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u0438 \u0438\u0441\u043a\u0430\u043b \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0421\u043e\u0431\u0440\u0430\u043b \u0437\u0434\u0435\u0441\u044c \u043a\u043e\u0435-\u043a\u0430\u043a\u0438\u0435 \u0441\u043e\u0432\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0430\u043c \u0431\u044b\u043b \u0431\u044b \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432 \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0437\u0430\u0434\u0430\u0447\u0435\u0439:<\/p>\n<p>1. \u041f\u043e\u0441\u043b\u0435 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0447\u0435\u0440\u0435\u0437 \u043c\u0438\u043d\u0443\u0442\u0443 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u0412\u041c \u043d\u0430 \u043d\u043e\u0434\u0435. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0441\u0431\u0440\u043e\u0441\u0430 \u0441\u0435\u0442\u0438 \u043f\u0440\u0438 \u043f\u043e\u0442\u0435\u0440\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 (openvswitch_agent). \u0412\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u044d\u0442\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u043d\u043e\u0434\u0435:<\/p>\n<p><code>docker exec openvswitch_vswitchd ovs-vsctl set-fail-mode br-int standalone<\/code><\/p>\n<p>\u00a02. \u041f\u0440\u0438 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0430 OVN \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u043f\u043e\u0442\u0435\u0440\u044f \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438 \u0432 tenant-\u0441\u0435\u0442\u0438, \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0412\u041c, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u043a\u0430\u043a \u0432 \u0441\u0442\u0430\u0440\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 Neutron+Open vSwitch, \u0442\u0430\u043a \u0438 \u0432 OVN. \u0412\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u043c\u0438 \u0440\u043e\u0443\u0442\u0435\u0440\u0430: namespace \u0441\u0442\u0430\u0440\u043e\u0433\u043e <code>qrouter<\/code> \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u043e\u043c OVN, \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u043c\u0438 \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u0441\u0435\u0442\u044c.<\/p>\n<p>3. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <code>ovs_hybrid_plug<\/code> (\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b qvo, qbr, qvb \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f) \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u0412\u041c \u043d\u0435 \u043f\u0435\u0440\u0435\u0435\u0434\u0435\u0442 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043d\u0430 ovn (\u043e\u0434\u0438\u043d tap-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441) \u043f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<p>4. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u0441\u0435\u0442\u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0441 \u0442\u0438\u043f\u043e\u043c VXLAN. \u0412 \u0442\u0430\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 <a href=\"https:\/\/opendev.org\/openstack\/neutron\/commit\/1a9ae924fd8479485b8e6289a3b015c228967097\" rel=\"noopener noreferrer nofollow\">\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435<\/a> \u043d\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0431\u0443\u0434\u0435\u0442 4096. \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0445 \u0441\u0435\u0442\u0435\u0439 \u043d\u0430 \u0442\u0443\u043d\u043d\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 Geneve \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u0438\u0437\u0438\u0442\u044c MTU \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u044f\u0445 \u043d\u0430 8 \u0431\u0430\u0439\u0442. \u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430, MTU \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0435\u0442\u0438 1500 \u0431\u0430\u0439\u0442, \u0442\u0435\u043d\u0430\u043d\u0442\u043d\u0430\u044f \u0441\u0435\u0442\u044c \u043f\u0440\u0438 VXLAN-\u0442\u0443\u043d\u043d\u0435\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 1450 \u0431\u0430\u0439\u0442. \u0417\u043d\u0430\u0447\u0438\u0442, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 Geneve \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043d\u0438\u0437\u0438\u0442\u044c MTU \u0441\u0435\u0442\u0438 \u0434\u043e 1442 \u0431\u0430\u0439\u0442\u0430. \u0418 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 <code>ml2_conf.ini <\/code>\u0432 \u0441\u0435\u043a\u0446\u0438\u0438 <code>[ml2]<\/code> \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 <code>tenant_network_types = geneve<\/code>.<\/p>\n<p>5. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435 \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 multicast-\u0448\u0442\u043e\u0440\u043c\u043e\u043c: \u0437\u0430\u0434\u0435\u043b\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0441\u0435\u0442\u0438, \u044d\u0442\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u043b\u043e\u0441\u044c \u043a\u0430\u043a \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u043f\u043e SSH-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u043f\u043e\u0442\u0435\u0440\u0438 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u043b\u0438 \u0434\u043e 70% \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c PPS \u0431\u044b\u043b \u043e\u043a\u043e\u043b\u043e 500\u043a \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u043e\u0434\u0430\u0445. \u0421\u0435\u0442\u0435\u0432\u0430\u044f \u0441\u043b\u0443\u0436\u0431\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0442\u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0438 \u043a\u0443\u043f\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0421\u043e \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e. \u041f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u0438\u043b\u0438, \u0447\u0442\u043e \u0438\u0437-\u0437\u0430 \u043d\u0435\u0432\u0435\u0440\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0431\u044b\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u044b \u0441\u0442\u0430\u0440\u044b\u0435 VXLAN-\u0442\u0443\u043d\u043d\u0435\u043b\u0438 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 \u0432 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0431\u0440\u0438\u0434\u0436\u0435 br-tun \u0438 \u0441\u043e\u0437\u0434\u0430\u043b\u0438\u0441\u044c Geneve-\u0442\u0443\u043d\u043d\u0435\u043b\u0438 \u0432 \u0431\u0440\u0438\u0434\u0436\u0435 br-int. \u0422\u0430\u043a \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0435\u0442\u043b\u044f \u0438 \u0448\u0442\u043e\u0440\u043c \u0432 \u0441\u0435\u0442\u0438 \u2014 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f BUM-\u0442\u0440\u0430\u0444\u0438\u043a\u0443.<\/p>\n<p>6. \u0412\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 Drop-\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0432 Datapath, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0430\u044f \u0441 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043c\u043e\u0434\u0443\u043b\u044f \u044f\u0434\u0440\u0430 \u0438 \u044f\u0434\u0440\u0430 Linux \u043d\u0430 \u0445\u043e\u0441\u0442 \u043c\u0430\u0448\u0438\u043d\u0435. \u0412\u044b\u044f\u0432\u0438\u043b\u0438 \u044d\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u0443\u0441\u043a MTR \u0432 VM:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f2f\/d0e\/de7\/f2fd0ede76c144c0499618e4b7b9c3be.png\" width=\"1920\" height=\"1080\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f2f\/d0e\/de7\/f2fd0ede76c144c0499618e4b7b9c3be.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f2f\/d0e\/de7\/f2fd0ede76c144c0499618e4b7b9c3be.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0432 datapath Open vSwitch<\/p>\n<pre><code class=\"bash\">recirc_id(0x13178),in_port(2),ct_state(-new-est+rel+rpl-inv+trk),ct_mark(0\/0x3),eth(src=00:42:68:6d:9f:71,dst=fa:16:3e:32:0d:d8),eth_type(0x0800),ipv4(dst=210.100.100.100,proto=1,ttl=253,frag=no), packets:188, bytes:13160, used:0.548s, actions:drop<\/code><\/pre>\n<p>\u041c\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043b\u0438 \u043c\u0430\u0441\u0441\u0443 \u0432\u0441\u0435\u0433\u043e: \u043e\u0442 \u043b\u043e\u0433\u043e\u0432 \u0434\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0433\u0438\u043f\u043e\u0442\u0435\u0437 \u0441 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438. \u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f <code>other_config:hw-offload=true<\/code> \u0432 Open vSwitch \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u0447\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e \u2014 \u0432\u0438\u0434\u0438\u043c\u043e, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u0432 \u0441\u0430\u043c\u043e\u043c vswitchd. \u041c\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c, \u0442\u0430\u043a \u043a\u0430\u043a \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u044b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043a\u0430\u0440\u0442\u044b.<\/p>\n<p>\u0413\u043b\u0443\u0431\u043e\u043a\u0430\u044f \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 <code>ovn-trace<\/code>, <code>ovs-appctl ofproto\/trace<\/code> \u0438 <code>ovn-detrace<\/code> \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435, \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u044f\u0434\u0440\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e 5.14.0-427.33.1.el9_4.x86_64, 6.6.70-1.el9.x86_64, 6.12.28-1.el9.x86_64. \u0418 \u044d\u0442\u043e \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u2014 \u0432\u0441\u0451 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c! \u0423\u0442\u043e\u0447\u043d\u044e \u0442\u0430\u043a\u0436\u0435, \u0447\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043d\u0430 \u044f\u0434\u0440\u0435 5.14.0-362.18.1.el9_3.0.1.x86_64, \u0432\u0435\u0440\u0441\u0438\u044f Open vSwitch 3.1.3. <\/p>\n<p>7. \u041f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u043b\u0430\u043a\u0430 \u043d\u0430 OVN \u0441 50+ \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043d\u043e\u0434\u0430\u043c\u0438 \u0441\u0442\u043e\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <strong>OVSDB Relay<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 SouthBound DB. \u041e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u2014 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 <strong>\u043e\u0434\u043d\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 OVSDB Relay \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0435 50 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u043e\u0434<\/strong>. \u042d\u0442\u043e \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0433\u043e SDN \u0438\u0437-\u0437\u0430 \u043f\u043e\u0442\u0435\u0440\u0438 \u0441\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Southbound DB. \u0422\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 ovn-controller, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u0447\u0438\u0442\u0430\u044e\u0449\u0438\u0445 \u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435. <\/p>\n<p><a class=\"anchor\" name=\"11\" id=\"11\"><\/a><\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 (\u043d\u043e \u043d\u0435 \u043a\u043e\u043d\u0435\u0446 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438!)\u00a0<\/h3>\n<p>\u041f\u043e\u043d\u0438\u043c\u0430\u044e, \u0447\u0442\u043e \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0441 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0441\u0435\u0442\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e, \u043d\u0435 \u043b\u0443\u0447\u0448\u0438\u0439 \u0438\u0437 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445. \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b: \u0437\u0430 \u0441\u0447\u0435\u0442 \u0440\u0430\u043d\u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 OVN \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0431\u0435\u0441\u0446\u0435\u043d\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u044f. \u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 \u043f\u043b\u0435\u0439\u0431\u0443\u043a \u0438 \u0440\u043e\u043b\u0438 \u0432 Ansible. \u0422\u0430\u043a \u0447\u0442\u043e \u044f \u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e\u0441\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0438, \u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u043e\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f live-\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438. \u041a \u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u2014 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043f\u0440\u043e \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0443 OVN \u0438 Open vSwitch, \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043e\u0442\u043b\u0430\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0438 \u0431\u0430\u0437\u044b, \u0438\u0441\u043a\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p>\u0425\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u0442\u044c \u0437\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438 \u043f\u043e\u043c\u043e\u0449\u044c \u043c\u043e\u0438\u0445 \u043a\u043e\u043b\u043b\u0435\u0433, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0432 Telegram <a href=\"https:\/\/t.me\/ovs_ovn_ru\" rel=\"noopener noreferrer nofollow\">OVS\/OVN russian community<\/a>. \u0410 \u0432\u0430\u0441 \u2014 \u0437\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u043e\u0447\u0438\u0442\u0430\u043b\u0438. \u0414\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u0432 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0438 \u043c\u043e\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438!<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \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\/924270\/\"> https:\/\/habr.com\/ru\/articles\/924270\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041d\u0430 \u0441\u0432\u044f\u0437\u0438 \u0432\u043d\u043e\u0432\u044c \u041a\u0438\u0440\u0438\u043b\u043b \u0421\u0430\u0432\u0438\u043d, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440 SDN \u0432 \u041e\u0431\u043b\u0430\u043a\u0435 \u0420\u0435\u0433.\u0440\u0443. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043c\u044b \u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0432\u0437\u0432\u0435\u0441\u0438\u043b\u0438 \u0432\u0441\u0435 \u0440\u0438\u0441\u043a\u0438 \u0438 \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0432\u043e\u043b\u0435\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2014 \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u0442\u044c \u043d\u0430 OVN. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0434\u0443\u043c\u0430\u043b\u0438 \u043d\u0430\u0434 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439, \u0440\u0435\u0448\u0430\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0438 \u043d\u0430\u0431\u0438\u0432\u0430\u043b\u0438 \u0448\u0438\u0448\u043a\u0438. \u042f \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430\u0448\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438.<\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/companies\/runity\/articles\/922172\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0435\u0440\u0432\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b\u0438, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d OVN \u0438\u0437\u043d\u0443\u0442\u0440\u0438, \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435! \u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u043e\u043f\u0438\u0448\u0443 \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u043b\u0430\u043a\u0430 \u0441 \u0441\u0435\u0442\u0435\u0432\u044b\u043c \u0434\u0430\u0443\u043d\u0442\u0430\u0439\u043c\u043e\u043c \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0438, \u043d\u043e \u0431\u0435\u0437 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d. \u0414\u043b\u044f \u00ab\u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430\u00bb \u044f \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u043b \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2014 \u043e\u0431\u044a\u044f\u0441\u043d\u044e, \u043f\u043e\u0447\u0435\u043c\u0443 \u0438 \u0447\u0442\u043e \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u0412\u043d\u0443\u0442\u0440\u0438 \u2014 \u043f\u043e \u0448\u0430\u0433\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u043e \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0435 \u0438 \u0434\u0435\u043b\u044e\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c.<\/p>\n<h4>\u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443:<\/h4>\n<ul>\n<li>\n<p><a href=\"#1\" rel=\"noopener noreferrer nofollow\">\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u043d\u0430 OVN<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#2\" rel=\"noopener noreferrer nofollow\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 Grafana<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#3\" rel=\"noopener noreferrer nofollow\">\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 OpenFlow-\u0444\u0430\u0439\u0440\u0432\u043e\u043b \u0432 Open vSwitch<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#4\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OVN Control plane<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#5\" rel=\"noopener noreferrer nofollow\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Control plane OVN \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 Neutron \u043d\u0430 OVN<\/a>\u00a0<\/p>\n<\/li>\n<li>\n<p><a href=\"#6\" rel=\"noopener noreferrer nofollow\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438: \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0447\u0435\u0441\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#7\" rel=\"noopener noreferrer nofollow\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0434 \u0431\u0435\u0437 \u0440\u0430\u0437\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0412\u041c<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#8\" rel=\"noopener noreferrer nofollow\">\u0413\u043e\u0442\u043e\u0432\u043e \u2014 \u0432\u0432\u043e\u0434 \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u043e\u0434<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#9\" rel=\"noopener noreferrer nofollow\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#10\" rel=\"noopener noreferrer nofollow\">\u00ab\u0415\u0441\u043b\u0438 \u0431\u044b \u043c\u044b \u0437\u043d\u0430\u043b\u0438, \u0447\u0442\u043e \u044d\u0442\u043e \u0442\u0430\u043a\u043e\u0435\u00bb, \u0438\u043b\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"#11\" rel=\"noopener noreferrer nofollow\">\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 (\u043d\u043e \u043d\u0435 \u043a\u043e\u043d\u0435\u0446 \u044d\u0442\u043e\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438!)<\/a>\u00a0<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"1\" id=\"1\"><\/a><\/p>\n<h3>\u041f\u0440\u0435\u0434\u043f\u043e\u0441\u044b\u043b\u043a\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u0430 \u043d\u0430 OVN<\/h3>\n<p>\u041a\u0430\u043a \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/companies\/runity\/articles\/922172\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>, \u043f\u043b\u044e\u0441\u044b OVN \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0438\u043b\u0438 \u0435\u0433\u043e \u043c\u0438\u043d\u0443\u0441\u044b \u2014 \u0438 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041a\u0440\u0430\u0442\u043a\u043e \u043d\u0430\u043f\u043e\u043c\u043d\u044e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430: \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0437\u0430 \u0441\u0447\u0435\u0442 \u043e\u0442\u043a\u0430\u0437\u0430 \u043e\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 namespaces, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u044b\u0435 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 OVN \u0438 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0432 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 SDN.<\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043f\u043e\u0434 \u043d\u0430\u0448\u0435 \u043e\u0431\u043b\u0430\u043a\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e <a href=\"https:\/\/docs.openstack.org\/kolla-ansible\/latest\/user\/quickstart.html\" rel=\"noopener noreferrer nofollow\">kolla-ansible<\/a> \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f OpenStack \u0438 Neutron \u0441 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u043c ML2 Open vSwitch. \u0422\u0430\u043a, \u0432 \u0440\u043e\u043b\u0438 \u0444\u0430\u0439\u0440\u0432\u043e\u043b\u0430 \u2014 <code>nftables<\/code>, \u0430 DHCP-\u0430\u0433\u0435\u043d\u0442\u044b \u0432 namespaces \u0441 dnsmasq \u0437\u0430\u043c\u0435\u043d\u0438\u043b\u0438 \u043d\u0430 <code>openvswitch_agent<\/code>.<\/p>\n<p>\u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043a \u043f\u043e\u0434\u0445\u043e\u0434\u0443 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u043e \u0442\u043e, \u0447\u0442\u043e kolla-ansible \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u0420\u0430\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u043e\u043b\u043d\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0441\u043c\u0435\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441 \u043f\u0435\u0440\u0435\u0435\u0437\u0434\u043e\u043c \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>\u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u0435\u0434\u0448\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u0437\u0430\u0434\u0430\u0447\u0438, \u044f \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043d\u0430 \u0442\u0435\u043c\u0443 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 OVN. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0434\u043b\u044f \u043d\u0430\u0441 \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u043b\u0438 \u0432 \u043f\u043e\u043b\u043d\u043e\u0439 \u043c\u0435\u0440\u0435.<em> <\/em><\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0432\u044b \u043d\u0430\u0439\u0434\u0435\u0442\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0435:\u00a0<\/summary>\n<div class=\"spoiler__content\">\n<p>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 <a href=\"https:\/\/www.jimmdenton.com\/migrating-lxb-to-ovn\/\" rel=\"noopener noreferrer nofollow\">LinuxBridge<\/a><\/p>\n<p>Hassle-free migration from <a href=\"https:\/\/www.youtube.com\/watch?v=TpSTDQnoIRM\" rel=\"noopener noreferrer nofollow\">OVS to OVN<\/a><\/p>\n<p>Live-\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f <a href=\"https:\/\/www.youtube.com\/watch?v=V89VlbjjZJY\" rel=\"noopener noreferrer nofollow\">Nectar Research Cloud<\/a>\u00a0<\/p>\n<p><strong>\u0413\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0430\u043d \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f TripleO:\u00a0<\/strong><\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/docs.redhat.com\/en\/documentation\/red_hat_openstack_platform\/17.1\/html\/migrating_to_the_ovn_mechanism_driver\/migrating-ovs-to-ovn#ml2-ovs-to-ovn-migration-prepare_migrating-ovs-to-ovn\" rel=\"noopener noreferrer nofollow\">RedHat Documentation<\/a>;<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/opendev.org\/openstack\/neutron\/src\/branch\/master\/tools\/ovn_migration\" rel=\"noopener noreferrer nofollow\">Neutron Repository<\/a> (\u043e\u0441\u0442\u0430\u043b\u0430\u0441\u044c \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f, \u043a\u043e\u0434, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 TripleO, \u0443\u0434\u0430\u043b\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a TripleO \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f).\u00a0<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/details>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 dev-\u0441\u0442\u0435\u043d\u0434\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u0441\u0440\u0435\u0434\u0430\u0445, \u043c\u044b \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0432\u044b\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438. \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e, \u0430 \u0438\u0434\u0442\u0438 \u043f\u043e \u043f\u0443\u0442\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u043d\u043e \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0434\u0430\u043b\u043e \u0431\u044b \u043d\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u0435\u0434\u0441\u043a\u0430\u0437\u0443\u0435\u043c\u043e\u0441\u0442\u0438. \u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c.<\/p>\n<p><a class=\"anchor\" name=\"2\" id=\"2\"><\/a><\/p>\n<h3>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0432 Grafana<\/h3>\n<p>\u041d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0440\u0430\u0431\u043e\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c node_exporter \u043d\u0430 \u043d\u043e\u0434\u0430\u0445. \u0414\u043b\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 OVS\/OVN \u0435\u0441\u0442\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435\u0440\u044b \u043e\u0442 <a href=\"https:\/\/github.com\/greenpau\" rel=\"noopener noreferrer nofollow\">Paul Greenberg<\/a>, \u043d\u043e, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u043e\u043d\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445 \u0438, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0430\u0440\u0445\u0438\u0432\u0435. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0435\u0433\u043e \u043a\u043e\u0434 \u043f\u043e\u0434 \u043d\u0430\u0448\u0438 \u0440\u0435\u0430\u043b\u0438\u0438 \ud83d\ude42\u00a0<\/p>\n<p><a class=\"anchor\" name=\"3\" id=\"3\"><\/a><\/p>\n<h3>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 OpenFlow-\u0444\u0430\u0439\u0440\u0432\u043e\u043b \u0432 Open vSwitch<\/h3>\n<p>\u0414\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 (security groups) OVN \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 OpenFlow-\u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043f\u0440\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u2014 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 iptables\/nftables \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 Open vSwitch. \u042d\u0442\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0441\u043c\u0435\u043d\u044b \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 \u0444\u0430\u0439\u0440\u0432\u043e\u043b\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>neutron-openvswitch-agent<\/code>. \u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<p>1. \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0444\u0430\u0439\u043b <code>\/etc\/kolla\/config\/neutron\/openvswitch_agent.ini<\/code> \u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0431\u043b\u043e\u043a <code>[securitygroup]<\/code> \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"bash\">[securitygroup] firewall_driver = openvswitch<\/code><\/pre>\n<p>2. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Neutron \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0435 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u043e\u0434\u0430\u0445:<\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode genconfig -t neutron --diff<\/code><\/pre>\n<p>\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432 \u0444\u0430\u0439\u043b\u0435 <code>openvswitch_agent.ini<\/code> \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u0434\u0440\u0430\u0439\u0432\u0435\u0440:<\/p>\n<pre><code class=\"bash\">[securitygroup] -firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver +firewall_driver = openvswitch<\/code><\/pre>\n<p>3. \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0430\u0433\u0435\u043d\u0442 <code>neutron-openvswitch-agent<\/code> \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u043e\u0434:<\/p>\n<pre><code class=\"bash\">systemctl restart kolla-neutron_openvswitch_agent-container<\/code><\/pre>\n<p>4. \u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0437 <code>nftables<\/code> \u0438 <code>ipset<\/code>:<\/p>\n<pre><code class=\"bash\">nft list tables | while read -r table; do nft delete table \"$table\"; done ipset list -n | xargs -I {} ipset destroy {}<\/code><\/pre>\n<p>5. \u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430 security group \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<ul>\n<li>\n<p>\u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u0435 ICMP \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0412\u041c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>`ping`<\/code>;<\/p>\n<\/li>\n<li>\n<p>\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u2014 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f TCP-\u043f\u043e\u0440\u0442\u043e\u0432 80\/443 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <code>`curl`<\/code> \u0438\u043b\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c.<\/p>\n<\/li>\n<\/ul>\n<p><a class=\"anchor\" name=\"4\" id=\"4\"><\/a><\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 OVN Control plane<\/h3>\n<p>\u0414\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 Docker-\u043e\u0431\u0440\u0430\u0437\u044b. \u0415\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0441\u0432\u043e\u0438 \u2014 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c. \u041f\u0435\u0440\u0435\u0434 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0448\u0435\u0434\u0443\u043b\u0438\u043d\u0433 \u043d\u043e\u0432\u044b\u0445 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043d\u0430 \u0432\u0441\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043d\u043e\u0434\u044b.<\/p>\n<pre><code class=\"bash\">for i in `openstack compute service list -c Host -f value`; do openstack compute service set --disable $i nova-compute; done<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u0430\u0433\u0435\u043d\u0442 neutron \u043d\u0430 ovn \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 DHCP \u0432 <code>\/etc\/kolla\/globals.yml<\/code><\/p>\n<pre><code class=\"bash\">-neutron_plugin_agent: \"openvswitch\" -neutron_ovn_dhcp_agent: \"no\" +neutron_plugin_agent: \"ovn\" +neutron_ovn_dhcp_agent: \"yes\"<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 <a href=\"https:\/\/docs.openstack.org\/neutron\/latest\/admin\/ovn\/routing.html\" rel=\"noopener noreferrer nofollow\">DVR<\/a>, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 FIP \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b \u0438\u0434\u0435\u0442 \u043d\u0435 \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043d\u043e\u0434\u0443, \u0430 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u0433\u0438\u043f\u0435\u0440\u0432\u0438\u0437\u043e\u0440, \u0433\u0434\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u044d\u0442\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u0430, \u0432\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f: <code>+neutron_ovn_distributed_fip: \u201cyes\u201d<\/code><\/p>\n<p>\u0412 \u0444\u0438\u043d\u0430\u043b\u0435 \u043c\u0435\u043d\u044f\u0435\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440 neutron \u0432 <code>\/etc\/kolla\/config\/neutron\/ml2_conf.conf\u00a0 <\/code>[ml2]:<\/p>\n<pre><code class=\"bash\">-mechanism_drivers = openvswitch, 2population +mechanism_drivers = ovn<\/code><\/pre>\n<p><a class=\"anchor\" name=\"5\" id=\"5\"><\/a><\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 OVN Control Plane \u0438 \u043f\u0435\u0440\u0435\u0432\u043e\u0434 Neutron \u043d\u0430 OVN\u00a0<\/h3>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433 \u2014 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 OVN Control Plane: \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 <code>ovn-nb-db<\/code>, <code>ovn-sb-db<\/code> \u0438 \u0434\u0435\u043c\u043e\u043d <code>ovn-northd<\/code>.<\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043e\u043d\u0438 \u0441\u0442\u0430\u0432\u044f\u0442\u0441\u044f \u043d\u0430 \u043d\u043e\u0434\u044b \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u0441\u0435\u043a\u0446\u0438\u0438 [control] \u0444\u0430\u0439\u043b\u0430 <code>multinode<\/code>. \u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0445 \u043d\u043e\u0434 \u0442\u0440\u0438 \u2014 OVN \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u043a\u043e\u043d\u0441\u0435\u043d\u0441\u0443\u0441\u0430 <strong>RAFT<\/strong> \u0434\u043b\u044f \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\n<p>ovn-nb-db (NorthBound) \u0438 ovn-sb-db (SouthBound) \u043e\u0431\u0440\u0430\u0437\u0443\u044e\u0442 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440;<\/p>\n<\/li>\n<li>\n<p>ovn-northd \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <strong>active+standby<\/strong>, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0443 \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u044b\u0431\u043e\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c OVN Control Plane:<\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode deploy -t ovn --limit control --diff<\/code><\/pre>\n<h4>\u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 Neutron \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 OVN<\/h4>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c <code>neutron-server<\/code> \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 OVN \u043a\u0430\u043a SDN-\u0431\u044d\u043a\u0435\u043d\u0434\u043e\u043c.<\/p>\n<p><em>\u26a0\ufe0f <\/em><strong><em>\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435:<\/em><\/strong><em> \u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Neutron \u043d\u0430\u0447\u043d\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OVN. \u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0430\u0448\u0438\u043d \u043f\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u0441\u0445\u0435\u043c\u0435 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0435\u0440\u0435\u0437 OVS+Hybrid Iptables) \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u044d\u0442\u043e\u043c\u0443 \u044d\u0442\u0430\u043f\u0443.<\/em><\/p>\n<pre><code class=\"bash\">kolla-ansible -i multinode reconfigure -t neutron --limit control --diff --check<\/code><\/pre>\n<h4>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0438 \u043b\u043e\u0433\u043e\u0432<\/h4>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0439. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 <code>WARNING<\/code>, <code>ERROR<\/code> \u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0432\u044b\u0431\u043e\u0440\u043e\u043c \u043b\u0438\u0434\u0435\u0440\u0430 RAFT:<\/p>\n<pre><code class=\"bash\">tail \/var\/log\/kolla\/openvswitch\/ovn-nb-db.log tail \/var\/log\/kolla\/openvswitch\/ovn-sb-db.log tail \/var\/log\/kolla\/openvswitch\/ovn-northd.log tail \/var\/log\/kolla\/neutron\/neutron-server.log<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 OVN:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovs-appctl -t \/var\/run\/ovn\/ovnnb_db.ctl cluster\/status OVN_Northbound<\/code><\/pre>\n<pre><code class=\"bash\">docker exec ovn_sb_db ovs-appctl -t \/var\/run\/ovn\/ovnsb_db.ctl cluster\/status OVN_Southbound<\/code><\/pre>\n<p>\u0418 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 OVN:<\/p>\n<pre><code class=\"bash\">docker exec ovn_nb_db ovn-nbctl --no-leader-only list NB_Global<\/code><\/pre>\n<pre><code class=\"bash\">docker exec ovn_sb_db ovn-sbctl --no-leader-only list SB_Global<\/code><\/pre>\n<p><a class=\"anchor\" name=\"6\" id=\"6\"><\/a><\/p>\n<h3>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438: \u0447\u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u0443\u0447\u0435\u0441\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435<\/h3>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 Neutron \u0432 OVN \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0440\u044f\u0434\u043e\u043c \u043d\u044e\u0430\u043d\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0438 \u043e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430. \u0421\u043e\u0431\u0440\u0430\u043b \u0432\u0430\u0436\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p><strong>1. \u041e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b Neutron \u0441 OVN NB. <\/strong>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f <code>neutron-ovn-db-sync-util<\/code> \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430:<\/p>\n<pre><code class=\"bash\">Unhandled error: neutron.ipam.exceptions.IpAddressGenerationFailureNoMatchingSubnet: No valid service subnet for the given device owner, network &lt;network-uuid&gt;, service type network:distributed.<\/code><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0441 \u0442\u0438\u043f\u043e\u043c <code>network:distributed<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f OVN \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u0440\u0442\u0430\u043c\u0438.\u00a0<\/p>\n<p><strong>\u0420\u0435\u0448\u0435\u043d\u0438\u0435:<\/strong> \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e:<\/p>\n<pre><code class=\"bash\">openstack subnet create --no-dhcp --subnet-range \"192.168.100.0\/24\" --gateway 192.168.100.1 --service-type network:distributed --network external distributed_external_subnet<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0434\u0441\u0435\u0442\u044c \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0435\u0440\u0435\u0441\u0435\u043a\u0430\u0442\u044c\u0441\u044f \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043c\u0438 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u043c\u0438\u0440\u0430. \u041f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0438\u0442\u044c.<\/p>\n<p><strong>2. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 DHCP \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043f\u043e\u0434\u0441\u0435\u0442\u044f\u0445. <\/strong>\u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u043f\u043e\u0434\u0441\u0435\u0442\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d DHCP, \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u043e\u0439:<\/p>\n<pre><code class=\"bash\">Failed to create port on network &lt;UUID&gt;, because fixed_ips included invalid subnet &lt;UUID&gt;<\/code><\/pre>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0451 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438, \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 Neutron:<\/p>\n<pre><code class=\"bash\">docker exec mariadb mysql -u root -p&lt;PASSWORD&gt;<\/code><\/pre>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441:<\/p>\n<pre><code class=\"bash\">USE neutron; SELECT id, name, enable_dhcp FROM subnets WHERE network_id = '&lt;external-network-id&gt;';<\/code><\/pre>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e DHCP:<\/p>\n<pre><code class=\"bash\">openstack subnet set --no-dhcp &lt;subnet-id&gt;<\/code><\/pre>\n<p><strong>3. \u0417\u0430\u043f\u0443\u0441\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0430\u0437\u044b Neutron \u0432 OVN<\/strong><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 Neutron \u0432 OVN NB. \u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432 \u043b\u044e\u0431\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 <code>neutron_server<\/code>.<\/p>\n<pre><code class=\"bash\">docker exec -it neutron_server bash neutron-ovn-db-sync-util --config-file \/etc\/neutron\/neutron.conf --config-file \/etc\/neutron\/plugins\/ml2\/ml2_conf.ini --log-dir \/var\/log\/kolla\/neutron --debug --ovn-ovsdb_connection_timeout=300 --ovn-neutron_sync_mode repair<\/code><\/pre>\n<p>\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u2014 \u044d\u0442\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0432\u0438\u0442\u0447\u0435\u0439,<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-465693","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/465693","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=465693"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/465693\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=465693"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=465693"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=465693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}