VXLAN
- 기존의 VLAN이 가진 4,096개의 제한된 네트워크를 확장하기 위해 도입된 기술.
- VNI (VXLAN Network Identifier)를 사용해 최대 1,600만 개의 논리적 네트워크를 지원
- 데이터 센터에서 L2 네트워크를 L3 기반으로 확장해주는 오버레이 기술
- 네트워크 가상화 기술로, 데이터센터 및 클라우드 환경에서 대규모 네트워크 확장성을 제공하기 위해 설계된 터널링 프로토콜
- VXLAN은 Layer 2 트래픽을 Layer 3 네트워크 상에서 전송할 수 있게 해줌. → 네트워크의 확장성과 유연성을 개선하고, 가상화된 네트워크 환경에서의 IP 주소 부족 문제를 해결할 수 있음.
- VLAN을 확장한 개념. → VLAN에서 만들 수 있는 네트워크보다 더 많은 네트워크 생성가능
VXLAN을 사용하는 이유
- 네트워크 확장성:
- L2 Over L3:
- 서브넷 간의 확장:
- 효율성:
VXLAN을 사용하는 경우
- 클라우드 환경:
- 데이터센터 간 연결:
- 네트워크 가상화:
- 멀티 테넌시:
NVE
- NVE (Network Virtualization Edge)는 VXLAN (Virtual Extensible LAN)에서 사용되는 인터페이스 유형
- NVE 인터페이스는 VXLAN 터널의 엔드포인트 역할을 하며, VXLAN 트래픽을 캡슐화하고 디캡슐화하는 데 사용
- 주로 VTEP (VXLAN Tunnel End Point) 장치에서 설정
NVE의 역할
- VXLAN 터널 인터페이스로서 물리적 네트워크와 가상 네트워크를 연결하는 역할
- VXLAN은 Layer 2 트래픽을 Layer 3 네트워크 상에서 전송할 수 있도록 하는 기술이기 때문에, NVE는 가상 네트워크의 트래픽을 Layer 3 네트워크로 캡슐화하여 전송하고, Layer 3 네트워크에서 다시 Layer 2 트래픽으로 디캡슐화하는 역할
VXLAN 실습
VXLAN Underlay 구성(OSPF 사용)
feature interface-vlan
feature vn-segment-vlan-based
feature nv overlay
feature ospf
int e1/1
no switchport
ip address 192.168.1.1/24
ip router ospf UNDERLAY area 0
- Spine 스위치 OSPF 네이버 확인
VXLAN BUM 트래픽 처리를 위한 멀티캐스트 구성
- (멀티캐스트 트래픽은 라우팅 테이블 기반으로 작동)
feature pim
ip pim rp-address 1.1.1.1 # RP 설정
ip pim sparse-mode # Sparse Mode 활성화(interface 에서)
- Leaf1
- VLAN 생성 및 VXLAN VNID 매핑
-
vlan 10 name VXLAN_VLAN_10 vn-segment 5000 interface vlan 10 ip address 192.168.10.1/24 vlan 20 name VXLAN_VLAN_20 vn-segment 5001 interface vlan 20 ip address 192.168.20.1/24 vlan 30 name VXLAN_VLAN_30 vn-segment 5002
-
- NVE 인터페이스 구성
-
interface nve1 no shutdown source-interface loopback0 member vni 5000 mcast-group 239.1.1.1 # VLAN 10에 할당된 멀티캐스트 그룹 member vni 5001 mcast-group 239.1.1.2 # VLAN 20에 할당된 멀티캐스트 그룹 member vni 5002 mcast-group 239.1.1.3 # VLAN 30에 할당된 멀티캐스트 그룹
-
- VLAN 생성 및 VXLAN VNID 매핑
- Leaf2
- VLAN 생성 및 VXLAN VNID 매핑
-
vlan 10 name VXLAN_VLAN_10 vn-segment 5000 interface vlan 10 ip address 192.168.10.2/24 vlan 20 name VXLAN_VLAN_20 vn-segment 5001 interface vlan 20 ip address 192.168.20.2/24 vlan 30 name VXLAN_VLAN_30 vn-segment 5002
-
- NVE 인터페이스 구성
-
interface nve1 no shutdown source-interface loopback0 member vni 5000 mcast-group 239.1.1.1 # VLAN 10에 할당된 멀티캐스트 그룹 member vni 5001 mcast-group 239.1.1.2 # VLAN 20에 할당된 멀티캐스트 그룹 member vni 5002 mcast-group 239.1.1.3 # VLAN 30에 할당된 멀티캐스트 그룹
-
- VLAN 생성 및 VXLAN VNID 매핑
실습 검증
VXLAN 설정 확인
- show vxlan
- show nve vni
멀티캐스트 상태 확인
- show ip mroute
- show ip pim neighbor
Ping 검증
- VTEP 간 Ping 확인
- VPC 간 Ping 확인
- Leaf 스위치에서 멀티캐스트 그룹 3개에 Ping 확인
VXLAN EVPN
Spine
nv overlay evpn # evpn enable 명령어
Spine(config)# router bgp 100
Spine(config-router)# neighbor 2.2.2.2
Spine(config-router-neighbor)# remote as 100
Spine(config-router-neighbor)# update-source lo 0
Spine(config-router-neighbor)# address-family l2vpn evpn
Spine(config-router-neighbor-af)# send-community extended # RT 값을 전달하기 위해
Spine(config-router-neighbor-af)# route-reflector-client # Spine을 R.R로 설정
Spine(config-router-neighbor-af)#
Spine(config-router)# neighbor 3.3.3.3
Spine(config-router-neighbor)# remote as 100
Spine(config-router-neighbor)# update-source lo 0
Spine(config-router-neighbor)# address-family l2vpn evpn
Spine(config-router-neighbor-af)# send-community extended # RT 값을 전달하기 위해
Spine(config-router-neighbor-af)# route-reflector-client # Spine을 R.R로 설정
Leaf1
nv overlay evpn # evpn enable 명령어
Leaf1(config)# router bgp 100
Leaf1(config-router)# neighbor 1.1.1.1
Leaf1(config-router-neighbor)# remote as 100
Leaf1(config-router-neighbor)# update-source lo 0
Leaf1(config-router-neighbor)# address-family l2vpn evpn
Leaf1(config-router-neighbor-af)# send-community extended # RT 값을 전달하기 위해
Leaf1(config)# int nve 1
Leaf1(config-if-nve)# host-reachability protocol bgp # deafult가 data plane로 학습하는건데 control plane으로
Leaf1(config-if-nve)# member vni 5000
Leaf1(config-if-nve-vni)# ingress-replication protocol bgp # 멀티캐스트 정보를 전달할 수 없으니까 unicast로 bgp peer한테 전달할 수 있도록 만들어줌
Leaf1(config-if-nve)# member vni 5001
Leaf1(config-if-nve-vni)# ingress-replication protocol bgp
Leaf1(config)# evpn
Leaf1(config-evpn)# vni 5000 l2
Leaf1(config-evpn-evi)# route-target both auto # AS번호:VNID정보
Leaf1(config-evpn-evi)# rd auto
Leaf1(config-evpn-evi)# vni 5001 l2
Leaf1(config-evpn-evi)# route-target both auto
Leaf1(config-evpn-evi)# rd auto
- VRF로 VLAN 마다 라우팅 분리
Leaf1(config)# feature interface-vlan
Leaf1(config)# vrf context EVPN # RD, RT값을 통해서 넘기는게 아니라 VRF를 통해 전달
Leaf1(config-vrf)#int vlan 10
Leaf1(config-if)# vrf member EVPN
Leaf1(config-if)# ip add 192.168.10.1 255.255.255.0
Leaf1(config-if)# fabric forwarding mode anycast-gateway
Leaf1(config-vrf)#int vlan 20
Leaf1(config-if)# vrf member EVPN
Leaf1(config-if)# ip add 192.168.20.1 255.255.255.0
Leaf1(config-if)# fabric forwarding mode anycast-gateway
Leaf1(config)# vlan 30
Leaf1(config-vlan)# vn-segment 5002
Leaf1(config-vlan)#int vlan 30
Leaf1(config-if)# vrf member EVPN
Leaf1(config-if)# ip forward # 다른 네트워크(다른 VLAN)에 대해서는 L3로 정보를 라우팅해야하기 때문에 IP 할당 x
- VNID 5001은 Leaf들의 VRF 끼리 L3 패킷을 전송하기위한 용도
Leaf1(config)# vrf context EVPN
Leaf1(config-vrf)# vni 5002 # 서로 같은 VNID를 사용하는 애들끼리 통신할 수 있도록 하기위해 똑같은 vnid 사용
Leaf1(config-vrf)# rd auto
Leaf1(config-vrf)# address-family ipv4 unicast
Leaf1(config-vrf-af-ipv4)# route-target both auto
Leaf1(config)# router bgp 100
Leaf1(config-router)# vrf EVPN
Leaf1(config-router-vrf)# address-family ipv4 unicast
Leaf1(config-router-vrf-af)# network 192.168.10.0 mask 255.255.255.0
Leaf1(config-router-vrf-af)# network 192.168.20.0 mask 255.255.255.0
Leaf1(config-router-vrf-af)# fabric forwarding anycast-gateway-mac 0000.1111.2222
Leaf1(config)# int nve 1
Leaf1(config-if-nve)# member vni 5002 associate-vrf # nve 인터페이스랑 vrf랑 서로 연결
Leaf1(config-if-nve-vni)#
- nve 인터페이스가 처음에 VNID를 달아서 forwarding 하는 역할을 수행 VXLAN에 대한 모든 헤더정보를 붙이는건 nve
Leaf2
nv overlay evpn # evpn enable 명령어
Leaf2(config)# router bgp 100
Leaf2(config-router)# neighbor 1.1.1.1
Leaf2(config-router-neighbor)# remote as 100
Leaf2(config-router-neighbor)# update-source lo 0
Leaf2(config-router-neighbor)# address-family l2vpn evpn
Leaf2(config-router-neighbor-af)# send-community extended # RT 값을 전달하기 위해
Leaf2(config)# int nve 1
Leaf2(config-if-nve)# host-reachability protocol bgp # deafult가 data plane로 학습하는건데 control plane으로
Leaf2(config-if-nve)# member vni 5000
Leaf2(config-if-nve-vni)# ingress-replication protocol bgp # 멀티캐스트 정보를 전달할 수 없으니까 unicast로 bgp peer한테 전달할 수 있도록 만들어줌
Leaf2(config-if-nve)# member vni 5001
Leaf2(config-if-nve-vni)# ingress-replication protocol bgp # 멀티캐스트 정보를 전달할 수 없으니까 unicast로 bgp peer한테 전달할 수 있도록 만들어줌
Leaf2(config)# evpn
Leaf2(config-evpn)# vni 5000 l2
Leaf2(config-evpn-evi)# route-target both auto # AS번호:VNID정보
Leaf2(config-evpn-evi)# rd auto
Leaf2(config-evpn-evi)# vni 5001 l2
Leaf2(config-evpn-evi)# route-target both auto
Leaf2(config-evpn-evi)# rd auto
- VRF로 VLAN 마다 라우팅 분리
Leaf2(config)# feature interface-vlan
Leaf2(config)# vrf context EVPN # RD, RT값을 통해서 넘기는게 아니라 VRF를 통해 전달
Leaf2(config-vrf)#int vlan 10
Leaf2(config-if)# vrf member EVPN
Leaf2(config-if)# ip add 192.168.10.1 255.255.255.0
Leaf2(config-if)# fabric forwarding mode anycast-gateway
Leaf2(config-vrf)#int vlan 20
Leaf2(config-if)# vrf member EVPN
Leaf2(config-if)# ip add 192.168.20.1 255.255.255.0
Leaf2(config-if)# fabric forwarding mode anycast-gateway
Leaf2(config)# vlan 30
Leaf2(config-vlan)# vn-segment 5001
Leaf2(config-vlan)#int vlan 30
Leaf2(config-if)# vrf member EVPN
Leaf2(config-if)# ip forward # 다른 네트워크(다른 VLAN)에 대해서는 L3로 정보를 라우팅해야하기 때문에 IP 할당 x
Leaf2(config)# vrf context EVPN
Leaf2(config-vrf)# vni 5002 # 서로 같은 VNID를 사용하는 애들끼리 통신할 수 있도록 하기위해 똑같은 vnid 사용
Leaf2(config-vrf)# rd auto
Leaf2(config-vrf)# address-family ipv4 unicast
Leaf2(config-vrf-af-ipv4)# route-target both auto
Leaf2(config)# router bgp 100
Leaf2(config-router)# vrf EVPN
Leaf2(config-router-vrf)# address-family ipv4 unicast
Leaf2(config-router-vrf-af)# network 192.168.10.0 mask 255.255.255.0
Leaf2(config-router-vrf-af)# network 192.168.20.0 mask 255.255.255.0
Leaf2(config-router-vrf-af)# fabric forwarding anycast-gateway-mac 0000.1111.2222
Leaf2(config)# int nve 1
Leaf2(config-if-nve)# member vni 5002 associate-vrf # nve 인터페이스랑 vrf랑 서로 연결
Leaf2(config-if-nve-vni)#
VXLAN EVPN 설정 검증
- show nve peers
- show nve vni
- BGP EVPN 검증
- Underlay OSPF 검증
- Anycast-gateway
728x90
'Network > 시스코 보안 아카데미 1기' 카테고리의 다른 글
[시스코 보안 아카데미 1기] 제 2차 팀 프로젝트 최종발표, 수료식 (0) | 2024.12.21 |
---|---|
[시스코 보안 아카데미 1기] 제안서 프로젝트 1차 발표 (0) | 2024.12.21 |
[시스코 보안 아카데미 1기] IPv6 실습, IPv6 Tunnel (0) | 2024.12.20 |
[시스코 보안 아카데미 1기] Multicast 실습 (0) | 2024.12.20 |
[시스코 보안 아카데미 1기] MPLS 실습 (0) | 2024.12.20 |