NCP(네이버클라우드)에서 NetworkProxyLB를 활용해 FTP서버를 구성하는 방법
구성
- OS : Windows 2019 Server
- FTP 서버는 Passive 모드로 구성
- LB : NetworkProxyLB(당연하게도 NetworkLB도 사용가능)
- Target : Windows 2019 Server
- 리스너 : 21번포트, FTP 서버가 사용할 임의의 포트번호
- 해당 설정에서는 5500번 사용
[구성도]
[트래픽 플로우]
Endpoint User → LB → Windows Server FTP
## 제어채널 연결 플로우(FTP 21번포트를 활용한 제어채널 연결)
1. Endpoint User → LB
출발지 IP: 172.16.0.96 출발지 포트 : 랜덤포트
목적지 포트 : 10.70.132.201(LB의 IP) 목적지 포트: 21(LB의 리스너)
2. LB → Windows Server
출발지 IP : 10.70.132.202~204 출발지 포트 : 랜덤
목적지 IP : 10.70.132.11 목적지 포트 : 21번
3. Windows Server → LB
출발지 IP : 10.70.132.11 출발지 포트 :21
목적지 IP : 10.70.132.201 목적지 포트 : LB가 준 목적지 포트
4. LB → Endpoint User
생략
## 제어채널 연결 완료가 됐음으로 데이터채널 연결을 시도
이 때 Endpoint User가 서버에게 어떤 포트로 서버에 접속하면 되냐고 물어보면 서버가 어떤 포트로 접속해라고 응답을 줌
해당 예제에서는 5500번으로 Windows Server에 설정함
## 데이터채널
5. Endpoint User → LB
출발지 IP: 172.16.0.96 출발지 포트 : 랜덤포트
목적지 포트 : 10.70.132.201(LB의 IP) 목적지 포트: 5500(LB의 리스너)
6. LB → Windows Server
출발지 IP : 10.70.132.202~204 출발지 포트 : 랜덤
목적지 IP : 10.70.132.11 목적지 포트 : 5500번
7. Windows Server → LB
출발지 IP : 10.70.132.11 출발지 포트 :5500
목적지 IP : 10.70.132.201 목적지 포트 : LB가 준 목적지 포트
8. LB → Endpoint User
생략
[네이버클라우드 LB 참고사항]
즉, LB → Windows Server로 트래픽이 흐를 때 Windows Server기준 Source IP는 LB의 IP
FTP 모드
FTP는 기본적으로 2가지 모드를 가지고 있습니다.
- Active
- Passive
Acitve는 서버가 클라이언트에 접속해서 파일을 업로드/다운로드 하는 방식
- 사용 포트 : 21번 제어포트, 20번 데이터전송 포트
Passive는 클라이언트가 서버에 접속해서 파일을 업로드/다운로드 하는 방식
- 사용 포트 : 21번 제어포트, 서버가 지정하는 Range 포트(5500-5500)
- 외부와 통신할 IP (10.70.132.201)
- 아래 링크는 Windows Server FTP Passive 모드 설정하는 공식 문서
[관련 패킷]
###Endpoint User 패킷
1. ID/PW 입력
2. 제어채널 연결 완료 200 Type set to I 응답 받음
3. PASV로 Passive모드 요청 후 Entering Passive Mode 전환
4. (10.70.132.201.21.214)에서 21*256 +214는 5500의 숫자를 가짐.해당 5500은 해당 예제에서 설정한 서버의 포트범위
### Windows Server 패킷
## Endpoint User/Windows Server 5500번 포트를 사용한 파일 다운로드
A. Endpoint User
B. Windows Server
[결론 ]
해당 Network Proxy LB를 활용해 FTP 서버를 구축하는 것을 설명했습니다. 포트범위와 FTP 외부 IP설정만 잘 한다면 문제 없이 설정됩니다. 다만 LB를 설정하고 FTP를 접속하면 디렉토리 조회 속도가 조금 늦을 수 있습니다. 해당 부분 최적화는 한 번 NCP에 문의를 해봐야할 듯 합니다.
[기타 참고사항]
서버의 포트범위 설정을 LB의 리스너로 등록해야 하는데... 리스너(포트번호)는 수동으로 전부 등록해줘야 한다고 공식 답변을 받았습니다.
FTP 로그인 권한 문제 발생 시 FTP피지컬 경로에 대한 권한확인 한 번 해보시길 바랍니다.
끊김 현상이 심하다면 아래와 같이 Filezila FTP Server 설치를 통해 문제를 해결할 수 있습니다.
'클라우드' 카테고리의 다른 글
NCP(네이버클라우드) NetworkProxyLB를 활용한 FTP서버 설정2 - 파일질라 서버 설치(L3 DSR FTP) (1) | 2024.10.28 |
---|---|
API를 활용한 네이버클라우드 Target group 조회/생성/적용 (2) | 2024.09.26 |