Netz
Edge-Grundsatz
Zielgruppe: Anwender und Betreuer · Stand: 06.11.2026
Der Edge ist das Eingangstor für Menschen. Oberflächen und Dashboards bekommen dort einen eigenen Hostnamen. Maschinen sprechen intern miteinander und nie über den Edge.
Regeln
- Für Menschen über den Edge: Web-Oberflächen (z. B. Traefik-Dashboard, Nomad-UI, Grafana, Graylog) bekommen einen Hostnamen unter der passenden Wildcard (Lab:
*.lab.bre1.dexpro.services) und einen Router am Edge-Traefik. - Keine Umwege: keine SSH-Tunnel, keine Port-Forwards, keine ungeschützten Admin-Ports.
- Maschinen intern: Dienste untereinander (z. B. Backup-Jobs zur Nomad-API, Consul zu Nomad) nutzen interne Namen wie
*.service.consulund nie Edge-Hostnamen. - Nie über den Edge: interne Jobs, APIs für Maschinen und OpenBao.
Ein interner Dienst, der über den Edge erreichbar ist, ist von außen angreifbar. Im Zweifel bleibt ein Dienst intern.
Vorgehen: Oberfläche veröffentlichen
- Hostnamen unter der Wildcard der Umgebung wählen.
- Bei Diensten in Nomad oder Consul: Route über Tags im Consul-Katalog definieren. Der Edge übernimmt sie automatisch. Wie das geht, steht in Router per Consul-Tags definieren. Ob der Weg direkt oder über den internen Ingress läuft, erklärt Dienst veröffentlichen: Edge oder interner Ingress.
- Prüfen, dass die Oberfläche eine Anmeldung hat. Der Edge ersetzt keine Authentifizierung.
Stolperfallen
- Admin-APIs von Traefik lauschen nur lokal (
127.0.0.1:8080). Das Dashboard läuft über einen eigenen Router. - Datenbank-Verbindungen über Edge-TCP-Entrypoints sind nur intern. Die Datenbank sieht dabei die IP des Edges, nicht die des Clients. Grants mit Host-Beschränkung müssen das berücksichtigen.
Weiterführend
- Dienst veröffentlichen: Edge oder interner Ingress
- Buch Traefik: Router per Consul-Tags definieren
- Firewall-Freigaben anfragen
- Buch OpenBao: Erreichbarkeit
Firewall-Freigaben anfragen
Zielgruppe: Anwender · Stand: 06.11.2026
Zwischen den Netzen (z. B. von den GitLab-Runnern zu Diensten im Lab) filtert eine Firewall. Fehlt eine Freigabe, scheitern Pipelines oder Dienste mit Timeouts. So bekommst du eine Freigabe.
Vorgehen
- Verbindung genau beschreiben: Quelle (Host bzw. Gruppe, z. B. „GitLab-Runner“), Ziel (Hostname), Port und Protokoll (TCP/UDP), Zweck.
- Nur das Nötigste anfragen: einzelne Ports, keine Bereiche „zur Sicherheit“.
- Die Freigabe beim Netzteam bzw. den Betreuern beantragen. Firewall-Regeln setzen nur sie.
- Nach der Freigabe die Verbindung testen.
Prüfen
nc -vz <ziel-hostname> <port>
„succeeded“ bzw. „open“ heißt: Die Freigabe wirkt.
Stolperfallen
- Interne Cluster-Ports (z. B. Raft-, Gossip- oder RPC-Ports zwischen Knoten) werden nie für andere Netze freigegeben.
- Ein Timeout spricht für eine fehlende Freigabe, ein „connection refused“ für einen Dienst, der nicht lauscht.
Weiterführend
Dienst veröffentlichen: Edge oder interner Ingress
Zielgruppe: Anwender und Betreuer · Stand: 06.11.2026
Du willst einen Dienst erreichbar machen und fragst Dich, ob das über den Edge oder den internen Ingress läuft. Diese Seite erklärt den Unterschied und zeigt die Wege. Wie Du Tags und Router konkret schreibst, steht in den Büchern Traefik und Consul.
Erst klären: Wer greift zu?
- Ein Mensch im Browser (Oberfläche, Dashboard): Der Dienst bekommt einen Hostnamen am Edge. Siehe Edge-Grundsatz.
- Ein anderer Dienst (API, Job, Datenbank-Client): Der Dienst bleibt intern. Er wird über interne Namen wie
<dienst>.service.consuloder über Connect-Upstreams im Service Mesh erreicht, nie über einen Edge-Hostnamen.
Edge und interner Ingress
| Edge | Interner Ingress | |
|---|---|---|
| Was | Traefik-Paar auf eigenen VMs mit VIPs | Traefik als Nomad-Job im Cluster |
| Aufgabe | Eingangstor: Hostnamen, Zertifikate, Allowlists, öffentliche Entrypoints | verteilt Anfragen im Cluster weiter an Dienste im Mesh |
| Erreichbar | über die VIPs der Umgebung (intern bzw. öffentlich) | nur vom Edge, über Consul Connect (mTLS), ohne feste Ports 80/443 |
| Routen kommen aus | Tags im Consul-Katalog und Dateien der Rolle traefik |
der Konfiguration im Nomad-Job des Ingress |
| Zertifikate | Let's Encrypt am Edge | keine eigenen, die TLS-Verbindung endet am Edge |
Wichtig: Der interne Ingress ist kein zweiter Eingang. Jede Anfrage von Menschen kommt zuerst am Edge an.
Die Wege für einen Dienst
A: Dienst auf einer VM. Der Dienst registriert sich im Consul-Katalog mit Traefik-Tags, der Edge routet direkt dorthin.
Browser → Edge → Dienst
B: Nomad-Dienst direkt vom Edge. Der Dienst hängt im Mesh und trägt traefik.consulcatalog.connect=true. Der Edge spricht ihn per Connect an. Ein Beispiel ist Grafana im Lab.
Browser → Edge → Connect → Dienst
C: Nomad-Dienst über den internen Ingress. Der Ingress trägt die Tags für den Edge und leitet per Connect-Upstream an den Dienst weiter. Ein Beispiel ist der Demo-Dienst im Namespace cpi im Lab.
Browser → Edge → Connect → interner Ingress → Connect → Dienst
Welchen Weg Dein Nomad-Dienst nimmt (B oder C), stimmst Du mit den Betreuern ab.
Vorgehen
- Klären, ob ein Mensch oder ein Dienst zugreift (siehe oben). Für Dienste ist hier Schluss: Sie bleiben intern.
- Hostnamen unter der Wildcard der Umgebung wählen. Lab-PoC:
*.lab.bre1.dexpro.services. - Dienst im Consul-Katalog registrieren: Dienst im Consul-Katalog registrieren.
- Router-Tags setzen, bei Weg C am Ingress statt am Dienst: Router per Consul-Tags definieren.
- Bei Weg B und C die Intentions bei den Betreuern anfragen: Edge → Dienst bzw. Edge → Ingress und Ingress → Dienst.
- Prüfen, dass die Oberfläche eine eigene Anmeldung hat.
Stolperfallen
Öffentlich (Entrypoint public) ist ein Dienst nur nach Absprache mit den Betreuern. Ein interner Dienst, der über den Edge erreichbar ist, ist angreifbar.
- Edge-Hostname für Maschinen: Dienste, die einen anderen Dienst über dessen Edge-Hostnamen ansprechen, hängen unnötig am Edge und an dessen Allowlists. Nimm interne Namen.
- Fehlende Intention: Im Mesh gilt Default-Deny. Ohne Intention kommt keine Anfrage durch, auch nicht vom Edge.
Weiterführend
- Edge-Grundsatz
- Router per Consul-Tags definieren
- So liest der Edge den Consul-Katalog
- Beispiele in GitLab:
container-platform-core-services/nomad-jobs/pilot-grafana(Weg B),container-platform-core-services/nomad-jobs/traefik-ingress(Weg C)