メインコンテンツまでスキップ

ネットワーク構成

ゲートウェイは 2つのNIC により、PLC網とWANを物理的に分離するように設計されています。アプライアンス / 産業用PCの標準構成です。

NICの役割 (2026.05+)
  • LAN1 = PLC (eth1 / enp1s0など) — 単一PLCまたはスイッチ背後の複数PLC
  • LAN2 = WAN (eth2 / enp2s0など) — インターネット / Platform / OTA
  • wlan0 / wwan0 / tun0 / usb0 — WiFi / GSM / VPN / 管理用USB-Ethernet

NIC名のマッピングは /etc/kopens/app.properties の edge.net.lan1.iface などでボックスごとに調整可能であり、インストール時にenvで上書きできます。これは画面モニタリングカードの表示専用であり、IP設定自体はOSのNetworkManager / netplanが担当します。install.sh はnmcliによる静的IP設定もオプションで提供します。

🔴 設定ファイルの名称とインストールenvの名称は異なります。 設定ファイルは lan1、インストールenvは NET1 です — LAN1_IFACE で指定すると 何も起こらず、デフォルト値がそのまま適用されます。

app.properties キーインストール時のenvデフォルト値
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

NET1_IP はPLC網であるため、デフォルトルートは設定しません。 NET2_IP を空にすると、そのインターフェースはDHCPになります。


1. 標準トポロジー​

┌──────────────────────┐ ┌─────────────┐
│ 상위 플랫폼 / 클라우드 │ ◀─── HTTPS / MQTT ─── │ 게이트웨이 │
│ (PlantPulse / SCADA) │ └─────────────┘
└──────────────────────┘ enp1s0 │ enp2s0
│ │
┌───────────────┘ └────────────┐
│ │
WAN (외부) PLC 망 (내부)
│ │
│ ┌───┴────────────┐
│ │ │
PLC₁ PLC₂ PLC₃
(Modbus / S7 / OPCUA)
NIC名称 (Fedoraデフォルト)役割デフォルトゲートウェイ?
NIC 1enp1s0WAN — 外部インターネット / 上位Platform / NTP✅ Yes
NIC 2enp2s0PLC網 — プライベートIP、PLCとの通信専用❌ No (ipv4.never-default yes)

2. 推奨IP設計 (例)​

領域CIDR用途
WANDHCP または 社内網 / 192.168.0.0/24ゲートウェイ外部IP — オフィスネットワーク
PLC網192.168.100.0/24PLC専用プライベートネットワーク — WANと隔離
ゲートウェイ本体WAN: 192.168.0.50 / PLC: 192.168.100.10
PLC192.168.100.20–254ライン別 / セル別

3. シナリオ別構成​

3.1 単純構成 — 社内網 1つ​

PLCが社内網に直接接続されており、別途PLCサブネットがない場合。NIC 2つを同じネットワークに置く必要はありません:

  • enp1s0 (WAN) のみ使用 — DHCP または STATIC
  • enp2s0 未使用 (または link down)

install.sh を実行する際に NET2_IFACE を省略するか、インストール後にOSのNetworkManagerで未使用NICをdown状態にしてください。

3.2 標準分離構成 — WAN + PLC網 (推奨)​

上記 1. 標準トポロジー の通り。セキュリティ面から PLC網を外部インターネットと完全に隔離 可能です。ゲートウェイが2つのネットワーク間の唯一の架け橋となり、PLCがインターネットから見えなくなります。

3.3 3 NIC — WAN + PLC + 管理​

大規模サイト向け。

インストールで設定されるのはNIC 2つまでです

install.sh は NET1_*(PLC網) と NET2_*(WAN) の 2つだけ を受け付けます — NET3 は存在しません。 3つ目のNIC(管理チャネル)は インストール後に手動で 設定してください。

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) — 外部
  • enp2s0 (PLC) — プライベートPLC網
  • enp3s0 または USB-Ethernet (管理) — 別途診断 / 点検用チャネル (社内IT)

ホームカードの管理ポートにこのNICのIPが表示されます。

3.4 クラウド / VM 1 NIC​

VM環境でNICが1つしかない場合 — すべての通信が同一の仮想ネットワークとなります。NICの分離はホストOS側でvSwitch / VLANを用いて処理します。


4. 外部からゲートウェイへのアクセス​

