[Network] 8. 라우터, 로드밸런서


라우터

  • 라우터는 네트워크와 네트워크 간의 경로를 설정하고 가장 빠른 길로 트래픽을 이끌어주는 역할과 함께 NAT, 방화벽, VPN, QoS 등 다양한 부가 기능을 함께 제공하기도 한다.
  • 라우터는 네트워크 계층(3계층)의 장비다.

    Untitled

  • 라우터의 동작 방식과 역할 3가지
    • 경로지정 : 경로 정보를 모아 라우팅 테이블을 만들고, 패킷이 라우터에 들어오면 패킷의 도착지 IP 주소를 확인해 경로를 지정하고 패킷을 포워딩한다.
    • 브로드캐스트 컨트롤 : 연결되어 있는 네트워크 정보를 제외하고 경로습득 설정을 하지 않으면 패킷을 포워딩할 수 없다.
    • 프로토콜 변환 : 현재는 이더넷으로 바뀌면서 변환할 일은 없지만, 과거에는 WAN 과 LAN 에서 사용하는 프로토콜이 달라 각각의 기술로 변환하기 위해 사용됐다.

라우팅 프로토콜의 종류

Untitled

  • Static Routing(정적 라우팅)
    • 관리자가 네트워크에 대한 경로 정보를 직접 지정하여 라우팅한다.
    • 관리자에 의한 라우팅 정보만을 참조하여 라우터 자체 부담이 줄어들고, 동적 라우팅보다 빠르며 안정적이다.
    • 네트워크 변화가 빈번하거나 등록할 네트워크 수가 많을 경우 경로 설정을 변경하기 어렵다.
  • Dynamic Routing(동적 라우팅)
    • 대규모 네트워크에 사용하며 라우터 간의 변경된 네트워크에 대한 정보를 자동으로 교환하여 라우팅 한다.
    • Routing tablev을 자동으로 작성하여 관리자의 초기 설정만 필요하다.
    • 정적 라우팅에 비해 메모리를 많이 차지한다는 단점이 있다.

      Untitled

      • IGP(Internal Gateway Routing Protocol)
        • 동일 그룹 네트워크에서 라우팅 정보를 교환할 때 사용되는 라우팅 프로토콜이다.
        • 라우터로 서로 연결되어 있는 여러 개의 네트워크 집합을 도메인 또는 AS(Autonomous System)이라 한다.
        • 해당 도메인과 AS 안에 존재하는 라우터는 Domain 내부 라우터로서, Domain 내부 경로 설정에 관한 프로토콜이 바로 IGP 이다.
      • EGP(External Gateway Routing Protocol)
        • 다른 그룹과 라우팅 정보를 교환할 때 사용되는 라우팅 프로토콜이다.
      • Distance Vector
        • Routing table 을 위한 요소
        • 거리와 방향에 중점을 둔 라우팅 알고리즘이며 Routing table 이 연결된 라우터와 교환하여 생성한다.
      • Link State Vector
        • Link State 는 Distance Vector 의 단점을 극복하고자 만들어졌다.
        • Link State 는 네트워크의 토폴로지 정보를 DB로 구성하고 이를 사용하여 SPF 알고리즘(Shortest Path First)을 사용하여 Routing Table 을 작성한다.
        • 네트워크 상에서 변화가 있을 때만 Routing 정보를 전달한다.
        • 메모리를 많이 사용하고, 계층적 구조로 환경설정이 복잡하다는 단점을 가지고 있다.

로드 밸런서

  • 로드밸런서는 서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 장치 또는 기술을 칭한다.
  • 클라이언트와 서버풀 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 제공해 준다.

    Untitled

L4 스위치

  • 전송계층(L4)에서 패킷을 확인하고 세션을 관리하며 로드밸런싱을 제공하는 스위치다.
  • TCP/UDP 패킷 정보를 분석해서 해당 패킷이 사용하는 서비스 종류 별로 처리, 세션 관리, 서버/방화벽 로드밸런싱, 네트워크 서비스 품질 보장 등의 역할을 한다.

    Untitled

    1. 브라우저에서 특정 url을 입력한다.
      • PC 에 설정된 Local DNS 서버로 쿼리를 날리게 되고, 서버는 그 url 을 관리하는 DNS 서버를 통해 L4의 VIP(Virtual IP) 주소를 휙득한다.
      • VIP(가상 IP) 를 들고 있는 쪽으로 패킷이 간다. 이 글을 참고하자.
    2. Local DNS 는 휙득한 VIP 주소를 Client 에 전송한다.
    3. 휙득한 DNS 를 기반으로 L4 VIP 를 통해 http 를 L/B(로드 밸런서)장비에 요청한다.
    4. L/B 장비는 최적의 서비스 서버를 내부 알고리즘을 통하여 선별하고, 요청을 전송한 후 서버 작업 결과를 LB/장비가 전송한다.
    5. 전달 받은 http 결과를 L/B 장비를 통해 Client 에 전송함으로 요청 처리를 끝낸다.

