이 페이지에서
SQLNET ALG
SQLNET 프로토콜은 Oracle SQL 서버에서 로드 밸런싱 및 애플리케이션별 서비스를 포함한 클라이언트의 SQL 명령을 실행하는 데 사용됩니다. 스테이트풀 방화벽 및 NAT 서비스를 지원하려면 TCP 포트 1521에 대해 SQLNET ALG를 구성해야 합니다. ALG는 제어 패킷을 모니터링하고, 데이터 트래픽에 대해 동적으로 플로우를 열며, NAT 주소 및 포트 재작성을 수행합니다.
SQLNET ALG 이해하기
SQLNET 애플리케이션 레이어 게이트웨이(ALG)는 IP 주소 및 포트 정보를 위해 TNS(Transparent Network Substrate) 리디렉션 패킷을 처리합니다. SQLNET ALG는 TNS 리디렉션 패킷 페이로드에서 네트워크 주소 변환(NAT)를 수행하고, 클라이언트에서 서버로의 새로운 연결에 대한 핀홀을 열고, 주니퍼 네트웍스 디바이스의 반대편에 있는 클라이언트와 서버 간에 데이터를 전송합니다.
SQLNET ALG는 다음과 같은 유형의 데이터 전송 모드를 지원합니다.
리디렉션 모드 — 연결-리디렉션 유형
인터리브 모드 — Connect-accept 유형
로드 밸런서 — connect-redirect-connect-redirect 유형
SQLNET은 애플리케이션과 Oracle 데이터베이스 또는 여러 Oracle 데이터베이스 간의 원격 데이터 액세스를 허용합니다. SQLNET은 주로 클라이언트 애플리케이션과 Oracle 데이터베이스 서버 간의 연결을 설정하고 유지합니다. SQLNET에는 클라이언트 및 데이터베이스 서버가 데이터를 공유, 수정 및 조작할 수 있는 여러 통신 레이어가 있습니다.
Oracle SQL 서버는 SQLNET 프로토콜을 사용하여 로드 밸런싱 및 애플리케이션별 서비스를 포함한 클라이언트의 SQL 명령을 실행합니다. SQLNET 프로토콜은 TNS를 네트워킹 아키텍처로 사용하며 모든 SQLNET 트래픽은 TNS 패킷 형식으로 캡슐화됩니다.
SQLNET ALG는 제어 패킷을 모니터링하고, 데이터 트래픽에 대한 핀홀을 열고, NAT 및 포트 재작성을 수행합니다. TCP 포트 1521에 대한 SQLNET ALG를 구성하려면 스테이트풀 방화벽 및 NAT 서비스를 지원해야 합니다.
예: SQLNET ALG 구성
SQLNET ALG는 TNS 리디렉션 패킷을 처리하고, NAT를 수행하며, 클라이언트에서 서버로의 새로운 연결을 위한 핀홀을 엽니다.
이 예는 경로 또는 NAT 모드에서 SQLNET ALG를 구성하고, SQLNET 트래픽이 디바이스를 통과하도록 허용하고, 주니퍼 네트웍스 디바이스의 반대편에 있는 클라이언트와 서버 간에 데이터를 전송하는 방법을 보여줍니다.
요구 사항
이 예는 다음과 같은 하드웨어 및 소프트웨어 구성 요소를 사용합니다.
SRX 시리즈 방화벽
두 개의 PC(클라이언트 및 서버)
시작하기 전에 다음을 수행합니다.
ALG의 개념을 이해합니다. ALG 개요를 참조하십시오.
SQLNET ALG의 기본 사항을 이해합니다. SQLNET ALG 이해를 참조하십시오.
개요
이 예에서 먼저 디바이스에서 네트워크 인터페이스를 구성합니다. 보안 영역을 생성하고 영역에 인터페이스를 할당하고 SQLNET 트래픽이 SRX 시리즈 방화벽을 통과하도록 허용하는 정책을 구성합니다.
그런 다음 대상 주소 40.0.172.10/32와 일치하도록 규칙 r1과 함께 정적 NAT 규칙 세트 rs1을 생성하고 주소 40.0.172.45/32가 있는 정적 NAT 접두사를 생성합니다.
그런 다음 소스 규칙 세트 src-rs1을 사용하여 소스 NAT 풀 src-p1을 생성하여 인터페이스 fe-3/0/0.0에서 인터페이스 fe-3/0/1.0으로 패킷을 변환합니다. 패킷을 일치시키면 소스 주소가 src-p1 풀의 IP 주소로 변환됩니다.
그런 다음 대상 규칙 세트 des-rs1을 사용하여 대상 NAT 풀 des-p1을 생성하여 영역 트러스트에서 대상 주소 40.0.172.10/32로 패킷을 변환합니다. 패킷을 일치시키면 대상 주소가 des-p1 풀의 IP 주소로 변환됩니다. 마지막으로 SQLNET ALG 추적 옵션을 활성화합니다.
구성
SQLNET ALG를 구성하려면 다음 작업을 수행하십시오.
- 경로 모드 구성
- 정적 네트워크 변환(NAT) 규칙 세트 구성
- 소스 NAT 풀 및 규칙 세트 구성
- 대상 NAT 풀 및 규칙 세트 구성
- SQLNET ALG 활성화
- SQLNET ALG 추적 옵션 활성화
경로 모드 구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit
합니다.
set interfaces ge-0/0/0 unit 0 family inet address 10.208.172.58/21 set interfaces fe-3/0/0 unit 0 family inet address 30.3.3.149/8 set interfaces fe-3/0/1 unit 0 family inet address 40.4.4.149/8 set security zones security-zone trust host-inbound-traffic system-services all set security zones security-zone trust host-inbound-traffic protocols all set security zones security-zone trust interfaces fe-3/0/0.0 set security zones security-zone untrust host-inbound-traffic system-services all set security zones security-zone untrust host-inbound-traffic protocols all set security zones security-zone untrust interfaces fe-3/0/1.0 set security policies from-zone trust to-zone untrust policy sql match source-address any set security policies from-zone trust to-zone untrust policy sql match destination-address any set security policies from-zone trust to-zone untrust policy sql match application junos-sqlnet-v2 set security policies from-zone trust to-zone untrust policy sql then permit
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
경로 모드 구성 방법:
인터페이스를 구성합니다.
[edit interfaces] user@host# set ge-0/0/0 unit 0 family inet address 10.208.172.58/21 user@host# set fe-3/0/0 unit 0 family inet address 30.3.3.149/8 user@host# set fe-3/0/1 unit 0 family inet address 40.4.4.149/8
영역을 구성하고 영역에 인터페이스를 할당합니다.
[edit security zones security-zone] user@host# set trust host-inbound-traffic system-services all user@host# set trust host-inbound-traffic protocols all user@host# set trust interfaces fe-3/0/0.0 user@host# set untrust host-inbound-traffic system-services all user@host# set untrust host-inbound-traffic protocols all user@host# set untrust interfaces fe-3/0/1.0
트러스트 영역에서 신뢰할 수 없는 영역으로 SQL 트래픽을 허용하는 SQL 정책을 구성합니다.
[edit security policies from-zone trust to-zone untrust ] user@host# set policy sql match source-address any user@host# set policy sql match destination-address any user@host# set policy sql match application junos-sqlnet-v2 user@host# set policy sql then permit
결과
구성 모드에서 , show security zones
및 show security policies
명령을 입력하여 구성을 show interfaces
확인합니다. 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.
간결성을 위해 이 show
출력에는 이 예와 관련된 구성만 포함됩니다. 시스템의 다른 구성은 타원(...)으로 대체되었습니다.
[edit] user@host# show interfaces ge-0/0/0 { unit 0 { family inet { address 10.208.172.58/21; } } } fe-3/0/0 { unit 0 { family inet { address 30.3.3.149/8; } } } fe-3/0/1 { unit 0 { family inet { address 40.4.4.149/8; } } }
[edit] user@host# show security zones ... security-zone trust { host-inbound-traffic { system-services { all; } protocols { all; } } interfaces { fe-3/0/0.0; } } security-zone untrust { host-inbound-traffic { system-services { all; } protocols { all; } } interfaces { fe-3/0/1.0; } } ...
[edit] user@host# show security policies from-zone trust to-zone untrust { policy sql { match { source-address any; destination-address any; application junos-sqlnet-v2; } then { permit; } } }
디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
정적 네트워크 변환(NAT) 규칙 세트 구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit
합니다.
set security nat static rule-set rs1 from zone trust set security nat static rule-set rs1 rule r1 match destination-address 40.0.172.10/32 set security nat static rule-set rs1 rule r1 then static-nat prefix 40.0.172.45/32
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
정적 NAT 규칙 세트를 구성하려면 다음을 수행합니다.
정적 NAT 규칙 세트를 생성합니다.
[edit security nat static rule-set rs1] user@host#set from zone trust
대상 주소와 일치하는 규칙을 정의합니다.
[edit security nat static rule-set rs1] user@host# set rule r1 match destination-address 40.0.172.10/32
디바이스에 대한 정적 NAT 접두사 정의.
[edit security nat static rule-set rs1] user@host# set rule r1 then static-nat prefix 40.0.172.45/32
결과
구성 모드에서 명령을 입력하여 구성을 확인합니다 show security nat
. 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show security nat static { rule-set rs1 { from zone trust; rule r1 { match { destination-address 40.0.172.10/32; } then { static-nat { prefix { 40.0.172.45/32; } } } } } }
디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
소스 NAT 풀 및 규칙 세트 구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit
합니다.
set security nat source pool src-p1 address 40.0.172.100/32 to 40.0.172.101/32 set security nat source rule-set src-rs1 from interface fe-3/0/0.0 set security nat source rule-set src-rs1 to interface fe-3/0/1.0 set security nat source rule-set src-rs1 rule r1 match source-address 30.0.0.0/8 set security nat source rule-set src-rs1 rule r1 match destination-address 40.0.0.0/8 set security nat source rule-set src-rs1 rule r1 then source-nat pool src-p1
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
소스 NAT 풀 및 규칙 세트를 구성하려면 다음을 수행합니다.
소스 NAT 풀을 생성합니다.
[edit security nat source] user@host#set pool src-p1 address 40.0.172.100/32 to 40.0.172.101/32
소스 NAT 규칙 집합을 생성합니다.
[edit security nat source] user@host# set rule-set src-rs1 from interface fe-3/0/0.0 user@host# set rule-set src-rs1 to interface fe-3/0/1.0
패킷과 일치하는 규칙을 구성하고 소스 주소를 소스 풀의 주소로 변환합니다.
[edit security nat source] user@host# set rule-set src-rs1 rule r1 match source-address 30.0.0.0/8
패킷과 일치하는 규칙을 구성하고 대상 주소를 소스 풀의 주소로 변환합니다.
[edit security nat source] user@host# set rule-set src-rs1 rule r1 match destination-address 40.0.0.0/8
규칙에서 소스 NAT 풀을 구성합니다.
[edit security nat source] user@host# set rule-set src-rs1 rule r1 then source-nat pool src-p1
결과
구성 모드에서 명령을 입력하여 구성을 확인합니다 show security nat
. 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show security nat source { pool src-p1 { address { 40.0.172.100/32 to 40.0.172.101/32; } } rule-set src-rs1 { from interface fe-3/0/0.0; to interface fe-3/0/1.0; rule r1 { match { source-address 30.0.0.0/8; destination-address 40.0.0.0/8; } then { source-nat { pool { src-p1; } } } } } }
디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
대상 NAT 풀 및 규칙 세트 구성
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit
합니다.
set security nat destination pool des-p1 address 40.0.172.45/32 set security nat destination rule-set des-rs1 from zone trust set security nat destination rule-set des-rs1 rule des-r1 match source-address 30.0.172.12/32 set security nat destination rule-set des-rs1 rule des-r1 match destination-address 40.0.172.10/32 set security nat destination rule-set des-rs1 rule des-r1 then destination-nat pool des-p1
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
대상 NAT 풀 및 규칙 세트를 구성하려면 다음을 수행합니다.
대상 NAT 풀을 생성합니다.
[edit security nat destination] user@host#set pool des-p1 address 40.0.172.45/32
대상 NAT 규칙 집합을 생성합니다.
[edit security nat destination] user@host# set rule-set des-rs1 from zone trust
패킷과 일치하는 규칙을 구성하고 소스 주소를 풀의 주소로 변환합니다.
[edit security nat destination] user@host# set rule-set des-rs1 rule des-r1 match source-address 30.0.172.12/32
패킷과 일치하는 규칙을 구성하고 대상 주소를 풀의 주소로 변환합니다.
[edit security nat destination] user@host# set rule-set des-rs1 rule des-r1 match destination-address 40.0.172.10/32
규칙에서 소스 NAT 풀을 구성합니다.
[edit security nat destination] user@host# set rule-set des-rs1 rule des-r1 then destination-nat pool des-p1
결과
구성 모드에서 명령을 입력하여 구성을 확인합니다 show security nat
. 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show security nat destination { pool des-p1 { address { 40.0.172.45/32; } } rule-set des-rs1 { from zone trust; rule des-r1 { match { source-address 30.0.172.12/32; destination-address 40.0.172.10/32; } then { destination-nat { pool { des-p1; } } } } }
디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
SQLNET ALG 활성화
CLI 빠른 구성
릴리스 15.1X49-D10 및 Junos OS 릴리스 17.3R1 Junos OS SQLNET 애플리케이션 레이어 게이트웨이는 기본적으로 활성화됩니다.
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit
합니다.
set security alg sql
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
SQLNET ALG를 활성화하려면:
SQLNET ALG를 활성화합니다.
[edit ] user@host#set security alg sql
SQLNET ALG 추적 옵션 활성화
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브러브를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 계층 수준에서 명령을 CLI [edit]
로 복사해 붙여 넣은 다음, 구성 모드에서 을(를) 입력 commit
합니다.
set security alg sql traceoptions flag all set security alg traceoptions file trace set security alg traceoptions file size 1g set security alg traceoptions level verbose
단계별 절차
다음 예제에서는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 이를 수행하는 방법에 대한 지침은 CLI 사용자 가이드의 구성 모드에서 CLI 편집기 사용을 참조하십시오.
SQLNET ALG 추적 옵션을 활성화하려면 다음을 수행합니다.
SQLNET ALG 추적 옵션을 활성화합니다.
[edit security alg] user@host#set sql traceoptions flag all
추적 작업에서 출력을 수신하도록 파일 이름을 구성합니다.
[edit security alg] user@host#set traceoptions file trace
최대 추적 파일 크기를 지정합니다.
[edit security alg] user@host#set traceoptions file size 1g
추적 출력 수준을 지정합니다.
[edit security alg] user@host#set traceoptions level verbose
결과
구성 모드에서 명령을 입력하여 구성을 확인합니다 show security alg
. 출력에 의도한 구성이 표시되지 않으면 이 예의 구성 지침을 반복하여 수정합니다.
[edit] user@host# show security alg traceoptions { file trace size 1g; level verbose; } sql traceoptions flag all;
디바이스 구성이 완료되면 구성 모드에서 을(를) 입력합니다 commit
.
확인
구성이 제대로 작동하는지 확인합니다.
SQLNET ALG 제어 세션 확인
목적
SQL 명령이 실행되고 모든 SQL 제어 및 데이터 세션이 생성되었는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security flow session
.
user@host>show security flow session Session ID: 10880, Policy name: sql, Timeout: 2, Valid In: 30.0.172.12/52315 --> 40.0.172.35/1521;tcp, If: fe-3/0/0.0, Pkts: 6, Bytes: 492 Out: 40.0.172.35/1521 --> 30.0.172.12/52315;tcp, If: fe-3/0/1.0, Pkts: 4, Bytes: 227 Session ID: 10881, Policy name: sql, Timeout: 1800, Valid Resource information : SQLV2 ALG, 5, 18 In: 30.0.172.12/45944 --> 40.0.172.35/1114;tcp, If: fe-3/0/0.0, Pkts: 18, Bytes: 4240 Out: 40.0.172.35/1114 --> 30.0.172.12/45944;tcp, If: fe-3/0/1.0, Pkts: 15, Bytes: 3989 Total sessions: 2
의미
Session ID—세션을 식별하는 번호입니다. 이 ID를 사용하여 정책 이름, 패킷 수와 같은 세션에 대한 자세한 정보를 얻을 수 있습니다.
Policy name-트래픽을 허용한 정책 이름.
In-수신 플로우(해당 소스 및 대상 포트 번호가 있는 소스 및 대상 IP 주소, 세션은 TCP이며, 이 세션의 소스 인터페이스는 fe-3/0/0.0)입니다.
Out-역 플로우(해당 소스 및 대상 포트 번호가 있는 소스 및 대상 IP 주소, 세션은 TCP, 이 세션의 대상 인터페이스는 fe-3/0/1.0).
SQLNET ALG 확인
목적
SQLNET ALG가 활성화되어 있는지 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security alg status
.
user@host>show security alg status ALG Status : DNS : Enabled FTP : Enabled H323 : Disabled MGCP : Disabled MSRPC : Enabled PPTP : Enabled RSH : Disabled RTSP : Disabled SCCP : Disabled SIP : Disabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
의미
출력은 다음과 같이 SQLNET ALG 상태를 보여줍니다.
활성화 - SQLNET ALG가 활성화되어 있는지 표시
비활성화 - SQLNET ALG가 비활성화되어 있는 것을 보여줍니다.
SQLNET ALG 리소스 관리자 그룹 확인
목적
SQLNET ALG에서 사용하는 총 리소스 관리자 그룹 및 활성 그룹의 수를 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security resource-manager group active
.
user@host>show security resource-manager group active Group ID 1: Application - SQL ALG Total groups 677, active groups 1
SQLNET ALG 리소스 정보 확인
목적
SQLNET ALG에서 사용하는 총 리소스 및 활성 리소스 수를 확인합니다.
작업
운영 모드에서 명령을 입력합니다 show security resource-manager resource active
.
user@host>show security resource-manager resource active Resource ID 2: Group ID - 1, Application - SQL ALG Resource ID 1: Group ID - 1, Application - SQL ALG Total Resources 4044, active resources 2