{"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\/es\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","title":{"rendered":"Enrutamiento r\u00e1pido y NAT en Linux","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A medida que se agotan las direcciones IPv4, muchos operadores de telecomunicaciones se han enfrentado a la necesidad de proporcionar acceso a sus clientes a la red mediante la traducci\u00f3n de direcciones. En este art\u00edculo, explicar\u00e9 c\u00f3mo se puede alcanzar un rendimiento de nivel Carrier Grade NAT en servidores comerciales.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Un poco de historia<\/h3>\n<p>\nEl tema del agotamiento del espacio de direcciones IPv4 ya no es nuevo. En alg\u00fan momento surgieron listas de espera en RIPE, luego aparecieron intercambios donde se comerciaban bloques de direcciones y se firmaban contratos para su alquiler. Poco a poco, los operadores de telecomunicaciones comenzaron a ofrecer servicios de acceso a Internet mediante la traducci\u00f3n de direcciones y puertos. Algunos no lograron obtener suficientes direcciones para asignar una direcci\u00f3n 'p\u00fablica' a cada suscriptor, mientras que otros comenzaron a economizar, renunciando a la compra de direcciones en el mercado secundario. Los fabricantes de equipos de red apoyaron esta idea, ya que esta funcionalidad normalmente requiere m\u00f3dulos de expansi\u00f3n o licencias adicionales. Por ejemplo, en Juniper, en la l\u00ednea de enrutadores MX (excepto los \u00faltimos MX104 y MX204), realizar NAPT se puede hacer en una tarjeta de servicio separada MS-MIC, en Cisco ASR1k se requiere la licencia CGN, y en Cisco ASR9k se necesita un m\u00f3dulo separado A9K-ISM-100 y la licencia A9K-CGN-LIC correspondiente. En general, esto no es barato.<\/p>\n<h3>IPTables<\/h3>\n<p>\nLa tarea de realizar NAT no requiere recursos computacionales especializados, puede ser manejada por procesadores de prop\u00f3sito general, como los que se encuentran en cualquier enrutador dom\u00e9stico. A nivel de operador de telecomunicaciones, esta tarea se puede resolver utilizando servidores comerciales que funcionen con FreeBSD (ipfw\/pf) o GNU\/Linux (iptables). No examinaremos FreeBSD ya que hace tiempo abandon\u00e9 el uso de este sistema operativo, as\u00ed que nos centraremos en GNU\/Linux.<\/p>\n<p>Activar la traducci\u00f3n de direcciones no es complicado. Para comenzar, es necesario escribir una regla en iptables en la tabla 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>\nEl sistema operativo cargar\u00e1 el m\u00f3dulo nf_conntrack, que supervisar\u00e1 todas las conexiones activas y realizar\u00e1 las transformaciones necesarias. Hay algunas sutilezas aqu\u00ed. Primero, dado que se trata de NAT a escala de operador de telecomunicaciones, es necesario ajustar los tiempos de espera, porque con los valores predeterminados el tama\u00f1o de la tabla de traducciones crecer\u00e1 r\u00e1pidamente a valores catastr\u00f3ficos. A continuaci\u00f3n, un ejemplo de la configuraci\u00f3n que utilic\u00e9 en mis servidores:<\/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>\nY en segundo lugar, dado que el tama\u00f1o de la tabla de traducci\u00f3n por defecto no est\u00e1 dise\u00f1ado para operar en condiciones de un operador de telecomunicaciones, es necesario aumentar su tama\u00f1o:<\/p>\n<pre><code class=\"plaintext\">net.netfilter.nf_conntrack_max = 3145728\n<\/code><\/pre>\n<p>\n Tambi\u00e9n es necesario aumentar la cantidad de buckets para la tabla hash que almacena todas las traducciones (esta es una opci\u00f3n del m\u00f3dulo nf_conntrack): <\/p>\n<pre><code class=\"plaintext\">options nf_conntrack hashsize=1572864\n<\/code><\/pre>\n<p>\nDespu\u00e9s de estas sencillas manipulaciones, se obtiene una estructura que puede traducir una gran cantidad de direcciones de clientes en un grupo de direcciones externas. Sin embargo, el rendimiento de esta soluci\u00f3n deja mucho que desear. En mis primeros intentos de usar GNU\/Linux para NAT (aproximadamente en 2013), pude alcanzar un rendimiento de alrededor de 7Gbit\/s a 0.8Mpps en un servidor (Xeon E5-1650v2). Desde entonces, se han realizado muchas optimizaciones en la pila de red del n\u00facleo de GNU\/Linux, y el rendimiento de un servidor con el mismo hardware ha crecido pr\u00e1cticamente a 18-19 Gbit\/s a 1.8-1.9 Mpps (estos fueron los valores extremos), pero la demanda de volumen de tr\u00e1fico procesado por un solo servidor ha crecido mucho m\u00e1s r\u00e1pido. Como resultado, se desarrollaron esquemas de balanceo de carga en diferentes servidores, pero todo esto increment\u00f3 la complejidad de la configuraci\u00f3n, el mantenimiento y la garant\u00eda de calidad de los servicios prestados.<\/p>\n<h3>NFTables<\/h3>\n<p>\nActualmente, la tendencia de moda en el \"reenv\u00edo de paquetes\" es el uso de DPDK y XDP. Se han escrito muchos art\u00edculos sobre este tema, se han realizado diversas presentaciones y aparecen productos comerciales (por ejemplo, SKAT de VasExperts). Sin embargo, en el contexto de recursos limitados de programadores en los operadores de telecomunicaciones, crear alguna \"creaci\u00f3n\" basada en estos marcos es bastante problem\u00e1tico. Adem\u00e1s, explotar tal soluci\u00f3n en el futuro ser\u00e1 mucho m\u00e1s complicado, ya que ser\u00e1 necesario desarrollar herramientas de diagn\u00f3stico. Por ejemplo, el tcpdump est\u00e1ndar no funcionar\u00e1 con DPDK, y los paquetes enviados de vuelta a los cables mediante XDP no ser\u00e1n \"vistos\". En medio de todas las discusiones sobre nuevas tecnolog\u00edas de reenv\u00edo de paquetes en user-space, han pasado desapercibidos <noindex><a rel=\"nofollow\" href=\"https:\/\/netdevconf.info\/0x13\/session.html?workshop-netfilter-mini\">informes<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/lwn.net\/Articles\/738214\/\">art\u00edculo<\/a><\/noindex> Pablo Neira Ayuso, mantenedor de iptables, sobre el desarrollo de flow offloading en nftables. Examinemos este mecanismo en detalle.<\/p>\n<p>La idea principal es que si un enrutador ha permitido que los paquetes de una sesi\u00f3n vayan en ambas direcciones (la sesi\u00f3n TCP ha alcanzado el estado ESTABLISHED), no es necesario pasar los paquetes subsecuentes de esta sesi\u00f3n a trav\u00e9s de todas las reglas del firewall, ya que todas estas comprobaciones terminar\u00e1n en la transmisi\u00f3n del paquete hacia el enrutamiento. Adem\u00e1s, no es necesario realizar la elecci\u00f3n de la ruta, porque ya sabemos a qu\u00e9 interfaz y a qu\u00e9 host se deben enviar los paquetes dentro de esta sesi\u00f3n. Solo queda guardar esta informaci\u00f3n y utilizarla para la ruta en la fase inicial del procesamiento del paquete. Al realizar NAT, tambi\u00e9n es necesario guardar informaci\u00f3n sobre los cambios en las direcciones y puertos, transformados por el m\u00f3dulo nf_conntrack. S\u00ed, por supuesto, en este caso, varios poliseres y otras reglas de informaci\u00f3n-estad\u00edsticas en iptables dejar\u00e1n de funcionar, pero en el marco de la tarea de un NAT independiente o, por ejemplo, un border, esto no es tan importante, porque los servicios est\u00e1n distribuidos entre los dispositivos.<\/p>\n<h4>Configuraci\u00f3n<\/h4>\n<p>\nPara utilizar esta funci\u00f3n necesitamos:<\/p>\n<ul>\n<li>Usar un n\u00facleo actualizado. A pesar de que la funcionalidad apareci\u00f3 por primera vez en el n\u00facleo 4.16, durante mucho tiempo fue muy \"inmadura\" y provocaba regularmente kernel panic. Todo se estabiliz\u00f3 aproximadamente en diciembre de 2019, cuando se lanzaron los n\u00facleos LTS 4.19.90 y 5.4.5.<\/li>\n<li>Reescribir las reglas de iptables en formato nftables, utilizando una versi\u00f3n suficientemente actual de nftables. Funciona correctamente en la versi\u00f3n 0.9.0<\/li>\n<\/ul>\n<p>\nSi con el primer punto todo est\u00e1 m\u00e1s o menos claro, lo principal es no olvidar incluir el m\u00f3dulo en la configuraci\u00f3n al compilar (CONFIG_NFT_FLOW_OFFLOAD=m), el segundo punto requiere algunas explicaciones. Las reglas de nftables se describen de manera muy diferente a las de iptables. <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/Main_Page\">La documentaci\u00f3n<\/a><\/noindex> cubre pr\u00e1cticamente todos los aspectos, tambi\u00e9n hay convertidores especiales <noindex><a rel=\"nofollow\" href=\"https:\/\/wiki.nftables.org\/wiki-nftables\/index.php\/Moving_from_iptables_to_nftables\">de reglas de iptables a nftables. Por lo tanto, solo presentar\u00e9 un ejemplo de configuraci\u00f3n de NAT y flow offload. Un peque\u00f1o contexto para el ejemplo: <i>,  son las interfaces de red a trav\u00e9s de las cuales pasa el tr\u00e1fico; en realidad, puede haber m\u00e1s de dos. ,  son la direcci\u00f3n inicial y final del rango de direcciones \"blancas\".<\/a><\/noindex> La configuraci\u00f3n de NAT es muy sencilla:<\/p>\n<p>Con el flow offload es un poco m\u00e1s complicado, pero bastante claro:<\/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>\nAqu\u00ed est\u00e1, en esencia, toda la configuraci\u00f3n. Ahora todo el tr\u00e1fico TCP\/UDP ir\u00e1 a la tabla fastnat y se procesar\u00e1 mucho m\u00e1s r\u00e1pido.<\/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>\nPara que quede claro cu\u00e1nto es esto de \"mucho m\u00e1s r\u00e1pido\", adjuntar\u00e9 una captura de pantalla de la carga en dos servidores reales, con la misma configuraci\u00f3n (Xeon E5-1650v2), configurados de la misma manera y utilizando el mismo n\u00facleo de Linux, pero realizando NAT en iptables (NAT4) y en nftables (NAT5).<\/p>\n<h3>Resultados<\/h3>\n<p>\nEn la captura de pantalla no hay gr\u00e1fico de paquetes por segundo, pero en el perfil de carga de estos servidores el tama\u00f1o medio del paquete ronda los 800 bytes, por lo que los valores llegan hasta 1.5Mpps. Como se puede ver, el margen de rendimiento del servidor con nftables es enorme. En este momento, este servidor procesa hasta 30Gbit\/s a 3Mpps y claramente puede alcanzar el l\u00edmite f\u00edsico de la red de 40Gbps, manteniendo recursos de CPU disponibles.<\/p>\n<p><img decoding=\"async\" alt=\"Enrutamiento r\u00e1pido y NAT en Linux\" src=\"\/wp-content\/uploads\/2020\/05\/94bd3f58bf499ceb9837cd771cc9ef9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEspero que este material sea \u00fatil para los ingenieros de redes que intentan mejorar el rendimiento de sus servidores.<\/p>\n<p>A medida que se agotan las direcciones IPv4, muchos operadores de telecomunicaciones se han enfrentado a la necesidad de organizar el acceso de sus clientes a la red mediante la traducci\u00f3n de direcciones.<br \/>\n<br \/>Fuente: <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 - 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\/es\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Enrutamiento r\u00e1pido y NAT en Linux | ProHoster","description":"\ud83e\udd47Enrutamiento r\u00e1pido y NAT en Linux | ProHoster","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/bystryj-routing-i-nat-v-linux","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/81265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=81265"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/81265\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/81266"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=81265"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=81265"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=81265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}