IT Technology/Network

L4 스위치 쉽게 이해하기(Source IP NAT문제 해결)

by빵수 2022. 6. 27. 12:38
728x90
반응형

L4 스위치 쉽게 이해하기(Source IP NAT문제 해결) 대해서 알아보자

 

L4 스위치에서 Source IP NAT가 필요한 이유와 Case 두 가지.

 

 

1. L4 스위치를 통한 3-Way Handshake는 모든 과정(SYN, SYN/ACK, ACK)을 모두 L4 스위치를 통해 실시해야 한다.

2. Local Address Network(LAN)에서의 통신은 IP 뿐만 아니라 MAC Address를 이용해 이루어진다.

 

 

지금부터 L4 스위치에 Source IP NAT를 적용하면 어떻게 해결되는지 하나씩 살펴보자.

 

L4 스위치에서 Source IP NAT를 적용하면 어떻게 되는가?

1. L4 스위치를 통한 3-Way Handshake는 모든 과정(SYN, SYN/ACK, ACK)을 모두 L4 스위치를 통해 실시해야 한다.

 

 

"SYN Packet" 이후 느닷없니 나타난 "ACK Packet"을 Drop하는 L4 스위치

 

위 그림에서 문제가 되는 부분은 "SYN/ACK"입니다.

서버의 게이트웨이가 백본 스위치이기에 "SYN/ACK Packet" 이 L4 스위치가 아닌 백본 스위치로 향하게 된다.

이 문제를 해결하려면 SYN/ACK Packet이 L4 스위치로 돌아오게 하면 된다.

L4 스위치로 패킷이 돌아오게 하기 위해서는 Source IP NAT를 적용하면 그렇게 할 수 있다.

이제부터 Source IP NAT 가 적용된 후의 상황을 확인해보자.

 

 

L4 스위치가 서버에게 SYN Packet 전달시 Source IP NAT 실시

 

사용자로부터 전달받은 SYN Packet을 L4  스위치가 서버에게 전달하고자 한다.

이때 L4 스위치 도달 직전의 출발지와 목적지는 다음과 같다.

그리고 L4 스위치가 이 SYN Packet을 받아 서버로 전달할 때 다음과 같이 Source IP NAT(192.168.1.1)와 Destination IP NAT(192.168.1.100)가 이루어진다.

 

 

이제 SYN Packet을 처리한 서버가 SYN/ACK Packet을 사용자에게 보내게 된다.

그럼 서버에서는 목적지와 출발지를 거꾸로 하여 전송하려고 하는데!

 

 

이번에는 경우가 다르다.

서버도 알고 있는 IP인 192.168.1.1가 목적지로 설정되어 있기 때문에 굳이 백본 스위치(서버의 게이트웨이)로 보낼 이유가 없다.

Source NAT 이전에는 목적지 IP가 사용자 IP(15.15.15.15)로 설정되어 있었기에 공인 IP 대역에 대해 알 수가 없는 서버가 게이트웨이로 패킷을 보냈지만, 이번에는 서버 또한 알고 있는 주소인 IP 192.168.1.1이 목적지이기에 그곳으로 보내는 것이다.

즉 목적지를 192.168.1.1로 강제하는 것이다.

 

 

목적지가 192.168.1.1인 L4 스위치로 SYN/ACK Packet을 보내는 서버

 

그리고 SYN/ACK Packet을 받은 L4 스위치는 출발지 IP와 목적지 IP를 원래대로 돌려놓고 사용자에게 전달한다.

 

그리고 SYN/ACK Packet을 받은 사용자는 ACK Packet을 L4 스위치에게 전달한다.

L4 스위치는 서버에게  ACK Packet 전달할 것이고 3-way handshake가 온전히 이루어진다.

 

2. Local Address Network(LAN)에서의 통신은 IP 뿐만 아니라 MAC Address를 이용해 이루어진다.

 

2번의 경우 역시, 1번과는 대동소이하다.

