티스토리 뷰

이번 편에서는 VXLAN의 실체적인 기술에 접근해 보고자 한다.

VXLAN에서는 vSwitch의 역할이 매우 중요하다.

실제 MAC in IP/UDP의 첨병 역할을 vSwitch가 제공하기 때문이다.

물론 상단의 물리적 스위치가 이러한 역할을 해 주어도 되겠지만, 이러한 경우에는 물리적 스위치가 VXLAN을 지원해야 하기 때문에 물리적 종속성으로 인해 Encapsulation 지점과 Termination 지점 모두 이러한 기술을 지원해야 하는 스위치가 있어야 한다.

네트워크의 물리적인 제약을 뛰어넘기 위해 제공되는 기술적 목표를 무색하게 하는 방식이다.

따라서 vSwitch 의 역할을 이러한 공동의 이상적 목표를 실현하기 위해 매우 중요한 역할을 한다.



네트워크 Side, Server/가상화 Side에서 바라본 VXLAN의 가장 특이한 Point는 바로 VTEP 이라는 용어이다.

VTEP(VXLAN Tunnel End Point)는 단어의 의미 그대로 VXLAN Tunnel의 종단 역할을 수행한다.

즉 Encapsulation과 Termination 의 End Point 역할을 수행한다.

과거 IPSec 또는 GRE의 Tunnel 인터페이스 정도로 이해하면 네트워크 Side에서는 이해가 쉬우리라고 본다.

Server Side에서는 VMWare ESX에서 vmknic을 mgmt, vmotion, storage 용도 이외에 VXLAN을 위한 vmknic을 설정하는 방식이라고 볼 수 있으며, Xen 에서는 Dom 0에 추가적인 인터페이스가 생성된다고 보면 되고, HyperV에서는 Parents OS에 VXLAN 인터페이스가 생성된다고 보면 된다.

물론 현재 Microsoft의 HyperV는 NV-GRE를 지지하지만 새로운 HyperV 3.0에서는 기본적으로 Nexus 1000V가 설치가 가능하기 때문에 구현하기에는 그리 어렵지 않고, 실제 시스코는 2013년 초에 MS HyperV 플랫폼에서도 지원 예정이다.

자, 그럼 Network Side, Server Side의 모든 사람들이 이해했으리라 보고....


이제 부터는 VTEP의 역할에 주목해 보자.




기본적으로 VXLAN에서는 Multicast의 역할이 매우 중요하다.

왜냐하면, 기존의 경직된 IP Network 망에서는 기존의 Unicast 망을 사실상 네트워크의 L2/L3 규칙들이 모두 점하고 있으므로, 이러한 기술적 제약을 뛰어넘기 위해 Multicast 망을 차용해서 사용한다.

즉, 각각의 가상서버들이 목적지를 알지 못하는 경우 Unknown Unicast/Broadcast Message등을 전송하게 되는데, 이러한 메세지들을 모두 Multicast 망을 사용하는 방식이다.

따라서, VTEP 들 간에는 IP Any source Multicast Group의 버스를 통해 새로운 망을 생성한다.

물론 일반적인 네트워크 망에서는 특별한 구성 없이도 접속이 가능하다.

대부분의 L2 Switch는 IGPM Snooping이 enable 되어 있기 때문이다.

물론 L3를 넘나드는 구성이 필요하다면, IP multicast가 활성화 되어 있어야 한다.


그럼 앞서 설명한 배경을 토대로 아래 슬라이드와 같이 정리를 하고 넘어가는 것이 좋을 것 같다.


기억하자! VXLAN에서의 핵심은 VTEP이다.

기억하자! VXLAN은 현재 Nexus 1000V의 VEM에서 동작한다.

(돈주고 사야 되냐고? VMWare, Citrix, HyperV 용 등 모든 Hypervisor Platform에서 무료이며, 모든 플랫폼을 수용하는 유일한 가상화 소프트웨어 스위치이다.)

기억하자! VXLAN은 vmknic 과 같은 관리 포인트 , 즉 VMWare의 kernel 사이드, Xen의 Dom0 관리 Side, HyperV의 Parents Side에 구성된다.

기억하자, VTEP은 Traffic의 Encapsulate , Termination 지점이다.

여기서 Encasulation 되어 터널링으로 넘어가는 방법은 GRE나 IPSec 같은 방식이 아닌 Multicast 기반이다.


자. 이제 좀 더 오다쿠 기질이 있는 전문가 또는 기술쟁이들을 위해 프레임과 패킷을 까 보도록 하자.



위의 슬라이드에서 청녹색의 Original L2 Frame만 원본 Frame이고 나머지는 VXLAN을 위한 헤더가 붙는다. (이 그림 그리느라 디지는 줄 알았다...)


진한 보라색이 바로 가장 중요한 VXLAN에 대한 모든 정보가 담겨 있다.

출발지에서 VXLAN Header를 생성하여 출발시킨다. 8Byte의 size 이다.

VXLAN Header에는 VNI라는 24bit VLAN 을 생성할 수 있다.

일반적인 VLAN ID 가 16bit 기반이라면, VXLAN의 VNI에서 표현되는 VLAN은 24bit 기반으로 16,000,000 개의 VLAN을 생성할 수 있다.

엄청난 규모라고 할 수 있다.

가장 중요한 VXLAN Header 이외에는...

전통적인 방식의 UDP Header, IP Header, MAC Header등이 생성된다.




원본 Frame에 비해 50Byte의 Header가 더 생성이 되므로 당연히 Overhead가 발생하며, 이것은 Fragment가 발생하거나 또는 권고로 vSwitch 등에서 Jumbo Frame 설정등으로 구성하면 된다.

이러한 VXLAN은 Multicast 기반으로 Tunneling을 하기 때문에 기존 네트워크 망에서 별도의 구성이 필요 없다.


그렇다면, 실제 동작방식의 플로우는 어떻게 동작할까?

의외로 간단하며, 이러한 동작방식을 이해한다면 ....정말 Ideal 하구나...라는 생각을 하게 될 것이다.

어떤 넘이 생각해 냈는지 참으로 똑똑하다는 생각이 든다.



1. MAC : 111  인 VM은 IP 2.2 VM으로 가고 싶지만 APR Table이 없다.

   따라서 ARP Request 를 날린다. (ARP BroadCast)

2. ARP Request는 vSwitch(이하 N1KV)에 MAC Table을 뒤져보지만 없다.

   따라서, VTEP Multicast Bus를 통해 쫘~악 ARP Requset를 날린다.

3. 다른 호스트의 VM이 응답한다.

   일단  vSwitch에 요청이 온 IP 1.1, MAC 111 VM의 Table을 등록한다.

4. 그리고 Unicast로 해당 VM에 화답한다.

5. IP 1.1 MAC 111 VM의 vSwitch를 화답해 오는 프레임의 VM2 MAC 222 IP 2.2 를 vSwitch에 등록한다.

6. 그 후로 그 VM 둘은 Unicast로 사랑을 하게 된다.


간단하다.

Multicast Enable 네트워크라는 터널링을 통해 예전과 똑같은 L2 동작방식을 취한다.

마치 뒤에서 콩까는 사람 같고,

복잡한 육로를 포기하고, 하늘길을 택하는 쿨~한 사업가 같은 느낌이랄까?


자, 이제 4편에서는 그럼 VXLAN 구성시 고려사항과 다른 Network Overlay 기술과 비교를 해 보도록 하자.




공지사항