본문 바로가기
네트워크/VRF

VRF Leaking with MP-BGP on one Router Sample Configuration(Cisco IOL)

by 최개미의 세계 2024. 6. 24.

1. VRF Leaking with MP-BGP on one Router Sample Configuration 구성도

  • 테스트 장비
    • 에뮬레이터 : EVE-NG
    • 라우터 : Cisco IOL I86BI_LINUX-ADVENTERPRISEK9-M, Version 15.5(2)T
    • 스위치 : Cisco IOL I86BI_LINUXL2-ADVENTERPRISEK9-M, Version 15.1
  • 테스트를 위하여 R1에 Global, VRF10, VRF20에 해당하는 Loopback Interface를 생성
  • 본 글에서는 BGP를 사용하여 VRF Leaking 하는 것이 목표
    • ① : VRF10↔Global 간에 BGP를 사용하여 Leaking 하는 것이 목표
    • ② : VRF10↔VRF20 간에 BGP를 사용하여 Leaking 하는 것이 목표
  • 기본적인 VRF 설정은 'VRF Sample Configuration' 글 참고

 

 

2. VRF Leaking with MP-BGP on one Router Sample Configuration

1) Global Interface Configuration

  • Global Interface에 해당하는 IP Address를 설정

 

  • SW 인터페이스에 IP Address를 설정하며 테스트를 위해 Default-Route를 설정
  • 모든 SW는 SW1의 구성과 비슷하게 설정

 

2) VRF Interface Configuration

  • ‘vrf definition [vrf-name]’을 지정하여 VRF를 생성
  • 해당 VRF에 대한 RD(Route Distinguisher)를 지정
  • 'address-family ipv4'를 설정하여 VRF IPv4를 적용할 것임을 선언
    • 'address-family ipv4' 설정이 없을 경우 VRF를 사용할 인터페이스에 IPv4 Address 설정 불가

 

  • R1에서 VRF로 사용할 인터페이스 설정
  • 'vrf forwarding [vrf-name]'을 설정하여 해당 인터페이스가 설정한 VRF에 소속되겠다고 선언
    • 현재 VRF는 IPv4 VRF를 의미
  • 'vrf forwarding [vrf-name]' 설정 시, 기존에 입력되어 있던 IP Address가 제거되므로 주의

 

  • 생성한 VRF Name, RD, Protocol, 할당한 Interface에 대한 정보 확인 가능

 

3) Global and VRF Interface Configuration Verification

  • 인터페이스 Status 및 IP Address 확인이 가능하지만 VRF 별로 확인이 불가능

 

  • R1에서 설정한 Global, VRF10, VRF20에 대한 설정이 라우팅 테이블에 정상적으로 올라온 것을 확인

 

  • R1에서 인접 장비까지 Ping Test 진행
  • 'ping vrf [vrf-name] [destination-ip]'를 입력하여 VRF에 해당하는 장비로 Ping Test 가능

 

4) ① Global→VRF10 Leaking with MP-BGP

  • 'import' 명령어를 사용하여 Global→VRF10으로 Leaking할 Route(11.11.11.0/24)를 지정
  • 먼저 BGP Table에 IPv4 Prefix(11.11.11.0/24)가 있어야 VRF10으로 Leaking 가능

 

  • Connect로 설치된 Route를 BGP로 재분배

 

  • Connect로 설치된 Route가 BGP Table로 재분배되었다는 것을 확인
    • Origin-Code가 '?'이므로 재분배가 되었음을 확인

 

  • 위에서 'import'와 'route-map' 명령어를 사용하여 지정한 네트워크(11.11.11.0/24)를 Global→VRF10으로 Leaking할 것을 설정
  • Route-Map에서 지정한 네트워크(11.11.11.0/24)가 BGP Table에서 VPNv4 Prefix 형태로 Leaking 되었음을 확인

 

  • VRF10으로 Leaking된 VPNv4 Prefix를 확인해 보면 Global에서 Import 되었다고 확인 가능

 

  • Global→VRF10으로 Leaking 한 Route(11.11.11.0/24)가 VRF10 라우팅 테이블에 설치

 

5) ① VRF10→Global Leaking with MP-BGP

  • VRF10에서 Connect로 설치된 Route를 재분배
    • VRF10→Global로 Route(33.33.33.0/24)를 Leaking 해야 하므로 BGP Table에 33.33.33.0/24에 대한 VPNv4 Prefix 정보가 있어야 되기 때문

 

  • Connect로 설치된 Route가 BGP Table로 재분배되었다는 것을 확인
    • Origin-Code가 '?'이므로 재분배가 되었음을 확인
    • Connect Type인 Route가 VRF에 속하므로 VPNv4 형태로 설치

 

 

  • 현재 VRF10→Global로 Leaking 되도록 하는 설정을 하지 않았으므로 아직 Leaking된 Route가 없음을 확인

 

  • 'export' 명령어를 사용하여 VRF10→Global로 Leaking할 Route(33.33.33.0/24)를 지정
  • VPNv4 Prefix 정보가 Global(MP-BGP)로 이동하기 위해 Route Target이 필요하므로 'route-target export' 명령어를 사용
    • 현재 Route Target 값은 중요하지 않은 숫자
    • 즉, 예를 들면 현재 테스트에서는 1:100이 아닌 9:1000을 입력해도 크게 상관이 없음

 

  • 위에서 'export'와 'route-map' 명령어를 사용하여 지정한 네트워크(33.33.33.0/24)를 VRF10→Global로 Leaking할 것을 설정
  • Route-Map에서 설정한 네트워크(33.33.33.0/24)가 IPv4 Prefix 형태로 Leaking 되었음을 확인

 

  • Global로 Leaking된 IPv4 Prefix를 확인
  • '1:1:33.33.33.0/24'인 VPNv4 Prefix 정보가 VRF10에서 Leaking 되었으며 Route Target 값이 1:100임을 확인
  • Route Target은 BGP Community라는 Attribute를 이용하여 전달

 

  • VRF10→Global로 Leaking 한 Route(33.33.33.0/24)가 Global 라우팅 테이블에 설치

 

  • Global↔VRF10(SW1↔SW3) 통신 확인

 

