제품 여행

CUBRID 사용 포트와 OS명령어로 포트 오픈 상태 점검하기

by 정만영 posted Jul 03, 2018

CUBRID를 설치 후 사용자들이 응용 프로그램과 CUBRID Manager 또는 CUBRID Migration Toolkit(CMT) 연결 할 때 어떤 포트를 사용해야 하는지 "방화벽 문제로 CUBRID DB서버와 접속이 안되는 현상" 때문에 Q&A 문의가 생각보다 많이 있어 이번 블로그 내용에서는 접속대상 서버(PC) CUBRID DB서버간 포트개방 생태를 OS명령어로 확인하는 방법을 소개하고자 합니다.

 우선, CUBRID 포트관련 내용을 간단하게 정리하면 설정 파일들은 $CUBRID/conf 디렉토리에 위치해 있고 cubrid.conf cubrid_port_id=1523, cubrid_broker.conf BROKER_PORT=30000,33000, cubrid_ha.conf ha_port_id=59901, cm.conf에 cm_port=8001 포트로 기본설정되어 있습니다, 아래 표는 CUBRID가 사용하는 포트를 정리한 것입니다.

 

1, CUBRID 포트 정리표

구분

대상 장비

Linux 포트

Windows 포트

방화벽

Single DB

WEB/WAS Server

33000(TCP)

33000~33040(TCP)

개방

CUBRID Manager

30000(TCP)

8001(TCP)

30000~30040(TCP)

8001(TCP)

개방

CUBRID CMT

30000(TCP)

30000~30040(TCP)

개방

CUBRID HA

WEB/WAS Server

33000(TCP)

33000~33040(TCP)

개방

CUBRID Manager

30000(TCP)

8001(TCP)

30000~30040(TCP)

8001(TCP)

개방

CUBRID CMT

30000(TCP)

30000~30040(TCP)

개방

Master/Slave Server 양방향

1523(TCP)

7(TCP)

59901(UDP)

HA 기능 미지원

Linux:개방

window: 불필요

CUBRID Manager

사용자/관리자 PC

CUBRID Manager

30000(TCP)

8001(TCP)

30000~30040(TCP)

8001(TCP)

개방

CUBRID Migration Toolkit

사용자/관리자 PC

CUBRID CMT

30000(TCP)

30000~30040(TCP)

  개방


2, CUBRID service를 구동하면 마스터, DB서버, 브로커매니저 프로세스를 확인할 수 있습니다.

[cubrid@cub_db01 ~]$ cubrid service start; cubrid server start demodb

@ cubrid master start

++ cubrid master start: success

@ cubrid broker start

++ cubrid broker start: success

@ cubrid manager server start

++ cubrid manager server start: success

@ cubrid server start: demodb

This may take a long time depending on the amount of recovery works to do.

CUBRID 9.3

 ++ cubrid server start: success

 

[cubrid@cub_db01 ~]$ cubrid service status

@ cubrid master status

++ cubrid master is running.

@ cubrid server status

 Server demodb (rel 9.3, pid 2351)

@ cubrid broker status

  NAME                   PID  PORT    AS   JQ                  TPS                  QPS   SELECT   INSERT   UPDATE   DELETE   OTHERS     LONG-T     LONG-Q         ERR-Q  UNIQUE-ERR-Q  #CONNECT   #REJECT

===========================================================================================================================================================================================================

* query_editor          2295 30000     5    0                    0                    0        0        0        0        0        0     0/60.0     0/60.0             0             0         0         0

* broker1               2306 33000     5    0                    0                    0        0        0        0        0        0     0/60.0     0/60.0             0             0         0         0

@ cubrid manager server status

++ cubrid manager server is running

 

3, 리눅스에서는 netstat 또는 lsof 명령어와 “grep cub_*” 조합해 검색하면 현재 CUBRID 프로세스별로 어떤 포트를 가지고 구동되어 있는지 확인할 수 있습니다.

[cubrid@cub_db01 ~]$ netstat -tnlp | grep cub_*

