Zum Hauptinhalt springen

Netzwerkkonfiguration

Das Gateway ist so konzipiert, dass das PLC-Netz und das WAN mit 2 NICs physisch getrennt werden. Dies entspricht der Standardkonfiguration von Appliances / Industrie-PCs.

NIC-Rolle (2026.05+)
  • LAN1 = PLC (eth1 / enp1s0 etc.) — Einzelne PLC oder mehrere PLCs hinter einem Switch
  • LAN2 = WAN (eth2 / enp2s0 etc.) — Internet / Platform / OTA
  • wlan0 / wwan0 / tun0 / usb0 — WiFi / GSM / VPN / Management USB-Ethernet

Das Mapping der NIC-Namen kann für jedes Gerät in /etc/kopens/app.properties über edge.net.lan1.iface angepasst und bei der Installation per env überschrieben werden. Dies dient ausschließlich der Anzeige auf der Monitoring-Karte; für die eigentliche IP-Konfiguration ist der OS NetworkManager / netplan zuständig. install.sh bietet optional die statische IP-Konfiguration via nmcli an.

🔴 Die Namen in den Konfigurationsdateien unterscheiden sich von den Namen der Installations-envs. Die Konfigurationsdatei ist lan1, das Installations-env ist NET1 — wird LAN1_IFACE verwendet, passiert nichts und die Standardwerte bleiben bestehen.

app.properties Schlüsselenv bei InstallationStandardwert
edge.net.lan1.ifaceNET1_IFACEenp1s0
edge.net.lan2.ifaceNET2_IFACEenp2s0
edge.net.wifi.ifaceWIFI_IFACEwlan0
edge.net.gsm.ifaceGSM_IFACEwwan0
edge.net.vpn.ifaceVPN_IFACEtun0
NET1_IFACE=enp1s0 NET2_IFACE=enp2s0 \
NET1_IP=192.168.100.1/24 NET2_IP=192.168.0.10/24 \
bash install.sh

Da NET1_IP das PLC-Netz ist, wird kein Standardgateway gesetzt. Wenn NET2_IP leer bleibt, wird DHCP verwendet.


1. Standardtopologie​

┌──────────────────────┐ ┌─────────────┐
│ 상위 플랫폼 / 클라우드 │ ◀─── HTTPS / MQTT ─── │ 게이트웨이 │
│ (PlantPulse / SCADA) │ └─────────────┘
└──────────────────────┘ enp1s0 │ enp2s0
│ │
┌───────────────┘ └────────────┐
│ │
WAN (외부) PLC 망 (내부)
│ │
│ ┌───┴────────────┐
│ │ │
PLC₁ PLC₂ PLC₃
(Modbus / S7 / OPCUA)
NICName (Fedora Standard)RolleStandardgateway?
NIC 1enp1s0WAN — Externes Internet / Übergeordnete Platform / NTP✅ Ja
NIC 2enp2s0PLC-Netz — Private IP, ausschließlich für Kommunikation mit PLC❌ Nein (ipv4.never-default yes)

2. Empfohlenes IP-Design (Beispiel)​

BereichCIDRVerwendungszweck
WANDHCP oder Firmennetz / 192.168.0.0/24Externes Gateway-IP — Office-Netzwerk
PLC-Netz192.168.100.0/24Dediziertes privates PLC-Netz — Isoliert vom WAN
Gateway selbstWAN: 192.168.0.50 / PLC: 192.168.100.10
PLC192.168.100.20–254Pro Linie / Zelle

3. Konfiguration nach Szenario​

3.1 Einfache Konfiguration — Ein Firmennetz​

Fall, in dem die PLC direkt im Firmennetz hängt und es kein separates PLC-Subnetz gibt. Es ist nicht notwendig, beide NICs im gleichen Netz zu halten:

  • Nur enp1s0 (WAN) verwenden — DHCP oder STATIK
  • enp2s0 nicht verwenden (oder Link down)