6) ② VRF10→VRF20 Leaking with MP-BGP

  • ① 및 ②을 같이 진행하면 설정값이 헷갈리므로 ①에서 진행한 설정값을 모두 삭제 
  • VRF 생성 및 인터페이스에 VRF를 할당한 부분부터 시작

 

  • VRF10에서 Connect로 설치된 Route를 재분배
    • VRF10→VRF20으로 Route(33.33.33.0/24)를 Leaking 해야 하므로 BGP Table에 33.33.33.0/24에 대한 VPNv4 Prefix 정보가 있어야 되기 때문

 

  • Connect로 설치된 Route가 BGP Table로 재분배되었다는 것을 확인
    • Origin-Code가 '?'이므로 재분배가 되었음을 확인
    • Connect Type인 Route가 VRF에 속하므로 VPNv4 형태로 설치
  • BGP Table에 IPv4 Prefix 정보는 없는 상태

 

  • BGP를 사용하여 서로 다른 VRF 간에 Leaking을 진행할 경우, 반드시 Route Target이 필요
  • VRF IPv4 Prefix(VPNv4 Prefix) 정보가 Global인 BGP로 전달하기 위해 Route Target이 필요 
    • Route Target은 BGP Community라는 Attribute를 이용하여 전달
  • VRF10에서 'route-target export 1:100'을 입력하여 VRF10의 Route에 Community '1:100'을 달고 전달
  • VRF20에서 'route-target import 1:100'을 입력하여 Community '1:100'을 달고 온 Route들을 허용
  • 여기서 중요한 것은 VPNv4 Prefix 정보를 전달하려는 VRF에서 사용하는 'route-target export' 값과 VPNv4 Prefix 정보를 수신하려는 VRF에서 사용하는 'route-target import' 값이 동일해야 한다는 것

 

  • VRF10에서 IPv4 Prefix(1.1.1.10/32 및 33.33.33.0/24)에 Community 1:100을 달고 Global(BGP)로 전달
    • VRF IPv4 Prefix 정보를 BGP Table에서 VPNv4 Prefix 형태로 저장
  • VRF20은 Global(BGP)에서 Community 1:100을 달고 온 VPNv4 Prefix들을 허용
  • VRF10→VRF20으로 VPNv4 Prefix가 Leaking 되었음을 확인

 

  • '1:1:33.33.33.0/24'인 VPNv4 Prefix 정보가 VRF10에서 Global로 Leaking 되었으며 Route Target 값이 1:100임을 확인

 

  • VRF10→VRF20으로 Leaking 한 Route(1.1.1.10/32 및 33.33.33.0/24)가 VRF20 라우팅 테이블에 설치

 

7) ② VRF20→VRF10 Leaking with MP-BGP

  • VRF20에서 Connect로 설치된 Route를 재분배
    • VRF20→VRF10으로 Route(55.55.55.0/24)를 Leaking 해야 하므로 BGP Table에 55.55.55.0/24에 대한 VPNv4 Prefix정보가 있어야 되기 때문

 

  • Connect로 설치된 Route가 BGP Table로 재분배되었다는 것을 확인
    • Origin-Code가 '?'이므로 재분배가 되었음을 확인
    • Connect Type인 Route가 VRF에 속하므로 VPNv4 형태로 설치
  • BGP Table에 IPv4 Prefix 정보는 없는 상태

 

  • 서로 다른 VRF 간에 Leaking을 진행할 경우, 반드시 Route Target이 필요
  • VRF IPv4 Prefix(VPNv4 Prefix) 정보가 Global인 BGP로 전달하기 위해 Route Target이 필요 
    • Route Target은 BGP Community라는 Attribute를 이용하여 전달
  • VRF20에서 'route-target export 1:200'을 입력하여 VRF20의 Route에 Community '1:200'을 달고 전달
  • VRF10에서 'route-target import 1:200'을 입력하여 Community '1:200'을 달고 온 Route들을 허용
  • 여기서 중요한 것은 VPNv4 Prefix 정보를 전달하려는 VRF에서 사용하는 'route-target export' 값과 VPNv4 Prefix 정보를 수신하려는 VRF에서 사용하는 'route-target import' 값이 동일해야 한다는 것

 

  • VRF20에서 IPv4 Prefix(1.1.1.20/32 및 55.55.55.0/24)에 Community 1:200을 달고 Global(BGP)로 전달
    • VRF IPv4 Prefix 정보를 BGP Table에서 VPNv4 Prefix 형태로 저장
  • VRF10은 Global(BGP)에서 Community 1:200을 달고 온 VPNv4 Prefix들을 허용
  • VRF20→VRF10으로 VPNv4 Prefix가 Leaking 되었음을 확인

 

  • '1:2:55.55.55.0/24'인 VPNv4 Prefix 정보가 VRF20에서 Global로 Leaking 되었으며 Route Target 값이 1:200임을 확인

 

  • VRF20→VRF10으로 Leaking 한 Route(1.1.1.20/32 및 55.55.55.0/24)가 VRF10 라우팅 테이블에 설치

 

  • VRF10↔VRF20(SW3↔SW5) 통신 확인