netzwissen.de Server-Landschaft
Server und Dienste werden bei Hetzner und ausgelagert betrieben. Server bei Hetzner laufen virtualisiert über Proxmox PVE in lxc Containern oder als Docker Container in KVM VMs. Ergänzend gibt es Hetzner Cloud Instanzen. Dazu kommt das Hausnetz Urbanstrasse.
Hetzner AG
Primäre Domäne @netzwissen.de, Backup-Domäne @netzwissen.eu
- EX42 #1011951, FSN1-DC8, RZ Falkenstein
- tokoeka.netzwissen.de 138.201.52.41
- PVE single node Setup
- Subnetz ipv4 public 1 an vmbr0: 138.201.52.1/26
- Subnetz ipv4 public 2 an vmbr0: 136.243.85.128/27
- Subnetz ipv4 privat an vmbr1: 10.10.10.1
- Subnetz ipv6: 2a01:4f8:172:d22:: / 64
DNS Rekursive Server
185.12.64.1 185.12.64.2 2a01:4ff:ff00::add:1 2a01:4ff:ff00::add:2
Kosten Server
- Server 39,00 €/mtl. netto, 46,41 € brutto
- BX30 Storage, 1 TB, 7,90 €/mtl. netto, 9,40 € brutto
- Zusatz IPs x 4, 12,12 €/mtl brutto, Setup pro neuer IP einmalig 22,61 €
Netzwerk tokoeka
Auf der physischen eth0 existieren zwei virtual bridges, vmbr0 für das öffentliche Netz und vmbr1 für ein privates Netzsegment, das nur zwischen den Containern/VMs existiert. Bridge vmbr0 arbeitet mit einer großen Netzmaske, um beide von Hetzner zugewiesenen Subnetze zu erlauben.
Physical Interface | IP/route/port | Bridge | Network/Mask | Mask | Gateways | Info |
---|---|---|---|---|---|---|
enp0s31f6 | 138.201.52.41 | vmbr0 | 138.201.52.1/26 | 255.255.255.192 | 138.201.52.1 | public network |
vmbr0 | 136.243.85.128/27 | 255.255.255.224 | 136.243.85.129 | public network | ||
vmbr1 | 10.10.10.1 | 255.255.255.0 | 10.10.10.1 | internal network |
Das interne Netz auf vmbr1 ist nur für Kommunikation zwischen Containern/VMs gedacht. Die interne Bridge arbeitet mit NAT Masquerading, damit interne VMs/Container aktualisiert werden können. Ausgehende Pakete werden per iptables auf die IP des root Servers umgeschrieben und Antwortpakete wieder zurück geroutet (siehe https://pve.proxmox.com/wiki/Network_Configuration#_masquerading_nat_with_tt_span_class_monospaced_iptables_span_tt)
auto vmbr1 \\ iface vmbr1 inet static \\ address 10.10.10.1 \\ netmask 255.255.255.0 \\ bridge-ports none \\ bridge-stp off \\ bridge-fd 0'' post-up iptables -t nat -A POSTROUTING -s '138.201.52.41/26' -o enp0s31f6 -j MASQUERADE \\ post-down iptables -t nat -D POSTROUTING -s '138.201.52.41/26' -o enp0s31f6 -j MASQUERADE **DNS (ipV4 + ipV6)** <code> 213.133.98.98 213.133.99.99 213.133.100.100 2a01:4f8:0:1::add:1010 2a01:4f8:0:1::add:9999 2a01:4f8:0:1::add:9898
Samba
Auf tokoeka läuft ein Samba mit einem Gast Share, um Daten von den Containern/VMs zeivintral weg zu sichern. Der Samba horcht nur auf der internen Schnittstelle (vmbr1, 10.10.10.1) und ist von allen Containern, die "privileged" sind, beschreibbar:
smbclient -U smbguest //10.10.10.1/guests
mit put werden Dateien hochkopiert
Port Weiterleitungen von außen
Für Admin Zwecke gibt es Port Weiterleitungen, die vom Host ausgehen:
* tokoeka.netzwissen.de:8442 nach 10.10.10.16:22 - ssh auf Datenbank Container db1 (mariadb) * tokoeka.netzwissen.de:8452 nach 10.10.10.18:22 - ssh auf Datenbank Container db2 (postgresql) * tokoeka.netzwissen.de:8422 nach 10.10.10.17:22 - ssh auf UCS VM IDP * tokoeka.netzwissen.de:8443 nach 10.10.10.17:443 - https auf UCS VM IDP * tokoeka.netzwissen.de:8462 nach 10.10.10.15:22 - ssh auf Mail Container mail3
## Port forwarding from host
# db1: ssh port forwarding from proxmox host to db1 container
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8442 -j DNAT --to-destination 10.10.10.16:22
post-up iptables -t nat -A POSTROUTING -p tcp --sport 22 -s 10.10.10.16 -j SNAT --to-source 138.201.52.41:8442
# db2: ssh port forwarding from proxmox host to db2 container
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8452 -j DNAT --to-destination 10.10.10.18:22
post-up iptables -t nat -A POSTROUTING -p tcp --sport 22 -s 10.10.10.18 -j SNAT --to-source 138.201.52.41:8452
# idp4: ssh port forwarding from proxmox host to idp server
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8422 -j DNAT --to-destination 10.10.10.17:22
post-up iptables -t nat -A POSTROUTING -p tcp --sport 22 -s 10.10.10.17 -j SNAT --to-source 138.201.52.41:8422
# idp4: http port forwarding from proxmox host to idp server
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8443 -j DNAT --to-destination 10.10.10.17:443
post-up iptables -t nat -A POSTROUTING -p tcp --sport 443 -s 10.10.10.17 -j SNAT --to-source 138.201.52.41:8443
# mail3: ssh port forwarding from proxmox host to mail3 container
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8462 -j DNAT --to-destination 10.10.10.15:22
post-up iptables -t nat -A POSTROUTING -p tcp --sport 22 -s 10.10.10.15 -j SNAT --to-source 138.201.52.41:8462
PVE: Masquerading von intern
Damit VMs, die nur eine interne 10.x Adresse haben, auch raus können, gibt es masquerading Regeln: https://pve.proxmox.com/wiki/Network_Configuration#_masquerading_nat_with_tt_span_class_monospaced_iptables_span_tt
# internal private network with NAT masquerading to allow internet access from "private only" VMs # https://pve.proxmox.com/wiki/Network_Configuration post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o enp0s31f6 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o enp0s31f6 -j MASQUERADE
IP Adressen
<WRAP center round box 60%>
Externe IPs
Subdomains/Domains werden über DNS cname nach HAPROXY zentralisiert und auf App Server Backends weitergeleitet. Hetzner forciert den Wechsel auf IPv6. Bei Bedarf wird für einmalig 15 € ein zusätzliches IPv6 /56 Netz angelegt.
- 138.201.52.41 tokoeka.netzwissen.de PVE
- 138.201.52.38 devel.netzwissen.de HAPROXY SSL Accelerator/Load Balancer
- 136.243.85.153 mail.netzwissen.de smtp/imap
- 136.243.85.155 gitea.netzwissen.de GITEA
- 138.201.52.53 tmp.netzwissen.de temporäre VM
136.243.85.156 old.netzwissen.de gekündigt 28.5.22138.201.52.27 mail.netzwissen.de Mail Server ALT(kvm) gekündigt 28.5.22
"Temporäre IP" wird für eine VM benutzt.
- 138.201.52.53, Gateway 138.201.52.1
- Externer A Record tmp.netzwissen.de
</WRAP>
<WRAP center round box 60%>
Interne IPs
HAPROXY empfängt externe Requests auf vmbr0 und leitet auf interne IPs und Ports weiter (vmbr1). Applikations-Server haben nur eine interne Schnittstelle (vmbr1).
- 102 idp5 10.10.10.17
- 108 kc1 10.10.10.20
- 112 lb1 10.10.10.21
- 111 app1 10.10.10.22
- 113 app2 10.10.10.25
- 121 app3 10.10.10.26
- 117 app4 10.10.10.27
- 118 app5 10.10.10.28
- 118 app6 10.10.10.30
- 114 mail 10.10.10.24
- 115 doc1 10.10.10.23
- 119 gitea1 10.10.10.29
- 123 db1b 10.10.10.16
- 124 db2b 10.10.10.18
</WRAP>
Cloud Server Helsinki
- CX11 # 12757836 (1 vcpi, 2 GB RAM, 20 GB Disk)
- cloud3.netzwissen.de
- IPv4 95.217.188.165
- IPv6 2a01:4f9:c011:28bc::/64
Kosten
- Server 2,96 €/mtl. brutto (Neuanlage ab 1.9.21 4,15 €/mtl.)
- zusätzliche Floating IP ab 1.8.21, 3,57 €/mtl. brutto
Ausgelagertes
URL | IP | Service |
---|---|---|
meet.netzwissen.de | 5.1.71.69 | SAAS Mars Services Göppingen |
zammad.netzwissen.de | 138.201.252.143 | SAAS zammad.com |