Hallo,
ich habe hier einen UCS 4.4-1 errata223 DC Master Server und bin mit docker-compose über das Problem gestolpert, dass iptables irgendwann kaputt sind. Wahrscheinlich betrifft das auch die Guacamole App (siehe Guacamole Network Bridge Problem - Bypass Solution).
Ich habe folgendes docker-compose.yml:
version: '2'
services:
acmedns:
build:
context: .
dockerfile: Dockerfile
image: joohoi/acme-dns:latest
restart: always
ports:
- "1153:53"
- "1153:53/udp"
- "8053:80"
volumes:
- ./config:/etc/acme-dns:ro
- ./data:/var/lib/acme-dns
Nach dem Befehl
docker-compose up -d
sehen die iptables noch OK aus:
iptables -t nat -L DOCKER -v
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- br-55b2b36a614b any anywhere anywhere
81 5095 RETURN all -- docker0 any anywhere anywhere
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40004 to::8080
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40002 to:172.17.0.1:80
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40001 to:172.17.0.2:443
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40000 to:172.17.0.2:80
0 0 DNAT tcp -- !br-55b2b36a614b any anywhere anywhere tcp dpt:8053 to:172.19.0.2:80
0 0 DNAT tcp -- !br-55b2b36a614b any anywhere anywhere tcp dpt:1153 to:172.19.0.2:53
0 0 DNAT udp -- !br-55b2b36a614b any anywhere anywhere udp dpt:1153 to:172.19.0.2:53
Der Container acmedns_acmedns_1 läuft korrekt mit der IP-Adresse 172.19.0.2 und die Portforwardings stimmen.
Ab irgendeinem Zeitpunkt (ich konnte bisher noch keinen Trigger dafür bestimmen) sehen die iptables folgendermaßen aus:
iptables -t nat -L DOCKER -v
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
24 1495 RETURN all -- docker0 any anywhere anywhere
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:1880 to::1880
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:1153 to::53
0 0 DNAT udp -- !docker0 any anywhere anywhere udp dpt:1153 to::53
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:8053 to::80
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40004 to::8080
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40002 to:172.17.0.1:80
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40001 to:172.17.0.2:443
0 0 DNAT tcp -- !docker0 any anywhere anywhere tcp dpt:40000 to:172.17.0.2:80
Der UDP-Port 1153 wird nicht mehr auf Port 53 des Docker-Containers umgebogen, sondern allgemein auf den Port 53 des Hostsystems. Das ist in diesem Fall natürlich fatal.
Die Guacamole-App habe ich auch installiert. Ich nutze sie nur derzeit nicht, weshalb mir auch eine eventuelle Fehlfunktion aktuell nicht auffällt. Aber der Port 40004 ist auch nicht mehr sauber in den Docker-Container weitergeleitet.
Noch eine Ausgabe von “docker ps -a”:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c3eecae92ba palstek/node-red "node-red --userDi..." 8 days ago Up 29 seconds 0.0.0.0:1880->1880/tcp nodered_node-red_1
5998c8aca09f joohoi/acme-dns:latest "./acme-dns" 10 days ago Up 28 seconds 443/tcp, 0.0.0.0:1153->53/tcp, 0.0.0.0:1153->53/udp, 0.0.0.0:8053->80/tcp acmedns_acmedns_1
2807dbb019f0 docker.software-univention.de/nextcloud:15.0.8-0 "/bin/sh -c /usr/s..." 2 months ago Up 21 seconds 0.0.0.0:40002->80/tcp gifted_fermi
950505f0cc9a docker.software-univention.de/guacamole-guacamole:0.9.13-univention13 "/opt/guacamole/bi..." 5 months ago Up 29 seconds 0.0.0.0:40004->8080/tcp guacamole_guacamole_1
fc21fef849d2 docker.software-univention.de/guacamole-guacd:0.9.13-univention13 "/usr/local/sbin/g..." 5 months ago Up 29 seconds 4822/tcp guacamole_guacd_1
688d267f9c99 docker.software-univention.de/ucs-appbox-amd64:4.3-0 "/sbin/init" 13 months ago Up 20 seconds 0.0.0.0:40000->80/tcp, 0.0.0.0:40001->443/tcp friendly_dijkstra
Reboots helfen nicht. Danach sehen die iptables genauso kaputt aus. Wenn ich den betreffenden Docker-Container mit “docker-compose down” lösche, muss ich die betreffenden iptables-Rules händisch löschen. Im Netz habe ich leider keine weiterhelfenden Hinweise finden können.
Wann plant Univention docker/docker-compose auf aktuellere Versionsstände zu aktualisieren? Diese sind mittlerweile doch schon etwas in die Jahre gekommen.
Viele Grüße,
Daniel