[ACSA 교육#33] 라우팅

스위치는 Layer 2 장치이기 때문에 스위치의 포트는 각 VLAN의 구성원(멤버 포트)가 되거나 프레임을 전송하는 등 Layer 2 기능 및 프로토콜만 실행할 수 있습니다.
Layer 2 인터페이스로 사용되는 포트에 엔드포인트 단말을 연결하면, 목적지 Layer 2 MAC주소를 기반으로 L2 프레임을 전달합니다.

※ AOS-CX 스위치 포트는 기본적으로 Layer 3 인터페이스이기 때문에 “no routing” 명령어를 사용해야 합니다.

하지만, VLAN간에 라우팅을 하기 위해서는 어떻게 해야 할까요? AOS-CX 스위치는 멀티-레이어 스위치입니다. 때문에, Layer 2 내부 스위칭 기능과 Layer 3 내부 라우팅 기능 모두를 갖추고 있습니다. 각 Layer 2의 VLAN을 내부 라우팅 기능을 통해 연결하는 방법이 필요합니다.

Inter-VLAN 라우팅

멀티-레이어 인터페이스 종류

VLAN간에 라우팅을 위해서는 SVI(Switch Virtual Interface)를 생성해야 합니다.
SVI는 가상의 구조로, 장치 내부에만 존재하는 가상의 Layer 3 인터페이스(Virtual L3 Interface)입니다.

SVI 10을 만든다고 가정해보겠습니다.
SVI이기 때문에 내부 라우팅 구조에 연결됩니다. 또한, SVI”10″이기 때문에 VLAN 10에 연결됩니다.
이제 VLAN 10에서 다른 목적지 네트워크로의 트래픽을 라우팅 처리할 수 있습니다.

마찬가지로 SVI 20을 만들게 되면, 라우팅 구성을 통해서 이 스위치는 VLAN간에 트래픽을 라우팅 할 수 있습니다.

위 그림에 표시된 것처럼, 24번 포트를 외부 라우터에 연결한다고 가정하겠습니다.
모든 포트는 기본적으로 Layer 3 인터페이스이기 때문에 24번 포트는 내부 라우팅 기능에 연결됩니다.
IP주소와 같은 일반적인 Layer 3 매개 변수로 구성하기만 하면 됩니다.

여기서 SVI는 내부 라우팅을 위한 가상 L3 인터페이스이고, 24번 포트는 외부 라우팅을 위한 물리 L3 인터페이스입니다. 둘 다 Layer 3 인터페이스이기 때문에 라우팅 기능을 수행할 수 있습니다. 라우팅 가능한 L3 패킷을 수락하고 목적지 IP주소를 기반으로 패킷을 전달합니다.

이렇게 3가지 중요한 인터페이스 종류를 알아봤습니다.

  • L2 스위치 포트
  • L3 SVI (Switch Virtual Interface)
  • L3 물리 라우팅 포트
Inter-VLAN Routing

이미 지난 포스팅에서 VLAN에 대해서 알아봤습니다. VLAN은 고유한 IP 네트워크 주소를 갖고 있는 브로드캐스트 도메인입니다. 즉, 다시 말하면 같은 VLAN에 있는 모든 장치들은 같은 네트워크 주소를 갖는다는 얘기입니다.

Sales VLAN에 위치한 모든 장치는 10.1.10.x의 IP주소 대역을 갖는다고 가정하겠습니다. 여기서 x는 각 장치별 고유한 값이 됩니다. 그래서 IP주소는 10.1.10.100, 10.1.10.25, 10.1.47 등이 될 수 있습니다.
반면, HR VLAN의 네트워크 대역은 192.168.20.x라고 하면, 이 VLAN에 있는 장치는 192.168.20.100, 192.168.20.101 등의 IP주소를 갖게 될 것입니다.

서로 다른 VLAN에 있는 장치는 라우터에 연결하지 않으면 통신할 수가 없습니다.
Inter-VLAN 라우팅은 각각의 VLAN을 통신장비의 내부 라우팅에 연결하게 됩니다.

과거에는 멀티-레이어 스위치가 없었습니다. 그래서 호스트 연결을 위해서는 위 그림의 왼쪽처럼 Layer 2 스위치를 사용한 다음에 외부 라우터를 통해서만 스위치 내 장치간에 라우팅을 할 수 있었습니다.
이러한 방식의 잠재적인 문제점은 Switch-to-Router의 링크가 Oversubscription이 될 수 있다는 점입니다. 물론 LAG로 이 문제를 약간 해결할 수는 있지만 라우터로 프레임을 보내려면 추가적인 라우팅 결정이 필요하기 때문에 최적의 성능을 발휘한다고 볼 수는 없습니다.

하지만, 멀티-레이어 스위치는 다릅니다. 효율적으로 스위칭과 라우팅 기능을 고속의 내부 백플레인(Backplane)을 통해 연결합니다. 초기 라우팅 결정과 기타 프로세스는 모두 스위치 박스 내에서 이뤄집니다. 따라서 지연 시간(Latency)을 줄이고 성능을 높일 수가 있습니다.

모든 AOS-CX 스위치는 기본적으로 라우팅이 활성화 되어 있는 멀티-레이어 스위치입니다.

IP 라우팅 테이블

라우터나 멀티-레이어 스위치와 같이 라우팅 장치는 주어진 목적지에 대한 최적의 경로를 알려주는 라우팅 테이블을 만들고 유지 관리합니다.

Static 라우팅의 형태로 라우팅 테이블에 항목을 수동으로 추가할 수도 있고, 이 테이블을 자동으로 작성하고 유지 관리되도록 하는 라우팅 프로토콜을 구성할 수도 있습니다.

일반적으로 라우팅 테이블의 항목들은 토폴로지 변경으로 인해 업데이트 되지 않는 한 만료되지 않습니다.
스위치가 엔드포인트에서 트래픽 수신을 중지하면 5분 후에 항목이 만료되어 없어지는 MAC주소 테이블과는 다릅니다.

아래 그림을 보면, Core-1과 Core-2 라우터가 연결되어 있는 환경을 간단하게 보여줍니다.

10.0.0.0/8과 172.16.0.0/16, 그리고 192.168.0.0/24까지 3개의 네트워크가 존재합니다.

여기서 Core-1의 라우팅 테이블을 살펴보겠습니다.
첫 번째 항목은 아래와 같은 내용을 담고 있습니다.

"네트워크 192.168.0.0/24 대역을 가기 위해서는 다음 홉의 라우터 172.16.0.253으로 패킷을 보내야 합니다. 
다음 홉의 주소로 가기 위해서는 로컬 VLAN 172로 패킷을 전달하세요."

다음 두 가지 항목은 아래의 내용을 의미합니다.

"네트워크 10.0.0.0/8 대역을 가기 위해서는 다음 홉이 없습니다. 해당 네트워크에 직접 연결되어 있습니다. 
로컬 VLAN 10 인터페이스로 패킷을 전달하면 됩니다.

172.16.0.0/16의 네트워크 대역도 직접 연결되어 있습니다. VLAN 172 인터페이스로 패킷을 전달하세요."

여기서, Core-1에만 라우팅을 구성했다고 가정해보겠습니다.
Server-1이 Server-2와 통신하려면 Core-1이 패킷을 올바르게 라우팅하여 Core-2로 보냅니다.
Core-2는 별다른 문제 없이 직접 로컬로 연결되어 있는 Server-2로 패킷을 보내게 될 것입니다.
따라서 Server-1에서 Server-2로의 단방향 통신은 성공적으로 이뤄집니다.

하지만, Server-2의 응답이 Core-2로 전달되면 Core-2는 패킷을 수신하지만, 목적지(10.0.0.2)가 라우팅 테이블에 없기 때문에 패킷을 드롭(drop)합니다. 양방향 통신이 불가능합니다.
이러한 문제를 해결하기 위해서는 Core-2와 직접 연결되어 있지 않은 10.0.0.0/8 네트워크에 대해 Core-2 라우팅 테이블에 경로를 구성해야만 합니다.

VRF (Virtual Routing and Forwarding)

우리는 방금 하나의 물리 스위치에서 여러 VLAN을 만들고 통신할 수 있다는 것을 알아봤습니다.
마치 물리 스위치 안에 여러 VLAN에 대해 하나씩 가상 스위치를 만든 것과 같습니다.
이와 마찬가지로 VRF(Virtual Routing and Forwarding) 기능을 사용하여 하나의 물리적 라우터 안에 별도의 가상 라우터를 만들 수 있습니다.

VRF는 IP주소가 네트워크의 여러 위치에서 겹치는 상황에서 유용합니다.
예를 들어, 두 개의 회사가 합병했을 때 이런 일이 발생할 수 있습니다.

아니면, 멀티 테넌트 환경에서 VRF를 유용하게 사용할 수도 있습니다. A, B, C 고객이 동일한 L3 스위치에 물리적으로 연결되어 있지만, 라우팅 테이블은 가상으로 각각 운용되고 고객간 통신을 막기 위해 ACL을 사용할 필요가 없습니다.

위 그림은 두 개의 개별 VRF로 나눠진 하나의 멀티-레이어 스위치를 보여줍니다. 인터페이스 1번과 2번은 VRF 1에 속하고, 인터페이스 3번과 4번은 VRF 2에 속하고 있습니다. 두 VRF간에는 상호 작용하지 않고 마치 연결되어 있지 않은 별도의 라우터와 같습니다.

AOS-CX에서느 VRF 구성하는 방법은 아래와 같습니다.

Switch(config)# vrf <VRF 이름>
Switch(config-vrf)#

생성한 VRF에 인터페이스 할당은 attach라는 명령어를 사용하면 됩니다.

Switch(config)# interface 1/1/1
Switch(config-if)# vrf attach <VRF 이름>

따라서 IP주소가 같음에도 불구하고 통신이 가능한 이유입니다. AOS-CX에서는 모든 인터페이스는 기본적으로 default라는 글로벌 VRF에 매핑됩니다. 즉, 모든 인터페이스는 동일한 VRF의 일부입니다.
물리적 라우터와 글로벌 VRF는 본질적으로 동일합니다.

위의 예시처럼 VRF 1과 2를 만들어 분할하기로 결정하면, 두 VRF는 기본적으로 상호간 통신하지 않습니다. 하지만, 필요한 경우 두 VRF간에 라우팅하도록 솔루션을 구성할 수도 있습니다.

이 밖에도 AOS-CX에서는 관리 목적을 위한 mgmt라는 VRF도 포함되어 있습니다. 이는 OOBM(Out-of-Band Management) 포트에서만 사용할 수 있습니다.


이렇게 라우팅에 필요한 인터페이스 종류와 라우팅 테이블 등에 대해서 알아보았습니다.
그럼, 이제 실제로 패킷이 어떻게 전달되는지 한 번 알아보겠습니다.

패킷 전달 (Packet Delivery) 프로세스

위 그림에서 PC-1과 PC-2는 서로 통신해야 합니다. 두 엔드 포인트는 동일한 Layer 2 스위치 Access-1에 연결되어 있지만, 각각 다른 VLAN에 매핑되어 있습니다. Core-1 멀티-레이어 스위치는 VLAN간 라우팅을 수행합니다. VLAN 10의 기본 게이트웨이는 10.1.10.1이고 VLAN 20의 기본 게이트웨이는 10.1.20.1입니다.

※참고: Layer 2의 액세스 서비스와 Layer 3의 라우팅 서비스를 단일 멀티-레이어 스위치로 구축하면 효율성이 향상된다고 앞서 얘기했습니다. 하지만, 대규모 네트워크의 경우에는 일반적으로 엔드포인트 단말의 연결을 위한 액세스 스위치가 별도로 있으며, 이는 L2/L3 멀티-레이어 스위치에 연결됩니다.

이 디자인은 확장성에 용이합니다.

그럼 시나리오에 맞춰 패킷이 어떻게 전달되는지 알아볼까요?

1. 엔드포인트에서 액세스 스위치로 패킷 전달

PC-1은 다음 정보를 포함하여 메시지를 생성합니다.

  • Layer 3 헤더: 출발지(PC-1) IP – 10.1.10.100 / 목적지(PC-2) IP – 10.1.20.100
  • Layer 2 헤더: 출발지(PC-1) MAC 주소 / 목적지(기본 게이트웨이 – 10.1.10.1) MAC 주소

PC-1이 아직 10.1.10.1의 MAC주소를 알지 못할 경우에는, ARP 프로세스를 통해서 MAC주소 정보를 가져옵니다.

2. 액세스 스위치에서 멀티-레이어 스위치로 패킷 전달

Access-1은 프레임을 수신하고, Layer 2의 목적지 MAC주소를 확인합니다.
MAC주소 테이블에서 일치하는 항목을 찾고, 이 프레임을 Trunk Link(24번 포트)를 통해 Core-1으로 전달해야 하는 것을 확인합니다. 802.1q 태그, VLAN = 10을 추가하고 Core-1으로 프레임을 전달합니다.

3. 라우팅 프로세스

멀티-레이어 스위치인 Core-1은 이 프레임의 Layer 2 목적지입니다.
프레임을 받아 들이고, Layer 2 헤더를 떼어내고 Layer 3 헤더 정보를 확인하기 위해 라우팅 기능을 수행하기 시작합니다.

Layer 3 목적지 IP주소와 Core-1의 라우팅 테이블 정보를 비교합니다. 위 그림에 나왔듯이 Core-1의 라우팅 테이블에는 10.1.20.0/24 네트워크가 SVI(Switch Virtual Interface) VLAN 20과 직접 연결되었다는 것을 알 수 있습니다. 따라서 Core-1 스위치는 VLAN 20 인터페이스로 패킷을 전달합니다.

4. 멀티-레이어 스위치에서 액세스 스위치로 패킷 전달

Core-1 스위치는 IP 패킷 주위에 새로운 프레임을 덮어 씌웁니다. 이 프레임은 802.1q 태그, VLAN = 20을 포함합니다.

이제 이 프레임을 L2 스위치인 Access-1으로 전달합니다.

5. 액세스 스위치에서 엔드포인트로 패킷 전달

Access-1 스위치는 프레임을 수신하고 태그를 통해 VLAN 20 이라는 것을 확인합니다. 802.1q는 목적을 이뤄냈기 때문에 제거됩니다. Access-1은 목적지 MAC주소와 자신의 MAC주소 테이블을 비교합니다.

일치하는 것을 찾아서 2번 포트의 PC-2로 프레임을 전달합니다.


자, 이렇게 길었던 내용이 마무리되었습니다.
Layer 2에서 Layer 3로 넘어가면서 스위치에서 라우팅 기능을 수행하는 이유와 어떻게 동작하는지를 확인하였습니다.

다음 포스팅에서는 VRRP와 라우팅 프로토콜에 대해 알아보면서 Layer 3 동작에 대해서 좀 더 자세히 살펴보겠습니다.