고재성, 이상훈님의 책을 보며 정리한 내용입니다.
문제가 될 시 해당글 삭제하겠습니다.
이중화 기술 개요
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 를 교환하면 LACP 가 구성된다.
→ 다만, 모든 인터페이스가 패시브 상태라면 LACPDU 를 송신하지 않아서, LACP 연결이 되지 않는다. - LACP 물리 인터페이스들은 반드시 동일한 속도의 인터페이스로 구성해야 한다.
LACP 와 PXE
- PXE : 네트워크 인터페이스를 통해서 컴퓨터를 부팅할 수 있도록 하는 환경
- 두 네트워크 장비(라우터) 간 LACPDU 를 통한 협상을 통해 LACP 가 동작한다.
- 마찬가지로 서버의 인터페이스(랜카드) 를 이중화 할 때도 LACPDU 를 사용한다.
→ 본딩 / 티밍 : 서버의 여러개의 인터페이스를 하나의 논리 포트로 묶는 기술 - 서버가 운영체제를 설치하기 전에는, 본딩과 티밍 같은 논리 인터페이스를 설정할 수 없다.
→ 네트워크 장비는 서버로부터 LACPDU 를 수신할 수 없기에 LACP 를 사용할 수 없다… - 이를 해결하기 위해, 네트워크 장비에서 일정 시간 동안 LACPDU 를 수신하지 못하면 한 개의 인터페이스만 활성화 시키고 LACPDU 가 다시 수신 되기 시작하면, 두 개 인터페이스 모두 활성화 할 수 있는 옵션을 제공한다.
- 동작 방식은 아래와 같다.
- 초기 운영체제 구성 전에는 서버에서 LACPDU 를 보낼 수 없다.
- 스위치에서 LACPDU를 수신하지 못했을 때, 인터페이스 한 개만 활성화 해 PXE Boot 를 실행한다.
- 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 장비 간의 데이터 트래픽을 전송하는 인터링크이다.
- 피어(peer) 장비
- MC-LAG 을 구성하는 방법
- 피어들을 하나의 도메인으로 구성
→ 동일한 도메인 ID 값 설정 - 피어는 피어 간 데이터 트래픽 전송을 위해 피어 링크를 구성한다.
- MC-LAG 관련 제어 패킷을 주고받기 위해서 인터 링크를 사용할 지, 별도의 경로(L3 인터페이스)를 구성할 지 결정한다.
→ 이 후, MC-LAG 피어 장비들은 다른 장비(서버나 스위치)와 LACP 를 구성할 수 있다. - 피어들을 하나의 도메인으로 구성
- MC-LAG이 설정 된 스위치가 LACP 를 통한 이중화 구성 하는 방법
- 두 장비 간 LACP 를 구성할 때 각 장비의 MAC 주소가 출발지 MAC 주소가 된다.
- 하지만 MC-LAG 를 이용해 LACP 를 구성할 때는 각 장비 개별 MAC 주소가 아닌 가상 MAC 주소를 사용해 LACPDU 를 전송한다.
- 이를 통해서 서로 다른 MAC 주소에서 통신을 하지만 MC-LAG 와 연결된 장비는 MC-LAG 피어들이 동일한 MAC 주소로 보이게 되고 서로 다른 장비로도 LACP 를 통한 이중화 구성을 할 수 있다.
MC-LAG 을 이용한 디자인
- MC-LAG 를 이용해 서버를 연결하면 스위치를 물리적으로 이중화 했지만, 논리적으로 하나의 스위치처럼 보여 액티브-액티브 구성으로 연결할 수 있다.
- 스위치 간의 MC-LAG 를 이용하면 루프 구조가 사라지므로 STP 에 의한 차단 포트 없이 모든 포트를 사용할 수 있다.
- 스위치 간의 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 그룹의 액티브 장비에서 장애가 발생하면 스탠바이 장비는 다음과 같은 프로세스를 갖는다.
- 액티브 장비가 비정상인지 체크한다.
- 가상 IP 주소에 대한 액티브 역할을 가져온다.
- 가상 IP, 가상 MAC 주소에 대한 MAC 주소 테이블 갱신해 하단 호스트들은 아무 설정 변경 없이 절차가 이루어진다.
→ 운영자의 개입 없이 자동으로 이루어진다. - FHRP 외부 인터페이스 구간 장애인 경우에도 액티브로 전환할 수 있다.
올 액티브 게이트웨이 이중화
- 기존의 살펴본 게이트웨이는 액티브-스탠바이로, 피어 장비 모두 게이트웨이의 역할을 할 수 있어도 액티브 장비로만 외부와 통신이 가능하기 때문에, 비효율적이다.
- 전통적인 네트워크(STP) 구조가 아닌 MC-LAG 을 이용해 일반적인 게이트웨이 이중화를 구성해도 액티브 장비를 통해서 하므로 트래픽이 우회해 비효율적이다.
- 그래서, MC-LAG 기술을 사용할 때는 게이트웨이 이중화 가상 IP 의 MAC 주소를 액티브 장비와 스탠바이 장비에서 모두 사용할 수 있게해 게이트웨이를 액티브-액티브 형태로 구성하는 기능을 제공한다.
→ 이를 통해 스탠바이 장비로 들어오는 트래픽도 스탠바이 장비에서 직접 처리해, 트래픽 흐름을 최적화 할 수 있다.
'CS > 네트워크' 카테고리의 다른 글
[IT 엔지니어를 위한 네트워크 입문] Chapter13,14. 네트워크 디자인, 가상화 기술 (1) | 2023.01.10 |
---|---|
[IT 엔지니어를 위한 네트워크 입문] Chapter12. 로드 밸런서 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter9. 보안 (1) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter7. 통신을 도와주는 네트워크 기술 (0) | 2023.01.10 |
[IT 엔지니어를 위한 네트워크 입문] Chapter6. 로드 밸런서 / 방화벽 : 4계층 장비(세션 장) (0) | 2023.01.10 |