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) 통신 확인
'네트워크 > VRF' 카테고리의 다른 글
VRF Sample Configuration(Nokia 7750 SR) (0) | 2024.06.28 |
---|---|
VRF Leaking with MP-BGP between Router Sample Configuration(Cisco IOL) (0) | 2024.06.26 |
VRF Leaking with Static and Policy Sample Configuration(Cisco IOL) (0) | 2024.06.22 |
VRF Sample Configuration(Cisco IOL) (0) | 2024.06.20 |
Introduction to VRF, RD, RT (0) | 2024.06.18 |