티스토리 뷰

728x90
반응형

서론

최근 Hardware는 Serverless로 대표되는 물리 노드 없이 사용 가능한(사실 서버리스라고 해도 아에 없는 것은 아니긴 하다) 시대가 도래했고, Software는 정형화 된 상용 소프트웨어와 미들웨어들이 이제는 오픈소스로 변화하고 있으며, 그마저도 개인만의 내재화 된 커스텀 애플리케이션을 사용하는 시대가 되었다.

그럼에도 불구하고 모든 프로젝트의 목적은 이를 서비스하는데 있기 때문에 Network는 절대 빠질 수 없는 프로젝트의 구성요소이다.

본 포스팅에서는 네트워크를 구성하는 기술 몇가지를 살펴보고자 한다.

본론

1. 웹 방화벽 (WAF)

웹 방화벽은 네트워크 방화벽과는 다르게 애플리케이션 보안에 특화되어 애플리케이션 레벨에서 http, https 프로토콜에 대한 트래픽을 감시하여 외부로부터의 공격을 탐지하고 차단하여 웹 서버를 보호한다.

SQL Injection, Cross-Site Scripting(XSS)과 같은 웹 공격은 물론 정보유출방지, 부정접근방지, 웹위변조방지 등으로 활용할 수 있다.

웹방화벽 : https://ko.wikipedia.org/wiki/%EC%9B%B9%EB%B0%A9%ED%99%94%EB%B2%BD

웹방화벽은 다른 솔루션과 달리 서버에 직접 구축하지 않아 비용이 들지 않고, 외부에 손쉽게 설치할 수 있다.

웹방화벽은 1세대, 2세대 블랙리스트 + 화이트리스트 병행 방식에서 3세대 지능형 웹방화벽 방식으로 진화했다.

WAF, IPS, NGFW 비교자료

2. 스위치 (SWITCH)

먼저 살펴볼 기술은 스위치이다. 스위치를 알기 위해서는 먼저 OSI(Open System Interconnection) 7 Layer에 대해 알아야 한다. 이는 하드웨어와 소프트웨어의 변경없이 상호간 통신을 위한 Spec을 정의한 기술로 7 Layer 중 어디에 속한 장비인지에 따라 L2, L3, L4, L7 스위치로 구분된다.

  • L2 스위치 : MAC 주소를 기반으로 하는 Switching 장비
  • L3 스위치 : IP 주소를 기반으로 하는 Switching 장비
  • L4 스위치 : IP 주소, TCP/UDP를 기반으로 하는 Switching 장비
  • L7 스위치 : IP 주소, TCP/UDP 및 패킷의 내용을 기반으로 하는 Switching 장비

L2 스위치 (이더넷, 프레임릴레이, ATM)

  • L2 스위치는 패킷이 들어오면 그것을 전달할 목적지가 어디인지를 확인하고 그 목적지로 전달하는 역할을 하는 가장 기본적인 스위치이다.
  • L2 스위치는 OSI 7 Layer 중 2 Layer인 데이터링크에서 동작하며, 2 Layer의 프로토콜인 이더넷, 프레임릴레이, ATM 등에서 스위치 역할을 수행한다. 이는 3 Layer인 네트워크 계층에서 이해할 수 있는 IP를 알 수 없어 이더넷과 같은 근거리 통신에 주로 활용된다.

L3 스위치 (IP, IPX)

  • L2와 다르게 IP를 이해할 수 있어 넓은 범위의 네트워크를 다루게 된다. 3 Layer의 프로토콜인 IP, IPX 등에서 스위치 역할을 수행한다.
  • L3 스위치는 목적지를 외부로 전송하는 라우터 역할을 수행한다. 따라서 L3 스위치가 존재할 경우 라우팅 기능은 스위치가 담당하게 된다.

L4 스위치 (TCP, UDP)

  • L4 스위치는 헤더를 통해 요청의 우선순위를 파악하여 스위칭하는 기능을 담당한다.
  • TCP/UDP 헤더를 확인하여 지정된 목적지로 메시지를 전달하고 VIP를 지정하여 여러 목적지에 대한 로드밸런싱 및 Fail over를 수행할 수 있다. 이는 3 Layer 이하에서는 불가능한 요건이다. 
  • 4 Layer의 프로토콜인 TCP, UDP 등을 스위칭한다.
  • 그 밖에 L4 스위치는 대표적인 웹서버 로드 밸런서 역할을 한다. WEB/WAS가 다중화 구성되어 있고, 웹서버 앞단에서 VIP를 기반으로 로드밸런싱하는 역할을 담당하며 이때 사용 가능한 방식은 RR, HASH, LC, WRR, WLC 등이 있다.
  • 일반적으로 RR을 많이 사용하지만, 웹서버의 처리량이 많거나 서버의 사양이 다른 경우 등에서 LC 또는 WLC를 통해 보다 지능적인 분배가 이루어지도록 한다. 다만 RR을 사용하더라도 WEB/WAS간 Sticky Session, JSESSIONID 등을 사용하면 WAS 정보를 참조하여 요청한 인스턴스를 찾아가도록 구성되어 있어 세션이 끊어지는 현상이 발생하지는 않는다.
  • 또한 웹 서버에서도 세션 유지가 필요한 경우나 웹 서버에서 서비스하는 정적 컨텐츠의 생성 일자가 웹 서버마다 다른 경우에는 Hashing 방식을 사용하여 동일 사용자는 동일한 웹 서버로 분배되게 함으로써 브라우저 캐시를 통한 성능 향상을 이뤄낼 수 있다.

