11 KiB
최종 장비 빌드
릴리스 20260921-snmp-diagnostics-1 · Linux ARM64 · 192.168.0.223 배포 완료
2026-09-21: SNMP v3 사용자 이름의 대소문자를 유지하도록 API를 수정했습니다. PC에서 v3 GET과 SHA-1/AES Trap 수신을 확인했습니다. Trap 시험에는 PC에서 장비 192.168.0.223의 UDP 2162 수신을 허용해야 합니다. 진단도구 상단의 초록색 C:\>와 CMD 표기를 제거하고 본문 프롬프트를 $로 변경했습니다. API·웹 배포 해시와 서비스 준비 상태 12/12, 배포된 integration.js/i18n.js/style.css 원문 일치를 확인했습니다. 관련 SNMP 회귀 테스트와 JavaScript 문법 검사를 통과했습니다.
2026-09-20: 비선택 탭의 X를 Alt+클릭하면 현재 선택 탭만 남기고, 선택 탭의 X를 Alt+클릭하면 맨 왼쪽 탭만 남깁니다. 탭 관련 테스트 17개를 통과했습니다.
이번 커밋은 최종 실행 파일과 릴리스 메타데이터를 포함합니다. 빌드는 6ed3580 기반 작업 트리의 수정 사항을 포함하며, 해당 소스 수정은 이 빌드 파일 커밋에 포함하지 않습니다. 전체 펌웨어 이미지가 아닌 애플리케이션·데몬 실행 파일 모음입니다.
2026-09-17: 왼쪽 메뉴 펼침 상태를 로그인 세션별로 저장하고 재로그인 시 초기화합니다. 탭 드래그로 순서를 바꿀 수 있으며 Alt+× 클릭은 현재 맨 앞 탭만 남깁니다. 프런트엔드 전체 Go 테스트 및 탭/메뉴/모달/화면 이동 회귀 테스트 19개 통과. 웹 해시·app.js 원문 일치와 준비 상태 12/12 확인. 백업: /userdata/tera-backups/tab-controls-20260917-115134.
2026-09-17: 공통 보존기간 입력을 유지하며 읽기 전용 저장 현황을 복원했습니다. 감사·시스템·포트·포트 링크 상태 카드에 저장량과 가장 오래된 기록을 표시합니다. 링크 상태의 저장 공간은 포트와 공유함을 표시하고 기록 시각은 현지 날짜·시간으로 표시합니다. 기록 없음 및 조회 실패를 구분하며 30초 주기/수동 새로고침을 제공합니다. 프런트엔드 전체 Go 테스트, 공통 보존기간 회귀 테스트, JavaScript 문법 검사 통과. 웹 해시·배포 integration.js 일치, 준비 상태 12/12 확인. 백업: /userdata/tera-backups/log-storage-summary-20260917-114241.
최종 보존 설정: 사용자 변경이 가능한 공통 보존기간 입력 하나를 제공합니다(기본 365일, 1~365일). 저장 시 시스템·감사·포트에 같은 값을 적용합니다. 저장 공간·90% 한도 설정 UI는 제거했습니다. 90% 공간 한도와 오래된 로그 순환 삭제는 기존 동작을 유지합니다. CR 링크 점검 송신·수신은 기존 구현에서 기록하지 않으며, RX/TX 로그를 켠 회귀 테스트로 확인했습니다. 일반 사용자 통신 로그는 유지합니다. 공통 보존기간 저장 테스트와 프런트엔드 전체 테스트 통과, 웹 배포 해시·integration.js 원문 일치 및 서비스 준비 상태 12/12 확인. 최종 웹 백업: /userdata/tera-backups/common-log-retention-20260917-113657. 실제 장비의 CR 송수신을 별도로 발생시키는 시험은 하지 않았습니다.
2026-09-17: 로그 저장 공간·보존 설정 패널을 제거했습니다. 백엔드의 기존 90% 파일시스템 한도 및 오래된 로그 순환 삭제 동작을 유지합니다. 로그 용량/보존 정책 테스트, 프런트엔드 전체 테스트, CR 점검 RX/TX 기록 제외 회귀 테스트를 통과했습니다. 웹 배포 해시와 integration.js 원문 일치, 준비 상태 12/12 확인. 백업: /userdata/tera-backups/log-rotation-ui-20260917-113402.
2026-09-17: 메뉴 이동 후 사용자 추가 창이 첫 클릭부터 열리도록 수정했습니다. 직접 연결 고급 기능의 일괄 전송 버튼을 제거했으며 전송 값 입력란의 Enter 전송은 유지합니다. 프런트엔드 전체 Go 테스트와 모달/메뉴 이동 회귀 테스트 6개, JavaScript 문법 검사를 통과했습니다. 웹 실행 파일 해시, 배포된 app.js/integration.js 원문 일치, 준비 상태 12/12를 확인했습니다. 웹 백업: /userdata/tera-backups/modal-enter-send-20260917-112546. 실제 장비 CLI 명령 전송은 이번 검증에서 실행하지 않았습니다.
동작 모드 표시 이름은 SSH와 Telnet으로 통일했습니다. 웹만 추가 배포했으며 포트별로 적용된 프로토콜은 변경하지 않았습니다. 2026-09-16 확인 시 eth0 192.168.0.223:10020은 SSH 안내 문자열을 응답했고, PC에서 eth1 192.168.200.4:10020 접속은 시간 초과였습니다. Telnet 시험은 해당 동작에 Telnet을 적용한 후 해당 Ethernet 주소로 새로 접속해야 합니다.
추가 수정: 원본 가이드에 맞춰 동작 모드 Telnet은 Listen Port에서 외부 접속을 받습니다. 기존 reverse_telnet 저장 값과 호환하며 UI는 Telnet으로 표시합니다. SSH/Telnet의 eth0·eth1 동시 접속을 지원하고, 포트 상태 세션 1~4 IP는 웹·SSH·Telnet의 접속 순서로 표시합니다. 종료한 세션은 제거되고 새 연결은 마지막에 추가됩니다. 주기적인 상태 갱신 API에도 동일한 IP 목록을 제공합니다.
최종 백업: /userdata/tera-backups/telnet-session-ips-20260916-124023. API·sessiond·웹 해시 및 준비 상태 확인, 혼합 프로토콜과 IP 순서 통합 테스트 통과. 실제 두 Ethernet 경로의 PuTTY GUI 동시 접속은 별도 검증하지 않았습니다.
2026-09-16: 웹 직접 연결과 동작 1·2의 SSH/Telnet 접속이 tera-sessiond의 동일 시리얼 연결을 공유합니다. 최대 세션이 4이면 웹과 두 동작의 합계 4개까지 접속하며, 모든 쓰기 권한 세션에서 입력할 수 있습니다. 5번째 접속은 거절하고 하나가 종료되면 다시 접속할 수 있습니다. 동작 1(eth0)과 동작 2(eth1)는 같은 포트 번호로 SSH/SSH, SSH/Telnet, Telnet/Telnet 조합을 사용할 수 있습니다. 출력과 장비 CLI 상태를 공유하므로 여러 사람이 동시에 입력하면 명령이 섞일 수 있습니다.
API·sessiond·웹을 백업 후 배포하고 해시, 공유 소켓, 준비 상태 12/12를 확인했습니다. 백업: /userdata/tera-backups/shared-sessions-20260916-104536. 관련 Go 테스트와 JavaScript 13개 테스트를 통과했고, 장비에서도 모의 UART·루프백 SSH/Telnet 통합 테스트를 통과했습니다. 실제 두 Ethernet 경로의 PuTTY 동시 접속은 별도 검증하지 않았습니다. 포트 선택 축소도 포함합니다.
아래는 이전 릴리스의 변경·검증 기록입니다.
동작 설정 1·2의 줄바꿈 표시를 CR·LF·CRLF 대문자로 바꾸고, 직접 연결 모드 제목의 / Port 1 부분을 제거했습니다. 저장 값과 채널 선택 기능은 유지합니다. 렌더링 확인 후 웹을 배포했으며 최종 웹 백업은 /userdata/tera-backups/direct-mode-title-20260914입니다.
포트 선택 카드에도 별칭을 표시합니다. 긴 이름은 말줄임표로 표시하고 마우스를 올리면 전체 이름을 확인할 수 있습니다. 이 추가 웹 수정의 백업은 /userdata/tera-backups/port-selector-alias-20260914입니다.
추가 수정: 동작 1(eth0)과 동작 2(eth1)의 동일 Listen Port를 설정 저장 검사에서도 허용합니다. CH01 동작 1 SSH + 동작 2 Telnet의 저장·적용·설정 재로딩을 회귀 테스트로 확인했습니다. 같은 인터페이스의 포트 중복은 계속 거절합니다. 로그 형식 표시 이름은 ASCII·HEX 대문자이며 저장 값과 수신 원문은 유지합니다. 이번 API·웹의 이전 실행 파일은 /userdata/tera-backups/operation2-telnet-20260914에 백업했습니다.
실제 장비 검증: 정상 로그인한 API로 CH01 동작 2 Telnet을 적용·저장했습니다. 실행/영구 저장 리비전 29, eth0 SSH·eth1 Telnet의 10001 리스너와 공유 최대 세션 4를 확인했습니다. 실제 데이터 로그 HTML에서 ASCII·HEX 표시도 확인했습니다. 두 네트워크를 통한 실제 SSH/Telnet 클라이언트 동시 접속은 이번에 실행하지 않았습니다.
장비 준비 상태 12/12, HTTP 80·HTTPS 443 서비스, 설치 파일 8개와 final-build 폴더의 SHA256 일치를 확인했습니다. API·웹은 이번 수정본으로 빌드·배포했고, logd는 같은 날 배포한 시스템 개선 빌드입니다. 나머지 데몬은 현재 장비 설치본과 맞춘 파일입니다.
final-build는 애플리케이션·데몬 실행 파일 모음이며 boot/rootfs를 포함한 전체 펌웨어 .pkg가 아닙니다. 사용자 계정, 장비 설정, 인증서 개인키와 런타임 로그는 포함하지 않습니다.
| 파일 | 장비 설치 경로 |
|---|---|
| frontend/tera-clone-demo-web | /usr/bin/tera-clone-demo-web |
| backend/tera-clone-demo-api | /usr/bin/tera-api |
| backend/tera-logd | /usr/bin/tera-logd |
| backend/tera-clone-demo-alarmd | /usr/bin/tera-alarmd |
| backend/tera-netd | /usr/bin/tera-netd |
| backend/tera-seriald | /usr/bin/tera-seriald |
| backend/tera-sessiond | /usr/bin/tera-sessiond |
| backend/tera-timed | /usr/bin/tera-timed |
이번 수정은 포트 설정 탭 하나에서 채널 전환, 확대된 카드와 변경 대상 체크박스, 직접 연결 모드의 콘솔 아이콘 제거를 포함합니다. 대시보드 포트 위치는 1~48번으로 고정합니다. CR 응답이 잠시 누락돼 발생하던 DOWN 표시에는 15초 재확인을 적용했고, 지속적인 CR 무응답은 케이블 단절로 단정하지 않고 미확인으로 표시합니다. API와 상태 이벤트가 같은 CR 판정 함수를 사용합니다.
앞선 시스템 개선에는 포트 별칭 관리와 세션 IP, eth0/eth1 공유 세션 제한, Receive/HEX 표시, 90% 로그 회전, 관리자 로그 관리, 현재 계정 비밀번호 재인증, 복원 완료 후 재시작이 포함됩니다. 기존 메일·시리얼 키워드 알림 수정도 유지합니다.
검증: 변경된 API·시리얼·상태 이벤트 Go 테스트, 프런트엔드 전체 Go 테스트, 탭·화면 전환·대시보드 JavaScript 테스트 19개, 로컬 Edge UI 검증을 통과했습니다. UI 검증은 시험 데이터로 수행했으며 장비에서 로그 삭제·복원·초기화·전원 재부팅은 실행하지 않았습니다.
이전 실행 파일 백업: /userdata/tera-backups/port-selection-20260914 (API·웹), /userdata/tera-backups/system-improvements-20260914 (앞선 시스템 개선).
설정·시연 순서는 시스템 개선 확인 절차를 참고하세요. 파일별 해시와 검증 범위는 SHA256SUMS, release-manifest.json에 기록했습니다.