{"id":293103,"date":"2019-08-07T21:00:16","date_gmt":"2019-08-07T21:00:16","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=293103"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=293103","title":{"rendered":"\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u0430\u044f IPeE \u0441\u0435\u0442\u044c \u0438\u0437 \u043f\u043e\u0434\u0440\u0443\u0447\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\">\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435. \u0417\u043d\u0430\u0447\u0438\u0442 \u0435\u0441\u0442\u044c \u0441\u0435\u0442\u044c \u0438\u0437 5\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0432\u044b\u043b\u0435\u0437 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0441\u0435\u0442\u0438 \u0438 \u0443 \u043d\u0430\u0441 \u0441\u0442\u043e\u0438\u0442 Brocade RX8 \u0438 \u043e\u043d \u043d\u0430\u0447\u0430\u043b \u0441\u043b\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e unknown-unicast \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u0442\u044c \u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u0432\u043b\u0430\u043d\u044b \u2014 \u0442\u043e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u041d\u041e \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446 \u0432\u043b\u0430\u043d\u044b \u0434\u043b\u044f \u0431\u0435\u043b\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 \u0442.\u0434. \u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044b \u0432\u043e \u0432\u0441\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0435\u0442\u0438. \u0422\u0430\u043a \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u0440\u0434\u0435\u0440\u043e\u043c \u043d\u0435 \u0443\u0447\u0438\u0442\u0441\u044f \u0438 \u044d\u0442\u043e\u0442 \u043f\u043e\u0442\u043e\u043a \u043b\u0435\u0442\u0438\u0442 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0440\u0430\u0434\u0438\u043e \u043b\u0438\u043d\u043a\u0430 \u043d\u0430 \u043a\u0430\u043a\u043e\u0435\u0442\u043e (\u0430 \u0442\u0430\u043a \u043d\u0430 \u0432\u0441\u0435) \u0441\u0435\u043b\u043e \u2014 \u043a\u0430\u043d\u0430\u043b \u0437\u0430\u0431\u0438\u0442 \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0437\u043b\u044b\u0435 \u2014 \u043f\u0435\u0447\u0430\u043b\u044c\u2026 <\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430 \u2014 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0431\u0430\u0433 \u0432 \u0444\u0438\u0447\u0443. \u0414\u0443\u043c\u0430\u043b \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 q-in-q \u0441 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442-\u0432\u043b\u0430\u043d\u043e\u043c \u043d\u043e \u0432\u0441\u044f\u043a\u0438\u0435 \u0436\u0435\u043b\u0435\u0437\u044f\u043a\u0438 \u0442\u0438\u043f\u0430 P3310 \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 dot1q \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u044e\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c DHCP, \u0435\u0449\u0451 \u043e\u043d\u0438 \u043d\u0435 \u0443\u043c\u0435\u044e\u0442 selective qinq \u0438 \u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0434\u0432\u043e\u0434\u044b\u0445 \u043a\u043e\u0441\u0442\u044b\u043b\u0435\u0439 \u0432 \u044d\u0442\u043e\u043c \u0440\u043e\u0434\u0435. \u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 ip-unnambered \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442? \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u0432 \u043a\u0440\u0430\u0442\u0446\u0435 \u2014 \u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 + \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u0414\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u043c \u043d\u0430\u0434\u043e: \u0440\u0435\u0437\u0430\u0442\u044c \u0448\u0435\u0439\u043f\u0435\u0440\u0430, \u0440\u0430\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u043a \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b. \u0427\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u0428\u0435\u0439\u043f\u0435\u0440 \u2014 lisg, dhcp \u2014 db2dhcp \u043d\u0430 \u0434\u0432\u0443\u0445 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f dhcprelay, \u0442\u0430\u043a \u0436\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 ucarp \u2014 \u0434\u043b\u044f \u0431\u0435\u043a\u0430\u043f\u0430. \u0410 \u0432\u043e\u0442 \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b? \u041c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u043c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0432\u0441\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u2014 \u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u0442\u0440\u0443\u0432\u0435\u0439. \u0417\u043d\u0430\u0447\u0438\u0442 \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0440\u043e\u0434\u0438\u0442\u044c \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0439 \u043a\u043e\u0441\u0442\u044b\u043b\u044c.<\/p>\n<p>  <\/p>\n<p>\u041e\u0441\u043d\u043e\u0432\u0430\u0442\u0435\u043b\u043d\u043e \u043f\u043e\u0440\u044b\u0432\u0448\u0438\u0441\u044c \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u044f \u043d\u0430\u0448\u0435\u043b \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043b\u044f c++, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0441\u043d\u0438\u0444\u0438\u0442\u044c \u0442\u0440\u0430\u0444\u0444\u0438\u043a. \u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043a\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u2014 \u0441\u043b\u0443\u0448\u0430\u0435\u043c \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0430\u0440\u043f \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0435\u0441\u043b\u0438 \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0441 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 lo, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u044e\u0442 \u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0430\u0440\u0448\u0440\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0430\u0440\u043f \u043d\u0430 \u044d\u0442\u043e\u0442 ip \u2014 \u0432\u043e\u043e\u0431\u0449\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043f\u0438\u043f\u0430\u0441\u0442\u043e\u0432, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043e\u0442\u0441\u0435\u0431\u044f\u0442\u0438\u043d\u044b \u0438 \u0433\u043e\u0442\u043e\u0432\u043e<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 &#39;\u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0447\u0438\u043a\u0430&#39;<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#include &lt;stdio.h&gt; #include &lt;sys\/types.h&gt; #include &lt;ifaddrs.h&gt; #include &lt;netinet\/in.h&gt; #include &lt;string.h&gt; #include &lt;arpa\/inet.h&gt;  #include &lt;tins\/tins.h&gt; #include &lt;map&gt; #include &lt;iostream&gt; #include &lt;functional&gt; #include &lt;sstream&gt;  using std::cout; using std::endl; using std::map; using std::bind; using std::string; using std::stringstream;  using namespace Tins;  class arp_monitor { public:     void run(Sniffer &sniffer);     void reroute();     void makegws();     string iface;     map &lt;string, string&gt; gws; private:     bool callback(const PDU &pdu);     map &lt;string, string&gt; route_map;     map &lt;string, string&gt; mac_map;     map &lt;IPv4Address, HWAddress&lt;6&gt;&gt; addresses; };  void  arp_monitor::makegws() {     struct ifaddrs *ifAddrStruct = NULL;     struct ifaddrs *ifa = NULL;     void *tmpAddrPtr = NULL;     gws.clear();     getifaddrs(&ifAddrStruct);     for (ifa = ifAddrStruct; ifa != NULL; ifa = ifa-&gt;ifa_next) {         if (!ifa-&gt;ifa_addr) {             continue;         }         string ifName = ifa-&gt;ifa_name;         if (ifName == &quot;lo&quot;) {             char addressBuffer[INET_ADDRSTRLEN];             if (ifa-&gt;ifa_addr-&gt;sa_family == AF_INET) { \/\/ check it is IP4                 \/\/ is a valid IP4 Address                 tmpAddrPtr = &((struct sockaddr_in *) ifa-&gt;ifa_addr)-&gt;sin_addr;                 inet_ntop(AF_INET, tmpAddrPtr, addressBuffer, INET_ADDRSTRLEN);             } else if (ifa-&gt;ifa_addr-&gt;sa_family == AF_INET6) { \/\/ check it is IP6                 \/\/ is a valid IP6 Address                 tmpAddrPtr = &((struct sockaddr_in6 *) ifa-&gt;ifa_addr)-&gt;sin6_addr;                 inet_ntop(AF_INET6, tmpAddrPtr, addressBuffer, INET6_ADDRSTRLEN);             } else {                 continue;             }             gws[addressBuffer] = addressBuffer;             cout &lt;&lt; &quot;GW &quot; &lt;&lt; addressBuffer &lt;&lt; &quot; is added&quot; &lt;&lt; endl;         }     }     if (ifAddrStruct != NULL) freeifaddrs(ifAddrStruct); }  void arp_monitor::run(Sniffer &sniffer) {     cout &lt;&lt; &quot;RUNNED&quot; &lt;&lt; endl;     sniffer.sniff_loop(             bind(                     &arp_monitor::callback,                     this,                     std::placeholders::_1             )     ); }  void arp_monitor::reroute() {     cout &lt;&lt; &quot;REROUTING&quot; &lt;&lt; endl;     map&lt;string, string&gt;::iterator it;     for ( it = route_map.begin(); it != route_map.end(); it++ ) {         if (this-&gt;gws.count(it-&gt;second) && !this-&gt;gws.count(it-&gt;second)) {             string cmd = &quot;ip route replace &quot;;             cmd += it-&gt;first;             cmd += &quot; dev &quot; + this-&gt;iface;             cmd += &quot; src &quot; + it-&gt;second;             cmd += &quot; proto static&quot;;             cout &lt;&lt; cmd &lt;&lt; std::endl;             cout &lt;&lt; &quot;REROUTE &quot; &lt;&lt; it-&gt;first &lt;&lt; &quot; SRC &quot; &lt;&lt; it-&gt;second &lt;&lt; endl;             system(cmd.c_str());             cmd = &quot;arp -s &quot;;             cmd += it-&gt;first;             cmd += &quot; &quot;;             cmd += mac_map[it-&gt;first];             cout &lt;&lt; cmd &lt;&lt; endl;             system(cmd.c_str());          }     }     for ( it = gws.begin(); it != gws.end(); it++ ) { \tstring cmd = &quot;arping -U -s &quot;; \tcmd += it-&gt;first; \tcmd += &quot; -I &quot;; \tcmd += this-&gt;iface; \tcmd += &quot; -b -c 1 &quot;; \tcmd += it-&gt;first;         system(cmd.c_str());     }     cout &lt;&lt; &quot;REROUTED&quot; &lt;&lt; endl; }  bool arp_monitor::callback(const PDU &pdu) {     \/\/ Retrieve the ARP layer     const ARP &arp = pdu.rfind_pdu&lt;ARP&gt;();      if (arp.opcode() == ARP::REQUEST) { \t         string target = arp.target_ip_addr().to_string();         string sender = arp.sender_ip_addr().to_string();         this-&gt;route_map[sender] = target;         this-&gt;mac_map[sender] = arp.sender_hw_addr().to_string();         cout &lt;&lt; &quot;save sender &quot; &lt;&lt; sender &lt;&lt; &quot;:&quot; &lt;&lt; this-&gt;mac_map[sender] &lt;&lt; &quot; want taregt &quot; &lt;&lt; target &lt;&lt; endl;         if (this-&gt;gws.count(target) && !this-&gt;gws.count(sender)) {             string cmd = &quot;ip route replace &quot;;             cmd += sender;             cmd += &quot; dev &quot; + this-&gt;iface;             cmd += &quot; src &quot; + target;             cmd += &quot; proto static&quot;; \/\/            cout &lt;&lt; cmd &lt;&lt; std::endl; \/*            cout &lt;&lt; &quot;ARP REQUEST FROM &quot; &lt;&lt; arp.sender_ip_addr()                  &lt;&lt; &quot; for address &quot; &lt;&lt; arp.target_ip_addr()                  &lt;&lt; &quot; sender hw address &quot; &lt;&lt; arp.sender_hw_addr() &lt;&lt; std::endl                  &lt;&lt; &quot; run cmd: &quot; &lt;&lt; cmd &lt;&lt; endl;*\/             system(cmd.c_str());             cmd = &quot;arp -s &quot;;             cmd += arp.sender_ip_addr().to_string();             cmd += &quot; &quot;;             cmd += arp.sender_hw_addr().to_string();             cout &lt;&lt; cmd &lt;&lt; endl;             system(cmd.c_str());         }     }     return true; }  arp_monitor monitor; void reroute(int signum) {     monitor.makegws();     monitor.reroute(); }  int main(int argc, char *argv[]) {     string test;     cout &lt;&lt; sizeof(string) &lt;&lt; endl;      if (argc != 2) {         cout &lt;&lt; &quot;Usage: &quot; &lt;&lt; *argv &lt;&lt; &quot; &lt;interface&gt;&quot; &lt;&lt; endl;         return 1;     }     signal(SIGHUP, reroute);     monitor.iface = argv[1];     \/\/ Sniffer configuration     SnifferConfiguration config;     config.set_promisc_mode(true);     config.set_filter(&quot;arp&quot;);      monitor.makegws();      try {         \/\/ Sniff on the provided interface in promiscuous mode         Sniffer sniffer(argv[1], config);          \/\/ Only capture arp packets         monitor.run(sniffer);     }     catch (std::exception &ex) {         std::cerr &lt;&lt; &quot;Error: &quot; &lt;&lt; ex.what() &lt;&lt; std::endl;     } }<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043a\u0440\u0438\u043f\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 libtins<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">#!\/bin\/bash  git clone https:\/\/github.com\/mfontanini\/libtins.git cd libtins mkdir build cd build cmake ..\/ make make install ldconfig <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u043c\u0430\u043d\u0434\u0430 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">g++ main.cpp -o arp-rt -O3 -std=c++11 -lpthread -ltins<\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u0430\u043a \u0435\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c?<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"> start-stop-daemon --start --exec  \/opt\/ipoe\/arp-routes\/arp-rt -b -m -p \/opt\/ipoe\/arp-routes\/daemons\/eth0.800.pid -- eth0.800 <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0414\u0430 \u2014 \u043e\u043d \u043f\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0443 HUP \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u0430\u0432\u0438\u0430\u0435\u0442 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u041f\u043e\u0447\u0435\u043c\u0443 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043d\u0435\u0442\u043b\u0438\u043d\u043a? \u041b\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u0430 \u0438 \u043b\u0438\u043d\u0443\u043a\u0441 \u044d\u0442\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u043d\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u2014 \u0442\u0430\u043a, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. \u041d\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u043c\u0438, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435? \u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u043e\u0442\u043e\u0441\u043b\u0430\u0442\u044c \u043d\u0430 \u0431\u043e\u0440\u0434\u0435\u0440 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u2014 \u0442\u0443\u0442, \u0432 \u0441\u0438\u043b\u0443 \u0442\u0435\u0445 \u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0445 \u0436\u0435\u043b\u0435\u0437\u044f\u043a, \u043c\u044b \u043f\u043e\u0448\u043b\u0438 \u043f\u0443\u0442\u0435\u043c \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0441\u043e\u043f\u0440\u043e\u0442\u0438\u0432\u043b\u0435\u043d\u0438\u044f \u2014 \u043f\u043e\u043b\u043e\u0436\u0438\u043b\u0438 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u043d\u0430 BGP.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043e\u043d\u0444\u0438\u0433 bgp<\/b><\/p>\n<div class=\"spoiler_text\">hostname *******<br \/>  password *******<br \/>  log file \/var\/log\/bgp.log<br \/>  !<br \/>  # \u043d\u043e\u043c\u0435\u0440 \u0430\u0441-\u043a\u0438, \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u0441\u0435\u0442\u0438 \u0432\u044b\u0434\u0443\u043c\u0430\u043d\u044b<br \/>  router bgp 12345<br \/>   bgp router-id 1.2.3.4<br \/>   redistribute connected<br \/>   redistribute static<br \/>   neighbor 1.2.3.1 remote-as 12345<br \/>   neighbor 1.2.3.1 next-hop-self<br \/>   neighbor 1.2.3.1 route-map none in<br \/>   neighbor 1.2.3.1 route-map export out<br \/>  !<br \/>  access-list export permit 1.2.3.0\/24<br \/>  !<br \/>  route-map export permit 10<br \/>   match ip address export<br \/>  !<br \/>  route-map export deny 20  <\/div>\n<\/div>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0435\u0440\u0432\u0435\u0440 \u043e\u0442\u0432\u0435\u0447\u0430\u043b \u043d\u0430 \u0430\u0440\u043f \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438 \u0430\u0440\u043f.<\/p>\n<pre><code class=\"bash\"> echo 1 &gt; \/proc\/sys\/net\/ipv4\/conf\/eth0.800\/proxy_arp <\/code><\/pre>\n<p>  <\/p>\n<p>\u0418\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u2014 ucarp. \u0421\u043a\u0440\u0438\u043f\u0442\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0435\u0433\u043e \u0447\u0443\u0434\u0430 \u043f\u0438\u0448\u0435\u043c \u0441\u0430\u043c\u0438<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0435\u043c\u043e\u043d\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"> start-stop-daemon --start --exec  \/usr\/sbin\/ucarp -b -m -p \/opt\/ipoe\/ucarp-gen2\/daemons\/$iface.$vhid.$virtualaddr.pid -- --interface=eth0.800 --srcip=1.2.3.4 --vhid=1 --pass=carpasword --addr=10.10.10.1 --upscript=\/opt\/ipoe\/ucarp-gen2\/up.sh --downscript=\/opt\/ipoe\/ucarp-gen2\/down.sh -z -k 10 -P --xparam=&quot;10.10.10.0\/24&quot; <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">up.sh<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"> #!\/bin\/bash  iface=$1 addr=$2 gw=$3  vlan=`echo $1 | sed &quot;s\/eth0.\/\/&quot;`   ip ad ad $addr\/32 dev lo ip ro add blackhole $gw echo 1 &gt; \/proc\/sys\/net\/ipv4\/conf\/$iface\/proxy_arp  killall -9 dhcrelay \/etc\/init.d\/dhcrelay zap \/etc\/init.d\/dhcrelay start   killall -HUP arp-rt <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">down.sh<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\"> #!\/bin\/bash  iface=$1 addr=$2 gw=$3  ip ad d $addr\/32 dev lo ip ro de blackhole $gw echo 0 &gt; \/proc\/sys\/net\/ipv4\/conf\/$iface\/proxy_arp   killall -9 dhcrelay \/etc\/init.d\/dhcrelay zap \/etc\/init.d\/dhcrelay start  <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b dhcprelay \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u2014 \u0435\u043c\u0443 \u043d\u0443\u0436\u0435\u043d \u0430\u0434\u0440\u0435\u0441\u0441. \u041f\u043e \u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043b\u0435\u0432\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 10.255.255.1\/32, 10.255.255.2\/32 \u0438 \u0442.\u0434. \u041a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0440\u0435\u043b\u0435\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443 \u2014 \u0442\u0430\u043c \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>  <\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043c\u044b \u0438\u043c\u0435\u0435\u043c. \u0411\u0435\u043a\u0430\u043f \u0448\u043b\u044e\u0437\u043e\u0432, \u0430\u0432\u0442\u043e\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u043e\u0432, dhcp. \u042d\u0442\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u2014 \u0435\u0449\u0435 \u043d\u0430 \u044d\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f lisg \u0438 \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0438 \u0448\u0435\u0439\u043f\u0435\u0440. \u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u0441\u0435 \u0442\u0430\u043a \u0434\u043b\u0438\u043d\u043d\u043e \u0438 \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u043d\u043e? \u041d\u0435 \u043f\u0440\u043e\u0449\u0435 \u043b\u0438 \u0432\u0437\u044f\u0442\u044c accel-pppd \u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u044e\u0437\u0430\u0442\u044c pppoe? \u041d\u0435\u0442 \u043d\u0435 \u043f\u0440\u043e\u0449\u0435 \u2014 \u043b\u044e\u0434\u0438 \u0441 \u0442\u0440\u0443\u0434\u043e\u043c \u043f\u0430\u0447\u043a\u043e\u0440\u0434 \u0432 \u0440\u043e\u0443\u0442\u0435\u0440 \u0432\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u043c\u043e\u0433\u0443\u0442, \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u044f \u0443\u0436\u0435 \u043f\u0440\u043e pppoe. accel-ppp \u0448\u0442\u0443\u043a\u0430 \u043a\u0440\u0443\u0442\u0430\u044f \u2014 \u043d\u043e \u043d\u0430\u043c \u043d\u0435 \u0437\u0430\u0448\u043b\u0430 \u2014 \u043a\u0443\u0447\u0430 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u0434\u0435 \u2014 \u0441\u044b\u043f\u0435\u0442\u0441\u044f, \u0440\u0435\u0436\u0438\u0442 \u043a\u0440\u0438\u0432\u043e, \u0438 \u0441\u0430\u043c\u043e\u0435 \u043f\u0435\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u043d \u0441\u043a\u0440\u0430\u0448\u0438\u043b\u0441\u044f \u2014 \u0442\u043e, \u043b\u044e\u0434\u044f\u043c \u043d\u0430\u0434\u043e \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0440\u0443\u0436\u0430\u0442\u044c \u2014 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u044b \u043a\u0440\u0430\u0441\u043d\u044b\u0435 \u2014 \u0432\u043e\u043e\u0431\u0449\u0435\u043c \u043d\u0435 \u043f\u043e\u0434\u043e\u0448\u0435\u043b \u043e\u043d. \u0412 \u0447\u0435\u043c \u043f\u043b\u044e\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f ucarp \u0430 \u043d\u0435 keepalived? \u0414\u0430 \u0432\u043e \u0432\u0441\u0435\u043c \u2014 \u0435\u0441\u0442\u044c 100 \u0448\u043b\u044e\u0437\u043e\u0432, keepalived \u0438 \u043e\u0434\u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u2014 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u0441\u0435. \u0421 ucarp \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 1 \u0448\u043b\u044e\u0437. \u041f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043c\u043e\u043b \u043f\u0440\u043e\u043f\u0438\u0448\u0443\u0442 \u0441\u0435\u0431\u0435 \u0430\u0434\u0440\u0435\u0441\u0430 \u043b\u0435\u0432\u044b\u0435 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0448\u0430\u0440\u0438\u043a\u0430 \u2014 \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0441\u0432\u0438\u0447\u0430\u0445\/\u043e\u043b\u0442\u0430\u0445\/\u0431\u0430\u0437\u0430\u0445 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c dhcp-snooping + source-guard + arp inspection. \u0415\u0441\u043b\u0438 \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0435 dhpc \u0430 \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u2014 acces-list \u043d\u0430 \u043f\u043e\u0440\u0442\u0443.<\/p>\n<p>  <\/p>\n<p>\u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u0432\u0441\u0435 \u0434\u0435\u043b\u0430\u043b\u043e\u0441\u044c? \u0414\u043b\u044f \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0435\u0443\u0433\u043e\u0434\u043d\u043e\u0433\u043e \u043d\u0430\u043c \u0442\u0440\u0430\u0444\u0444\u0438\u043a\u0430. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u0432\u0438\u0447 \u0441\u0432\u043e\u0439 \u0432\u043b\u0430\u043d \u0438 unknown-unicast \u0443\u0436\u0435 \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u0435\u043d, \u0442\u0430\u043a \u043a\u0430\u043a \u0445\u043e\u0434\u0438\u0442\u044c \u0442\u043e \u0435\u043c\u0443 \u0443\u0436\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0434\u0438\u043d \u043f\u043e\u0440\u0442 \u043d\u0430\u0434\u043e \u0430 \u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u2026 \u041d\u0443 \u0438 \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u044b \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430.<\/p>\n<p>  <\/p>\n<p>\u041a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c lisg \u2014 \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0442\u0435\u043c\u0430. \u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u043f\u0440\u0438\u043b\u0430\u0433\u0430\u044e\u0442\u0441\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0443\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0432\u044b\u0448\u0435 \u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0432\u043e\u0438\u0445 \u0437\u0430\u0434\u0430\u0447. \u0412\u0435\u0440\u0441\u0438\u044e 6 \u0443 \u043d\u0430\u0441 \u0432 \u0441\u0435\u0442\u0438 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442 \u2014 \u043d\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043a\u0430 \u2014 \u0432 \u043f\u043b\u0430\u043d\u0430\u0445 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0442\u044c lisg \u043f\u043e\u0434 6 \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u0443 \u0438 \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043a\u0443, \u0447\u0442\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442.   <\/p>\n<p>  <a href=\"https:\/\/bitbucket.org\/Undefvoid\/linux-isg\/src\/master\/\">Linux ISG<\/a><br \/>  <a href=\"http:\/\/www.netpatch.ru\/devel\/db2dhcp\/\">DB2DHCP<\/a><br \/>  <a href=\"https:\/\/github.com\/mfontanini\/libtins\">Libtins<\/a><\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <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\/post\/462885\/\"> https:\/\/habr.com\/ru\/post\/462885\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\">\n<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435. \u0417\u043d\u0430\u0447\u0438\u0442 \u0435\u0441\u0442\u044c \u0441\u0435\u0442\u044c \u0438\u0437 5\u043a \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u041d\u0435\u0434\u0430\u0432\u043d\u043e \u0432\u044b\u043b\u0435\u0437 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u2014 \u0432 \u0446\u0435\u043d\u0442\u0440\u0435 \u0441\u0435\u0442\u0438 \u0438 \u0443 \u043d\u0430\u0441 \u0441\u0442\u043e\u0438\u0442 Brocade RX8 \u0438 \u043e\u043d \u043d\u0430\u0447\u0430\u043b \u0441\u043b\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e unknown-unicast \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0435\u0442\u044c \u043f\u043e\u0434\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u0432\u043b\u0430\u043d\u044b \u2014 \u0442\u043e \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u041d\u041e \u0435\u0441\u0442\u044c \u0441\u043f\u0435\u0446 \u0432\u043b\u0430\u043d\u044b \u0434\u043b\u044f \u0431\u0435\u043b\u044b\u0445 \u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u0438 \u0442.\u0434. \u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044b \u0432\u043e \u0432\u0441\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u0441\u0435\u0442\u0438. \u0422\u0430\u043a \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a \u043d\u0430 \u0430\u0434\u0440\u0435\u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u043e\u0440\u0434\u0435\u0440\u043e\u043c \u043d\u0435 \u0443\u0447\u0438\u0442\u0441\u044f \u0438 \u044d\u0442\u043e\u0442 \u043f\u043e\u0442\u043e\u043a \u043b\u0435\u0442\u0438\u0442 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0440\u0430\u0434\u0438\u043e \u043b\u0438\u043d\u043a\u0430 \u043d\u0430 \u043a\u0430\u043a\u043e\u0435\u0442\u043e (\u0430 \u0442\u0430\u043a \u043d\u0430 \u0432\u0441\u0435) \u0441\u0435\u043b\u043e \u2014 \u043a\u0430\u043d\u0430\u043b \u0437\u0430\u0431\u0438\u0442 \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0437\u043b\u044b\u0435 \u2014 \u043f\u0435\u0447\u0430\u043b\u044c\u2026 <\/p>\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-293103","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/293103","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=293103"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/293103\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=293103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=293103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=293103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}