L7 스위치 (Application Packet)

  • L7 스위치는 OSI의 Layer 7 즉 애플리케이션 레이어에서 동작하는 스위치로 Http Header / Body에 기록되는 모든 정보를 기반으로 정교하고, 보안이 강화된 라우팅 및 로드 밸런싱, 리다이렉션, 필터링 등이 가능하다.
  • L4 스위치가 TCP/UDP Port를 바탕으로 패킷을 분류하고 전송했다면, L7 스위치는 패킷의 URL 정보, 쿠키 정보 등을 바탕으로 패킷을 전달한다.
  • L7 스위치는 부하분산/Failover 이외에 네트워크 보안, QoS(Quality of service) 기능 등을 제공하여 웜이나, DDoS등의 비정상 트래픽과 패턴에 대응할 수 있는 방화벽 역할을 함께 수행한다고 볼 수 있다. 일반적으로 불건전게시물 탐지, IPS 등 네트워크 보안 장비들을 L7 장비로 분류하기도 한다.
  • 데이터의 이상 변형, 비 정상적인 네트워크 연결 끊김, 네트워크 상의 성능저하 등 네트워크 상의 이해할 수 없는 오류는 주로 L7 장비에서 많이 발생한다.
  • 참고로 모든 스위치는 자신보다 하위 레벨의 기능을 포함하고 있다. 즉 L7 스위치는 모든 스위치의 기능을 포함하고 있는 것이다.

3. 웹 가속기 (Web Accelerator)

웹가속기는 이름 그대로 웹 서비스 속도를 높여 사용자와 서비스 제공자의 답답함을 풀어주는 장비다. 서버로 유입되는 트래픽을 줄여 서버 성능을 높이고, 사용자에게 보내지는 트래픽을 줄여 회선 사용량을 줄임과 동시에 속도도 높인다. 심지어 사용자가 발생시킨 유입 트래픽을 줄이기도 한다.

주요 기능은 다음과 같다.

  • 데이터 사이즈 압축 : 웹에서 통과하는 데이터를 압축해 트래픽 사이즈를 줄여 E2E 응답 속도를 줄이는 역할을 한다. 트래픽 양을 줄이고 인터넷 구간의 병목을 해소하기 위해 html, javascript, image 등의 다양한 파일유형에 대한 압축 기능을 제공하며, 애플리케이션 대역폭 사용량을 감소시킨다.
  • 캐싱(컨텐츠 캐싱, 캐시 최적화) 기능 : 서버 측에서 제공한 컨텐츠를 캐싱함으로써 클라이언트와 서버 사이에서 빈번하게 반복되는 트래픽을 감소시켜 두 구간의 대역폭을 절감시키고 빠른 응답시간을 제공한다.
  • SSL Offloading : SSL Handshake 및 데이터 암호화/복호화를 서버대신 수행하고 서버와는 복호화된 데이터를 주고받음으로써 서버를 보호하고 웹 서버의 부하를 감소시킨다.
  • 멀티플랙싱 : 클라이언트에서 발생하는 세션을 축약해 서버로 전달하여 대량 세션에 의한 서버의 CPU 부하를 줄여주고, 클라이언트와 서버 사이의 커넥션 연결 시간을 감소시킨다.
  • 패킷 최적화 : Packet Order 등의 제어를 통해 낮은 품질의 네트워크 구간에서 발생할 수 있는 TCP 재전송 문제를 완화시킬 수 있다.

결론

네트워크를 구성하는 기술은 다양하게 제공된다. 때로는 이러한 기술이 우리의 프로젝트를 매우 빠르게 만들수도 있다. 이러한 기술은 이미 오래 전 우리에게 다가왔지만, 올바른 적용과 필요성을 인지하고 있는지 되짚어 봐야 할 것이다.

728x90
반응형