[MLAG] MLAG

크크몽·3일 전

MLAG

목록 보기
2/5

LAG는 한 장비 안의 포트끼리만 묶을 수 있어서, 장비가 통째로 죽으면 소용이 없었습니다. MLAG(Multi-chassis Link Aggregation)는 물리적으로 다른 두 스위치를 하나의 논리적인 스위치처럼 구성해서 이 문제를 풉니다. Fail over와 Load Balance 같은 효과를 얻을 수 있어요.

그림 왼쪽이 물리 구성입니다. vEOS10과 vEOS11이 Eth2, Eth3로 서로 연결되어 있고, 아래쪽 vEOS는 Eth1, Eth2로 각각 두 장비에 연결됩니다. 오른쪽 논리 구성에서는 아래쪽 스위치 입장에서 위쪽 두 대가 한 대로 보여요. 그래서 두 링크를 하나의 LACP로 묶어 쓸 수 있습니다. STP였다면 둘 중 한 링크는 막혔을 구성인데, MLAG에서는 두 링크를 모두 쓸 수 있다는 점이 큰 차이예요.

MLAG 설정

mlag configuration
   domain-id mlag
   local-interface Vlan4094
   peer-address 192.168.1.2
   peer-address heartbeat 192.168.2.2
   peer-link Ethernet2
   dual-primary detection delay 1 action errdisable all-interfaces
   dual-primary recovery delay mlag 1 non-mlag 3
   reload-delay mlag 1
   reload-delay non-mlag 10

한쪽 장비의 설정이고, 줄별로 보면 이렇습니다.

  • domain-id: 두 장비를 같은 MLAG 도메인으로 묶는 이름입니다. 양쪽이 똑같아야 해요(대소문자 구분).
  • local-interface: peer-link 위에서 MLAG 제어 통신에 쓰는 VLAN 인터페이스입니다.
  • peer-address: 상대 장비의 주소입니다.
  • peer-link: 두 장비를 잇는 링크입니다.
  • peer-address heartbeat: peer-link와 별개의 경로로 상대가 살아있는지 확인하는 주소입니다.
  • dual-primary detection / recovery, reload-delay: 아래에서 설명합니다.

여기서 말하는 mlag 포트는 mlag 도메인으로 묶인 포트들이고, non-mlag 포트는 그 외 일반 포트입니다.

dual-primary

MLAG에서는 두 장비가 primary와 secondary로 역할을 나눠 가집니다. 그런데 두 장비 사이의 제어를 담당하는 peer-link가 끊기면, secondary 장비는 primary가 죽었다고 판단하고 자신도 primary로 승격합니다. 이게 dual-primary예요. 양쪽이 서로의 상태를 모르는 채 각자 primary로 트래픽을 처리하게 됩니다(split-brain).

이를 막으려고 dual-primary detection을 설정합니다. peer-link가 끊겼더라도 heartbeat 링크로 primary가 살아있음을 확인하면, secondary 장비의 포트를 errdisable 상태로 바꿉니다. action errdisable all-interfaces는 peer-link를 제외한 모든 이더넷 인터페이스를 끈다는 뜻이에요.

설정에 같이 있는 delay 값들은 포트를 다시 올리는 타이밍을 정합니다.

  • dual-primary recovery delay: dual-primary 상태가 해소된 뒤, 포트를 다시 올리기까지 기다리는 시간입니다. mlag 포트용과 non-mlag 포트용을 따로 정합니다.
  • reload-delay: 장비가 재부팅된 뒤 포트를 올리기까지 기다리는 시간입니다. 이것도 mlag/non-mlag를 따로 정해요.

알아두면 좋은 점

  • heartbeat는 꼭 peer-link와 다른 경로여야 의미가 있습니다. peer-link가 끊길 때 heartbeat도 같이 끊기면 상대가 죽은 건지 링크만 끊긴 건지 구분할 수 없기 때문이에요. 그래서 관리망(Management) 같은 별도 경로를 쓰는 경우가 많고, 이 설정은 양쪽 장비에 모두 해야 합니다.
  • 슬라이드의 delay 값(1, 3, 10)은 실습용으로 짧게 준 값입니다. 실제 운영에서는 기본값을 쓰는 걸 권장하는 자료가 많아요.
  • 아래쪽 스위치와는 정적 LAG보다 LACP(channel-group mode active)로 협상하는 걸 권장합니다.
  • 확인 명령어는 show mlag, show mlag detail입니다. dual-primary 설정 여부와 delay 값도 여기서 볼 수 있어요.

정리

MLAG는 서로 다른 두 스위치를 하나의 논리 스위치처럼 묶어서, 장비 단위 장애에도 통신을 유지하고 두 링크를 모두 쓰게 해줍니다. peer-link가 끊겨 양쪽이 모두 primary가 되는 dual-primary는 heartbeat로 상대 생존을 확인하고 secondary의 포트를 errdisable로 막아서 해결합니다.

profile
주니어 엔지니어

0개의 댓글