프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

 

 

이중화

네트워크의 경로를 2개 이상으로 만들어, 특정 경로 장애 발생 시 다른 경로를

사용하여 서비스에 지장이 없도록 하는 것을 말한다.

 

 

 

이중화의 목적

 

  • 시스템의 장애로부터 가용성을 높이기 위하여 장비 및 연결을 다중화.
  • 장애가 발생하면 준비된 장비를 서비스에 투입함으로써 짧은 시간 내에 서비스 복구가 가능하게 함.
  • 서버 혹은 인프라 운영시 업데이트 및 설정 변경 등으로 시스템 서비스 사용 불가시 이중화를 통한 무중단 서비스 가능.

 

 

1. Fail over : 시스템 대체 기능

- 서버 또는 시스템의 장애가 발생하혀 서비스 중단이 발생할 경우 대체 장비(서비스)가 동잗하여 서비스를 지속성을 유지하게 하는 것.

- 피해 최소화의 목적.

 

2. 로드밸런스 부하 분산

- 두 개 이상의 연결 또는 서비스 사용 시 특정 서비스에 과도한 트래픽을 분산시킴으로써 고가용성을 유지하게 하는 것

 

 

 

 

이중화 구성(설정) 방법

1) Active -Stanby

- 가장 기본적인 HA(High Availability)방법으로 다중화 장치(서비스)만 활성화하여 사용 중에 장애가 발생 시 대체 장치로 서비스를 이동시켜 failover가 일어나게 하는 서비스( 단 failover가 동작중인 시간 동안은 서비스 사용이 제한됨)

 

2) Active- Active

다중화 서비스를 모두 활성화시켜 서비스 분산을 통한 안정성을 유지하여 장애가 발생하여도 서비스 중단 없이 지속적으로 서비스가 가능한 방식

failover 발생 시, 리소스 처리량이 증가하여 시스템 장애로 이어질 수 있으므로 리소스 분산 계획이 필요

 

-      Hot stand by

    Standy 쪽 장비 기동 후 즉시 사용 가능

-      Warm standby

     스탠바이 장비 기동 후 이용을 위한 어느 정도의 시간 및 준비가 필요

-      Cold standby

     스탠 바이 쪽 장비를 필요시 직접 운영 시켜 서비스 활성화

 

 

 

 

 

Failover

- 평소 허용하는 장치(서비스)와 그 복제 장치를 가지고 있어, 사용 장치가 장애로 사용이 어렵게 되었을 경우 복제 장치로 그 작업을 이전 처리하게 하여 무중단 서비스를 구축하게 해주는 것을 의미

- Fault torelance (내 결함성)

Fault Tolerant 컴퓨터 시스템이란 시스템 내의 어느 한 부품 또는 어느 한 모듈에 Fault (장애)가 발생하더라도 시스템운영에 전혀 지장을 주지 않도록 설계된 컴퓨터 시스템이다.  (https://blog.naver.com/unsa94/140016461423)

 

 

 

 

 

Stateless / Stateful

 

1) stateless 

- Tcp/UDP 트래픽과 포트 번호를 구별하는 수신 트래픽 패킷을 필터링하여 보안을 제공

- 패킷은 출발지/목적지 ip주소 또는 트래픽 유형(TCP/UDP)과 같은 정상적인 정보를 기반으로 네트워크에 대한 접근을 허용하거나 거부

- 단일 패킷 내에는 숨겨져 있지 않지만 많은 패킷에 걸펴 확산되는 공격에 취약해질 수 있으며, 연결 상태를 추적하지 않음으로 검사 패킷의 해더 부분만 검사하기 때문에 훨씬 빠르고 기능적 효율성이 높아짐.

 

 

2) stateful 

클라이언트의 이전 상태를 기록, 다양한 트래픽과 프로토콜 유형을 구별하기 위해 방화벽에 애플리케이션 수준에 필요한 기능을 제공.

TCP 스트림이나 UDP 통신과 같은 네트워크 활성 연결 상태를 지속적으로 추적할 수 있으며 들어오는 트래픽 ACL 데이터 패킷의 내용을 확인하고 활용.

 

 

 

 

 

 대칭형 / 비대칭형 라우팅

 

