본문 바로가기

프로그래밍/Computer Network

9. VPN & Proxy

1. VPN(Virtual Private Networks)

VPN실제로 물리적으로 같은 local network에 있지 않은 hosts들의 local network의 확장을 가능하게 하는 기술이다. 

이것을 이용하면, 실제로 직원이 사무실에 바깥에 있더라도 회사내의 네트워크에 있는 것처럼 업무를 볼 수 있다. 

VPN은 기본적으로 tunneling protocol으로 encrypted tunnel을 생성하여 local이 아닌 것들에 대한 access를 제공한다.

또한, 일반적으로 Two-factor authentication이라는 상호간에 인증된 것들끼리 연결될 수 있도록 한다. Two-factor authentication은 인증을 위해 username, password가 이외에 추가적인 것을 요구하는 기술이다. 그런것들 중 하나로 특정 hardware/software에서 생성되어 짧은 시간 존재할 수 있는 numerical token이 있다.

 

표준이 정해져있진 않지만, 다음과 같이 동작할 수 있다. 

먼저, HostA와 Router X가 VPN connection을 맺는다. Host A는 data link layer의 payload인 IP header, IP payload를 암호화시키고 New IP header을 붙이고 캡슐화시켜 보낸다. 인터넷을 통해 해당 패킷을 받은 Router X는 IP header를 보고, VPN connection이 맺어진 곳으로 온 것을 확인하고, 암호화된 것을 복호화해 원본 IP datagram을 추출하고, 이를 다시 캡슐화하여 목적지로 보낸다. 만약, Router간에 VPN connection이 이루어져있다면, IP datagram의 암호화 후 캡슐화 시켜 전송하는 것은 Host가 아닌 출발지 network의 router의 역할이 될 것이고, 이 경우 두 네크워크간의 통신은 하나의 로컬 네트워크에서의 통신처럼 보일 것이다. 

 

이런 방식으로 VPN은 Host-router간 또는 router-router간 encrypted tunnel을 통해 network, transport, application layer의 정보를 숨기면서 네트워크를 통해 패킷을 전송할 수 있다.

 

2. Proxy services

Proxy service란, client와 server사이의 중개자 역할을 하는 server이다. 

Proxy는 network의 모든 layer에 존재할 수 있고, Anonymity, security, content flitering, increased performance 등 여러가지 많은 기능을 제공할 수 있다. 우리가 많이 들어본 것 중에 하나는 web proxy이다.

이것은 web traffic을 위해서 도입된 proxy인데, 예전에는 인터넷이 매우 느렸기 때문에 웹 조직은 이것을 client쪽에 두어 caching기능을 하게 함으로서 client가 이전과 동일한 페이지를 요청할 때, original server까지와서 처리하는 것이 아닌 proxy가 응답을 줌으로서 성능을 향상시키고 부하를 분산시켰다. 이러한 proxy를 Forward proxy라고 하고, client를 대표하는 역할을 하는 server이다.

요즘의 web proxy는 traffic을 검사하여 request를 허용할지 거부할지를 결정하는 역할을 한다. 

Proxy의 또다른 예는 Reverse proxy이다. Reverse proxy는 external client들에게는 single server처럼 보이지만, 실제로는 그 뒤의 많은 server들을 대표하는 server이다. 이것은 DNS round robin의 load balancing방식과 같다. 

요즘에는 많은 traffic이 암호화된 형태로 들어오므로, 암호화/복호화를 수행하는 Reverse proxy를 둠으로서 성능을 향상시킬 수 있다.

'프로그래밍 > Computer Network' 카테고리의 다른 글

11. Connecting to Internet (2)  (0) 2024.04.20
10. Connecting to Internet (1)  (0) 2024.04.16
8. DHCP & NAT  (0) 2024.04.14
7. DNS for name resolution  (0) 2024.04.14
6. Application Layer  (0) 2024.04.10