2번에서는 SYN/ACK Packet이 사용자에게 전달될 때, 비록 L4 스위치를 지나치더라도 목적지 IP와 목적지 MAC이 모두 백본 스위치이므로 L4 스위치가 처리하지 않고 forwarding 하기 때문에 그 패킷이 SYN/ACK Packet임을 모른다는 것이 문제가 된다.

 

이를 해결하기 위해 서버가 사용자에게 SYN/ACK Packet을 전달하려는 시점에 목적지를 백본 스위치가 아닌 L4 스위치(IP 192.168.1.50)로 강제함으로써 L4 스위치를 목적지로 삼아 나아가게 하는 것이다.

그러면 목적지 IP가 L4 스위치를 가리키기 때문에 L4 스위치가 SYN/ACK Packet을 처리할 수 있게 된다.

 

 

L4 스위치가 서버에게 SYN Packet을 전달시 Source IP NAT 실시

 

위와 같이 사용자가 전달한 SYN Packet을 L4 스위치가 서버에게 전달하게 된다.

L4 스위치로의 도달 직전의 출발지와 목적지는 다음과 같다.

 

 

그리고 L4 스위치가 이 SYN Packet을 받아 서버로 전달할 때 다음과 같이 Source IP NAT(192.168.1.50)와 Destination IP NAT(192.168.1.100)가 이루어진다.

 

 

그리고 SYN Packet을 전달받은 서버가 SYN/ACK Packet을 사용자에게 전달하려고 한다.

하지만 목적지가 백본 스위치가 아닌 L4 스위치로 설정되어 있다.

바로 Source IP NAT로 출발지 IP를 L4 스위치로 바꾸었기 때문이다.

 

 

목적지가 192.168.1.50인 L4 스위치로 SYN/ACK Packet을 보내는 서버

 

목적지가 L4 스위치이기 때문에 L4 스위치는 자신에게 도달한 SYN/ACK Packet을 인식하게 되고,

출발지 IP와 목적지 IP를 원래대로 돌려놓아 사용자에게 전달한다.

 

 

그리고 SYN/ACK Packet을 받은 사용자는 ACK Packet을 L4 스위치에게 전달한다.

L4 스위치는 이를 서버에게 전달하며, 3-way handshake가 끝나고 통신할 일만 남았다.

 

 

이처럼 Source IP NAT는 L4 스위치에게 도달하지 못하는 패킷들의 목적지를 L4 스위치로 강제로 바꾸는 역할을 한다.

그리고 L4 스위치로 하여금 처리하도록 하지요. 매우 중요한 Skill이다.

하지만 단점이 없는 것은 아니다.

L4 스위치를 지나면서 IP가 사용자의 IP가 아닌 L4 스위치의 IP로 변경되기 때문에 서버의 입장에서는 사용자의 IP를 알 길이 없다.

그렇기에 HTTP의 X-Forwarded-For 같은 Header를 이용해 서버에게 사용자의 IP를 알려주곤 한다.

 

 

 

 

 

출처

https://aws-hyoh.tistory.com/101

 

L4 스위치 쉽게 이해하기 #6(Source IP NAT 문제 해결)

이번 문서 'L4 스위치 쉽기 이해하기'와 '서버 부하 분산 쉽게 이해하기', 다음에 이어질 문서인 'L4/L7 로드밸런싱 쉽게 이해하기'는 L4/L7 Network Swtich인 'F5 Networks' 장비를 기준으로 설명합니다. Alteo

aws-hyoh.tistory.com

 

반응형

'IT Technology > Network' 카테고리의 다른 글

공인IP 받는 방법  (0) 2022.07.20
BGP Weight, Prepend 설정 방법  (0) 2022.07.14
Brocade Switch 점검 명령어  (0) 2022.05.15
스위치 스택킹(Stacking) 기술이란?  (0) 2022.03.25
공중망, 사설망  (0) 2022.03.24