728x90
반응형
L4 스위치 쉽게 이해하기(Source IP NAT문제) 대해서 알아보자
해당 문서 'L4 스위치 쉽기 이해하기'와 '서버 부하 분산 쉽게 이해하기', 다음에 이어질 문서인 'L4/L7 로드밸런싱 쉽게 이해하기'는 L4/L7 Network Swtich인 'F5 Networks' 장비를 기준으로 설명합니다.
Alteon(Radware), Brocade, Cisco, Piolink, Pumkin, Citrix, A10의 관점에서는 다소 다를 수 있습니다.
L4 스위치를 활용함에 있어서 L4 스위치 통과 시 사용자 IP를 L4 스위치의 IP로 변경하는 Source IP NAT를 사용해야 하는 경우가 꽤 있다.
그리고 그 이유는 서버의(Gateway), Local Address Network(LAN) 그리고 MAC Address와 연관이 깊다.
그 이유에 대해서 먼저 살쳐보자.
L4 스위치에서 Source IP NAT가 필요한 이유
1. L4 스위치를 통한 3-way handshake는 모든 과정(SYN, SYN/ACK, ACK Packet은 반드시 L4 스위치를 통해서 실시해야 한다.
- L4 스위치를 통한 3-way handshake는 모든 과정(SYN, SYN/ACK, ACK Packet은 반드시 L4 스위치를 통해서 이루어져야 한다.
- 그렇지 않으면 제대로 된 Connection을 맺을 수 없으며 Perfomance L4 Type의 Virtual Server의 경우
- SYN Packet을 받아 생성한 Connection을 삭제한다.
- 사용자가 서버에 접속하기 위해 L4 스위치를 통해 3-way handshake를 요청하는 상황을 표현한 그림이다.
- 위의 그림에서 가장 두드러지는 특징은 서버의 트래픽이 외부로 나가는 관문 역할을 하는 게이트웨이(Gateway)가 L4 스위치가 아닌 다른 스위치로 설정되어 있다는 점이다.
- 저게 대체 무슨 구성인가 하는 생각이겠지만 L4스위치가 다운되더라도 외부와 서버의 통신이 유지되도록 하고자 할 때 많이 사용하는 구성이다.
(네트워크 구성 중 하나인 'One-Arm' 구성을 보기 쉽게 하기 위해 약간 틀어서 그렸음)
- 사용자가 서비스 접속을 위해 SYN Packet을 L4스위치에 보낸다.
- 그럼 L4 스위치는 이 SYN Packet을 받아 서버에게 넘겨준다.
- 서버는 SYN Packet을 받고 SYN/ACK Packet을 사용자에게 전달하려 한다.
- 그런데 서버의 게이트웨이가 L4스위치가 아닌 백본 스위치(Backbone Switch)가 된다면 SYN/ACK Packet은 백본 스위치로 이동한다.
- 그리고 백본 스위치와 외부 인터넷을 거쳐서 사용자에게 전달된다.
- 이 시점에서 L4 스위치는 분명 사용자가 전달한 SYN Packet을 전달했지만 서버에게서 SYN/ACK Packet을 받지 못했다.
- 그런데 이미 SYN/ACK Packet 받은 사용자가 ACK Packet을 L4 스위치에게 전달한다.
- L4 스위치는 SYN/ACK Packet을 받지 못했음에도 사용자로부터 ACK Packet을 받았다.
- 그리고 L4 스위치는 이 Packet 을 드랍(Drop)한다.
- 이유는 3-way handshake가 제대로 이루어지지 않았다고 판단하였기에 아래 사진과 같은 상황이 나타난다.
위의 그림에서는 ACK Packet을 드랍하는 L4 스위치를 볼 수 있다.
이렇게 되면 사용자와 서버는 제대로 된 Connection을 맺지 못할 것이니 통신이 불가능한 상황에 놓이게 된다.
이것이 첫 번째 이유이며, 이런 비슷한 상황이 벌어지는 Case가 하나 더 있다.
2. Locak Address Network(LAN)에서의 통신은 IP 뿐만 아니라 MAC Addess를 이용해 이루어진다.
- Local Address Network(LAN)에서 단말과 단말 간 통신 시 출발지와 목적지는 IP뿐만 아니라 MAC Address를 이용한다.
- 출발지와 목적지를 IP로 지정하면 ARP Table에 일대일 매칭 된 IP, MAC Address를 확인하고 목적지 IP, MAC Address를 향해 나아간다.
- 보통 아래와 같은 구성에서 발행하는 문제이다.
- L4 스위치가 서버와 백본 스위치(서버의 게이트웨이) 중간에 위치하고 있다.
- 그리고 L4 스위치, 서버, 백본 스위치(서버의 게이트웨이)는 하나의 Local Address Network(LAN)에 소속되어 있다.
- 그럼 지금부터 문제가 되는 부분인 SYN/ACK Packet 전달 과정을 확인해보자.
- 먼저 서버에 접속하고자 하는 사용자로부터 SYN Packet을 받은 L4 스위치는 이 SYN Packet을 서버에게 전달한다.
- 이때 출발지와 목적지 정보는 다음과 같다.
- 이제 서버는 SYN/ACK Packet을 사용자에게 전달하기 위해 백본 스위치(서버의 게이트웨이)를 목적지로 잡고 Packet을 전달한다.
- 이때 출발지, 목적지 정보는 아래와 같다.
- 서버는 위 정보를 가진 Packet을 L4 스위치를 경유하여 백본 스위치에 전달한다.
- 그리고 L4 스위치는 Packet을 보고 Destination IP, Destination MAC 모두 자신에 해당하지 않으므로 백본 스위치로 SYN/ACK Packet을 그대로 Forwarding 한다. (서버의 게이트웨이로 보내기 때문)
- 그리고 백본 스위치는 이 Packet을 받아 사용자에게 전달한다.
여기서 중요한 점은 L4 스위치는 SYN/ACK Packet의 목적지 정보에 자신의 IP, MAC 모두 해당하지 않으므로 직접 처리 지 않은 점이다.
- L4 스위치가 직접 Packet을 처리하기 위해서는 Packet의 목적지 정보 (IP or MAC)가 L4 스위치를 가리키고 있어야 한다.
- 다시 말하면 위의 상황에서는 이 Packet이 SYN/ACK Packet이라는 것을 모르는 상태에서 그저 전달한 했다는 이야기다.
- 그리고 SYN/ACK Packet을 받아 든 사용자는 다시 ACK Packet을 L4 스위치로 보낼 것이고, L4 스위치는 아직 SYN/ACK Packet을 받지 못했다고 생각하기에 ??? 반응을 보이며 이 Packet을 드랍시킨다.
위의 그림처럼 ACK Packet을 드랍하기 때문에 사용자와 서버는 Connection을 맺을 수 없게 된다.
이렇듯 백본 스위치(서버의 게이트웨이)와 서버 사이에 L4 스위치가 있고 L4 스위치를 지난다 하더라도 Connection이 맺어지지 않는 현상이 발생할 수 있다.
지금까지 L4 스위치에서 Source IP NAT가 필요한 2가지 문제점에 대해서 알아보았다.
출처
반응형
'IT Technology > Network' 카테고리의 다른 글
Public IP, Private IP(공인IP, 사설IP) (0) | 2022.01.22 |
---|---|
OSPF Protocol 대한 이해 (3) | 2022.01.12 |
L4 스위치 쉽게 이해하기(네트워크 구성) (0) | 2022.01.10 |
L2, L3 Switch 이더채널구성(LACP, PAGP) (0) | 2022.01.05 |
Network Vender 운영 명령어 (0) | 2021.12.31 |