잊지 않겠습니다.

LVS를 이용해서 Load Balancer를 구성할때 Direct Routing, NAT, Tunneling 방식으로 3가지 방식으로 사용될 수 있는데, 각 3가지 방법은 다음과 같은 차이를 가지고 있다.

1. Direct Routing
LVS에 VIP를 설정, VIP를 통해서 Node단에 Network Load 전송

* LVS
- eth0 에 자신의 private ip가 eth0:1에 VIP가 설정되는 식으로 VIP와 private ip를 모두 갖는다.
* Node
- loopback devicde(lo)에 LVS의 VIP가 설정되어야지 된다.
: IP Diagram에 자신이 처리해야지 되는 연결임을 알 수 있도록 설정되어야지 된다.

2. NAT
- 조금 특이한 형태. Input/output이 모두 LVS를 통해서 나가게 된다.
- 20대 이상의 대규모 네트워크에 매우 불리하다.

* LVS
- 반드시 2개 이상의 network adapter가 필요하다.
- 1개는 public ip로 연결, 나머지 1개는 private ip로 연결된다.
* Node
- private ip가 반드시 있어야지 된다. (public ip는 필요 없다.)
- private ip의 gateway에 LVS의 private ip가 설정된다.
: Network input/output이 모두 NAT를 통해서 나가게 되기 때문에 gateway를 모두 같이 맞춰줄 필요가 있다.
: IP class에 따라 제한이 될 수 있다.

3. Tunneling
- IP Diagram 변경을 통해 Network Load가 전송된다.

* LVS
- 특별하게 지정해줄 필요 없다. ipvsadm 명령어 옵션만 다를 뿐이다.
* Node
- tunl0 라는 network 가상 device를 추가해주고, LVS의 private ip로 연결되어야지 된다.
: LVS와 node간의 연결 통로를 미리 지정해주게 된다. 그리고, 이 곳에서 온 자신에 대한 네트워크 연결은 Tunneling으로 온 것으로 판단하고, 들어온 입력이 아닌, ip diagram에 있는 정보를 이용해서 return 시켜주게 된다.


결론
네트워크 시스템을 어떻게 구성할지를 고민해야지 될듯. 모든 Network에 대한 감시가 필요하고, LVS를 좋은 녀석으로 구성한다면 NAT가 가장 최선의 방법이 될 수도 있지만, 이는 LVS 에 엄청난 부하를 줄 수 있기 때문에 가장 많이 사용되는 것은 Direct Routing 방법. 그렇지만, Node에 따로 설정을 해줘야지 된다는 것은 부담으로 남는다.


Posted by Y2K
,