{"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\/de\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2","title":{"rendered":"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.\" src=\"\/wp-content\/uploads\/2020\/05\/d03a56702a85f4c8c80a6cac3e489980.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nK\u00fcrzlich stand ich vor einer ziemlich untypischen Aufgabe, als es darum ging, das Routing f\u00fcr MetalLB zu konfigurieren. Normalerweise sind f\u00fcr MetalLB keine besonderen Ma\u00dfnahmen erforderlich, aber in unserem Fall haben wir einen recht gro\u00dfen Cluster mit einer relativ einfachen Netzwerk-Konfiguration.<\/p>\n<p><\/p>\n<p>In diesem Artikel erkl\u00e4re ich, wie man source-basiertes und policy-basiertes Routing f\u00fcr das externe Netzwerk Ihres Clusters einrichtet.<\/p>\n<p><\/p>\n<p>Ich werde nicht ausf\u00fchrlich auf die Installation und Einrichtung von MetalLB eingehen, da ich davon ausgehe, dass Sie bereits \u00fcber einige Erfahrungen verf\u00fcgen. Lassen Sie uns direkt zur Sache kommen, n\u00e4mlich zur Einrichtung des Routings. Wir haben also vier F\u00e4lle:<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"sluchay-1-kogda-nastroyka-ne-trebuetsya\">Fall 1: Wenn keine Einrichtung erforderlich ist<\/h1>\n<p><\/p>\n<p>Lassen Sie uns einen einfachen Fall betrachten.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.\" src=\"\/wp-content\/uploads\/2020\/05\/f79cc1169741b899c95e76d5d4cf60fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zus\u00e4tzliche Routing-Einstellungen sind nicht erforderlich, wenn die von MetalLB vergebenen Adressen im gleichen Subnetz liegen wie die Adressen Ihrer Knoten.<\/p>\n<p><\/p>\n<p>Nehmen wir an, Sie haben ein Subnetz <code>192.168.1.0\/24<\/code>, in dem sich ein Router befindet <code>192.168.1.1<\/code>, und Ihre Knoten erhalten Adressen: <code>192.168.1.10-30<\/code>, dann k\u00f6nnen Sie f\u00fcr MetalLB den Bereich <code>192.168.1.100-120<\/code> einstellen und sicher sein, dass sie ohne zus\u00e4tzliche Einstellungen funktionieren.<\/p>\n<p><\/p>\n<p>Warum ist das so? Weil Ihre Knoten bereits konfigurierte Routen haben:<\/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>Und Adressen aus demselben Bereich werden ohne zus\u00e4tzliche Schritte wiederverwendet.<\/p>\n<p><\/p>\n<h1 id=\"sluchay-2-kogda-trebuetsya-dopolnitelnaya-nastroyka\">Fall 2: Wenn zus\u00e4tzliche Konfiguration erforderlich ist<\/h1>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.\" src=\"\/wp-content\/uploads\/2020\/05\/02392fbc3c16bdf52f0c5ddaf5688e7d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sie sollten zus\u00e4tzliche Routen konfigurieren, jedes Mal, wenn Ihre Knoten keine eingerichtet haben <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/lir\/ipv4\/\"   title=\"IP-Adressen\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"666\">IP-Adressen<\/a> oder eine Route im Subnetz, f\u00fcr das MetalLB Adressen vergibt.<\/p>\n<p><\/p>\n<p>Ich erkl\u00e4re es etwas ausf\u00fchrlicher. Jedes Mal, wenn MetalLB eine Adresse vergibt, kann dies mit einer einfachen Zuweisung verglichen werden:<\/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>Beachten Sie:<\/p>\n<p><\/p>\n<ul>\n<li><strong>a)<\/strong> Die Adresse wird mit einem Pr\u00e4fix zugewiesen, <code>\/32<\/code> das hei\u00dft, eine Route im Subnetz wird nicht automatisch hinzugef\u00fcgt (es ist einfach eine Adresse).<\/li>\n<li><strong>b)<\/strong> Die Adresse wird an ein beliebiges Interface des Knotens (z. B. Loopback) angeh\u00e4ngt. Hier ist es erw\u00e4hnenswert, dass das Verhalten des Linux-Netzwerkstacks wichtig ist. Es spielt keine Rolle, an welchem Interface Sie die Adresse hinzuf\u00fcgen; der Kernel bearbeitet immer ARP-Anfragen und sendet ARP-Antworten an jedes davon. Dieses Verhalten gilt als korrekt und wird zudem recht h\u00e4ufig in dynamischen Umgebungen wie Kubernetes verwendet.<\/li>\n<\/ul>\n<p><\/p>\n<p>Dieses Verhalten kann konfiguriert werden, indem man zum Beispiel strikt ARP aktiviert:<\/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>In diesem Fall werden ARP-Antworten nur dann gesendet, wenn die Schnittstelle ausdr\u00fccklich eine bestimmte IP-Adresse enth\u00e4lt. Diese Einstellung ist erforderlich, wenn Sie planen, MetalLB zu verwenden und Ihr kube-proxy im IPVS-Modus l\u00e4uft.<\/p>\n<p><\/p>\n<p>Dennoch nutzt MetalLB den Kernel nicht zur Verarbeitung von ARP-Anfragen, sondern erledigt dies selbst im User-Space, sodass diese Option keinen Einfluss auf die Funktionsweise von MetalLB hat.<\/p>\n<p><\/p>\n<p>Kehren wir zu unserer Aufgabe zur\u00fcck. Wenn es f\u00fcr die ausgegebenen Adressen auf Ihren Knoten keine Route gibt, f\u00fcgen Sie diese im Voraus f\u00fcr alle Knoten hinzu:<\/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\">Fall 3: Wenn source-based Routing ben\u00f6tigt wird<\/h1>\n<p><\/p>\n<p>Source-based Routing m\u00fcssen Sie dann einrichten, wenn Sie Pakete \u00fcber ein separates Gateway erhalten, das nicht als Standard konfiguriert ist. Entsprechend sollten auch die Antwortpakete \u00fcber dieses Gateway gesendet werden.<\/p>\n<p><\/p>\n<p>Zum Beispiel haben Sie dasselbe Subnetz <code>192.168.1.0\/24<\/code> das f\u00fcr Ihre Knoten reserviert ist, aber Sie m\u00f6chten externe Adressen mithilfe von MetalLB ausgeben. Angenommen, Sie haben mehrere Adressen aus dem Subnetz <code>1.2.3.0\/24<\/code> die sich in VLAN 100 befinden, und Sie m\u00f6chten diese nutzen, um auf Kubernetes-Dienste von au\u00dfen zuzugreifen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.\" src=\"\/wp-content\/uploads\/2020\/05\/9360f35c4bfae25b12fc5aab2644b775.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Bei Zugriff auf <code>1.2.3.4<\/code> werden Sie Anfragen aus einem anderen Subnetz senden als <code>1.2.3.0\/24<\/code> und auf eine Antwort warten. Der Knoten, der derzeit der Master f\u00fcr die zugewiesene MetalLB-Adresse ist <code>1.2.3.4<\/code>, erh\u00e4lt das Paket vom Router <code>1.2.3.1<\/code>, aber die Antwort muss unbedingt denselben Weg gehen, \u00fcber <code>1.2.3.1<\/code>.<\/p>\n<p><\/p>\n<p>Da unser Knoten bereits ein konfiguriertes Standard-Gateway hat <code>192.168.1.1<\/code>, wird die Antwort standardm\u00e4\u00dfig zu ihm geleitet, und nicht zu <code>1.2.3.1<\/code>, \u00fcber den wir das Paket erhalten haben.<\/p>\n<p><\/p>\n<p>Wie gehen wir mit dieser Situation um?<\/p>\n<p><\/p>\n<p>In diesem Fall m\u00fcssen Sie alle Ihre Knoten so vorbereiten, dass sie in der Lage sind, externe Adressen ohne zus\u00e4tzliche Konfiguration zu bedienen. Das hei\u00dft, f\u00fcr das obige Beispiel m\u00fcssen Sie im Voraus ein VLAN-Interface am Knoten erstellen:<\/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>Und dann Routen hinzuf\u00fcgen:<\/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>Beachten Sie, dass wir die Routen in eine separate Routing-Tabelle hinzuf\u00fcgen <code>100<\/code> sie wird nur zwei Routen enthalten, die f\u00fcr die Versendung des Antwortpakets \u00fcber das Gateway erforderlich sind <code>1.2.3.1<\/code>, das sich hinter dem Interface befindet <code>eth0.100<\/code>.<\/p>\n<p><\/p>\n<p>Jetzt m\u00fcssen wir eine einfache Regel hinzuf\u00fcgen:<\/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>die klar besagt: Wenn die Quelladresse des Pakets sich in <code>1.2.3.0\/24<\/code>, dann muss die Routing-Tabelle verwendet werden <code>100<\/code>. Darin haben wir bereits die Route beschrieben, die sie \u00fcber sendet. <code>1.2.3.1<\/code><\/p>\n<p><\/p>\n<h1 id=\"sluchay-4-kogda-ponadobitsya-policy-based-routing\">Fall 4: Wenn policy-basiertes Routing ben\u00f6tigt wird.<\/h1>\n<p><\/p>\n<p>Die Netzwerktopologie ist wie im vorherigen Beispiel, aber nehmen wir an, Sie m\u00f6chten auch die M\u00f6glichkeit haben, auf externe Adressen des Pools zuzugreifen. <code>1.2.3.0\/24<\/code> von Ihren Pods:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.\" src=\"\/wp-content\/uploads\/2020\/05\/46f1f7c2826d87ec1fe8499862ccdd1a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das Besondere ist, dass beim Zugriff auf jede Adresse in <code>1.2.3.0\/24<\/code>, das Antwortpaket, das an den Knoten gelangt und die Quelladresse im Bereich hat, <code>1.2.3.0\/24<\/code> gehorsam an gesendet wird <code>eth0.100<\/code>, aber wir m\u00f6chten, dass Kubernetes es an unseren ersten Pod umleitet, der die urspr\u00fcngliche Anfrage generiert hat.<\/p>\n<p><\/p>\n<p>Diese Herausforderung war nicht einfach zu l\u00f6sen, aber es wurde dank policy-basiertem Routing m\u00f6glich:<\/p>\n<p><\/p>\n<p>Um den Prozess besser zu verstehen, f\u00fchre ich das Blockdiagramm von netfilter an:<br \/>\n<img decoding=\"async\" alt=\"Feineinstellung der Routing-Konfiguration f\u00fcr MetalLB im L2-Modus.\" src=\"\/wp-content\/uploads\/2020\/05\/6b2f117c2dcddad85190156d566231c8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zun\u00e4chst, wie im vorherigen Beispiel, erstellen wir eine zus\u00e4tzliche Routingtabelle:<\/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>Jetzt f\u00fcgen wir einige Regeln in iptables hinzu:<\/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>Diese Regeln werden eingehende Verbindungen am Interface markieren <code>eth0.100<\/code>, wobei alle Pakete mit einem Tag versehen werden, <code>0x100<\/code>, auch die Antworten innerhalb einer Verbindung werden mit demselben Tag markiert.<\/p>\n<p><\/p>\n<p>Jetzt k\u00f6nnen wir eine Routing-Regel hinzuf\u00fcgen:<\/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>Das hei\u00dft, alle Pakete mit der Quelladresse <code>1.2.3.0\/24<\/code> und dem Tag <code>0x100<\/code> sollen unter Verwendung der Tabelle geleitet werden. <code>100<\/code>.<\/p>\n<p><\/p>\n<p>So fallen andere Pakete, die \u00fcber eine andere Schnittstelle empfangen werden, nicht unter diese Regel, was es ihnen erm\u00f6glicht, mit den Standardmethoden von Kubernetes weitergeleitet zu werden.<\/p>\n<p><\/p>\n<p>Es gibt jedoch noch etwas: In Linux gibt es den sogenannten Reverse-Pfadfilter, der die gesamte Sache ruiniert, indem er eine einfache \u00dcberpr\u00fcfung durchf\u00fchrt: F\u00fcr alle eingehenden Pakete \u00e4ndert er die Quelladresse des Pakets mit der Adresse des Absenders und \u00fcberpr\u00fcft, ob das Paket durch dasselbe Interface gesendet werden kann, \u00fcber das es empfangen wurde. Wenn nicht, wird es herausgefiltert.<\/p>\n<p><\/p>\n<p>Das Problem ist, dass er in unserem Fall nicht korrekt funktioniert, aber wir k\u00f6nnen ihn deaktivieren:<\/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>Bitte beachten Sie, dass der erste Befehl das globale Verhalten des rp_filter steuert. Wenn er nicht deaktiviert wird, hat der zweite Befehl keine Wirkung. Dennoch bleiben die anderen Schnittstellen mit aktivem rp_filter.<\/p>\n<p><\/p>\n<p>Um die Filterarbeit nicht vollst\u00e4ndig zu beschr\u00e4nken, k\u00f6nnen wir die Implementierung von rp_filter f\u00fcr Netfilter nutzen. Mit rpfilter als iptables-Modul k\u00f6nnen wir recht flexible Regeln festlegen, zum Beispiel:<\/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>aktiviere rp_filter an der Schnittstelle <code>eth0.100<\/code> f\u00fcr alle Adressen au\u00dfer <code>1.2.3.0\/24<\/code>.<\/p>\n<p>Quelle: <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 4.9.10 - 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 \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\" \/>\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\/de\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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 \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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/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\udd47Feineinstellung des Routings f\u00fcr MetalLB im L2-Modus | ProHoster","description":"K\u00fcrzlich stie\u00df ich auf eine ziemlich unkonventionelle Herausforderung bei der Einrichtung des Routings f\u00fcr MetalLB. An sich w\u00e4re das kein Problem, da normalerweise keine zus\u00e4tzlichen Ma\u00dfnahmen f\u00fcr MetalLB erforderlich sind, aber in unserem Fall haben wir ein recht gro\u00dfes Cluster mit einer nicht allzu komplizierten Netzwerkkonfiguration. In diesem Artikel werde ich erkl\u00e4ren, wie man source-based und policy-based Routing f\u00fcr das externe Netzwerk Ihres Clusters einrichtet. Ich","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/tonkaya-nastrojka-marshrutizaczii-dlya-metallb-v-rezhime-l2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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 \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","og:url":"https:\/\/prohoster.info\/de\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/81593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=81593"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/81593\/revisions"}],"predecessor-version":[{"id":157857,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/81593\/revisions\/157857"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/81594"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=81593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=81593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=81593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}