프록시란 개념이 무엇일까?
웹 프록시.. nginx 프록시는 사용해보았지만 네트워크 쪽에서 어떻게 정의되는지 몰랐다.
- 사전적 의미 : 대리인
- 네트워크 프로토콜 상에서의 의미는 ? Client - Proxy - Server
패킷이 전달될 때 앞에 프레임만 바뀌어서 전달된다.
근데 프록시가 중간에 개입을 한다고 했을 때 , 중개해서 전달을 하는 느낌
즉, 프록시 서버는 서버와 클라이언트 사이에서 요청과 응답을 처리해주게 되는 것이다.
네트워크에 연결된 모든 컴퓨터에는 IP가 있다.
마찬가지로, 프록시 서버는 자체 IP주소가 있는 네트워크의 컴퓨터이다.
그러나 때로는 제한된 웹 사이트나 서버에 액세스하여 IP주소를 표시하지 않으려는 경우도 있다.
이런 경우, 프록시 서버를 사용하여 같은 결과를 달성할 수 있다.
1. 클라이언트에서 프록시 서버로 데이터 전송
2. 프록시 서버에서 다시 웹 서버로 요청
3. 웹 서버에서 프록시 서버로 웹 응답
4. 프록시 서버에서 클라이언트로 데이터 전송
포워드 프록시 ( Forward Proxy )
일반적으로 프록시 라고 하면, 포워드 프록시를 뜻한다.
클라이언트 대신 프록시 서버가 목적 서버에 통신해주는 구성을 말한다.
이를 사용하면, 서버에서 클라이언트가 누군지 감출 수있다.
- 클라이언트와 인터넷 사이에 존재하는 프록시 서버
- 캐시 용도로 사용한다 ( 시간과 리소스 사용 절약)
- 특정 사이트에 접속하는 것을 막는다. 방화벽과 같은 개념으로 제한을 위해 사용한다
- 포워드 프록시 서버를 통과할 때 암호화 된다. 내부 ip 를 감춰주는 용도
리버스 프록시 ( Reverse Proxy )
- 인터넷과 서버사이에 존재하는 프록시 서버
- 리버스 프록시 서버가 요청을 받아 서버에 전달한 후 그 응답값을 인터넷으로 전달한다. 클라이언트는 프록시 뒤의 서버의 존재를 모르게 된다.
- 로드 밸런서의 역할로 사용하여, 집중적으로 발생하는 부하를 여러 서버로 나눠 보낼 수 있다.
- 클라이언트의 요청을 나눠서 보낼 수 있으므로, 무중단 배포 시 배포 중인 서버에 요청을 보내지 않도록 할 수 있다.
- 서버는 내부망에 넣고, 리버스 프록시 서버는 외부에 두어 보안을 강화시킬 수 있다.
- ssl 암복호화 가능, 들어오는 요청 모두 복호화, 나가는 응답을 암호화 해준다.
Forward? Reverse? 정리하자면..
- Forward Proxy 서버는 클라이언트 앞에 놓여져 있는 반면, Reverse Proxy 서버는 웹서버/WAS 앞에 놓여 있다.
- Forward Proxy는 직접 서버 URL로 요청을 보내고 내부망에서 포워드 프록시 서버를 호출하여 프록시가 요청을 보내게 되어 서버에게 클라이언트를 감출 수 있다. 반면에 Reverse Proxy는 프록시 서버 URL로만 접근이 가능하여 본 서버의 IP 정보를 숨길 수 있다.
개념이 좀 헷갈려서.. 더 정확히 이해할만한 사진을 가져왔다
외부 -> 내부망 : 리버스 프록시
내부 -> 외부에 요청 : 포워드 프록시
이게 리버스 프록시
이게 포워드
NAT 란?
- 공인 ip 를 사설ip 로, 사설 ip 를 공인 ip 로 변환해주는 주소 변환 서비스
- NAT 포워딩 테이블을 보관해서 주소 변환 서비스를 제공
- 인터넷 공인IP를 절약하고자하는 목적
DNAT
- 도착지 주소를 변경하는 NAT
- NAT, Destination NAT , 목적지 NAT
SNAT
- 출발지 주소를 변경하는 NAT
- SNAT, source NAT, 출발지 NAT
이 때, SNAT와 DNAT의 기준은 NAT가 수행되기 전 트래픽이 출발하는 시작 지점을 기준으로 나뉨
즉, 요청시 SNAT를 하여 목적지로 전송하면 해당 트래픽에 대해서 응답을 받을때에는 DNAT가 수행됨
따라서 트래픽을 요청하는 시작 시점만 고려하여 SNAT 설정을 해야함
NAT 장비를 처음 통과할때 NAT 테이블이 생성되므로 응답 패킷은 NAT 장비로 들어올때 별도의 NAT 설정없이 NAT 테이블을 보고 반대로 출발지 ip로 변환해줄 수 있음(= 역 NAT)
NAT가 정상적으로 수행되려면 역 NAT까지 정상적으로 수행되어야함
Static Source NAT
- 주소를 1:1 매핑하여 변환하는 간단한 NAT 유형
Dynamic Source NAT
- 사설 IP와 공인 IP간의 정보를 생성하여, IP 패킷이 네트워크에서 나가거나 들어올때 그 패킷 헤더의 IP주소를 변환
- 이때, 생성한 정보를 토대로 사설 IP와 공인 IP를 동적으로 매핑
출처 : https://nooblette.tistory.com/entry/NATNetwork-Address-Translator%EC%99%80-SNAT-DNAT
'☁️2024 > Computer Science' 카테고리의 다른 글
[ Network ] DMZ , 방화벽, Zone, UTM ? (2) | 2024.11.14 |
---|---|
[ Network ] SDN 과 ACI 간단 정리 #1 (2) | 2024.11.13 |
[ Network ] VIP 란? (0) | 2024.11.13 |
[ Network ] 서브넷마스크와 서브넷팅 (0) | 2024.11.12 |
[ General ]사내 인프라팀 면접 대비 cs 지식 보충 - (네트워크,가상화,백업, 이력서 기반 질문) (0) | 2024.10.01 |