Internes Routing für Greyworm

Moin,

@Fungur und ich haben uns gerade ein Konzept überlegt, wie wir ohne viel Aufwand das interne Routing auf Greyworm verbessern können, bzw. es so auslegen können, dass es wirklich intern ist. Derzeit fliegen die Pakete, wenn sie zwischen zwei VMs auf Greyworm ausgetauscht werden, durch den Router von Myloc, was zu den Performanceproblemen der letzten Woche geführt hat.

Folgendes Konzept:

  • In VMware einen virtuellen Switch anlegen, der alle untereinander verbindet.
  • In jeder VM ein zugehöriges eth1 anlegen, das eine statische interne IP bekommt, sagen wir 10.1.1.0/24 oder so.
  • Jetzt fügen wir in der Interface-Konfiguration für eth1 in der /etc/network/interfaces eine /32-Route für jede öffentliche IP jeder anderen VM hinzu. Also pro VM sechs Regeln zu den anderen sechs VMs.
  • Durch das spezifische Routing im Linux-Kernel werden dann die öffentlichen IPV4s der anderen VMs durch eth1, den internen Switch, geroutet.

Warum so aufwändig?

Ziel war es, die Ansible-Regeln nicht ändern zu müssen, weil da ausgeklügelte Regeln für die Tunnel-IPs drin stecken. Die auf lokale IPs umzubiegen und zu erkennen, welche VMs auf demselben Blech liegen, wäre zu aufwändig gewesen.

So kann man die GRE-Tunnel zwischen Greyworm-VMs weiterhin mit den öffentlichen IPs aufbauen, ohne dass es extern geroutet werden muss.

Wir würden das gerne mal testen. @kgbvax, hattest du dem ffservice-Account die nötigen Rechte gegeben, so dass wir die Netzwerkkonfiguration der VMs ändern dürfen?

Grüße
Matthias

3 „Gefällt mir“

@kgbvax, der ffservice-Account mit dem Passwort vom 13.12. funktioniert nicht mehr. Hattest du den am Mittwoch deaktiviert?

Wenn man das Passwort mal richtig schreibt, geht es auch. Der ffservice-Account kann aber die notwendigen Netzwerkinterfaces nicht erstellen. Ich sehe unter Berechtigungen, dass du einen „ffroot“ angelegt hast. Könntest du mir dazu das Passwort per Threema oder als verschlüsselte Mail schicken?

Grüße
Matthias

Ich habe gerade mal den internen Switch zwischen Greyworm-06 und Greyworm-07 aktiviert. Wie man dem Traceroute entnehmen kann, geht die Verbindung nun direkt. Die Geschwindigkeit ist, sagen wir mal akzeptabel ;).

root@greyworm-07 ~ # traceroute 89.163.129.14
traceroute to 89.163.129.14 (89.163.129.14), 30 hops max, 60 byte packets
 1  89.163.129.14 (89.163.129.14)  0.054 ms  0.040 ms  0.038 ms
root@greyworm-07 ~ # iperf -c 89.163.129.14
------------------------------------------------------------
Client connecting to 89.163.129.14, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 10.0.0.7 port 36238 connected with 89.163.129.14 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  16.3 GBytes  14.0 Gbits/sec

Leider war auf Greyworm-01 bis 05 der interne Switch nicht aktiviert. Ich habe entsprechende Interfaces hinzugefügt, aber trotz Neustart der VMs, kann ich die nicht nutzen.

@Parad0x, könntest du dir das nochmal ansehen bitte? Greyworm 06 und 07 funktioniert, dort hattest du das konfiguriert. Greyworm 01 bis 05 gehen leider nicht.

Die Konfiguration sieht so aus:

auto eth1
iface eth1 inet static
   address 10.0.0.7
   netmask 255.255.255.240
   post-up ip route add 89.163.247.45/32 dev eth1
   pre-down ip route del 89.163.247.45/32 dev eth1
   post-up ip route add 89.163.247.46/32 dev eth1
   pre-down ip route del 89.163.247.46/32 dev eth1
   post-up ip route add 89.163.253.62/32 dev eth1
   pre-down ip route del 89.163.253.62/32 dev eth1
   post-up ip route add 89.163.253.84/32 dev eth1
   pre-down ip route del 89.163.253.84/32 dev eth1
   post-up ip route add 89.163.139.196/32 dev eth1
   pre-down ip route del 89.163.139.196/32 dev eth1
   post-up ip route add 89.163.129.14/32 dev eth1
   pre-down ip route del 89.163.129.14/32 dev eth1

Grüße
Matthias