ADC (Application Delivery Controller)

  • ADC 는 L4+L7 로드 밸런서다.

    Untitled

  • L4 스위치와 다르게 어플리케이션 프로토콜의 헤더와 내용을 이해하고 동작한다.
  • 콘텐츠(HTTP, FTP, Telnet, Email 등)를 인지하여 원하는 포트로 전달하는 콘텐츠 기반 스위칭이고, L5 ~ L7 packet payload(header, trailer 가 아닌 데이터)를 분석하여 스위칭하는 장비다.

방화벽(FW)

  • 외부 네트워크(악의적인 해커, 공격자 등)로부터 내부 네트워크 혹은 내부자산(PC,서버,DB등)을 보호하는 보안장비로, 접근통제와 인증, 감사 및 로깅, 프록시, NAT 기능들을 통해 관리된다.
  • 주요기능
    1. 접근 통제
      • 외부에서 내부 네트워크로 접근하는 것을 패킷 필터링을 통해 통제하는 기능
    2. 인증
      • 메시지 인증 : VPN 같은 신뢰할 수 있는 통신선을 통해 전송되는 메시지 신뢰성 보장
      • 사용자 인증 : 방화벽을 지나가는 트래픽에 대한 사용자가 누구인지 증명하는 기능(패스워드,토큰,OTP)
      • 클라이언트 인증 : 모바일 사용자처럼 특수한 경우에 접속을 요구하는 호스트 자체에 대한 확인
    3. 감사 및 로깅
      • 정책 설정 및 변경, 관리자 접근, 네트워크 트래픽 허용 또는 차단과 관련한 사항 등 접속정보를 로그로 남긴다.
    4. 프록시
      • 보안정책에 따라 실제 서비스를 수행하는 서버로, 클라이언트의 서비스 요청을 받아 전달하고 결과를 수신하여 사용자에게 전달하는 기능
    5. NAT
      • 주소변환 기능으로, 외부 호스트의 IP 나 목적지 호스트 IP 를 전송단계에서 변환하여 전달하는 기능으로, 네트워크에서 외부망과 내부망을 나눠주는 기능을 가능하게 한다.

헬스체크

  • 헬스체크는 로드밸런싱 서비스를 제공하는 다수의 서버의 상태를 점검하기 위해 사용되는 기술이다.
  • 서버의 상태를 주기적으로 체크하여 서버의 상태가 통신이 불가능할 경우 서버를 서비스에서 제외하여 서비스를 원활하게 제공하기 위해 이용되는 방법이다.
    1. ICMP Health Check (네트워크 계층)
      • ICMP 를 이용하여 서버의 상태를 검사하는 L3 헬스체크 기능
      • ICMP 란 인터넷 제어 메시지 프로토콜로, 네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층(L3) 프로토콜이다.
      • ICMP 의 주요 목적은 오류 보고다. 두 장치가 인터넷을 통해 연결되면 ICMP 는 데이터가 의도한 대상에 도달하지 못한 경우 전송하는 장치와 공유할 오류를 생성한다.
      • 예를 들어 데이터 패킷이 라우터에 비해 너무 큰 경우 라우터에서는 패킷을 삭제하고 ICMP 메시지를 데이터의 원래 소스로 돌려보낸다.
      • ICMP 프로토콜의 보조 용도는 네트워크 진단을 수행하는 것이다. 일반적으로 사용되는 터미널 유틸리티 traceRoute 및 ping 은 모두 ICMP 를 사용하여 작동한다.
      • traceRoute 유틸리티는 두 인터넷 장치 간의 라우팅 경로를 표시하는 데 사용된다.
      • 라우팅 경로는 요청이 대상에 도달하기 전에 통과해야 하는 연결된 라우터의 실제 물리적 경로다. 한 라우터와 다른 라우터 간의 여정을 ‘‘이라고 하며, traceRoute는 여정 중 각 홉에 필요한 시간도 보고한다.
      • 따라서 네트워크 지연의 원인을 확인하는데 유용할 수 있다.

        Untitled

      • ICMP 의 특성을 이용하여 서버의 IP Address 활성화를 확인하여 점검한다.
      • 이 기능은 서버의 IP Address 에 ICMP 를 이용하여 ICMP Echo Request 메시지를 전송한 후 ICMP Echo Reply 메시지 수신 여부에 따라서 서비스 서버의 서비스 가능 유무를 판단한다.
    2. TCP Health Check (전송 계층)
      • TCP 에서 제공되는 서비스 포트를 이용하여 서버의 상태를 검사하는 L4 헬스체크 기능

        Untitled

      • 이미 지정된 포트를 사용하는 FTP, HTTP, Telnet 등과 개발자가 가용할 수 있는 영역에 있는 포트 번호를 이용하여 서비스 제공 가능 유무를 점검한다.
      • 이 기능은 서비스를 위한 포트의 상태를, TCP 의 초기화(연결)에서 사용되는 3-way handshake 를 이용하여 서버의 서비스 포트로 TCP_SYN 을 전송하고 그에 따른 SYN_ACK로 응답 유무에 따라서 서비스 서버의 서비스 가능 유무를 판단한다.
      • 이후 서버의 소켓 낭비를 막기 위해 SYN_ACK 응답 수신 시 바로 RST 패킷을 전송하여 세션을 종료하는 Half-Open 방식과 ACK 패킷을 전송하는 TCP Open 방식으로 나뉜다.
    3. Script Health Check (응용 계층)
      • Script 를 이용하여 Application Demon 을 점검하는 L7 헬스체크 기능

        Untitled

      • Script 로 작성된 순서에 의하여 서버로 메시지를 전송하고 그에 따른 응답 메시지 유무에 따라서 서버의 서비스 가능 유무를 판단한다.
      • 기본적으로는 서버와 TCP 세션을 맺고 Request 메시지 전송을 통해 응답 코드를 확인한다.

