Message Server에 보안 권고 설정을 하다 보면 Internal Message Server Port라는 것을 보실 거예요. 그럼 Internal과 External Message Server Port의 차이는 뭘까요?
우선 간단히 말하면 Internal은 말 그대로 내부의 Message Server 통신을 의미하고, External Message Server는 외부 통신을 의미합니다.
그럼 내부, 외부는 뭘까요?
우선 여기서 말하는 내부는 어플리케이션 서버(AP서버)가 PAS(CI)에 등록(로그인)하기 위해 사용하는 포트를 말합니다.
외부는 우리가 흔히 사용하는 로그온 그룹, 부하 분산 등 Read-only Access에 사용되는 것이구요.
Internal Message Server Port는 기본값으로 39NN 포트를 사용하고, rdisp/msserv_internal 파라미터로 설정할 수 있습니다. 여기서 NN은 Message Server가 있는 ASCS의 인스턴스 넘버입니다.
External Message Server Port는 기본값으로 sapms<SID> 서비스에서 사용하는 포트를 사용하고, rdisp/msserv 파라미터로 설정할 수 있습니다. sapms<SID>는 /etc/services 에서 확인할 수 있습니다.
그럼 간단히 테스트를 해볼까요?
저의 테스트 환경은 아래와 같습니다.
- OS: CentOS7
- DB: Oracle 11.2
- SAP 버전: SAP ERP 6.0 EhP4
- Servers: PAS 1대, AAS 1대
- 로그온 그룹에 PAS, AAS 등록된 상태
- PAS는 실행 중이며, AAS는 실행 중이지 않은 상태
- PAS 내 ASCS 인스턴스 넘버는 01
- 사전에 방화벽 포트를 모두 열어놓은 상태에서 로그온 그룹에 PAS, AAS를 모두 포함시켜 놓았으며, 이후에 방화벽을 닫음
테스트 시나리오
1. PAS 서버 방화벽 3601, 3901 차단 상태에서 AAS 기동
2. PAS 서버 방화벽 3901만 허용 후 AAS 재기동
3. PAS 서버 방화벽 3601,3901 모두 허용 후 로그온 그룹 테스트
1. PAS 서버 방화벽 3601, 3901 차단 상태에서 AAS 기동
우선 현재 방화벽 상태를 알아보겠습니다.
[root@testehp4ci ~]# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcpv6-client ssh
ports: 1521/tcp 3200/tcp 3300/tcp 4237/tcp 2049/tcp 111/tcp 3201/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
3601, 3901 포트는 열려있지 않습니다.
PAS는 실행 중인 상태입니다.
이제 AAS를 실행시켜볼까요?
testehp4ap:eh4adm 36> startsap
Checking EH4 Database
Database is running
-------------------------------------------
Starting Startup Agent sapstartsrv
OK
Instance Service on host testehp4ap started
-------------------------------------------
starting SAP Instance D00
Startup-Log is written to /home/eh4adm/startsap_D00.log
-------------------------------------------
/usr/sap/EH4/D00/exe/sapcontrol -prot NI_HTTP -nr 00 -function Start
Instance on host testehp4ap started
우선은 실행이 된 것처럼 보입니다. 하지만 PAS로 접속해서 T-Code: SM51이나 SMLG로 들어가보면 AAS 호스트는 보이지 않는데요,
AAS 호스트의 Dispatcher 로그를 보면, 메시지서버에 접속하는 데에 실패한 것을 확인할 수 있습니다. 그리고 여기서 Internal Message Server Port인 3901 포트로 접속을 시도한 것을 볼 수 있죠.
testehp4ap:eh4adm 39> cd /usr/sap/EH4/D00/work
testehp4ap:eh4adm 41> vi dev_disp
Wed Jun 5 23:01:44 2019
***LOG Q0I=> NiPConnect2: 192.168.192.175:3901: connect (113: No route to host) [nixxi.cpp 3289]
*** ERROR => NiPConnect2: SiPeekPendConn failed for hdl 39/sock 12
(SI_ECONN_REFUSE/113; I4; ST; 192.168.192.175:3901) [nixxi.cpp 3289]
*** ERROR => MsIAttachEx: NiBufConnect to testehp4ci/3901 failed (rc=NIECONN_REFUSED) [msxxi.c 718]
2. PAS 서버 방화벽 3901만 허용 후 AAS 재기동
그럼 이번에는 PAS 서버의 3901 포트를 허용한 후에 AAS를 재기동해보겠습니다.
아래와 같이 방화벽 3901 포트를 열어주고,
[root@testehp4ci ~]# firewall-cmd --permanent --add-port=3901/tcp
success
[root@testehp4ci ~]# firewall-cmd --reload
success
[root@testehp4ci ~]# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcpv6-client ssh
ports: 1521/tcp 3200/tcp 3300/tcp 3901/tcp 4237/tcp 2049/tcp 111/tcp 3201/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
AAS를 중지/시작할게요.
testehp4ap:eh4adm 42> stopsap
Checking EH4 Database
Database is running
-------------------------------------------
stopping the SAP instance D00
Shutdown-Log is written to /home/eh4adm/stopsap_D00.log
-------------------------------------------
/usr/sap/EH4/D00/exe/sapcontrol -prot NI_HTTP -nr 00 -function Stop
Instance on host testehp4ap stopped
Waiting for cleanup of resources
....................................................................
testehp4ap:eh4adm 43> startsap
Checking EH4 Database
Database is running
-------------------------------------------
Starting Startup Agent sapstartsrv
OK
Instance Service on host testehp4ap started
-------------------------------------------
starting SAP Instance D00
Startup-Log is written to /home/eh4adm/startsap_D00.log
-------------------------------------------
/usr/sap/EH4/D00/exe/sapcontrol -prot NI_HTTP -nr 00 -function Start
Instance on host testehp4ap started
T-Code: SM51, SMLG를 실행해보면, 아래와 같이 정상 동작하는 것을 볼 수 있습니다.
그럼 이제 로그온 그룹을 사용해서 SAPGUI로 로그인해볼까요?
이런… 에러메시지가 뜨네요.
이건 외부에서 메시지 서버의 정보를 받아올 수 없기 때문입니다. 즉, External Message Server Port인 3601 포트가 막혀 있기 때문이죠.
3. PAS 서버 방화벽 3601,3901 모두 허용 후 로그온 그룹 테스트
그럼 이제 마지막으로 3601 포트를 열어주고 로그온 그룹으로 SAPGUI를 열어보는 테스트를 해보겠습니다.
아래와 같이 방화벽 3601포트를 열어주시고,
[root@testehp4ci ~]# firewall-cmd --permanent --add-port=3601/tcp
success
[root@testehp4ci ~]# firewall-cmd --reload
success
[root@testehp4ci ~]# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcpv6-client ssh
ports: 1521/tcp 3200/tcp 3300/tcp 3901/tcp 4237/tcp 2049/tcp 3601/tcp 111/tcp 3201/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
다시 SAPGUI에서 로그온 그룹으로 테스트를 해보면?
위와 같이 잘 연결되는 것을 확인할 수 있습니다.
물론 로그인도 잘 되네요!
지금까지 Internal Message Server 포트와 External Message Server 포트의 차이점에 대해 알아보았습니다.
수고하셨습니다~
참고자료:
'SAP BC' 카테고리의 다른 글
SAPCAR option (0) | 2021.10.25 |
---|---|
SAP 프린터 설정 (사용자 PC 프린터 사용) (0) | 2020.07.28 |
WEB GUI 활성화 (1) | 2020.07.07 |
ASCS / PAS / AAS / CI / DI (2) | 2020.04.06 |
[SAP] TemSe와 Spool - 개념 및 관리방법 (0) | 2020.03.24 |