어제에 이어 간단하게 L4에 대해서 포스팅 하려고 한다.
어제는 In-Line 구성과 One-Arm 구성에 대해서 이야기를 했었는데, 오늘은 One-Arm 구성에서의 동작 방식을 두가지로 나누어서 설명을 해보려고 한다.
일반적으로 One-Arm으로 구성하게되면 프록시 모드라고 생각을 한다.
그럼 우선 그림부터 보고 생각을 하도록 하자.
Proxy Mode
어제 그림에서 선과 글씨만 추가했다.. 사실 이전의 포스팅은 이 설명을 하기 위한 전편이기 때문이다.
나중에 패킷에 대해서도 심도있게 다뤄볼 예정이지만, 우선 간단하게 얘기하자면 패킷은 티어(Tier)가 내려갈수록 점점 바이트가 커지면서 붙는 플래그들이 많아진다.
L3에서 IP라는 녀석을 볼 수가 있는데, 그 중 Source IP와 Destination IP만을 그림에서 적어보았다.
간단하게 설명하자면, 내 사이트를 접속하기 위해서는 일반적으로 검색하고 들어오겠지만;; 나의 경우에는 thinkground.org라는 주소를 치고 들어온다.
그럼 어딘가에 있을 DNS서버에다가 저 영어로된 주소를 가지고 ip가 뭔지를 물어보러 다니다가 찾아온다.
그럼 우린 그 IP를 가지고 사이트에 접속하게 되는 방식이다. 물론 그림에선 그 과정은 생략하고 IP로 접속하는걸로 해두었다.
나는 독립된(Standalone) 서버를 운영하고 있지만, 기업체에서 운영하고 있는 서버들은 보통 이중화가 되어있다.
그렇기 때문에 L4를 사용을 하게 되고 DNS에 매핑되어 있는 IP는 L4가 가지고 있는 Virtual IP(VIP)인 경우가 많다.
위 그림은 Proxy Mode라고 적혀있는데, 말그대로 L4에서 서버로 패킷을 분산시켜주면서 Source IP를 변형시켜 다시 L4로 돌아온 후 클라이언트 PC로 돌아가게끔 해주는 방식이다.
모든 구성은 어떻게 하냐에 따라 다르겠지만 일반적으로 구축하는데 고려해야 하는 사항들이 조금 있다.(꼭 고려해야 하는 사항은 아니지만 참고해두면 좋을 수 있으니 읽어만 두면 될듯하다.)
1. Proxy 방식
– L4에서 Proxy를 어떻게 할지를 결정해야 한다. 처음부터 Proxy IP를 지정해놓고 그 IP를 사용해서 변형시키게 만들어 줄 수 있다.
하지만 자동적으로 IP를 결정해서 변형하게끔도 할 수 있다. 이건 경우에 따라 고려하여 결정하면 될 것 같다.
2. Real Server의 Gateway 설정
– 일반적으로 서버는 L3의 Interface IP를 Gateway IP(or Default Routing)로 설정한다.
하지만 좀 더 확실하게 L4로 가게하기 위해서는 게이트웨이를 L4의 Interface IP로 설정해주는 것이 좋다.
DSR(Direct Server Return) Mode
DSR 모드는 위 그림에도 적어놓았지만 Direct Server Return의 줄임말이다.
일반적으로 사용되는 Proxy Mode는 서비스의 특성에 따라 치명적인 단점을 가질 수 있는데, 사용자의 IP 추적이 힘들다는 것이다.
사용자의 패턴 분석이 필요한 서비스라면 Proxy Mode를 사용하는 인프라 구조를 선호하지 않을 것이다.
이런 단점들을 극복하면서~ L4의 부담 또한 줄여주는 방식이 DSR이다. 위의 그림과 비교해도 깔끔해 보이지 않는가?
Client에서 Server로 들어오는 과정은 비슷하지만 돌아가는 과정이 다르다.
하지만 이 방식을 사용하기 위해서는 고도의(?) 기술이 필요한데, 그것은 바로 L4에서 특정 서비스에 대해 NAT를 풀어줘야 하는 기술과 Server에서 Gateway를 L3로 잡아주면서~Loopback IP를 설정해줘야 한다는 것이다.
언뜻 보기에는 별거 아닐 수 있지만, 나름 대단히 고민한 구성일 것이다.
우리는 세션이라는 것에 대해서 알아야 하는데, 세션은 정합성이 맞아야 한다. 내가 보낸 패킷과 돌아온 패킷에 대해 일치하지 않는 부분이 있다면 내가 보낸 것에 대한 응답이 아니라고 생각하고 패킷을 폐기처분 해버린다…그렇기 때문에 저런 기술들이 필요한 것이다.
정리하자면, 일반적으로 전문 서비스를 들여오는 것이 아니고 계속해서 서비스를 들여오는 인프라 구성을 할 때에는 위와 같은 One-Arm 구성을 많이 채택한다.(L4의 부담을 줄여주기 위해) 그리고 Proxy-Mode와 DSR을 혼합하여 사용을 하는데, 기본적으로 들어오는 모든 서비스는 DSR모드를 적용해주어서 L4의 가용성을 높이는데 주력하고, 필요할 경우에 Proxy Mode를 사용한다.
++
Proxy-Mode가 필요한 경우에 대해 한가지 예를 들어보겠다. 기본적으로 DSR구성으로 되어있는데 VIP가 올라가 있는 서비스 A와 B가 있다고 한다. 근데 A와 B는 서로 통신이 필요하다고 한다면 DSR 방식으로는 통신이 안된다. 그렇기 때문에 Proxy Mode로 변경을 해주어야 통신이 가능하다.
그 이유는 그림처럼 Packet의 흐름대로 Source/Destination IP를 적어가면서 하다보면 이해가 갈 것이다^^ 그것 또한 공부이니..!
Comments 2
원암 구성에서 L4가 백본이 아닌 L2에 붙어있어도 L4 config 구성하는데 다를 건 없겠죠?
Author
다를 수도 있고 같은 수도 있습니다.
대체로 본문에서 설명하고 있는 2가지 구성에서도 Config 자체에 큰 차이는 없습니다.
다만, 여기서 사용하고 있는 IP 범위를 어떻게 가져갈 것인지에 따라 구분될 수 있습니다.
한 가지 예만 들자면, L2 스위치에서 vlan의 구성 유무에 따라서도 config가 바뀔 수 있습니다.