{"id":81593,"date":"2020-05-15T01:42:36","date_gmt":"2020-05-14T23:42:36","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2"},"modified":"2020-05-15T01:42:36","modified_gmt":"2020-05-14T23:42:36","slug":"tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2","title":{"rendered":"Ajuste del enrutamiento para MetalLB en modo L2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Ajuste del enrutamiento para MetalLB en modo L2\" src=\"\/wp-content\/uploads\/2020\/05\/d03a56702a85f4c8c80a6cac3e489980.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNo hace mucho tiempo, me encontr\u00e9 con una tarea bastante inusual: configurar el enrutamiento para MetalLB. No ser\u00eda un problema, ya que normalmente no se requiere ninguna acci\u00f3n adicional para MetalLB, pero en nuestro caso, tenemos un cl\u00faster bastante grande con una configuraci\u00f3n de red bastante sencilla.<\/p>\n<p><\/p>\n<p>En este art\u00edculo, explicar\u00e9 c\u00f3mo configurar el enrutamiento basado en la fuente y basado en pol\u00edticas para la red externa de su cl\u00faster.<\/p>\n<p><\/p>\n<p>No me detendr\u00e9 en la instalaci\u00f3n y configuraci\u00f3n de MetalLB, ya que supongo que ya tiene algo de experiencia. Propongo que vayamos directamente al grano, es decir, a la configuraci\u00f3n del enrutamiento. As\u00ed que tenemos cuatro casos:<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"sluchay-1-kogda-nastroyka-ne-trebuetsya\">Caso 1: Cuando no se requiere configuraci\u00f3n<\/h1>\n<p><\/p>\n<p>Analicemos un caso simple.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ajuste del enrutamiento para MetalLB en modo L2\" src=\"\/wp-content\/uploads\/2020\/05\/f79cc1169741b899c95e76d5d4cf60fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>No se requiere configuraci\u00f3n adicional de enrutamiento cuando las direcciones proporcionadas por MetalLB est\u00e1n en la misma subred que las direcciones de sus nodos.<\/p>\n<p><\/p>\n<p>Por ejemplo, tiene la subred <code>192.168.1.0\/24<\/code>, hay un enrutador en ella <code>192.168.1.1<\/code>, y sus nodos obtienen direcciones: <code>192.168.1.10-30<\/code>, entonces para MetalLB usted puede configurar el rango <code>192.168.1.100-120<\/code> y estar seguro de que funcionar\u00e1n sin ninguna configuraci\u00f3n adicional.<\/p>\n<p><\/p>\n<p>\u00bfPor qu\u00e9 es as\u00ed? Porque sus nodos ya tienen rutas configuradas:<\/p>\n<p><\/p>\n<pre><code class=\"bash\"># ip route\ndefault via 192.168.1.1 dev eth0 onlink \n192.168.1.0\/24 dev eth0 proto kernel scope link src 192.168.1.10<\/code><\/pre>\n<p><\/p>\n<p>Y las direcciones del mismo rango reutilizar\u00e1n esas sin ning\u00fan movimiento adicional.<\/p>\n<p><\/p>\n<h1 id=\"sluchay-2-kogda-trebuetsya-dopolnitelnaya-nastroyka\">Caso 2: Cuando se requiere configuraci\u00f3n adicional<\/h1>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ajuste del enrutamiento para MetalLB en modo L2\" src=\"\/wp-content\/uploads\/2020\/05\/02392fbc3c16bdf52f0c5ddaf5688e7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Debe configurar rutas adicionales cada vez que sus nodos no tengan configurada una <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/lir\/ipv4\/\"   title=\"IP\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"666\">IP<\/a> o ruta a la subred para la que MetalLB proporciona direcciones.<\/p>\n<p><\/p>\n<p>Perm\u00edtanme explicar con m\u00e1s detalle. Cada vez que MetalLB proporciona una direcci\u00f3n, esto se puede comparar con una asignaci\u00f3n simple como:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">ip addr add 10.9.8.7\/32 dev lo<\/code><\/pre>\n<p><\/p>\n<p>Preste atenci\u00f3n a:<\/p>\n<p><\/p>\n<ul>\n<li><strong>a)<\/strong> La direcci\u00f3n se asigna con un prefijo <code>\/32<\/code> es decir, la ruta a la subred para ella no se a\u00f1adir\u00e1 autom\u00e1ticamente (esto es solo una direcci\u00f3n)<\/li>\n<li><strong>b)<\/strong> La direcci\u00f3n se asigna a cualquier interfaz del nodo (por ejemplo, loopback). Aqu\u00ed vale la pena mencionar la particularidad de la pila de red de Linux. No importa en qu\u00e9 interfaz agregue la direcci\u00f3n, el n\u00facleo siempre procesar\u00e1 las solicitudes ARP y enviar\u00e1 respuestas ARP a cualquiera de ellas, este comportamiento se considera correcto y, adem\u00e1s, se utiliza ampliamente en un entorno din\u00e1mico como Kubernetes.<\/li>\n<\/ul>\n<p><\/p>\n<p>Este comportamiento se puede configurar, por ejemplo, activando el arp estricto:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">echo 1 &gt; \/proc\/sys\/net\/ipv4\/conf\/all\/arp_ignore\necho 2 &gt; \/proc\/sys\/net\/ipv4\/conf\/all\/arp_announce<\/code><\/pre>\n<p><\/p>\n<p>En este caso, las respuestas arp se enviar\u00e1n solo si la interfaz contiene expl\u00edcitamente una direcci\u00f3n IP espec\u00edfica. Esta configuraci\u00f3n es obligatoria si planea utilizar MetalLB y su kube-proxy funciona en modo IPVS.<\/p>\n<p><\/p>\n<p>Sin embargo, MetalLB no utiliza el n\u00facleo para procesar solicitudes arp, sino que lo hace de manera independiente en user-space, por lo que esta opci\u00f3n no afectar\u00e1 el funcionamiento de MetalLB.<\/p>\n<p><\/p>\n<p>Volvamos a nuestra tarea. Si no existe una ruta para las direcciones emitidas en sus nodos, agr\u00e9guelas de antemano en todos los nodos:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">ip route add 10.9.8.0\/24 dev eth1<\/code><\/pre>\n<p><\/p>\n<h1 id=\"sluchay-3-kogda-ponadobitsya-source-based-routing\">Caso 3: Cuando se necesite el enrutamiento basado en la fuente<\/h1>\n<p><\/p>\n<p>El enrutamiento basado en la fuente deber\u00e1 configurarse cuando reciba paquetes a trav\u00e9s de una puerta de enlace separada, diferente de la que tiene configurada como predeterminada; en consecuencia, los paquetes de respuesta tambi\u00e9n deber\u00e1n salir a trav\u00e9s de esta misma puerta de enlace.<\/p>\n<p><\/p>\n<p>Por ejemplo, tiene la misma subred <code>192.168.1.0\/24<\/code> asignada a sus nodos, pero desea emitir direcciones externas utilizando MetalLB. Supongamos que tiene varias direcciones de la subred <code>1.2.3.0\/24<\/code> ubicadas en la VLAN 100, y desea utilizarlas para acceder a los servicios de Kubernetes desde el exterior.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ajuste del enrutamiento para MetalLB en modo L2\" src=\"\/wp-content\/uploads\/2020\/05\/9360f35c4bfae25b12fc5aab2644b775.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Al hacer una solicitud a <code>1.2.3.4<\/code> realizar\u00e1 solicitudes desde una subred diferente a <code>1.2.3.0\/24<\/code> y esperar\u00e1 una respuesta. El nodo que actualmente es el maestro para la direcci\u00f3n emitida por MetalLB <code>1.2.3.4<\/code>, recibir\u00e1 el paquete del enrutador <code>1.2.3.1<\/code>, pero la respuesta debe salir por el mismo camino, a trav\u00e9s de <code>1.2.3.1<\/code>.<\/p>\n<p><\/p>\n<p>Dado que nuestro nodo ya tiene configurada una puerta de enlace predeterminada <code>192.168.1.1<\/code>, por defecto la respuesta ir\u00e1 a ella, y no a <code>1.2.3.1<\/code>, a trav\u00e9s de la cual recibimos el paquete.<\/p>\n<p><\/p>\n<p>\u00bfC\u00f3mo lidiar con esta situaci\u00f3n?<\/p>\n<p><\/p>\n<p>En este caso, deber\u00e1 preparar todos sus nodos para que est\u00e9n listos para servir direcciones externas sin configuraci\u00f3n adicional. Es decir, para el ejemplo anterior, debe crear un interfaz VLAN de antemano en el nodo:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">ip link add link eth0 name eth0.100 type vlan id 100\nip link set eth0.100 up<\/code><\/pre>\n<p><\/p>\n<p>Y luego agregar rutas:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ip route add 1.2.3.0\/24 dev eth0.100 table 100\nip route add default via 1.2.3.1 table 100<\/code><\/pre>\n<p><\/p>\n<p>Tenga en cuenta que las rutas se agregan en una tabla de enrutamiento separada <code>100<\/code> que solo contendr\u00e1 las dos rutas necesarias para enviar el paquete de respuesta a trav\u00e9s de la puerta de enlace <code>1.2.3.1<\/code>, que est\u00e1 detr\u00e1s de la interfaz <code>eth0.100<\/code>.<\/p>\n<p><\/p>\n<p>Ahora necesitamos agregar una regla simple:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ip rule add from 1.2.3.0\/24 lookup 100<\/code><\/pre>\n<p><\/p>\n<p>que indica expl\u00edcitamente: si la direcci\u00f3n de origen del paquete se encuentra en <code>1.2.3.0\/24<\/code>, se debe utilizar la tabla de enrutamiento <code>100<\/code>. Ya hemos descrito la ruta que lo enviar\u00e1 a trav\u00e9s de <code>1.2.3.1<\/code><\/p>\n<p><\/p>\n<h1 id=\"sluchay-4-kogda-ponadobitsya-policy-based-routing\">Caso 4: Cu\u00e1ndo se necesitar\u00e1 el enrutamiento basado en pol\u00edticas<\/h1>\n<p><\/p>\n<p>La topolog\u00eda de la red es como en el ejemplo anterior, pero supongamos que tambi\u00e9n desea tener la posibilidad de acceder a direcciones externas del pool <code>1.2.3.0\/24<\/code> desde sus pods:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ajuste del enrutamiento para MetalLB en modo L2\" src=\"\/wp-content\/uploads\/2020\/05\/46f1f7c2826d87ec1fe8499862ccdd1a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>La particularidad es que al acceder a cualquier direcci\u00f3n en <code>1.2.3.0\/24<\/code>, el paquete de respuesta, al llegar al nodo y tener la direcci\u00f3n de origen en el rango <code>1.2.3.0\/24<\/code> ser\u00e1 enviado obedientemente a <code>eth0.100<\/code>, pero queremos que Kubernetes lo redirija a nuestro primer pod, que gener\u00f3 la solicitud original.<\/p>\n<p><\/p>\n<p>Resolver este problema result\u00f3 complicado, pero fue posible gracias al enrutamiento basado en pol\u00edticas:<\/p>\n<p><\/p>\n<p>Para una mejor comprensi\u00f3n del proceso, presentar\u00e9 un diagrama de bloques de netfilter:<br \/>\n<img decoding=\"async\" alt=\"Ajuste del enrutamiento para MetalLB en modo L2\" src=\"\/wp-content\/uploads\/2020\/05\/6b2f117c2dcddad85190156d566231c8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Primero, como en el ejemplo anterior, crearemos una tabla de enrutamiento adicional:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ip route add 1.2.3.0\/24 dev eth0.100 table 100\nip route add default via 1.2.3.1 table 100<\/code><\/pre>\n<p><\/p>\n<p>Ahora agregaremos algunas reglas en iptables:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">iptables -t mangle -A PREROUTING -i eth0.100 -j CONNMARK --set-mark 0x100\niptables -t mangle -A PREROUTING  -j CONNMARK --restore-mark\niptables -t mangle -A PREROUTING -m mark ! --mark 0 -j RETURN\niptables -t mangle -A POSTROUTING -j CONNMARK --save-mark<\/code><\/pre>\n<p><\/p>\n<p>Estas reglas marcar\u00e1n las conexiones entrantes en la interfaz <code>eth0.100<\/code>, marcando todos los paquetes con la etiqueta <code>0x100<\/code>, esta misma etiqueta tambi\u00e9n marcar\u00e1 las respuestas en el marco de una conexi\u00f3n.<\/p>\n<p><\/p>\n<p>Ahora podemos agregar una regla de enrutamiento:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">ip rule add from 1.2.3.0\/24 fwmark 0x100 lookup 100<\/code><\/pre>\n<p><\/p>\n<p>Es decir, todos los paquetes con la direcci\u00f3n de origen <code>1.2.3.0\/24<\/code> y la etiqueta <code>0x100<\/code> deben ser enrutados utilizando la tabla <code>100<\/code>.<\/p>\n<p><\/p>\n<p>De este modo, otros paquetes recibidos en otra interfaz no caer\u00e1n bajo esta regla, lo que les permitir\u00e1 ser enrutados con los medios est\u00e1ndar de Kubernetes.<\/p>\n<p><\/p>\n<p>Hay un pero: en Linux existe lo que se llama filtro de ruta inversa, que estropea todo ya que realiza una simple verificaci\u00f3n: para todos los paquetes entrantes cambia la direcci\u00f3n de origen del paquete con la direcci\u00f3n del remitente y verifica si el paquete puede salir por la misma interfaz por la que fue recibido; si no, lo filtra.<\/p>\n<p><\/p>\n<p>El problema es que en nuestro caso funcionar\u00e1 incorrectamente, pero podemos desactivarlo:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">echo 0 &gt; \/proc\/sys\/net\/ipv4\/conf\/all\/rp_filter\necho 0 &gt; \/proc\/sys\/net\/ipv4\/conf\/eth0.100\/rp_filter<\/code><\/pre>\n<p><\/p>\n<p>Nota: el primer comando controla el comportamiento global del rp_filter; si no se desactiva, el segundo comando no tendr\u00e1 ning\u00fan efecto. Sin embargo, las otras interfaces permanecer\u00e1n con el rp_filter activado.<\/p>\n<p><\/p>\n<p>Para no limitar completamente el funcionamiento del filtro, podemos utilizar la implementaci\u00f3n de rp_filter para netfilter. Al usar rpfilter como un m\u00f3dulo de iptables, se pueden configurar reglas bastante flexibles, por ejemplo:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">iptables -t raw -A PREROUTING -i eth0.100 -d 1.2.3.0\/24 -j RETURN\niptables -t raw -A PREROUTING -i eth0.100 -m rpfilter --invert -j DROP<\/code><\/pre>\n<p><\/p>\n<p>activar rp_filter en la interfaz <code>eth0.100<\/code> para todas las direcciones excepto <code>1.2.3.0\/24<\/code>.<\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/501842\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0449\u0430\u0446\u0438\u0438 \u0434\u043b\u044f MetalLB. \u0412\u0441\u0451 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e, \u0442.\u043a. \u043e\u0431\u044b\u0447\u043d\u043e \u0434\u043b\u044f MetalLB \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043d\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0441 \u0432\u0435\u0441\u044c\u043c\u0430 \u043d\u0435\u0445\u0438\u0442\u0440\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0435\u0442\u0438. \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c source-based \u0438 policy-based routing \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430. \u042f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81593","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=\"\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0432\u0435\u0441\u044c\u043c\u0430.\" \/>\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\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2\" \/>\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\u0422\u043e\u043d\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f MetalLB \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 L2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0432\u0435\u0441\u044c\u043c\u0430.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2\" \/>\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-14T23:42:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-14T23:42:36+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\udd47Ajuste fino de la enrutaci\u00f3n para MetalLB en modo L2 | ProHoster","description":"Recientemente me encontr\u00e9 con algo bastante.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2","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\u0422\u043e\u043d\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u043b\u044f MetalLB \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 L2 | ProHoster","og:description":"\u041d\u0435 \u0442\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u044f \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0432\u0435\u0441\u044c\u043c\u0430.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2","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-14T23:42:36+00:00","article:modified_time":"2020-05-14T23:42:36+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81593","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 15:55:42","updated":"2026-02-08 20:23:59","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\/81593","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=81593"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/81593\/revisions"}],"predecessor-version":[{"id":157857,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/81593\/revisions\/157857"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/81594"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=81593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=81593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=81593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}