{"id":81265,"date":"2020-05-12T01:42:43","date_gmt":"2020-05-11T23:42:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux"},"modified":"2020-05-12T01:42:43","modified_gmt":"2020-05-11T23:42:43","slug":"bystryj-routing-i-nat-v-linux","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","title":{"rendered":"Rutare rapid\u0103 \u0219i NAT \u00een Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Pe m\u0103sur\u0103 ce adresele IPv4 se epuizeaz\u0103, mul\u021bi operatori de telecomunica\u021bii s-au confruntat cu nevoia de a organiza accesul clien\u021bilor lor la re\u021bea prin traducerea adreselor. \u00cen acest articol, voi explica cum se poate ob\u021bine o performan\u021b\u0103 de nivel Carrier Grade NAT pe servere de tip commodity.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Pu\u021bin istorie<\/h3>\n<p>\nTema epuiz\u0103rii spa\u021biului de adrese IPv4 nu mai este nou\u0103. La un moment dat, \u00een RIPE au ap\u0103rut liste de a\u0219teptare (waiting list), apoi au ap\u0103rut burse pe care erau tranzac\u021bionate blocuri de adrese \u0219i se \u00eencheiau contracte pentru \u00eenchirierea acestora. Treptat, operatorii de telecomunica\u021bii au \u00eenceput s\u0103 ofere servicii de acces la internet prin traducerea adreselor \u0219i a porturilor. Unii nu au reu\u0219it s\u0103 ob\u021bin\u0103 suficiente adrese pentru a oferi o adres\u0103 \u201ealb\u0103\u201d fiec\u0103rui abonat, iar al\u021bii au \u00eenceput s\u0103 economiseasc\u0103 resurse refuz\u00e2nd achizi\u021bionarea de adrese pe pia\u021ba secundar\u0103. Produc\u0103torii de echipamente de re\u021bea au sprijinit aceast\u0103 idee, deoarece aceast\u0103 func\u021bionalitate necesit\u0103 de obicei module suplimentare sau licen\u021be. De exemplu, la Juniper, \u00een gama de routere MX (cu excep\u021bia ultimelor MX104 \u0219i MX204), NAPT poate fi realizat pe un card de serviciu separat MS-MIC, iar pentru Cisco ASR1k este necesar\u0103 o licen\u021b\u0103 CGN, \u00een timp ce pentru Cisco ASR9k este necesar un modul separat A9K-ISM-100 \u0219i o licen\u021b\u0103 A9K-CGN-LIC. \u00cen general, pl\u0103cerea are un cost destul de ridicat.<\/p>\n<h3>IPTables<\/h3>\n<p>\nSarcina de a efectua NAT nu necesit\u0103 resurse computa\u021bionale specializate; aceasta poate fi rezolvat\u0103 de procesoare generice, care sunt instalate, de exemplu, \u00een orice router de acas\u0103. La scar\u0103 de operator de telecomunica\u021bii, aceast\u0103 problem\u0103 poate fi rezolvat\u0103 folosind servere commodity care ruleaz\u0103 FreeBSD (ipfw\/pf) sau GNU\/Linux (iptables). Nu vom lua \u00een considerare FreeBSD, deoarece am renun\u021bat la utilizarea acestui sistem de operare cu ceva timp \u00een urm\u0103, a\u0219a c\u0103 ne vom concentra pe GNU\/Linux.<\/p>\n<p>Activarea traducerii adreselor nu este deloc complicat\u0103. \u00cen primul r\u00e2nd, este necesar s\u0103 se scrie o regul\u0103 \u00een iptables \u00een tabelul nat:<\/p>\n<pre><code class=\"bash\">iptables -t nat -A POSTROUTING -s 100.64.0.0\/10 -j SNAT --to - --persistent\n<\/code><\/pre>\n<p>\nSistemul de operare va \u00eenc\u0103rca modulul nf_conntrack, care va monitoriza toate conexiunile active \u0219i va efectua transform\u0103rile necesare. Exist\u0103 c\u00e2teva subtilit\u0103\u021bi aici. \u00cen primul r\u00e2nd, deoarece este vorba despre NAT la scar\u0103 de operator de telecomunica\u021bii, trebuie ajustate timeout-urile, deoarece cu valorile implicite, dimensiunea tabelului de traduceri va cre\u0219te rapid la valori catastrofale. Mai jos este un exemplu de set\u0103ri pe care le-am folosit pe serverele mele:<\/p>\n<pre><code class=\"bash\">net.ipv4.ip_forward = 1\nnet.ipv4.ip_local_port_range = 8192 65535\n\nnet.netfilter.nf_conntrack_generic_timeout = 300\nnet.netfilter.nf_conntrack_tcp_timeout_syn_sent = 60\nnet.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60\nnet.netfilter.nf_conntrack_tcp_timeout_established = 600\nnet.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60\nnet.netfilter.nf_conntrack_tcp_timeout_close_wait = 45\nnet.netfilter.nf_conntrack_tcp_timeout_last_ack = 30\nnet.netfilter.nf_conntrack_tcp_timeout_time_wait = 120\nnet.netfilter.nf_conntrack_tcp_timeout_close = 10\nnet.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300\nnet.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300\nnet.netfilter.nf_conntrack_udp_timeout = 30\nnet.netfilter.nf_conntrack_udp_timeout_stream = 60\nnet.netfilter.nf_conntrack_icmpv6_timeout = 30\nnet.netfilter.nf_conntrack_icmp_timeout = 30\nnet.netfilter.nf_conntrack_events_retry_timeout = 15\nnet.netfilter.nf_conntrack_checksum=0\n<\/code><\/pre>\n<p>\n\u00cen al doilea r\u00e2nd, av\u00e2nd \u00een vedere c\u0103 dimensiunea tabelului de conversie nu este calculat\u0103 \u00een mod implicit pentru a func\u021biona \u00een condi\u021biile unui operator de telecomunica\u021bii, aceasta trebuie s\u0103 fie crescut\u0103:<\/p>\n<pre><code class=\"plaintext\">net.netfilter.nf_conntrack_max = 3145728\n<\/code><\/pre>\n<p>\n De asemenea, este necesar s\u0103 cre\u0219tem \u0219i num\u0103rul de buckets pentru tabelul hash care p\u0103streaz\u0103 toate conversiile (aceasta este o op\u021biune a modulului nf_conntrack): <\/p>\n<pre><code class=\"plaintext\">options nf_conntrack hashsize=1572864\n<\/code><\/pre>\n<p>\nDup\u0103 aceste manevre simple, ob\u021binem o structur\u0103 func\u021bional\u0103, care poate traduce un num\u0103r mare de adrese de client \u00een pool-ul extern. Cu toate acestea, performan\u021ba acestei solu\u021bii las\u0103 de dorit. \u00cen primele mele \u00eencerc\u0103ri de utilizare a GNU\/Linux pentru NAT (aproximativ 2013), am reu\u0219it s\u0103 ob\u021bin o performan\u021b\u0103 de aproximativ 7Gbit\/s la 0.8Mpps pe un server (Xeon E5-1650v2). De atunci, \u00een stiva de re\u021bea a nucleului GNU\/Linux au fost efectuate multe optimiz\u0103ri diferite, iar performan\u021ba unui singur server pe acela\u0219i hardware a crescut practic la 18-19 Gbit\/s la 1.8-1.9 Mpps (acestea au fost valorile maxime), dar cerin\u021ba privind volumul de trafic procesat de un singur server a crescut mult mai repede. \u00cen consecin\u021b\u0103, au fost dezvoltate scheme de echilibrare a \u00eenc\u0103rc\u0103rii pe diferite servere, \u00eens\u0103 toate acestea au crescut complexitatea configur\u0103rii, \u00eentre\u021binerii \u0219i men\u021binerii calit\u0103\u021bii serviciilor oferite.<\/p>\n<h3>NFTables<\/h3>\n<p>\n\u00cen prezent, o direc\u021bie popular\u0103 \u00een \"manipularea pachetelor\" este utilizarea DPDK \u0219i XDP. Pe aceast\u0103 tem\u0103 au fost scrise multe articole, au avut loc diverse prezent\u0103ri \u0219i au ap\u0103rut produse comerciale (de exemplu, SKAT de la VasExperts). \u00cens\u0103, \u00een condi\u021biile resurselor limitate ale programatorilor din cadrul operatorilor de telecomunica\u021bii, este destul de problematic s\u0103 dezvolt\u0103m o solu\u021bie \u201eartizanal\u0103\u201d bazat\u0103 pe aceste cadre. Utilizarea unei astfel de solu\u021bii \u00een continuare va fi mult mai complicat\u0103, \u00een special va trebui s\u0103 dezvolt\u0103m instrumente de diagnoz\u0103. De exemplu, tcpdump standard nu va func\u021biona cu DPDK, iar pachetele trimise \u00eenapoi prin cabluri folosind XDP nu vor fi \"vizibile\". \u00cen acest context, toate discu\u021biile despre noile tehnologii de redirec\u021bionare a pachetelor \u00een user-space au r\u0103mas nefavorizate. <noindex><a rel=\"nofollow\" href=\"https:\/\/netdevconf.info\/0x13\/session.html?workshop-netfilter-mini\">prezent\u0103ri<\/a><\/noindex> \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/738214\/\">recomand\u0103rile sunt aplicabile coronavirusurilor \u00een general \u0219i COVID-19 \u00een particular. A\u0219adar, recomand s\u0103 desc\u0103rca\u021bi \u0219i s\u0103 printa\u021bi articolul (pentru cei interesa\u021bi de acest subiect).<\/a><\/noindex> Pablo Neira Ayuso, \u00eentre\u021bin\u0103torul iptables, despre dezvoltarea flow offloading \u00een nftables. S\u0103 vedem acest mecanism mai \u00een detaliu.<\/p>\n<p>Ideea principal\u0103 este c\u0103, dac\u0103 routerul a permis pachetele unei sesiuni \u00een ambele direc\u021bii ale fluxului (sesiunea TCP a trecut \u00een starea ESTABLISHED), nu este necesar s\u0103 permit\u0103 pachetele ulterioare ale acestei sesiuni s\u0103 treac\u0103 prin toate regulile firewall-ului, deoarece toate aceste verific\u0103ri se vor \u00eencheia cu transmiterea pachetului mai departe \u00een rutare. De asemenea, nu trebuie s\u0103 lu\u0103m o decizie privind ruta \u2014 \u0219tim deja pe ce interfa\u021b\u0103 \u0219i c\u0103tre ce host trebuie s\u0103 direc\u021bion\u0103m pachetele \u00een cadrul acestei sesiuni. R\u0103m\u00e2ne doar s\u0103 p\u0103str\u0103m aceast\u0103 informa\u021bie \u0219i s\u0103 o utiliz\u0103m pentru rutare \u00een stadiul incipient al proces\u0103rii pachetului. La efectuarea NAT, este necesar s\u0103 p\u0103str\u0103m informa\u021bia despre modific\u0103rile adreselor \u0219i porturilor, transformate de modulul nf_conntrack. Da, desigur, \u00een acest caz nu vor mai func\u021biona diferite poliseri \u0219i alte reguli informa\u021bionale-statistice \u00een iptables, dar \u00een contextul unei sarcini individuale a unui NAT separat sau, de exemplu, a unei margini \u2014 acest lucru nu este at\u00e2t de important, deoarece serviciile sunt distribuite pe dispozitive.<\/p>\n<h4>Configura\u021bie<\/h4>\n<p>\nPentru a beneficia de aceast\u0103 func\u021bie, trebuie s\u0103:<\/p>\n<ul>\n<li>Folosim un kernel proasp\u0103t. De\u0219i func\u021bionalitatea a ap\u0103rut prima dat\u0103 \u00een kernel 4.16, a fost destul de \u201ebrut\u0103\u201d \u0219i a cauzat \u00een mod regulat kernel panic. Totul s-a stabilizat \u00een jurul lunii decembrie 2019, c\u00e2nd au fost lansate kernel-urile LTS 4.19.90 \u0219i 5.4.5.<\/li>\n<li>Rescrie\u021bi regulile iptables \u00een format nftables, folosind o versiune destul de recent\u0103 de nftables. Func\u021bioneaz\u0103 perfect \u00een versiunea 0.9.0<\/li>\n<\/ul>\n<p>\nDac\u0103 primul punct este, \u00een principiu, clar, principalul lucru este s\u0103 nu uita\u021bi s\u0103 activa\u021bi modulul \u00een configura\u021bie la compilare (CONFIG_NFT_FLOW_OFFLOAD=m), atunci al doilea punct necesit\u0103 explica\u021bii. Regulile nftables sunt descrise cu totul diferit fa\u021b\u0103 de iptables. <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/Main_Page\">Documenta\u021bie<\/a><\/noindex> acoper\u0103 practic toate aspectele, exist\u0103, de asemenea, convertizoare speciale <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/Moving_from_iptables_to_nftables\">de reguli din iptables \u00een nftables. A\u0219adar, voi prezenta doar un exemplu de configurare NAT \u0219i flow offload. O mic\u0103 legend\u0103 pentru exemplu: <i>,  - acestea sunt interfe\u021bele re\u021belei prin care trece traficul, de fapt pot exista mai mult de dou\u0103. , - adresa de \u00eenceput \u0219i de sf\u00e2r\u0219it a intervalului de adrese \"albe\".<\/a><\/noindex> Configurarea NAT este foarte simpl\u0103:<\/p>\n<p>Cu flow offload este pu\u021bin mai complicat, dar destul de clar:<\/p>\n<pre><code class=\"bash\">#! \/usr\/sbin\/nft -f\n\ntable nat {\n        chain postrouting {\n                type nat hook postrouting priority 100;\n                oif &lt;o_if&gt; snat to &lt;pool_addr_start&gt;-&lt;pool_addr_end&gt; persistent\n        }\n}\n<\/code><\/pre>\n<p>\nIat\u0103, de fapt, toat\u0103 configurarea. Acum tot traficul TCP\/UDP va ajunge \u00een tabela fastnat \u0219i va fi procesat mult mai repede.<\/p>\n<pre><code class=\"bash\">#! \/usr\/sbin\/nft -f\n\ntable inet filter {\n        flowtable fastnat {\n                hook ingress priority 0\n                devices = { &lt;i_if&gt;, &lt;o_if&gt; }\n        }\n\n        chain forward {\n                type filter hook forward priority 0; policy accept;\n                ip protocol { tcp , udp } flow offload @fastnat;\n        }\n}\n<\/code><\/pre>\n<p>\nPentru a \u00een\u021belege c\u00e2t de mult mai repede este, voi ata\u0219a o captur\u0103 de ecran a sarcinii pe dou\u0103 servere reale, cu aceea\u0219i configura\u021bie (Xeon E5-1650v2), configurate \u00een mod identic, folosind acela\u0219i nucleu Linux, dar realiz\u00e2nd NAT \u00een iptables (NAT4) \u0219i \u00een nftables (NAT5).<\/p>\n<h3>Rezultate<\/h3>\n<p>\nPe captura de ecran nu exist\u0103 un grafic al pachetelor pe secund\u0103, dar \u00een profilul de sarcin\u0103 al acestor servere, dimensiunea medie a pachetului este \u00een jur de 800 de octe\u021bi, a\u0219a c\u0103 valorile ajung p\u00e2n\u0103 la 1.5Mpps. A\u0219a cum se poate observa, rezervele de performan\u021b\u0103 ale serverului cu nftables sunt uria\u0219e. \u00cen acest moment, acest server proceseaz\u0103 p\u00e2n\u0103 la 30Gbit\/s la 3Mpps \u0219i este clar capabil s\u0103 ating\u0103 limitarea fizic\u0103 a re\u021belei de 40Gbps, av\u00e2nd totodat\u0103 resurse CPU libere.<\/p>\n<p><img decoding=\"async\" alt=\"Rutare rapid\u0103 \u0219i NAT \u00een Linux\" src=\"\/wp-content\/uploads\/2020\/05\/94bd3f58bf499ceb9837cd771cc9ef9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSper c\u0103 acest material va fi util pentru inginerii de re\u021bea care \u00eencearc\u0103 s\u0103 \u00eembun\u0103t\u0103\u021beasc\u0103 performan\u021ba serverelor lor.<\/p>\n<p>Pe m\u0103sur\u0103 ce adresele IPv4 se epuizeaz\u0103, mul\u021bi operatori de telecomunica\u021bii s-au confruntat cu necesitatea de a organiza accesul clien\u021bilor lor la re\u021bea prin translatarea adreselor.<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/501234\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0440\u043e\u0432\u043d\u044f Carrier Grade NAT \u043d\u0430 commodity \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u0422\u0435\u043c\u0430 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 IPv4 \u0443\u0436\u0435 \u043d\u0435 \u043d\u043e\u0432\u0430. \u0412 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u0432 RIPE \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81266,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81265","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438 NAT \u0432 Linux | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-11T23:42:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-11T23:42:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rutare rapid\u0103 \u0219i NAT \u00een Linux | ProHoster","description":"\ud83e\udd47Rutare rapid\u0103 \u0219i NAT \u00een Linux | ProHoster","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0440\u043e\u0443\u0442\u0438\u043d\u0433 \u0438 NAT \u0432 Linux | ProHoster","og:description":"\u041f\u043e \u043c\u0435\u0440\u0435 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u044f \u0430\u0434\u0440\u0435\u0441\u043e\u0432 IPv4, \u043c\u043d\u043e\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u0432\u044f\u0437\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0441\u0432\u043e\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0432 \u0441\u0435\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0438 \u0430\u0434\u0440\u0435\u0441\u043e\u0432.","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-11T23:42:43+00:00","article:modified_time":"2020-05-11T23:42:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81265","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:01:23","updated":"2022-09-28 04:47:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/81265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=81265"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/81265\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/81266"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=81265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=81265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=81265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}