デプロイ後、外部 (オフィスPC、モバイル) からゲートウェイのWeb UIにアクセスする場合:

シナリオ方法
同一社内網内https://<gateway-wan-ip>/ui/main で直接アクセス
社外 → 社内網VPN接続後、上記と同様にアクセス
社外 → インターネット (危険)ファイアウォールNATポートフォワーディング + REST API認証必須 + HTTPS

ゲートウェイ v1 RESTは X-API-Key / Bearer認証を使用します。それでもインターネットへの直接公開は推奨しません。 社外アクセスはVPNまたはmTLS/API gatewayなどの追加保護層を設けた後に許可してください。


5. ファイアウォール — 公開ポート​

install.sh が 開放ポート をファイアウォールに登録します。コンテナが hostネットワーク で動作するため、ホストのファイアウォールがそのままアクセス制御となります。

ポート内容外部に開放する理由があるか
80 · 443Web UI · REST APIあり — オペレーターが使用する入口
1880Node-RED (フロー編集)必要な場合のみ。編集はWeb UI内でも可能
12000 · 12443Edgeが提供するOPC-UAサーバー外部SCADAが接続する場合のみ
1883 · 8883MQTT 平文 · TLSMQTTパブリッシュを使用する場合のみ
3000Grafana⚠ 要検討 — 2026-07-02に外部アクセス用に開放されました
7800 · 7801時系列エンジン HTTP · HTTPS (時系列クエリ)⚠ 要検討 — 2026-07-02に外部アクセス用に開放されました
9042Cassandra🔴 要検討 — データベースポートです
インストール直後の状態は«すべて開放»です — 制限はオペレーターの責任で行ってください

install.sh は上記のポートを インターフェース区別なく 開放します。特に 9042(Cassandra) と 3000(Grafana) · 7800/7801(時系列エンジン) は、外部からアクセスさせる理由は通常ありません。

使用しないポートは閉じるか、WAN NIC側でのみ遮断してください。

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

インストール時からファイアウォールを操作させたくない場合は、SKIP_FIREWALL=1 でインストールした後に直接開放してください。

「ファイアウォールで開放されたポート」と「実際にリスンしているポート」は異なります

ファイアウォールのリストは開放されていますが、bin/health.sh が確認する 実際のリスナーは9つ です — 80 · 443 · 1883 · 1884 · 6379 · 9042 · 1880 · 12000 · 12443。

これらが異なるのは正常です。ファイアウォールは«許可»であり、リスナーは«実際に起動しているもの»であるため、構成により(例: MQTT未使用) 開放されていても誰もリスンしていないポートが存在します。 逆に 6379(Redis) と 1884 はリスンしていますが、ファイアウォールのリストには含まれていません — そのため外部からは到達不能です。

7799(Tomcat JMX)は開放しません

JMXは認証がないため、127.0.0.1のみ でリスンします。2026.11の再リリースより、install.sh のファイアウォール段階では7799を開放せず、既に開放されている場合は閉じます(firewall-cmd --remove-port=7799/tcp)。他のファイアウォール(iptables · ufw · nftables)を使用しているボックスの場合は、手動で7799を遮断してください。

運用環境で外部アクセスが不要なポートは、ファイアウォールで遮断するか WAN NICのみで遮断 してください(firewall-cmd --remove-port)。


6. ネットワーク検証​

インストール直後または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. よくある落とし穴​

症状原因 / 解決策
WANは通るがPLCにpingが飛ばないNIC 2番のIP / マスク / PLC側のゲートウェイ設定。ip route でルーティングを確認
PLC網からインターネットに漏れているようだenp2s0 の ipv4.never-default yes が欠落。nmcli con modify enp2s0 ipv4.never-default yes
ゲートウェイの外部IPが変更された (DHCP)外部SCADAがIPでアクセスしている場合、通信断が発生 — STATICを推奨
2つのNICが相互にルートされている (ブリッジ)NIC 2の ipv4.method, ipv6.method を検査。ブリッジモードを解除
PLC側のアラーム応答が遅いPLC網NICのkeepalive / パケットサイズを点検。tcpdump -i enp2s0 host <PLC-IP>
OPC-UA外部クライアントの接続拒否ファイアウォール12000の遮断 / 証明書の信頼関係未構築。firewall-cmd --list-ports と OPC-UAセキュリティ を確認

8. 詳細情報​