Flannel: Routen außerhalb von Flannel Networks und NAT'ing

Erstellt am 2. Nov. 2014  ·  3Kommentare  ·  Quelle: coreos/flannel

Hallo, dies ist ein Request-for-Feature-Problem.

Ich möchte einen Container ausführen, in dem es ein vxLAN-gestütztes Overlay gibt. Aber für Ziele außerhalb des Overlays möchte ich den Container per NAT ausgeben, z. B. ins öffentliche Internet.

Ich sehe drei Möglichkeiten, dies zu tun:

  • Second Network Interface : Verwenden Sie Flannel für das Overlay, aber erstellen Sie dann ein zweites netdev, das dem standardmäßigen Docker-NAT für den Container ähnlicher ist. Dann geht der Verkehr zum Overlay immer noch über Flanell, und eine Standardroute auf dem zweiten Netdev verarbeitet den Internetverkehr.
  • Flannel-Setup-NATs : Eine Konfigurationsoption für Flannel, eine Standardroute für außerhalb des Overlays hinzufügen und beim Verlassen des Overlays ein NAT von Flannel konfigurieren lassen.
  • Erstellen Sie vxLAN-Gateways : Erstellen Sie einen Container oder eine Maschine mit einer Flanell-Schnittstelle und einem anderen Netdev zu NAT (oder so ähnlich). Konfigurieren Sie die Standardroute auf anderen Containern so, dass sie über diese NAT-Instanz gehen.

Gedanken? Ist dies im Geltungsbereich oder außerhalb des Geltungsbereichs für Flanell?

Hilfreichster Kommentar

Es gibt bereits eine Option, die etwas sehr Ähnliches wie 2 macht. Wenn Sie flanneld mit --ip-masq ausführen, fügt es eine IP-Masquerade-Regel für Verkehr hinzu, der aus Containern kommt und ins Internet geht. Genauer gesagt handelt es sich um Datenverkehr, der innerhalb des Overlay-Adressraums entstand, aber außerhalb davon bestimmt war.

Die Option ist nicht dokumentiert (muss behoben werden), da ich darauf gewartet habe, dass Docker meine Hinzufügung von --ip-masq mit dem Docker-Daemon zusammenführt. Dies ermöglicht es, den Docker-Daemon mit --ip-masq=false und flanneld mit --ip-masq auszuführen. Andernfalls installiert Docker auch eine IP-Maskierungsregel für Datenverkehr, der von docker0 kommt.

Docker 1.3, das kürzlich veröffentlicht wurde, hat die Option --ip-masq .

Alle 3 Kommentare

Die zweite Option erscheint vernünftig. Ich habe das Gefühl, dass wir uns auf systemd-networkd stützen können, um diese Netzwerkroute zu konfigurieren, nachdem wir die Flanellbrücke aufgerufen haben.

@eyakunovich hat wahrscheinlich eine Meinung dazu.

Es gibt bereits eine Option, die etwas sehr Ähnliches wie 2 macht. Wenn Sie flanneld mit --ip-masq ausführen, fügt es eine IP-Masquerade-Regel für Verkehr hinzu, der aus Containern kommt und ins Internet geht. Genauer gesagt handelt es sich um Datenverkehr, der innerhalb des Overlay-Adressraums entstand, aber außerhalb davon bestimmt war.

Die Option ist nicht dokumentiert (muss behoben werden), da ich darauf gewartet habe, dass Docker meine Hinzufügung von --ip-masq mit dem Docker-Daemon zusammenführt. Dies ermöglicht es, den Docker-Daemon mit --ip-masq=false und flanneld mit --ip-masq auszuführen. Andernfalls installiert Docker auch eine IP-Maskierungsregel für Datenverkehr, der von docker0 kommt.

Docker 1.3, das kürzlich veröffentlicht wurde, hat die Option --ip-masq .

Danke das funktioniert bei uns!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen