네트워크 구성 — 게이트웨이 배치 가이드
게이트웨이는 2 개의 NIC 로 PLC 망과 WAN 을 물리적으로 분리하도록 설계되어 있습니다. 어플라이언스 / 산업용 PC 의 표준 구성.
- LAN1 = PLC (eth1 / enp1s0 등) — 단일 PLC 또는 switch 뒤 다중 PLC
- LAN2 = WAN (eth2 / enp2s0 등) — 인터넷 / 플랫폼 / OTA
- wlan0 / wwan0 / tun0 / usb0 — WiFi / GSM / VPN / 관리 USB-Ethernet
NIC 이름 매핑은 /etc/kopens/app.properties 의 edge.net.lan1.iface 등으로 박스마다 조정 가능
(install.sh 시 LAN1_IFACE=enp1s0 ... bash install.sh env 로 override). 화면 모니터링 카드 표시
전용 — IP 설정 자체는 OS NetworkManager / netplan 책임. install.sh 는 nmcli static IP 설정도 옵션
수행 (LAN1_IP=192.168.100.10/24 LAN2_IP=192.168.0.10/24 ... bash install.sh).
1. 표준 토폴로지
┌──────────────────────┐ ┌─────────────┐
│ 상위 플랫폼 / 클라우드 │ ◀─── HTTPS / MQTT ─── │ 게이트웨이 │
│ (PlantPulse / SCADA) │ └─────────────┘
└──────────────────────┘ enp1s0 │ enp2s0
│ │
┌───────────────┘ └────────────┐
│ │
WAN (외부) PLC 망 (내부)
│ │
│ ┌───┴────────────┐
│ │ │
PLC₁ PLC₂ PLC₃
(Modbus / S7 / OPCUA)
| NIC | 이름 (Fedora 38 기본) | 역할 | 기본 게이트웨이? |
|---|---|---|---|
| NIC 1 | enp1s0 | WAN — 외부 인터넷 / 상위 플랫폼 / NTP | ✅ Yes |
| NIC 2 | enp2s0 | PLC 망 — 사설 IP, PLC 와의 통신 전용 | ❌ No (ipv4.never-default yes) |
2. 권장 IP 설계 (예시)
| 영역 | CIDR | 용도 |
|---|---|---|
| WAN | DHCP 또는 사내망 / 192.168.0.0/24 | 게이트웨이 외부 IP — 사무실 네트워크 |
| PLC 망 | 192.168.100.0/24 | PLC 전용 사설망 — WAN 과 격리 |
| 게이트웨이 자체 | WAN: 192.168.0.50 / PLC: 192.168.100.10 | |
| PLC | 192.168.100.20–254 | 라인별 / 셀별 |
3. 시나리오별 구성
3.1 단순 구성 — 사내망 1 개
PLC 가 사내망에 직접 붙어있고 별도 PLC 서브넷이 없는 경우. NIC 2 개 다 같은 망에 둘 필요 없음:
enp1s0(WAN) 만 사용 — DHCP 또는 STATICenp2s0미사용 (또는 link down)
2026.05+ 설치에서는 install.sh 실행 시 LAN2_IFACE 를 생략하거나, 설치 후 OS NetworkManager 에서
미사용 NIC 를 down 상태로 두면 됩니다. legacy native setup.sh 는 2번 NIC prompt 가 남아 있을 수 있으므로
구형 박스에서만 set-2.sh 비활성화를 검토하세요.
3.2 표준 분리 구성 — WAN + PLC 망 (권장)
위 1. 표준 토폴로지 그대로. 보안 측면에서 PLC 망을 외부 인터넷과 완전 격리 가능 — 게이트웨이가 두 망 사이의 유일한 다리. PLC 가 인터넷에서 보이지 않음.
3.3 3 NIC — WAN + PLC + 관리
대형 사이트. setup.sh 에 추가 단계 (set-usb-mgnt.sh 가 코멘트 처리되어 있음 — 활성화 가능):
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, 모바일) 에서 게이트웨이의 웹 UI 에 접속하려면:
| 시나리오 | 방법 |
|---|---|
| 같은 사내망 안 | https://<게이트웨이-WAN-IP>/ui/main 로 직접 |
| 사외 → 사내망 | VPN 접속 후 위와 동일 |
| 사외 → 인터넷 (위험) | 방화벽 NAT 포워딩 + REST API 인증 필수 + HTTPS |
게이트웨이 v1 REST 는
X-API-Key/ Bearer 인증을 사용합니다. 그래도 인터넷 직접 노출은 권장하지 않습니다. 사외 접근은 VPN 또는 mTLS/API gateway 같은 추가 보호 계층을 둔 뒤 허용하세요.
5. 방화벽 — 노출 포트
install.sh 가 컨테이너 모드에 필요한 포트를 firewall 에 등록합니다. legacy native 의 상세 포트 표는
(legacy) H/W 전체 설치 5.1 절에 남아 있습니다.
핵심: 80 / 443 (웹 UI) + 1880 (Node-RED) + 12000 / 12443 (OPC-UA) + 1883 / 8883 (MQTT, 사용 시).
운영 환경에서 외부 접근 불필요 한 포트는 방화벽으로 막거나 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 권장 |
| 두 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. 더 알아보기
- 설치 시 NIC env: 빠른 설치 — 사이트 값 / 네트워크 값 지정
- 운영 투입 전 네트워크 Go/No-Go: 프로덕션 인수 기준
- legacy native NIC 입력: (legacy) H/W 전체 설치 4.2–4.3 절
- 방화벽 자동 오픈 포트: (legacy) H/W 전체 설치 5.1 절
- 외부 노출 시 보안 강화: REST API 인증 적용 권장 (외부망 노출 시 필수)