이전 글에서 SDA가 무엇인지, 그 탄생 배경 및 구성 요소를 알아보았습니다.
이번 글에서는 SDA의 동작 방식을 알아보고자 합니다.
레거시 네트워크의 동작 방식
SDA의 동작 방식을 알아보기에 앞서, 레거시 네트워크의 인증 및 통신부터 살펴봅시다.
지난 시간에 말씀드린 것처럼 시스코 SDA의 기본 구조는 Border-Control Plane-Edge 입니다. 이와 비교하여, 레거시 네트워크의 기본 구조는 그림 1에서 보이는 것처럼 Core-Distribution-Access 3 계층입니다. 오늘 설명에는 SDA와 레거시 네트워크를 번갈아가며 언급하기 때문에 스위치의 명칭 또한 주의해서 살펴보시기 바랍니다.
❶ 레거시 네트워크에 접속하는 사용자에게 인증을 요청하기 위해서는 엔지니어가 Access 스위치에 직접 콘솔로 접속하여 포트 별로 AAA 인증을 설정해야 합니다.
이후 사용자 A가 Access 스위치에 연결되면 해당 포트는 사용자 A에게 인증 정보를 요청하며, 사용자 A로부터 수신한 인증 정보는 인증 서버까지 전달됩니다.
❷ 인증 서버에서 인증이 성공하면 사용자 A에게 할당된 VLAN 100이 사용자 A가 연결된 포트에 설정됩니다.
SDA에서는 이 구성을 발전시켜 Access 스위치 포트의 AAA 인증 설정(❶)을 엔지니어가 직접 입력하는 대신, 중앙 컨트롤러인 DNA Center에서 자동으로 입력합니다.
이 때 서로 다른 VLAN 간 통신은 어떻게 가능할까요?
사용자 A가 VLAN 100에 속해 있고, 사용자 B가 VLAN 200에 속해 있는 경우를 생각해봅시다. 서로 다른 VLAN 이기 때문에 각 VLAN의 Gateway 를 통해 A와 B가 통신합니다. 그림처럼 Core 스위치에 Gateway가 있다면 서로 다른 VLAN 간 통신하는 모든 패킷은 Core 스위치를 통과해야 합니다. 따라서 비효율적인 트래픽이 발생할 뿐만 아니라, Core 와 Distribution 에 고용량 스위치가 필요합니다.
시스코 SDA에서는 Edge 스위치에 Anycast Gateway 를 설정하여 이 문제를 해결합니다. 이제 모든 Edge 스위치에 각 VLAN의 Gateway가 있으므로 서로 다른 VLAN 간 통신 트래픽도 Edge 스위치에서 스위칭이 가능합니다.
그럼 동일한 VLAN에 속하지만, 서로 다른 스위치에 연결된 사용자 A와 C 간에는 어떻게 통신할까요?
SDA Fabric 내의 모든 통신이 L3 통신이라고 말씀드렸습니다. 그렇다면 서로 다른 Edge 스위치에 연결된 사용자 A와 C가 둘 다 VLAN100 에 속한다고 해서, 같은 네트워크에 존재한다고 할 수 있을까요? 이 때, 같은 네트워크의 정의는 사용자 A가 브로드캐스트를 만들면 사용자 C에게 도달하는 경우를 의미합니다. 그림 4를 참고하면, SDA에서는 Edge 스위치 상단이 L3 로 분리되어 있기 때문에 사용자 A가 만든 브로드캐스트 패킷은 Edge 스위치를 넘어서 사용자 C까지 도달하지 못합니다. 따라서 레거시 네트워크 기준으로 이 둘은 서로 다른 네트워크입니다.
하지만 SDA 기준에서는 A의 브로드캐스트 패킷이 C에 도달 가능합니다. 어떻게 가능할까요? 바로 VXLAN 을 사용하여 서로 다른 스위치의 VLAN이 같은 네트워크로 인식되도록 합니다.
VXLAN은 L2 네트워크를 L3 넘어서까지 확장하는 기술입니다. 즉, L3 네트워크로 서로 구분되어 있는 2개의 Edge 스위치가 동일한 VLAN을 사용할 때 두 VLAN이 같은 네트워크로 인식되도록 하는 기술입니다.
다만 VXLAN 만으로는 완전한 통신이 불가능합니다. 사용자 A와 C가 통신하기 위해서는 서로의 위치, 정확하게는 각 단말이 어느 Edge 스위치에 연결되어 있는지를 알아야 서로 간에 VXLAN 터널을 뚫을 수 있습니다. 이 때 단말의 위치 정보를 공유하는 방법이 LISP 입니다.
LISP 은 어떻게 동작하나요?
LISP 이란 Locator/ID Separation Protocol 의 약자로써 단말의 ID와 위치를 분리한다는 의미를 가지고 있습니다. 프로토콜의 동작 방식은 아래 예시를 통해 설명드리겠습니다.
- 단말 위치 등록
각 Edge 스위치는 고유 IP를 가지고 있으며 본인에게 단말이 연결될 때마다 LISP을 사용하여Control Plane 에 단말의 IP 정보를 업데이트합니다. 예를 들어 Edge #1 (1.1.1.1) 에 단말 A가 새로 연결되면 Edge #1 은 LISP을 사용하여 Control Plane 에 단말의 위치를 등록합니다 (10.10.10.1 – 1.1.1.1). 단말 D가 Edge #2에 연결될 때에도 Edge #2가 LISP을 사용하여 Control Plane 에 단말의 위치를 등록합니다. 새로운 단말이 연결될 때마다 이 동작이 반복되면 SDA 망에 연결된 모든 단말의 정보가 Control Plane에 등록됩니다.
- 목적지 단말 위치 회신
이후 단말 A가 단말 D와 통신하기 위해서는 1번 스위치가 단말 D 의 IP 10.10.10.2 를 사용하여 Control Plane에게 단말 D 의 위치를 요청합니다. Control Plane은 LISP을 통해 단말 D가 2번 스위치 (1.1.1.2)에 연결되어 있다고 회신합니다. 이렇게 1번 스위치는 단말 D가 연결된 2번 스위치와 VXLAN 터널을 뚫어 단말 A와 D가 통신하게 됩니다.
이로써 이번 시간에는 SDA 네트워크를 구성하는 필수 기술인 VXLAN 과 LISP 을 알아보았으며, SDA의 동작 방식도 함께 살펴보았습니다. 다음 시간에는 SDA 보안의 중심이 되는 인증에 대해 알아보도록 하겠습니다.
[SDA 초심자이야기 3] SDA 를 이루는 필수 기술
[SDA 초심자이야기 4] SDA 의 핵심 – 인증이란?