개발하는 프로 국밥러
article thumbnail

IT 엔지니어를 위한 네트워크 입문

고재성, 이상훈님의 책을 보며 정리한 내용입니다.

문제가 될 시 해당글 삭제하겠습니다.


이중화 기술 개요

SPoF(Single Point of Failure)

  • 서비스를 제공하기 위한 인프라의 목적은 적시에 서비스를 출시하기 위해 인프라를 신속히 제공하는 것이다..
    → 때문에, 단일 접점 장애가 전체 서비스의 영향을 미치지 않도록 SPoF 를 만들지 않아야 한다.
    → 인프라를 설계할 때 SPoF 를 최소화 하는 것이 아니라, 아예 만들지를 말아야 한다..

이중화의 목적

  • SPoF 가 발생하더라도, 이중화 된 다른 인프라를 통해서 서비스가 지속되도록 해준다.
  • 액티브-스탠바이가 아닌, 액티브-액티브로 구성할 때는, 이중화 된 인프라에서 서비스 요청을 동시에 처리할 수 있기에, 처리 가능 용량이 늘어난다.
    → 다만, 이렇게 증가된 인프라를 기준으로 서비스를 운영하다보면, 특정 지점에 장애가 발생했을 때 인프라 용량이 절반으로 떨어져 정상적인 서비스 운영이 어렵다.
  • 따라서 인프라 이중화를 구성할 때는, 이중화 된 인프라 중 일부에서 장애가 발생하더라도 정상적인 서비스에 문제가 없도록 용량을 산정해 설계해야 한다.

LACP
→ 두 개의 물리 인터페이스가 논리 인터페이스를 구성하는 프로토콜

  • 1990 년대 중반까지 각 벤더별로 장비 간 대역폭을 늘리기 위해 독자적인 방법을 구현했지만, 독자적인 방법으로는 다른 장비와 연결할 때 호환성 문제가 발생해 IEEE 에서 상호 호환 가능한 연결 계층 표준화를 시작했다.
  • 이 표준화가 바로 LACP(Link Aggregation Control Protocol) 이다.
  • LACP 의 목적은 다음과 같다
    • 링크 사용률 향상
    • 향상된 장애 회복
  • LACP 기대 효과
    • 두 개 이상의 물리 인터페이스로 구성된 논리 인터페이스를 이용해 모든 물리 인터페이스를 액티브 상태로 이용한다. (액티브-액티브)
    • 이것을 통해서 스위치와 스위치 or 스위치와 서버 간 네트워크 대역폭이 물리 인터페이스 수 만큼 향상된다.
  • LACP 유의 사항
    • 각 물리 인터페이스는 전체 트래픽을 수용할 수 있어야 한다.
      (하나의 스위치가 고장났을 때 서비스가 정상적으로 이루어져야 한다)
    • LACP 로 구성되는 물리 인터페이스들 간의 속도가 동일해야 한다.

LACP 동작 방식

  • LACP 를 통해 장비 간 논리 인터페이스를 구성하기 위해 LACPDU(LACP Data Unit) 라는 프레임을 사용한다.
  • LACP 가 연결되려면, LACP 를 구성하는 두 개 이상의 물리 인터페이스가 서로 다른 장비에 연결되어 있으면 안된다. → LACP 를 구성하는 물리 인터페이스들은 하나에 장비에만 연결되어야 한다.
    → 만약 서로 다른 장비에 연결되어 있으면, LACP를 통한 이중화 구성을 할 수 없다.
  • LACPDU 에는 LACP 를 구성하기 위한 출발지 주소, 목적지 주소, 타입, 서브 타입, 버전 정보 등을 포함해 매 초마다 주고받는다.
  • LACP 는 두 개 이상의 장비 모두 LACP 설정을 해 LACPDU 를 주고받아야만 가능하다!
    너무나 당연한 이야기..
  • LACP 두 가지 모드
    • 액티브 : LACPDU 를 먼저 송신하고 상대방이 LACP 로 구성된 경우, LACP 를 구성
    • 패시브 : LACPDU 를 먼저 송신하지 않지만, LACPDU를 수신 받으면 응답해 LACP 를 구성
    보통 액티브 옵션을 많이 사용해, LACPDU 를 상대방 장비에 보내거나 받는다.
    모든 장비에서 LACPDU 를 보내는 것은 아니지만, LACPDU 를 기다리고 있고! 단방향이라도 LACPDU 를 받아 정상적인 LACPDU 를 교환하면 LACP 가 구성된다.
     다만, 모든 인터페이스가 패시브 상태라면 LACPDU 를 송신하지 않아서, LACP 연결이 되지 않는다.
  • LACP 물리 인터페이스들은 반드시 동일한 속도의 인터페이스로 구성해야 한다.