Beim Ausführen von install.sh kann NET2_IFACE weggelassen werden, oder nach der Installation kann die nicht verwendete NIC im OS NetworkManager auf «down» gesetzt werden.

3.2 Standard-Trennkonfiguration — WAN + PLC-Netz (Empfohlen)​

Entspricht genau der 1. Standardtopologie. Aus Sicherheitsgründen kann das PLC-Netz vollständig vom externen Internet isoliert werden — das Gateway ist die einzige Brücke zwischen den beiden Netzen. Die PLC ist aus dem Internet nicht sichtbar.

3.3 3 NIC — WAN + PLC + Management​

Große Anlagen.

Die Installation konfiguriert nur bis zu zwei NICs

install.sh akzeptiert nur NET1_* (PLC-Netz) und NET2_* (WAN) — NET3 existiert nicht. Die dritte NIC (Management-Kanal) muss nach der Installation manuell konfiguriert werden.

sudo nmcli con add type ethernet ifname enp3s0 con-name mgnt \
ipv4.method manual ipv4.addresses 10.10.0.50/24
sudo nmcli con up mgnt
  • enp1s0 (WAN) — Extern
  • enp2s0 (PLC) — Privates PLC-Netz
  • enp3s0 oder USB-Ethernet (Management) — Separater Kanal für Diagnose / Inspektion (Firmen-IT)

Die Management-Port-Karte im Home-Menü zeigt die IP dieser NIC an.

3.4 Cloud / VM 1 NIC​

Fall, in dem in einer VM-Umgebung nur eine NIC vorhanden ist — die gesamte Kommunikation erfolgt über dasselbe virtuelle Netzwerk. Die NIC-Trennung wird über vSwitch / VLAN im Host-OS realisiert.


4. Zugriff auf das Gateway von außen​

Um nach dem Deployment auf die Web-UI des Gateways von außen (Office-PC, Mobilgerät) zuzugreifen:

SzenarioMethode
Innerhalb desselben FirmennetzesDirekt über https://<gateway-wan-ip>/ui/main
Extern → FirmennetzVPN-Verbindung, dann wie oben
Extern → Internet (Riskant)Firewall NAT-Portweiterleitung + REST API Authentifizierung zwingend + HTTPS

Das Gateway v1 REST verwendet X-API-Key / Bearer-Authentifizierung. Dennoch wird eine direkte Exposition im Internet nicht empfohlen. Externer Zugriff sollte nur nach Einbindung einer zusätzlichen Schutzschicht wie VPN oder mTLS/API-Gateway erlaubt werden.


5. Firewall — Exponierte Ports​

install.sh registriert die zu öffnenden Ports in der Firewall. Da der Container im Host-Netzwerk läuft, ist die Host-Firewall gleichbedeutend mit der Zugriffskontrolle.

PortFunktionGrund für externe Öffnung
80 · 443Web UI · REST APIJa — Zugang für den Operator
1880Node-RED (Flow-Editor)Nur bei Bedarf. Bearbeitung ist auch in der Web UI möglich
12000 · 12443OPC-UA Server des EdgeNur wenn externe SCADA angebunden werden
1883 · 8883MQTT Klartext · TLSNur bei Verwendung von MQTT-Publishing
3000Grafana⚠ Prüfung — am 02.07.2026 für externen Zugriff geöffnet
7800 · 7801Zeitreihen-Engine HTTP · HTTPS (Zeitreihen-Abfrage)⚠ Prüfung — am 02.07.2026 für externen Zugriff geöffnet
9042Cassandra🔴 Prüfung zwingend — Datenbank-Port
Der Zustand unmittelbar nach der Installation ist «alles offen» — die Einschränkung obliegt dem Operator

install.sh öffnet die oben genannten Ports ohne Schnittstellentrennung. Insbesondere 9042(Cassandra), 3000(Grafana) und 7800/7801(Zeitreihen-Engine) müssen normalerweise nicht von außen erreichbar sein.

Nicht benötigte Ports schließen oder nur auf der WAN-NIC blockieren.

