Background Image

FORUM

조회 수 11142 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window10 64bits
CUBRID Ver.
cubrid 11.3 (11.3.2.1187)
CUBRID TOOL Ver.
cubrid admin 11.1.3.0194
응용 환경(API)
현재 설치 후 외부 호스트에서 연결만 진행 중


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

 

안녕하세요

 

외부 호스트에서 DB 서버 접속 시 [-21024] Request timed out[CAS INFO-(공인ip):(외부port),0],[SESSION-0],... 에러가 발생합니다.

 

윈도우 환경에서 설치 프로그램을 사용해 기본 설정으로 설치하였습니다.

 

윈도우 방화벽 포트 개방 완료하였습니다. 매뉴얼의 포트 설정 참고하여, 지정해주신 프로그램 목록에 대한 inbound, outbound 방화벽 허용하였습니다.

매니저 프로그램은 외부에서 사용하지 않을거라 생략했습니다.

(cub_broker.exe, cub_cas.exe, cub_master.exe, cub_server.exe)

 

공유기 포트포워딩 완료하였고(53300-33000, 53000-30000) 

외부 호스트(mac)에서 tcping (공인ip) 53300, 53000 테스트하였을 때, 두 포트가 오픈되었음도 확인하였습니다. 

 

로컬에서 큐브리드 admin 으로 서버 정상 작동함을 확인하였습니다. 로컬에서 localhost:30000 으로 데이터베이스도 잘 접속이 됩니다.

DB 서버와 같은 내부망으로 (사설ip):30000 테스트해보았을 때도 접속 됨을 확인하였습니다. 

그런데 외부망에서 (공인ip):53000 접속 테스트를 하니 request timed out 이 발생하네요.

 

