[VxLAN이란?]
VxLAN은 Virtual eXtensible Local Area Network로 네트워크 가상화 기술로, 데이터 센터와 클라우드 컴퓨팅 환경에서 자주 사용된다. 특히 가상화 기술이 확산됨에 따라 테넨트의 수가 급격히 증가하는 데이터 센터에서는 각 테넨트 간의 네트워크 격리 요구가 커지고 있다.
[VLAN과 VxLAN의 차이]
VLAN은 12bit의 태그 필드를 사용하여 최대 4096개의 VLAN만 지원할 수 있다. 근데 Layer2 의 규모가 커서 네트워크를 격리시키기 충분하지 않다. 또한 VLAN은 Layer2에 고정되므로, 대규모 VM의 Migration에 적합하지 않다.
이 문제를 해결하고자 등장한 것이 VxLAN이다. VxLAN은 각 테넨트를 구분하기 위해 VxLAN 네트워크 ID(VNI)를 사용한다. VNI는 24bit 필드를 사용해 최대 16,777,216개의 VxLAN을 지원할 수 있어 VLAN에 비해 훨씬 더 많은 isolation을 제공한다.
[MAC-in-UDP 캡슐화 구조]
가상화 환경에서는 스위치의 MAC address 테이블이 제한되어 있는데, 데이터 센터의 MAC 주소 테이블은 크게 증가한다는 문제가 있다. 이 문제를 해결하고자 VxLAN은 MAC-in-UDP 캡슐화를 사용한다.
그리고 Original Ethernet Frame을 UDP로 캡슐화하는게 VTEP(VxLAN Tunnel Endpoint)이다. VTEP는 모든 VM이 공유할 수 있고, 하나의 physical machine이 하나의 VTEP에 대응되는 것이다. VTEP를 통해 가상화로 발생하는 MAC address 테이블 부족 문제를 해결한다.
VxLAN은 기본 IP 네트워크를 가로질러 두 스위치 간에 VxLAN tunnel을 설정하여 기존 Layer 3에서 Layer 2로 확장한다. 따라서 물리적 네트워크가 Layer 2에서 운영되든, Layer3에서 운영되든 상관없이 VM의 통신에 영향을 미치지 않는다.
[VxLAN의 장점]
VxLAN은 네트워크 tenant의 isolation을 보장하고, 스위치의 MAC address table 한계를 극복하고, 네트워크 관리 또한 편하다.
'Kubernetes' 카테고리의 다른 글
Application Deployment (4) | 2024.11.06 |
---|---|
Configuration File (YAML format), Label, Selector (1) | 2024.10.29 |
Kubernetes Design Principle (2) | 2024.10.29 |
Kubernetes Architecture (1) | 2024.10.15 |
컨테이너 기초 개념 (3) | 2024.09.05 |