Ich habe docker-1.9.1
läuft auf einer QNAP RAID-Maschine. Es hat das Standardnetzwerk bridge
, das das Subnetz 10.0.3.0/24
verwendet. In iptables sehe ich eine Regel in der nat
Tabelle:Automatisiert Docker IP Masquerading-Regeln in iptables für Brückennetzwerke?
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
Ich gehe davon aus, dass Docker diese Regel selbst geschaffen.
Ich habe eine neue Brücke Netzwerk erstellt:
docker network create \
--gateway=10.0.5.1 \
--subnet=10.0.5.0/24 \
-o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" \
-o "com.docker.network.bridge.enable_icc"="true" \
-o "com.docker.network.driver.mtu"="1500" \
-o "com.docker.network.bridge.name"="lxcbr1" \
-o "com.docker.network.bridge.enable_ip_masquerade"="true" \
isolated_nw
Dies ist nicht eine Regel in iptables schafft. Habe ich einen Schritt verpasst?
Hier ist die vollständigen Setup-Befehle und Ergebnisse, Kopieren @larsks' Beispiel:
[/share/Containers] # docker --version
Docker version 1.9.1, build 147ce3e
[/share/Containers] # iptables -t nat -S | grep 10.0.5.0
[/share/Containers] # docker network create \
> --gateway=10.0.5.1 \
> --subnet=10.0.5.0/24 \
> -o "com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" \
> -o "com.docker.network.bridge.enable_icc"="true" \
> -o "com.docker.network.driver.mtu"="1500" \
> -o "com.docker.network.bridge.name"="lxcbr1" \
> -o "com.docker.network.bridge.enable_ip_masquerade"="true" \
> isolated_nw
a7b5c938008169f32fcdfc1d9409716b725cc916b30f472ac6ec2a1d71fb77f0
[/share/Containers] # iptables -t nat -S | grep 10.0.5.0
[/share/Containers] # iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
[/share/Containers] #
Kennen Sie Ihr eigenes Bridge-Netzwerk unter https://docs.docker.com/engine/userguide/containers/networkingcontainers/? –
Ich habe Beispiele auf dieser Seite verwendet, um mein eigenes Netzwerk zu erstellen. Sieht nicht so aus, als ob es ip masquerade oder iptables abdeckt. –
Es ... tut tatsächlich. Sie können die tatsächliche Reihenfolge der Befehle sehen, die ich in meiner Antwort ausgeführt habe. Oder Sie können dies beobachten, was eine tatsächliche Sitzung von mir ist, die die gleichen Tests ausführt: https://asciina.org/a/9ipp0n6izkcb3iqk2tdgmpx1i – larsks