◻ 로드밸런싱(서버 부하 분산)을 처리하는 장비이다.
◻ 외부에서 들어오는 모든 요청은 서버가 아닌 L4 스위치를 거쳐야하며, 모든 요청을 스위치가 받아서 서버에게 적절히 분배해준다.
◻ 또한 프로토콜의 헤더를 분석하여 그 정보를 바탕으로 부하 분산을 실시하고, SourceIP, Destination IP를 NAT 하여 보낼 수 있다.
◻ 클라이언트와 서버가 연결이 생성되었음을 나타내는 Connection을 생성하면 L4스위치 역시 Connection을 생성하여, 리스트를 관리한다.
◻ 4-way Handshake를 통해 Connection을 제거하면 스위치 또한 Connection을 삭제
💨 Connection time out 값을 가지는데 일정 시간 동안 사용되지 않은 커넥션을 삭제하고, Reset flag가 담긴 Packet을 전송할 수 있다.
서버가 1대가 아닌 3대, 4대로 계속 늘어난다면, 부하가 고르게 나누어 질지 장담할 수 없다. 💨 그래서 로드 밸런싱이 필요하다.
◻ 일일이 서버에 요청을 전달할 필요 없이 L4 스위치에 모든 요청을 전달하고, L4 스위치가 서버들에게 요청을 그대로 전달한다.
◻ 뒤에 붙은 80이라는 숫자는 PORT인데 Layer4의 정보인 Port를 사용하기 때문이다.
◻ IP(123.111.43.1)와 PORT(80)를 갖는 스위치 구성요소를 VIRTUAL SERVER라 한다.
◻ Pool 💨 Virtual Server들의 집합 , 특정 요청들은 해당 Virtual Server에 연결된 Pool에만 전달된다.
◻ Pool member Pool 소속으로 IP 와 PORT로 구성된 서버
서버가 제공하는 애플리케이션을 사용자에게 중단 없이 빠르고 안정적으로 전송하는데 도움을 준다.
외부로부터 내부망을 보호하기 위한 네트워크 구성요소의 하나로 외부의 불법침입으로부터 내부의 정보 자산을 보호하고 외부로부터 불법정보 유입을 차단하기 위한 N/W 및 S/W의 총칭이다.
◻ 접근 제어
외부에서 내부 N/W에 접속하는 패킷 필터링 이용 통제
ex) 패킷 필터링, 프록시 방식 등
◻ 인증(Authentication)
◻ 감사 및 로그 기능
◻ 프라이버시 보호(privacy Protection)
◻ 서비스 통제(Service Control)
안전하지 못하거나 위험성이 존재하는 서비스를 필터링함으로서 내부 네트워크의 호스트가 가지고 있는 취약점을 감소시킨다.
◻ 데이터 암호화(Data Encryption)
방화벽에서 다른 방화벽까지 전송되는 데이터를 암호화하여 보내는 것으로, 보통 VPN의 기능을 이용한다.
◻ 패킷 필터링(Packet Filtering) 방식
◻ 상태추적(Stateful Inspection) 방식
◻ 어플리케이션 게이트웨이(Application Gateway) 방식
◻ 서킷 게이트웨이(Circuit Gateway) 방식
◻ 서킷 게이트웨이(Circuit Gateway) 방식의 개념도
◻ 하이브리드 방식
부하 분산(Load Balancing) 처리해야 할 업무 혹은 요청 등을 나누어 처리하는 것.
ex) layer2 ,layer3 부하 분산 등등
외부의 사용자로부터 들어오는 다수의 요청을 서버들에게 배분하여 요청을처리케 한다.
=> L4 스위치의 역활 => load Balancer
📍 라운드 로빈 Round Robin
로드 밸런서가 다수의 서버에게 순서대로 요청을 할당하는 방법.
서버에 차례로 요청을 할당하여 분산한다.
📍 Least Connection
로드 밸런서가 서버에게 요청을 전달한 뒤, 사용자와 서버가 정상적인 연결을 맺으면, user와 server는 'Connection'을 생성한다. 이 커넥션 수 정보를 기반으로 가장 커넥션이 적은 서버, 즉 부하가 가장 덜한 서버에 요청을 전달한다.
📍 Ratio(가중치)
서버의 처리 능력을 고려하여 할당될 수 있는 각 서버가 가질수 있는 Connection의 비율을 미리 정해둔다.
분산 비율이 100% 일때 성능이 가장 떨어지는 서버에게 10% 나머지에게 30% 할당할 수있다.
📍 Fastest(Response Time)
응답속도가 가장빠른 서버에게 우선적으로 할당하는 방식이다. 모두 응답했을때는 추가 요청을 보내지만, 할당된 connection만큼 충분한 응답이 오지 않는다면, 추가요청을 해당 서버로 보내지 않는다.
로드밸런싱 서비스를 제공하는 다수의 서버의 상태를 점검하기 위해 사용되는 기술, 서버의 상태를 주기적으로 체크하여 서버의 상태가 통신이 불가능할 경우 서버를 서비스에서 제외하여 서비스를 원활하게 제공하기 위해 이용되는 방법이다.
서버로 일정 시간 간격으로 서비스에 대하여 Open과 Close를 반복적으로 진행하여 서비스 제공 가능 유무를 점검한다.
ICMP 헬스체크는 ICMP를 이용하여 서버의 상태를 검사하는 3계층 헬스체크 기능으로, ICMP의 특성을 이용하여 서버의 IP Address 활성화를 확인하여 점검한다.
서버의 IP aDDRESS에 ICMP를 이용해서 REQUEST메시지를 전송한 후 ICMP Echo Reply 메시지 수신 여부에 따라서 서비스 서버의 서비스 가능 유무를 판단한다.
TCP서비스 포트를 이용하여 서버의 상태를 검사하는 4계층 헬스체크 기능이다. 이미 지정된 포트를 사용하는 FTP, HTTP,TELNET등과 개발자가 가용할 수 잇는 영역에 있는 포트 번호를 이용하여 서비스 제공 가능 유무를 점검한다.
3way handshake를 이용하여 서버의 서비스 포트를 TCP_SYN을 전송하고 그에 따른 응답 유무에 따라 서비스 서버의 서비스 가능 유무를 판단한다.
이후 서버의 소캣 낭비를 막기 위해 SYN_ACK 응답 수신시 바로 RST 패킷을 전송하여 세션을 종료하는 Half-Open 방식과 ACK 패킷을 전송하는 TCP Open 방식으로 나뉜다.
HTTP 상태코드를 확인 하는 방식으로 로드 밸런서가 서버로 3-핸드세이크를 거치고 나서 HTTP요청을 보내고 정상적인 상태 코드 200 OK를 응답하는지 확인한다.
로드 밸런서에서 서버로 콘텐츠 요청하고 응답받은 내용을 확인한다. 내용에 지정된 콘텐츠가 정상적으로 응답했는지 확인하는 방법이다. 보통 특정 웹페이지를 호출해서 사전에 지정한 문자열이 해당 웹페이지 내에 포함되어 있는지를 체크하는 기능이다.
원암 구조는 LB가 스위치 옆에 있는 형태입니다. 한쪽 팔을 벌린 형태와 유사하여 원암으로 불린다.
원암 구조에서의 장점은 모든 트래픽이 LB를 경유하지 않아도 된다는 점이다.
단점으로는 인라인 구조보다 조금 더 설정이 까다롭다는 점이다.
원암 구조에서는 리얼 서버 응답이 다시 LB를 거쳐 사용자에게 전달되기 위해
DNAT (Destination NAT) 뿐 아니라 SNAT(Source NAT) 이 같이 수행되어야합니다.
이 때문에 모든 클라이언트 IP가 LB의 IP로 찍히는 경우 도 간혹 있습니다.
이 경우는 서비스 운영에 꽤 치명적이지만,
LB의 동작 모드 중 DSR(Direct Server Return)을 사용하여 해결 할 수 있다.
LB가 스위치에서 리얼 서버까지 일직선상 경로에 있는 형태를 말한다.
네트워크 구성이 직관적이라는 장점이 있지만, LB를 거칠 필요가 없는 모든 트래픽들이 로드밸런서를 경유하기때문에 LB에 부하가 많이 갈 수 있다.
트랜스패런트 모드는 LB가 L2 스위치처럼 동작한다.
LB에서 사용하는 VIP 주소와 실제 서버가 동일한 네트워크를 사용하는데,
기존의 네트워크 대역을 그대로 사용하는 투명한 구조를 사용한다 하여 붙여졌다.
요청시 LB로 전달된 도착지 IP와 MAC 주소를 리얼 서버의 IP와 MAC 주소로 변조하여 동작하며 응답시에는 목적지 MAC 주소는 이미 게이트웨이 주소를 가지고 있어 따로 변조하지 않는다.
인라인, 원암 모두 사용가능하지만 원암 구성에서는 LB에서 SNAT을 필요로한다.
LB가 라우팅 역활을 수행하는 모드이다.
LB기준으로 서로 다른 네트워크가 분리되어있다.
보안 강화 목적으로 네트워크를 사설로 분리하여 구축할 때 사용된다.
트랜스패런트 모드와 비슷하지만,응답시 출발지 MAC주소도 변경해야된다는 차이가 있다.
DSR은 원암 구조에서만 사용된다.
행해지는 네트워크 레이어에 따라 L2DSR 과 L3DSR로 나뉜다.
이전 두개의 모드들은 응답이 LB를 경유하여 나갔지만, DSR모드는 LB를 경유하지 않고 리얼서버에서 직접 응답을 내려준다.
응답 트래픽이 LB를 경유하지 않으므로 LB에 부하를 적게준다는 장점이 있지만, 단점으로는 위의 두 모드와는 다르게 리얼서버에서도 추가설정을 해줘야한다는 점, 응답이 LB를 거치지않아 문제확인이 어렵다는 단점이 있다.