LACP 와 PXE

  • PXE : 네트워크 인터페이스를 통해서 컴퓨터를 부팅할 수 있도록 하는 환경
  • 두 네트워크 장비(라우터) 간 LACPDU 를 통한 협상을 통해 LACP 가 동작한다.
  • 마찬가지로 서버의 인터페이스(랜카드) 를 이중화 할 때도 LACPDU 를 사용한다.
    → 본딩 / 티밍 : 서버의 여러개의 인터페이스를 하나의 논리 포트로 묶는 기술
  • 서버가 운영체제를 설치하기 전에는, 본딩과 티밍 같은 논리 인터페이스를 설정할 수 없다.
    → 네트워크 장비는 서버로부터 LACPDU 를 수신할 수 없기에 LACP 를 사용할 수 없다…
  • 이를 해결하기 위해, 네트워크 장비에서 일정 시간 동안 LACPDU 를 수신하지 못하면 한 개의 인터페이스만 활성화 시키고 LACPDU 가 다시 수신 되기 시작하면, 두 개 인터페이스 모두 활성화 할 수 있는 옵션을 제공한다.
  • 동작 방식은 아래와 같다.
    1. 초기 운영체제 구성 전에는 서버에서 LACPDU 를 보낼 수 없다.
    2. 스위치에서 LACPDU를 수신하지 못했을 때, 인터페이스 한 개만 활성화 해 PXE Boot 를 실행한다.
    3. PXE로 운영체제를 설치하고 LACPDU 를 주고받으면 LACP 로 구성이 된다.

MC-LAG

  • LACP 를 구성할 때, LACPDU 를 주고 받는 장비 상호 간 구성이 1:1 이어야 한다.
    → LACP 를 구성할 때, 라우터 혹은 랜카드가 1:1 관계여야 한다!
  • 그래서 본딩이나 티밍(다중의 물리 MAC 주소를 하나의 MAC 주소로 묶는다)과 같은 이중화 구성을 할 때, 각 랜카드 별로 물리 MAC 주소를 사용하지 않고 여러 개의 물리 MAC 주소 중 하나를 Primary MAC 주소로 사용한다.
    → 즉 여러 개의 물리 인터페이스(랜카드)를 쓰더라도, 하나의 MAC 주소를 사용해 이 조건을 만족한다.
  • 서버에서 인터페이스(랜카드)를 두 개 이상 구성하더라도 상단 스위치가 한대로 구성된 경우, 상단 스위치에서 장애가 발생하면 서버는 통신이 불가능해진다. (SPoF 이기 때문에,,,)
    → SPoF 구성을 피하기 위해서 서버의 인터페이스(랜카드)를 서로 다른 스위치로 연결한다.
  • 서로 다른 스위치로 이중화 구성을 하면 두 스위치 간 MAC 주소가 달라 LACP 를 사용할 수 없다.
    → 따라서 서버에서도 본딩과 티밍 모드를 액세스-스탠바이로 구성해 사용한다.
  • MC-LAG(Multi-Chassis Link Aggregation Group) 기술로 서로 다른 스위치 간의 실제 MAC 주소 대신 가상 MAC 주소를 만들어 논리 인터페이스로 LACP 를 구성할 수 있다.
    → MC-LAG 방식은 2개 이상의 랜카드 중 하나의 Primary MAC 을 정하는 방식에서 발전한 방식이다.

MC-LAG 동작 방식

  • MC-LAG 구성 요소
    • 피어(peer) 장비
      • MC-LAG 를 구성하는 장비
    • MC-LAG 도메인
      • 두 Peer 장비를 하나의 논리 장비로 구성하기 위한 영역 ID 이다.
      • Peer 장비는 이 영역 ID 를 통해서 상대방 장비가 Peer 를 맺으려는 장비인지 판단한다.
    • 피어 링크(Peer-Link)
      • MC-LAG 을 구성하는 두 Peer 장비 간의 데이터 트래픽을 전송하는 인터링크이다.
  • MC-LAG 을 구성하는 방법
    1. 피어들을 하나의 도메인으로 구성
      → 동일한 도메인 ID 값 설정
    2. 피어는 피어 간 데이터 트래픽 전송을 위해 피어 링크를 구성한다.
    3. MC-LAG 관련 제어 패킷을 주고받기 위해서 인터 링크를 사용할 지, 별도의 경로(L3 인터페이스)를 구성할 지 결정한다.
    → 이를 통해 MC-LAG 을 구성하기 위한 협상이 정상적으로 완료되면 두 대의 장비는 하나의 MC-LAG 도메인으로 묶이고 인터페이스 이중화 구성에 사용할 가상 MAC 주소를 피어간 동일하게 생성한다.
    → 이 후, MC-LAG 피어 장비들은 다른 장비(서버나 스위치)와 LACP 를 구성할 수 있다.
  • MC-LAG이 설정 된 스위치가 LACP 를 통한 이중화 구성 하는 방법
    • 두 장비 간 LACP 를 구성할 때 각 장비의 MAC 주소가 출발지 MAC 주소가 된다.
    1. 하지만 MC-LAG 를 이용해 LACP 를 구성할 때는 각 장비 개별 MAC 주소가 아닌 가상 MAC 주소를 사용해 LACPDU 를 전송한다.
    2. 이를 통해서 서로 다른 MAC 주소에서 통신을 하지만 MC-LAG 와 연결된 장비는 MC-LAG 피어들이 동일한 MAC 주소로 보이게 되고 서로 다른 장비로도 LACP 를 통한 이중화 구성을 할 수 있다.