1. 대칭형 라우팅

출발지에서 목적지로 가는 경로와 목적지에서 출발지로 돌아오는 경로가 같은 경우

동적 라우팅 프로토콜로 만들어지는 ACL이 stateful

 

 

2. 비대칭형 라우팅

출발지에서 목적지로 가는 경로와 목적지에서 출발지로 돌아오는 경로가 다른 경우

(경로 보장되지 않는다는 의미, 연결이 비대칭적일 수 있음.)

static으로 설정한 경우, 라우터가 두개면 나가고 들어오는 게 다를 수 있음. 

이러한 경우 정책이 두 개 생겨야 하는데, 장비들끼리의 동기화가 필요하게 된다.

또한 ACL 정책이 유출되면 보안에 취약해진다.

 

 

 

 

 

Redundancy

 

이중화를 redundancy(중복)라고 부르는 이유는 주로 시스템의 안정성과 신뢰성을 높이기 위함이다. 이중화는 시스템이나 장치의 중복 구성을 가지고 있어서, 하나의 요소가 고장 나더라도 시스템이 계속해서 작동할 수 있도록 하는 기술이다.

 

"Redundancy" '여분의 것' 또는 '중복'을 의미한다. 시스템에 중복된 부분이 있음으로써, 한 부분이 작동하지 않을 경우에도 시스템이 여전히 기능을 수행할 수 있게 된다. 따라서, 이중화는 시스템이나 장치의 안정성과 신뢰성을 높이기 위한 중요한 전략 중 하나이다.

 

L2 스위치 이중화 예시

 

 

 

 

 

 

 

 

 

STP(Spanning Tree Protocol)

 

위의 스위치 이중화에서 발생하는 문제는 Broadcast 데이터가 서로에게 계속 전달되면서 끊임없는 Loop가 발생한 다는 것이다.

 

 

 

이중화 시에 L2의 특성상 Loop가 발생하여 오히려 이중화가 불안정성을 높이게 되는 아이러니가 발생할 수 있다.

이를 해결하기 위해 고안된 것이 STP(Spanning Tree Protocol)이다.

 

 

 

 

 

 

STP(스패닝 트리 프로토콜)는 네트워크에서 루프(Loop)를 방지하고 네트워크 트래픽의 안정성을 보장하기 위한 프로토콜입니다. 스패닝 트리 프로토콜은 물리적인 네트워크 토폴로지에 기반하여 루프가 발생하지 않도록 경로를 선택하고 불필요한 링크를 차단하는 역할을 합니다.


1. 루트 브리지 선택

모든 네트워크 디바이스(스위치)는 STP 메시지를 교환하여 네트워크의 토폴로지 정보를 수집하고 최적의 경로를 결정합니다. 이 과정에서 가장 높은 우선순위를 가진 브리지(루트 브리지)가 선택되고, 나머지 스위치들은 루트 브리지와의 경로를 계산합니다. ( MAC 주소가 가장 작은 스위치가 Root가 된다.)

2. 경로 선택

각 스위치는 루트 브리지와의 경로를 계산하고, 가장 짧은 경로를 선택하여 루프가 발생하지 않는 트리 구조를 형성합니다. 이때, 여러 경로가 동일한 길이일 경우에는 브리지 ID를 기준으로 경로를 선택합니다.

3. 포트 상태 조정

STP는 불필요한 루프를 방지하기 위해 불필요한 포트를 차단합니다. 각 스위치는 루트 브리지까지의 경로를 담당하는 포트(루트 포트)와 루트 브리지로부터 각 서브넷에 도달하기 위한 포트(디자이네이트 포트)를 활성화하고, 나머지 포트는 차단합니다.

4. 포트 상태 변경 감지

네트워크 상태가 변화할 때마다 STP는 네트워크 상태를 모니터링하고 포트 상태를 동적으로 조정합니다. 예를 들어, 포트나 링크의 장애가 발생하면 STP는 경로를 재계산하고 루프를 방지하기 위해 포트를 차단하거나 활성화합니다.
(장애 링크 발생 시 자동으로 STP로 Off 된 Port가 ON 상태가 되어 가용성 높여준다.)

 

 

 

 

 

 