firewall-cmd --list-ports # 지금 열린 것
firewall-cmd --permanent --remove-port=9042/tcp
firewall-cmd --permanent --remove-port=3000/tcp
firewall-cmd --reload

Um die Firewall von Beginn der Installation an nicht zu verändern, installieren Sie mit SKIP_FIREWALL=1 und öffnen Sie die Ports manuell.

«In der Firewall offene Ports» und «Tatsächlich zustellbare Ports» sind unterschiedlich

Die Firewall-Liste enthält elf Einträge, aber die von bin/health.sh geprüften tatsächlichen Listener sind neun — 80 · 443 · 1883 · 1884 · 6379 · 9042 · 1880 · 12000 · 12443.

Diese Differenz ist normal. Die Firewall definiert die «Erlaubnis», der Listener ist «das, was tatsächlich läuft». Je nach Konfiguration (z. B. MQTT nicht in Betrieb) kann ein Port offen sein, ohne dass jemand zuhört. Umgekehrt sind 6379(Redis) und 1884 aktiv, stehen aber nicht in der Firewall-Liste — daher sind sie von außen nicht erreichbar.

Port 7799(Tomcat JMX) wird nicht geöffnet

JMX verfügt über keine Authentifizierung und hört nur auf 127.0.0.1. Seit dem Re-Release im November 2026 öffnet die Firewall-Phase von install.sh den Port 7799 nicht mehr und schließt ihn, falls er bereits offen war (firewall-cmd --remove-port=7799/tcp). Wenn ein anderes Firewall-System (iptables · ufw · nftables) verwendet wird, blockieren Sie 7799 manuell.

In Produktionsumgebungen sollten Ports, die keinen externen Zugriff benötigen, per Firewall gesperrt oder nur auf der WAN-NIC blockiert werden (firewall-cmd --remove-port).


6. Netzwerkvalidierung​

Überprüfung der Netzwerkreichbarkeit unmittelbar nach der Installation oder vor dem Hinzufügen einer PLC:

# 1) WAN — 외부 ping
ping -c 3 8.8.8.8
# 2) WAN — DNS
nslookup google.com
# 3) WAN — 플랫폼 / 다운로드
curl -I https://product.kopens.io/plantpulse-edge/install.sh

# 4) PLC 망 — 인터페이스 활성
ip a show enp2s0
# 5) PLC 망 — PLC 도달
ping -c 3 192.168.100.20 # 첫 PLC IP

# 6) PLC 포트 도달 (Modbus 502 예시)
nc -vz 192.168.100.20 502
# Connection succeeded ... 면 정상

# 7) 게이트웨이 자체 시스템 헬스 (컨테이너 모드)
sudo bash /opt/kopens/install/bin/status.sh
curl -ks https://127.0.0.1/api/v1/system/health | python3 -m json.tool

7. Häufige Fehlerquellen​

SymptomUrsache / Lösung
WAN funktioniert, PLC ist nicht pingbarNIC 2 IP / Maske / Gateway-Einstellungen auf PLC-Seite. Routing via ip route prüfen
Internet-Lecks im PLC-Netzipv4.never-default yes in enp2s0 fehlt. nmcli con modify enp2s0 ipv4.never-default yes
Gateway-externe IP hat sich geändert (DHCP)Verbindungsabbruch, falls externe SCADA über IP zugreift — STATIK empfohlen
Zwei NICs routen gegenseitig (Bridge)Prüfung von ipv4.method und ipv6.method der NIC 2. Bridge-Modus deaktivieren
Langsame Alarmantworten der PLCKeepalive / Paketgröße der PLC-Netz-NIC prüfen. tcpdump -i enp2s0 host <PLC-IP>
OPC-UA externe Clientverbindung abgelehntFirewall 12000 blockiert / Zertifikat nicht vertrauenswürdig. firewall-cmd --list-ports und OPC-UA Sicherheit prüfen

8. Weitere Informationen​