MC-LAG 을 이용한 디자인

  1. MC-LAG 를 이용해 서버를 연결하면 스위치를 물리적으로 이중화 했지만, 논리적으로 하나의 스위치처럼 보여 액티브-액티브 구성으로 연결할 수 있다.
  2. 스위치 간의 MC-LAG 를 이용하면 루프 구조가 사라지므로 STP 에 의한 차단 포트 없이 모든 포트를 사용할 수 있다.
  3. 스위치 간의 MC_LAG 를 구성하는 경우 상, 하단 모두 MC-LAG 으로 구성하는 디자인을 만들수도 있다.

게이트웨이 이중화

게이트웨이 이중화란?

  • 특정 호스트가 동일한 서브넷에 있는 내부 네트워크와 통신할 때 ARP 를 직접 브로드캐스트 해 출발지와 목적지가 직접 통신한다.
    → 이 때, 3계층 장비인 라우터의 도움 없이 직접 통신하기 때문에, L2 통신이라 부른다.
  • 목적지가 동일한 서브넷에 있는 내부 네트워크가 아닐 때 게이트웨이를 통해야 하는데 이를 L3 통신이라 부른다.
  • 따라서 호스트에 게이트웨이 설정이 되어 있지 않거나, 잘못 설정되면 외부와 통신할 수 없다.
  • 또는, 게이트웨이 장비에 연관된 부분에서 장애가 생긴다면 외부와 통신할 수 없다.
    →만약, 물리적으로는 외부 네트워크와 통신할 수 있는 다른 경로가 이중화 되어 있다 하더라도, 하단 호스트는 하나의 게이트웨이만 바라보므로 외부와 통신이 단절된다.
  • 이런 경우를 위한 게이트웨이 이중화 프로토콜이 FHRP(First Hop Redundancy Protocol) 이다.
    • 이를 통해 두 라우터(게이트웨이)는 실제 IP 이외 추가로 가상 IP, 가상 IP 에 대한 MAC 주소를 동일하게 가지게 된다.
    • 가상 IP 는 그룹 내에서 우선순위가 높은 장비가 Active 상태를 유지하고, ARP 요청에 응답한다.

FHRP(First Hop Redundancy Protocol)

  • FHRP 를 구성한 게이트웨이 장비는 각 장비가 동일 그룹으로 인식하기 위해 같은 그룹 ID 를 갖도록 설정한다.
    (가상 IP 도 각 장비에 설정한다)
  • 하단 호스트가 게이트웨이(가상 IP) 로 ARP 요청을 보내면 이것은 브로드캐스트 통신으로 동일한 네트워크 모든 장비에 전달되고, FHRP 장비 중 액티브 장비가 ARP 요청에 응답한다.
  • 하단 서버는 액티브 장비를 통해서 외부와 통신할 수 있다.
  • 만약, FHRP 그룹의 액티브 장비에서 장애가 발생하면 스탠바이 장비는 다음과 같은 프로세스를 갖는다.
    1. 액티브 장비가 비정상인지 체크한다.
    2. 가상 IP 주소에 대한 액티브 역할을 가져온다.
    3. 가상 IP, 가상 MAC 주소에 대한 MAC 주소 테이블 갱신해 하단 호스트들은 아무 설정 변경 없이 절차가 이루어진다.
      → 운영자의 개입 없이 자동으로 이루어진다.
    4. FHRP 외부 인터페이스 구간 장애인 경우에도 액티브로 전환할 수 있다.

올 액티브 게이트웨이 이중화

  • 기존의 살펴본 게이트웨이는 액티브-스탠바이로, 피어 장비 모두 게이트웨이의 역할을 할 수 있어도 액티브 장비로만 외부와 통신이 가능하기 때문에, 비효율적이다.
  • 전통적인 네트워크(STP) 구조가 아닌 MC-LAG 을 이용해 일반적인 게이트웨이 이중화를 구성해도 액티브 장비를 통해서 하므로 트래픽이 우회해 비효율적이다.
  • 그래서, MC-LAG 기술을 사용할 때는 게이트웨이 이중화 가상 IP 의 MAC 주소를 액티브 장비와 스탠바이 장비에서 모두 사용할 수 있게해 게이트웨이를 액티브-액티브 형태로 구성하는 기능을 제공한다.
    → 이를 통해 스탠바이 장비로 들어오는 트래픽도 스탠바이 장비에서 직접 처리해, 트래픽 흐름을 최적화 할 수 있다.
profile

개발하는 프로 국밥러

@gugbab2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!