부하 분산 알고리즘

  • Round Robin(순차방식)
    • 사용자 요구를 차례대로 각 서버에 균등하게 분배하는 방식
    • 서버 커넥션 수나 응답시간에 상관없이, 그룹 내의 모든 서버를 동일하게 처리하여 일반적인 구성에 있어서 다른 알고리즘에 비해서 가장 빠르다는 장점을 가진다.
  • Least Connection(최소접속방식)
    • 오픈 커넥션이 가장 적은 서버에 사용자 요구를 연결하는 방식
    • 모든 서버가 균등한 트래픽을 유지하기 위해서 처리 속도가 빠른 서버가 더 많은 접속을 받게 된다. 최소접속 알고리즘은 서버들의 성능이 비슷하게 구성되었을 경우에 가장 효과적인 트래픽 분산이 가능하다.
  • Fastest Response Time(응답시간방식)
    • 가장 빨리 응답하는 서버에 이용자 요구를 연결하는 방식
    • 응답시간은 각 서버가 패킷 형태의 요구를 송수신하는데 걸리는 시간을 측정한 것이다.
  • Fixed(고정방식)
    • 어떤 서버가 커넥션 요청을 받는지를 결정하기 위해 각 유입 요청의 소스 IP 주소를 사용한다.
    • 이 알고리즘은 여러 종류의 주소로부터 많은 양의 요구가 있을 경우 더 잘 작동한다.
    • 이것은 동일한 게이트웨이를 통하여 들어오는 많은 요구보다, 여러 종류의 혼합된 소스 IP 어드레스의 요구일 경우 더 잘 수행한다.
  • 기타 Hashing, Min Misses, Random, URL-based, Cookie, SSL session ID 와 같은 방식의 알고리즘이 있다. 또한 로드밸런싱 정책은 장비의 Vender 에 따라 지원하는 정책이 조금씩 달라 질 수 있다.

로드밸런스 구성방식

  • 인라인 구조

    Untitled

    • LB가 스위치에서 리얼 서버까지 일직선상 경로에 있는 형태
    • 직관적이라는 장점이 있지만, 모든 트래픽이 LB 를 경유하기 때문에 부하가 많이 갈 수 있다.
  • One-ARM 구조

    Untitled

    • LB 가 스위치 옆에 있는 형태
    • 모든 트래픽이 LB 를 경유하지 않아도 되기 때문에 부하는 줄였지만, 설정이 까다롭다는 단점이 있다.

로드밸런스 동작모드

  1. 트랜스패런트 모드

    Untitled

    Untitled

    • 기존 네트워크 대역을 그대로 사용하는 투명한 구조를 사용한다 하여 붙여진 이름이다.
    • LB 가 L2 스위치처럼 동작하며, LB 에서 사용하는 VIP 주소와 실제 서버가 동일한 네트워크를 사용한다.
    • 인라인, 원암 구조 둘 다 사용 가능하다.
  2. 라우티드 모드

    Untitled

    • 이름처럼 LB 가 라우팅 역할을 수행하는 모드이다.
    • LB 기준으로 서로 다른 네트워크가 분리되어 있어, 보안 강화에는 좋다.
    • 그러나 트랜스패런트 모드와 다르게 응답 시 출발지 MAC 주소를 변경해야된다는 차이가 있다.
  3. DSR 모드

    Untitled

    • Direct Server Return 의 줄임말이며 원암 구조에서만 사용된다.
    • 이전 두 개의 모드들과 다르게 응답이 LB 를 경유하지 않고 리얼 서버에서 직접 응답을 내려준다.
    • 응답 트래픽이 LB 를 경유하지 않으므로 LB 에 부하를 적게 준다는 장점이 있다.
    • 그러나 단점으로 리얼 서버에서도 추가 설정을 해줘야 한다는 점응답이 LB 를 거치지 않아 문제확인이 어렵다는 단점을 가지고 있다.
맨 위로 이동 ↑

댓글 남기기