오늘은 L4 이중화에 대해 알아보도록 하겠습니다.
L4 이중화는 다음과 같이 두가지 모드를 제공합니다.
SLB |
Server Load Balancing |
DSR |
Direct Server Return |
오늘은 해당 두 가지 모드에 대해 알아보도록 하겠습니다.
1. SLB(Server Load Balancing)
Client-Server간 Request, Response가 발생하게 됩니다.
일반적인 Network 처리 시 Response Packet이 많기 때문에 많은 Traffic 발생 시 L4에 성능 이슈가 발생할 수 있습니다.
단, L4를 경유하기 때문에 같은 서브넷이 아닌 IP대역도 L4에서 수용이 가능합니다.
일반적으로 단순한 아키텍처를 가지고 있어 많이 사용하는 방식입니다.
Client - L4 - Server - L4 - Client
2. DSR(Direct Server Return)
Server에서 Client로 Response Packet 생성 시 L4를 경유하지 않고 Response Packet 전달하는 방식입니다.
Client에서 Server로 Response Packet 생성 시 L4를 경유하지 않기 때문에 L4 장비의 부하를 줄여줄 수 있습니다.
단, 같은 서브넷이 아닌 대역의 경우 처리가 불가능합니다.
Client - L4 - Server - Client
3. DSR 구성 이슈
DSR을 구성하는 경우 Server가 Client로 직접 Response Packet을 보내기 때문에 Http Header의 Source IP가 L4 IP가 아닌 Real Server IP가 등록되게 됩니다.
Client의 입장에서 자신이 받아야할 SIP와 틀리기 때문에 해당 Packet은 Drop되어지게 됩니다.
그래서 Loopback Network Setting을 통해 Response Packet의 Source IP를 L4 VIP로 설정하여야 합니다.
다음과 같이 Packet 처리 단계를 알아보도록 하겠습니다.
Source 구분 |
Source IP |
Client |
1.1.1.1 |
L4 VIP |
2.2.2.1 |
Real Server IP |
2.2.2.2 |
1) Client에서 해당 L4 VIP로 Packet 전달
Source IP |
Destination IP |
1.1.1.1 |
2.2.2.1 |
2) Server에서 Client로 Direct Packet 전달
Source IP |
Destination IP |
2.2.2.2 |
1.1.1.1 |
해당 Case의 경우 Client에서 예상한 IP는 10.10.10.1이지만 Real Server IP가 Response되어 Client는 해당 Packet이 Invalid Packet으로 판단하여 Drop시킵니다.
3) LoopBack을 사용하여 Packet 전달
Source IP |
Destination IP |
2.2.2.1 |
1.1.1.1 |
3. Windows에서 DSR Setting 방법
Windows Server를 사용하는 경우 DSR처리를 위해 Loopback Adapter 추가 및 VIP Setting이 필요합니다.
추가로, Windows Server의 경우 NIC간의 Packet전달을 강제하는 옵션이 있어 해당 옵션 Setting도 추가로 필요합니다.
해당 방법에 대해 알아보도록 하겠습니다.
1) Loopback Adapter 생성
시작 - 실행 - hdwwiz를 통해 하드웨어 추가 마법사 실행
하드웨어 추가 마법사 확인
목록에서 직접 선택한 하드웨어 설치 선택
하드웨어 목록 중 네트워크 어뎁터 선택
네트워크 어댑터 선택 항목에서 Microsoft -> Microsoft Loopback Adapter 선택
설치할 하드웨어 확인
완료 메시지 확인
완료후 네트워크 연결 항목을 보면 Microsoft Loopback Adapter가 추가되어 있는것을 확인할 수 있습니다.
생성한 NIC에 L4 VIP를 입력
2) Weak and Strong Host Setting
해당 개념은 Multi Homed Host 방식(하나의 Server Host에 여러 개의 NIC가 있는 경우)에서 사용할 수 있습니다.
일반적으로 Multi Homed Host방식은 Public IP와 Private IP를 사용하여 외부와 내부간에 통신을 하기 위해 사용합니다.
이때 인터넷 망의 악의적인 공격으로 해당 Server가 해킹되는 경우 내부의 Private 망도 침투할 수 있는 보안 이슈가 발생할 수 있습니다.
Weak and Strong Host Model은 이런 보안 이슈를 줄이기 위한 방안 중 한 가지 입니다.
해당 내용에 대해 간단하게 알아보도록 하겠습니다.
Model 명 |
상세내역 |
Weak Host Model |
받은 Packet의 Destination IP가 해당 NIC에 설정된 IP가 아닌 경우에도 해당 Packet을 받아들임 |
Strong Host Model |
받은 Packet의 Destination IP가 해당 NIC에 설정된 IP가 아닌 경우 해당 Packet Drop |
(참고 사이트 : http://technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspx)
해당 Model을 Setting하기 위해서는 아래와 같은 Command를 사용하여 적용합니다.
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled |
IPv4와 IPv6 모두 적용가능하며 각 NIC별 send 가능 유무와 receive 가능 유무를 Setting할 수 있습니다.
OS별 Default 값은 다음과 같습니다.
OS Version |
Default 값 |
Windows 2008 이전 |
Enable |
Windows 2008 이후 |
Disable |
Windows 2008 이후 Version의 경우 Disable이 Setting 값 이므로 Public Network는 Packet을 받기만 하고 Loopback Adapter의 경우 Packet을 보내기/받기가 모두 가능하도록 Setting 합니다.
• netsh interface ipv4 set interface [Loopback Adapter 이름] weakhostsend=enabled |
이렇게 Setting하는 경우 L4에서 전달한 Packet이 Public Adapter이던 Loopback Adapter이던 상관없이 Packet을 수용하게 됩니다.
send는 Loopback만 설정함으로써 L4에서 전달한 Packet이 Loopback Adapter만을 통해 보내질 수 있도록 Setting 합니다.
3) Weak and Strong Host Setting 확인
• netsh interface ip dump |
위 명령어 수행 시 다음과 같이 IPv4의 구성을 확인할 수 있습니다.
4) Arp Response Disable
• netsh interface ipv4 set interface [Loopback Adapter 이름] metric=254 |
Loopback Adapter의 metric을 수정하여 ARP Response를 Disable 합니다.