STP 확인하기

 

 

switch 간의 Loop를 설정하면, Loop 발생 방지를 위해 Root와 연결된 Switch3의 링크를 차단된다.

 

 

 

 

 

 

root 스위치에서 

show spanning-tree를 확인해 보면, Thist bridge is the root를 확인할 수 있다.

 

 

 

 

Root가 아닌 Switch는 모든 데이터를 Root로 보내게 된다.

Root로 향하는 포트가 root port가 됨. (Role = Root)

 

 

 

 

이중화를 확인하기 위해 root로의 경로를 끊어버리자.

 

 

 

이제 down 돼있던  port가 On이 된다.

 

그런데 바로 바뀌지 않고 30초 정도 걸린다.

 

보통 심각한 장애라고 생각하는 시간은 1초이다.

1초면 데이터 천 개가 손실될 수 있는 시간이다.

 

이러한 문제를 해결한 것이 Rapid spanning tree이다.

 

 

 

 

 

Rapid spanning tree

 

L2 스위치 두 개에 서로에게 라인을 연결하면, Loop 발생으로 한 port가 down 된다.

 

 

 

spanning-tree ? 로 여러 가지 모드를 확인해 보면 rapid 모드가 존재한다.

 

 

 

각각의  interface에  rapid 모드를 적용해 주자.

 

 

 

 

이러면 한 링크가 문제 발생 시, 바로 다른 링크로 대체된다.

 

 

 

 

 

 

 

 

 

 

4중 라인에서 유휴라인 사용하기

 

STP의 문제는 이처럼 아무리 라인을 많이 이어 주어도 결국 하나의 회선만 사용된다는 것이다.

너무 아깝지 않을까?

 

 

 

 

유휴 회선을 쓰기 위해 논리적으로 묵어서 하나의  물리적 라인인 것처럼 사용하자.

 

interface f0/1과 /2를 하나의 그룹으로 묶고, mode on을 해주었다.

 

논리적으로 묶으면, 대역폭이 100mb인 회선을 두 개 사용 시  200mb의 대역폭이 되어 빠르게 보낼 수 있다..

 

 

 

interface f0/23과 /24를 같은 그룹으로 만들고 active를 시켜준다.

 

 

 

 

이러면 물리적으로는 4개의 라인이지만, 논리적으로는 두 개의 라인이 된다.

물론 Loop 때문에  f0/23과 /24는 Off 상태로 유지된다.

 

 

 

 

 

 

 

 

Spanning-Tree 를 활용한 Layer2 경로의 이중화

 

다시 3개의 스위치로 돌아와서 생각해 보자.

 

Switch3의 데이터가 Switch1로 가기 위해서는 Root 스위치를 거쳐가야 한다. 

 

이를 해결하기 위해 VLAN을 만들어서, VLAN마다 다른 Root 스위치로 선정해 보자.

 

 

 

 

 

이를 위해 VLAN을 스위치끼리 동기화해야 한다.

이때 사용하는 것이 Vlan을 동기화하는 프로토콜인 VTP이다.

 

Root 스위치에는 server로 설정한 후, 공유를 위한 도메인 설정을 해준다.

 

 

 

 

 

다른 스위치는 client로 설정해 준다.

 

 

 

 

 

Client에서도 Vtp domain을 동일하게 세팅해 주면, root에서 만든 Vlan들이 client에도 생성되어 있다.

 

 

 

 

 

 

 

아직은 모든 VLAN에서도 Root 스위치가 Root이다.

 

 

 

 

 

특정 VLAN이 Root를 끼고돌지 않고 바로 다른 Switch로 향하게 하기 위해 Priority를 설정해 준다.

Switch1이 Root가 되게 설정해 주자.

(4096이 최소 값이다.)

 

 

확인해 보면 VLAN40에 대해서는 Switch1이 Root로 선정되어 있다.

 

 

이를 통해 이중화 상태에서도 Root를 건너가지 않는 Best Path를 세팅해 줄 수 있다.

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함