(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

tcp        0      0 0.0.0.0:8001                0.0.0.0:*                   LISTEN      2320/cub_manager

tcp        0      0 0.0.0.0:33000               0.0.0.0:*                   LISTEN      2306/cub_broker

tcp        0      0 0.0.0.0:30000               0.0.0.0:*                   LISTEN      2295/cub_broker

tcp        0      0 0.0.0.0:1523                0.0.0.0:*                   LISTEN      2292/cub_master

 

[cubrid@cub_db01 ~]$ lsof -i -nP | grep LISTEN | awk '{print $(NF-1)" "$1}' | sort -u | grep cub_*

*:1523 cub_master

*:30000 cub_broker

*:33000 cub_broker

*:8001 cub_manager


4, CUBRID 서버가 윈도우인 경우는 리눅스와 같이 netstat 명령어 사용이 가능 하지만 grep으로 프로세스명을 검색하는 방법이 없어 find 명령어로 “LISTENING”을 검색해 출력되는 정보 중에 1523, 8001, 30000+5, 33000+5 포트를 찾아 확인해야 합니다.

C:\Users\myjun>netstat -an | find "LISTENING"

TCP    0.0.0.0:1523           0.0.0.0:0              LISTENING

  TCP    0.0.0.0:8001           0.0.0.0:0              LISTENING

                             :

                             :

TCP    0.0.0.0:30000          0.0.0.0:0              LISTENING

TCP    0.0.0.0:30001          0.0.0.0:0              LISTENING

TCP    0.0.0.0:30002          0.0.0.0:0              LISTENING

TCP    0.0.0.0:30003          0.0.0.0:0              LISTENING

TCP    0.0.0.0:30004          0.0.0.0:0              LISTENING

TCP    0.0.0.0:30005          0.0.0.0:0              LISTENING

TCP    0.0.0.0:33000          0.0.0.0:0              LISTENING

TCP    0.0.0.0:33001          0.0.0.0:0              LISTENING

TCP    0.0.0.0:33002          0.0.0.0:0              LISTENING

TCP    0.0.0.0:33003          0.0.0.0:0              LISTENING

TCP    0.0.0.0:33004          0.0.0.0:0              LISTENING

TCP    0.0.0.0:33005          0.0.0.0:0              LISTENING

참고: 윈도우는 리눅스와 다르게 브로커(30000, 33000) 포트를 cubrid_broker.conf MAX_NUM_APPL_SERVER 설정한 수 만큼 해당 포트들을 전부((ex: 30000~30040) 오픈해 주어야 합니다. (윈도우 방화벽 설정은 http://www.cubrid.com/faq/3794781 정보를 참조하시면 됩니다.)

 

5, 이번에는 WEB/WAS 서버가 리눅스이고 CUBRID DB서버로 33000포트가 연결되는지 nc 명령어를 이용해 확인하는 방법입니다, WEB/WAS 서버에서 “nc -z IP(CUBRID DB서버) PORT(브로커 포트)” 수행 후 예제와 같이 "Succeeded!"가 출력되면 연결이 가능한 상태입니다출발지 IP에서 목적지 IP/Port로 접속이 가능한 상태라고 보면 됩니다. (nc 명령어로 반복 점검이 필요할 경우 두번째 예제를 참고하세요.)

[Jboos@was_server01 ~]$ nc -z 192.168.56.3 33000

Connection to 192.168.56.3 33000 port [tcp/*] succeeded!

 

[Jboos@was_server01 ~]$ while true; do date; nc -w1 -z 192.168.56.3 33000; sleep 1; done

2018. 07. 03. () 10:59:18 KST

Connection to 192.168.56.3 33000 port [tcp/*] succeeded!

2018. 07. 03. () 10:59:19 KST

Connection to 192.168.56.3 33000 port [tcp/*] succeeded!

2018. 07. 03. () 10:59:20 KST

Connection to 192.168.56.3 33000 port [tcp/*] succeeded!

                       :

                       :

정지: Ctrl+C

 

6, 윈도우(PC)에서 CUBRID Manager 또는 CUBRID Migration Toolkit(CMT)를 사용할 경우 CUBRID DB서버로 8001, 30000 포트가 연결이 가능한지 확인이 필요한데 윈도우는 tcping 명령어로 목적지 주소와 포트를 입력해 연결이 가능한지 점검할 수 있습니다, 다만 tcping 명령어는 대부분 윈도우에 설치되어 있지 않아 CMD창에서 tcping 명령어 오류가 있으면 다음과 같은 절차로 설치가 필요할 수 있습니다.

* 설치방법

  - https://www.elifulkerson.com/projects/tcping.php 접속

  - tcping.exe 파일 다운로드

  - tcping.exe 파일을 C:\Windows\System32 폴더로 이동/복사

* 사용방법

  - 시작 > Window 시스템 > 명령어 프롬프트(CMD) 관리자 권한으로 실행

  - tcping IP(CUBRID DB서버) PORT(브로커 포트)

C:\>cd C:\Windows\System32

 

C:\Windows\System32>tcping 192.168.56.3 30000

Probing 192.168.56.3:33000/tcp - Port is open - time=10.781ms

Probing 192.168.56.3:33000/tcp - Port is open - time=1.257ms

Probing 192.168.56.3:33000/tcp - Port is open - time=1.787ms

Probing 192.168.56.3:33000/tcp - Port is open - time=0.615ms

 Ping statistics for 192.168.56.3:33000

     4 probes sent.

     4 successful, 0 failed.  (0.00% fail)

Approximate trip times in milli-seconds:

     Minimum = 0.615ms, Maximum = 10.781ms, Average = 3.610ms

 

C:\Windows\System32>tcping -t 192.168.56.3 30000

 ** Pinging continuously.  Press control-c to stop **

 Probing 192.168.56.3:33000/tcp - Port is open - time=11.171ms

Probing 192.168.56.3:33000/tcp - Port is open - time=0.869ms

Probing 192.168.56.3:33000/tcp - Port is open - time=0.548ms

Probing 192.168.56.3:33000/tcp - Port is open - time=0.950ms

Probing 192.168.56.3:33000/tcp - Port is open - time=1.783ms

정지: Control-C

 Ping statistics for 192.168.56.3:33000

     5 probes sent.

     5 successful, 0 failed.  (0.00% fail)

Approximate trip times in milli-seconds:

     Minimum = 0.548ms, Maximum = 11.171ms, Average = 3.064ms

참고로 CUBRID Manager는 관리모드와 질의모드 기능이 구분되어 있는데 관리모드를 사용할 경우는 8001, 30000 포트 오픈이 필요하고 질의모드 기능을 사용할 경우는 30000 포트만 오픈하면 CUBRID Manager 도구를 사용할 수 있습니다.