이번에는 L4 스위치에서 Network Address Translation(NAT), 네트워크 주소 변환이 어떻게 사용되는지에 대해 알아보겠습니다. NAT는 L4 스위치에 있어서는 필수적으로 존재해야합니다. 일부 경우를 제외하고는 L4 스위치에서는 NAT를 계속 사용합니다. 그러면 왜 NAT를 사용해야하는 것일까요?
NAT(Network Address Translation)가 필요한 이유는?
NAT는 "Network Address Translation"의 약자로, 네트워크 주소 변환을 의미합니다. NAT는 IP 패킷의 TCP/UDP 포트 숫자와 출발지 및 목적지 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받습니다. NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있다.
IP 주소 절약: 여러 장치가 하나의 공용 IP 주소를 공유함으로써 IP 주소의 낭비를 줄입니다.
보안: 내부 네트워크의 구조와 IP 주소를 숨겨 외부 공격으로부터 보호합니다.
유연성: 네트워크 구조 변경 시 내부 IP 주소를 변경해도 외부에는 영향을 주지 않습니다.
'출발지 및 목적지의 IP 주소' 와 'TCP/UDP Port 번호'를 재기록하여서 상대방에게 전송한다고 설명하고 있습니다.
네트워크 망을 이동하면서 라우터와 같은 IP를 바꿀 수 있는 네트워크 장비에 의해서 출발지 또는 목적지의 IP가 변하는 것을 의미합니다. IP 와 Port를 변경하는 것 또한 부하일 뿐 아니라, 변경이 되는 것이 구성, 설정, 트러블 슈팅을 복잡하게 만듭니다.
1. 모든 요청은 L4 스위치가 받지만 실제 요청은 서버가 처리한다.
사용자가 서비스 접속하기 위해서 L4 스위치의 VIP(Virtual Server IP)로 접속을 하지만, 이는 서브들의 대표인 Virtual Server의 IP일뿐 실제 서버의 IP는 아닙니다. 요청을 처리하기 위해서는 목적지 IP를 실제 서버의 IP로 변경해야합니다. 실제 서버의 IP로 변경하지 않고 L4 스위치의 VIP를 유지하면서 Pool Member인 192.168.1.11 또는 192.168.1.12에 부하분산하면 서버들은 유입된 패킷의 목적지 IP가 자신이 아니므로 이 패킷은 무시됩니다.
위 이미지를 예로 들면 사용자가 웹 서비스 사용을 위해 L4 스위치의 Virtual Server IP로 접속을 시도하면 출발지 IP와 목적지 IP는 아래와 같습니다. 사용자 IP는 175.112.150.12로 정의하겠습니다.
사용자(175.112.150.12) -> L4 스위치 VIP(123.111.43.1)
L4 스위치는 Virtual Server에 이 패킷이 도달하고 L4 스위치는 이를 실제 서버로 로드밸런싱하기 위해 IP 주소를 다음과 같이 변경합니다.
사용자(175.112.150.12) -> 실제 서버(192.168.1.11 또는 192.168.1.12)
패킷은 실제 서버로 전달되고, 서버는 이 패킷을 받은 후 목적지 IP가 자신의 IP와 동일한것을 확인하고 요청을 처리하기 시작합니다. 위 그림처럼 L4 스위치를 중심으로 위아래 IP 대역이 다른 경우 뿐 아니라 IP 대역이 같은 경우에도 NAT는 진행됩니다.
이번에는 사용자와 L4 스위치, 그리고 실제 서버의 IP 대역이 모두 동일합니다. 이 때의 NAT 사용을 알아보도록 하겠습니다.
사용자가 웹 서비스 사용을 위해 L4 스위치의 VIP로 접속을 시도하면 출발지 IP와 목적지 IP는 아래와 같습니다.
사용자 IP는 192.168.1.155 입니다.
사용자(192.168.1.155) -> L4 스위치 VIP(192.168.1.100)
L4 스위치의 Virtual Server에 패킷이 도달되고 L4 스위치는 이를 실제 서버로 로드밸런싱 하기 위해 IP 주소를 다음과 같이 변경합니다.
사용자(192.168.1.155) -> 실제 서버(192.168.1.11 또는 192.168.1.12)
L4 스위치를 기준으로 위/아래 IP 대역이 같거나 다르거나 VIP을 통해 요청을 처리하기 때문에 NAT가 발생합니다.
2. L4 스위치 내부의 서버 IP가 다르면 외부에서 서버의 IP에 의도적으로 접근할 방법은 없다.
종종 DDoS 공격으로 서버가 죽는 것을 많이 보셨을 껍니다. 이러한 공격을 막기 위해 많은 장비들이 존재하지만 L4 스위치 또한 이러한 역할을 어느정도 수행할 수가 있습니다.
그 이유로 바로 NAT가 존재하기 때문입니다. 위 그림에서 1번의 이유처럼 모든 요청을 L4 스위치가 직접 받기 때문에 굳이 실제 서버들이 IP를 외부에 노출할 필요가 없습니다. 다시 말하면 외부에서 실제 서버의 IP를 알 수 없으며, 접근할 방법 또한 없습니다. 그래서 L4 스위치를 사용해 Client Side(사용자와 L4 구간의 대역)와 Server Side(L4 스위치와 서버 구간의 대역)의 IP를 분리하면 서버를 보호하는 역할을 수행합니다. 서버의 존재를 숨겨 서버에 접근하지 못하게 막는 것 입니다.
<참고자료>
'Network > L4 Switch' 카테고리의 다른 글
[Alteon] Alteon L4 Switch 테스트 하기 - 1 (0) | 2025.02.12 |
---|---|
[L4] L4 스위치 학습하기 - 2 (0) | 2025.02.06 |
[L4] L4 스위치 학습하기 - 1 (0) | 2025.02.04 |
[Alteon] 알테온(Alteon) L4 기본 command (0) | 2024.12.13 |