무엇을 더 확인해보아야 할까요?

 

 

  • ?
    kisoo 2025.02.13 12:54

    Windows CUBRID에서의 broker-cas 접속 환경은 Linux와 다릅니다.
    1. 최초 client가 Windows broker에 접속하면 (예: 33000), broker는 CAS에 접속가능한 port 번호를 client에 전달합니다 (33001, 33002, 33003, ...).
    2. client가 CAS 접속을 위한 port번호를 전달 받으면 (예: 33001), 현재의 tcp 연결을 끊고 33001로 접속을 시도합니다 (CAS)

    이런 이유 때문에 WIndows CUBRID에서 시도하신것과 같이 port forwarding을 이용해서 CUBRID에 접속하기는 어려울듯 합니다.
    포트 포워딩을
    외부 ip: 30000 -> 내부 ip:30000
    외부 ip: 30001 -> 내부 ip:30001
    외부 ip: 30002 -> 내부 ip:30002

    형태로 하셔야할 듯합니다. 왜냐하면 Windows broker가 cas 연결을 위해서 30001 을 전달하고
    그러면 client가 외부ip:30001로 연결을 시도할 것이기 때문입니다.

    ---
    Windows에서 사용하신다면 30,000 ~ 30,040 33,000 ~ 33,040 (만약 브로커당 최대 40개 CAS를 사용한다면) 포트를 개방해야하고
    포트 mapping을 위와 같이 30,000, 30,001, ... 형태로 그대로 사용하셔야 할듯 합니다.
    ---
    Linux 경우는 좀 다릅니다. Linux는 최초 30,000 포트로 broker에 접속하면 이 tcp connection을
    그대로 CAS에 전달합니다. 따라서 Linux CUBRID는 경우는 위와 같이 30,000/33,000 포트만

    개방하고 포트 포워딩을 하셔도 될듯합니다.

  • ?
    tndus 2025.02.13 14:25

    답변 감사합니다!
    공유기 포트포워딩을 내부 포트와 외부 포트 동일하게 하여야 한다고 이해하였습니다.

    말씀해주신대로 공유기 포트포워딩을 내부 포트와 동일하게 모두 열어주니 문제 해결되었습니다.

    이전에는
    방화벽은 30000-30040, 33000-33040 범위를 모두 열었지만,
    공유기 포트포워딩은 30000(->53000), 33000(53300) 만 하였습니다.

    아래와 같이 바꾸었습니다.
    공유기 포트포워딩은
    30000-30040 (-> 30000-30040)
    33000-33040 (-> 33000-33040)

     

    감사합니다!

  • ?
    kisoo 2025.02.13 15:05
    맞습니다.
    동일한 번호의 포트로 내부 서버에 포워딩하셔야 합니다.

    Windows의 경우는 cas가 순차적으로 30,001, 30,002, ... 형태로 이미 tcp port에 대해서 LISTEN 하고 있습니다.
    client가 broker에 접속하면, 현재 가용한 cas의 port number를 알려주고, client는 broker와의 접속을 종료한후
    cas와 새로운 연결을 시도합니다 (broker가 알려준 port 번호로)

    Linux의 경우는 브로커가 0을 return 하는데, 이 경우 client는 새로운 연결을 시도하지 않고 cas에 연결되었다고 보는 거지요.
    ---
    Linux의 경우는 현재 연결된 tcp connection의 descriptor를 다른 process에 넘겨주는 것이 가능하지만,
    Windows의 경우는 이런 방법이 안됩니다. 그래서 가용한 CAS의 port번호를 넘겨주고 CAS와 연결을 하도록 하는 구조입니다.
  • ?
    tndus 2025.02.13 17:24
    확실히 이해가 되네요! 자세한 설명 감사드립니다!

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 143868
4208 특정 데이터 삭제 여부 및 존재기록 확인문의 2 far 2025.07.14 1688
4207 액티브+트랜잭션 로그를 사용한 복구 방법이 있나요? 1 로키 2025.07.09 1971
4206 function생성 질문 4 wltkd96 2025.07.09 1917
4205 gettransactioninfo 응답 값에 sql_text가 없는 이유 문의드립니다. 1 file ogu 2025.07.09 1880
4204 트리거 조회시 권한 없음 1 큐피 2025.06.26 1905
4203 CUBRID 9.3 & 디비버(DBeaver)에서 테이블 탐색기 없음 관련 문의1 1 빠리 2025.06.26 2463
4202 큐브리드 데이터베이스 디스크 변경 문의사항입니다. 1 난지수 2025.06.25 2087
4201 11.3 서비스 오픈 바인드 변수 처리 시 성능 5 file abc123 2025.06.25 2222
4200 jdbc 연동 오류 문의 2 cuji 2025.06.25 2274
4199 11.3 version tranlist 에서 tran time 이 계속 증가하는 원인 파악 하는 방법 문의 1 abc123 2025.06.24 2128
4198 cubrid 11.4 이후 버전에서 시스템 카탈로그 뷰 조회시 반드시 소문자를 사용 해야 하는데 정책이 변경 된 것인가요? 1 두목원슝 2025.06.13 2540
4197 윈도우를 재 설치 하면서 cubrid를 재 사용 하려고 합니다. mango 2025.06.11 2490
4196 CM 에서 DB 로그인 시 Request is rejected due to invalid token. Please reconnect 에러 발생 1 정원 2025.06.05 2728
4195 cubrid shutdown 현상 1 hyoseon-_- 2025.05.28 2598
4194 테이블 생성시 TIMESTAMP 타입의 컬럼이 생성되지 않습니다 4 file 윤덕현 2025.05.27 2587
4193 숫자형 데이터를 지정된 패턴 형식으로 표시 방법 문의 2 종이 2025.05.22 2361
4192 cubrid cci 함수 실행시 SIGPIPE 오류 가을이아빠 2025.05.22 2293
4191 프로시저 작성시 로그 관련 문의 3 바보똥개 2025.05.22 2199
4190 DB 이중화 설정 1 file 유비 2025.05.21 2447
4189 Rocky 8.10 으로 전환 관련 문의 1 루비 2025.05.07 2638
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales