'vtep'에 해당되는 글 3건

  1. 2014.11.16 VXLAN - Part 3 [Arista VEOS로 VXLAN 구현 ]
  2. 2014.04.24 VXLAN - Part 2 (1)
  3. 2014.04.23 VXLAN - Part 1 (2)
분류없음2014.11.16 04:34

 

 


 Arista의 VEOS를 통한 VXLAN을 간단하게 구현해보는 VXLAN의 3번째 포스팅입니다.

오랜만에 올리는 VXLAN시리즈 포스팅이네요.

원래 3번째 포스팅은 좀 더 이론적인 부분을 다루기 위해서 작성하다가,

4번째 포스팅하려던 테스트가 먼저 정리가 되어서, 순서를 바꿔서 올려봅니다.

VXLAN을 구성하기 위한 VEOS의 간단한 Config에 대해서 먼저 알아보고,

해당 Config를 이용하여 단순한 랩을 통해서 이해해보시길 바랍니다.


 

○ VXLAN VTI 생성
switch(config)#interface vxlan 1

 

○ VNI와 VLAN 간의 Mapping
switch(config)#interface vxlan 1
switch(config-if-Vx1)#vxlan vlan 100 vni 100

○ VXLAN의 VNI 구분자

     - VNI는 1 ~ 16777215까지 사용 가능하나, Dotted 명령 사용 시 0.0.1 ~ 255.255.255 로 설정 가능.

switch(config)#vxlan vni notation dotted
switch(config-if-Vx1)#vxlan vlan 200 vni 10.10.200

 

○ VXLAN을 맺기 위한 Loopback IP 생성 및 Source로 설정
switch(config)#interface loopback 15
switch(config-if-Lo15)#ip address 10.25.25.3/24

 

switch(config)#interface vxlan 1
switch(config-if-Vx1)#vxlan source-interface loopback 15

 

○ Multicast Group 설정

 -
switch(config)#interface vxlan 1
switch(config-if-Vx1)#vxlan multicast-group 227.10.1.1

 

○ 기본 VXLAN UDP 포트(4789) 변경
switch(config)#interface vxlan 1
switch(config-if-Vx1)#vxlan udp-port 5500

 

○ Head End Replication (VXLAN을 통한 Broadcast / Unknown Unicast / Multicast Traffic을 전송하기 위함). (unicast? 맺는거?)
switch(config)#interface vxlan 1
switch(config-if-Vx1)#vxlan flood vtep 10.1.1.1 10.1.1.2

※ 특정 VLAN에 대하여 Head-End Replication 지정

switch(config-if-Vx1)#vxlan vlan 101-102 flood vtep 11.1.1.1 11.1.1.2 11.1.1.3

 

○ VXLAN Multicast Group 설정

switch(config)#interface vxlan 1
switch(config-if-Vx1)#vxlan multicast-group 227.10.1.1

 

 


Simple VXLAN Lab 구성 및 TEST 

 

 


 VEOS#1 설정

vlan 10
!
interface Ethernet1
   switchport access vlan 10
!
interface Ethernet2
   mtu 9000
   no switchport
   ip address 1.1.3.5/24
   ip pim sparse-mode

 

 

interface Loopback0
   ip address 10.1.1.1/24
!
interface Vlan10
   ip address 1.1.2.5/24
!
interface Vxlan1
   vxlan multicast-group 239.1.1.1
   vxlan source-interface Loopback0
   vxlan udp-port 4789
   vxlan vlan 10 vni 10
!
ip routing
!
ip multicast-routing

 

 

 

 VEOS#2 설정

vlan 10
!
interface Ethernet1
   switchport access vlan 10
!
interface Ethernet2
   mtu 9000
   no switchport
   ip address 1.1.3.6/24
   ip pim sparse-mode

 

 

interface Loopback0
   ip address 10.2.2.2/24
!
interface Vlan10
   ip address 1.1.2.9/24
!
interface Vxlan1
   vxlan multicast-group 239.1.1.1
   vxlan source-interface Loopback0
   vxlan udp-port 4789
   vxlan vlan 10 vni 10
!
ip routing
!
ip multicast-routing

 

 

 


 

 

VXLAN Interface 확인

VEOS1#sh int vxlan 1
Vxlan1 is up, line protocol is up (connected)
  Hardware is Vxlan
  Source interface is Loopback0 and is active with 10.1.1.1
  Replication/Flood Mode is multicast
  Inactive Vxlan Configuration:
    Multicast group address is 239.1.1.1
  Static vlan to vni mapping is
    [10, 10]        

 

 

VXLAN Address Table 확인

VEOS1#sh vxlan address-table
          Vxlan Mac Address Table
------------------------------------------------------------------------------------------

Vlan  Mac Address     Type             Prt    Vtep           Moves   Last Move
----  -----------               ----               ---     ----             -----       ---------
  10  000c.2925.2a9c  DYNAMIC  Vx1  10.2.2.2     1           1:17:48 ago
Total Remote Mac Addresses for this criterion: 1        

 

 

 

 VXLAN MAC 정보 확인

 

 

VEOS#1번기 VXLAN Address Table(상단 표에서 참조)의  '000c.2925.2a9c'의 MAC이 상대편 VTEP 내부의 서버 1.1.2.10의

실제 Mac Address임을 확인할 수 있다. 

 

 

 

Posted by 네떡지기

VXLAN 2번째 정리입니다.

뭔가 아직 정리가 되지 않은 듯하여 포스팅을 미루려 하였으나..

미루기만하면... 계속 미루기만 할 것 같아서... 우선 先 포스팅... 後 업데이트로 갑니다.

 


 

 

VXLAN이 필요한 배경


1.  Limitations imposed by Spanning Tree & VLAN Ranges

     - 현재의 Layer 2 Network는 중복된 경로에 대해서 Loop를 예방하기 위해 STP를 사용한다.

     - STP를 사용하게 되면, Blocking Point가 생기면서 모든 경로에 대해서 다 사용할 수가 없게 된다.

       따라서, STP 모델은 Multipathing에서의 Resiliency로써는 적합하지 않다.
     - 최근에는 TRILL이나 SPB로써 STP의 이러한 제약사항을 해소하도록 제안되고 있다.

       이러한 기술은 동일한 Layer 3 Network에서의 Rack간의 서버들의 통신에서는 STP의 제약사항을 해결하지만,

       Inter-VM 통신을 위한 Layer 2 Model로는 적합하지 않다.
     - VLAN은 Broadcast Domain을 나누는 역할을 하는 데, 12bit로 VLAN을 구분하게 되며 이는 총 4094개의 VLAN을 생성하여

       사용할 수 있다. 하지만, 가상화가 채택되면서 보다 많은 VLAN 사용이 필요로 하게 된다.


 

2. Multitenant Environments
     - Cloud  Computing은 Multi-tenant 환경을 위해 탄력적인 Resource의 Provisioning을 포함한다. 
     - 대표적인 Cloud Computing의 예는 Public Cloud 인데, Cloud Service 사업자는 이러한 탄력적인 서비스를 제공하여

       동일한 물리적인 인프라에서 다수의 고객/Tenants을 수용하게 된다. 
     - Tenant의 독립적인 Network Traffic 분리는 Layer 2 혹은 Layer 3 Network를 통해 가능하다.
     - Layer 2 Network VLAN을 통해서 Traffic을 분리할 수 있는 , 이를 통해 Tenant간에 구분이 가능하다.
     - Cloud Provider은 다수의 Tenant를 구분해야 하기 때문에, 기존 VLAN에서의 최대 값인 4094개는 서비스를 제공하는 데,

       부족할 수 있다. 더욱이 하나의 Tenant(Customer)에서 다수의 VLAN이 필요한 경우도 발생하게 된다. 

3. Inadequate Table Sizes at ToR Switch
    - 오늘날 가상화 환경에서는 기존의 Server와 연결된 Link에 대해서 하나의 Mac-Address 학습했던 것과는 달리 각 개별 VM 단위로

      Mac-Address를 학습하게 된다.

   - 이는 VM과 다른 물리적인 서버로 통신하기 위해 필요로 하다. 일반적인 ToR Switch는 24개 혹은 48개의 서버에 연결될 수 있고,

     이러한 랙들로 DataCenter가 구성되게 된다.

   - 그래서 각각의 ToR Switch는 VM들이 다수의 서버들과 통신하기 위해 Mac-Address Table을 유지해야 한다.

     이러한 환경은 기존의 비가상화 환경보다 더 많은 수의 Table용량이 필요로 하게 된다.

 

 

 

VXLAN
  - VXLAN은 Layer 2와 Multi-tenant 환경에 VM동작하는 Layer 3 DataCenter Network 인프라에서 위의 요구사항들을 해결한다.     -  - VXLAN은 기존 Network 인프라에서 Layer 2 Network를 확장하도록 제공해준다. 
  - 즉, VXLAN은 Layer 3를 통한 Layer 2의 Overlay 방식이다. 각 Overlay를 VXLAN segment라고 하며,

  - 동일한 VXLAN segment내의 Device간에만 통신이 가능하게 된다.

  - 각 VXLAN segment는 24bit의 Segment ID라는 식별자를 통해서 식별되며, 이를 VXLAN Network Identifier(VNI)라고 한다.

  - 이 VNI는 동일한 Domain 내에서 최대 1600만개의 VXLAN Segment를 가질 수 있다.
  - VNI는 개별 VM이 만든 내부 MAC frame의 범위를 식별한다. 

  - 따라서, VNI로 구분된 Segment간에는 서로 MAC Address가 중복이 되어도 문제가 없다. 
  - VNI 정보는 개별 VM이 만든 내부 MAC frame을 캡슐화한 Outer header에 있다.

  - 이러한 캡슐화 때문에, VXLAN을 Tunnel 방식이라고 할 수 있다.

  - 이 Tunnel은 Stateless이며, 각 Frame는 일련의 규칙에 의해서 캡슐화된다.
  - Tunnel의 End-Point(종단/VXLAn Tunnel End Point-VTEP)은 VM을 호스팅하는 Server의 Hypervisor내에서 위치한다.

    (Hypervisor이외에 물리적인 별도의 스위치에서 VTEP역할을 할 수도 있다.) 

  - 따라서 VNI와 VXLAN은 tunnel/outer header 캡슐화 정보이기 때문에 VTEP에서만 알고 있으며, VM에서는 이 정보를

    알 수 없다.                                                                              

 

 

 

VXLAN Deployment Scenarios

 

 VXLAN은 일반적으로 여러 랙의 흩어져있는 가상화 Host들이 있는 Data Center에 Deploy되어 있다.

 각각의 랙은 서로 다른 Layer 3 Network에 있거나 혹은 하나의  Layer 2 Network에 있을 수 있다.

 VXLAN Segments/overlay network은 이러한 Layer 3 혹은 Layer 2 Network의 상단에 놓여있게 된다.

 

 다음의 VXLAN의 Deployment 시나리오를 위한 가상의 구성이다.

 2대의 가상화 서버가 Layer 3 인프라를 통해서 연결되어 있다. 이 서버는 동일 랙 일 수도 있으며, 혹은 서로 다른 랙이거나

 다른 데이터센터에 각각 구축되어 있을 수 있으나 동일한 관리 Domain내에 있다.

 가상화 서버 내의 4개의 VM은 4개의 VXLAN Overlay Network로 구성되며 22, 34, 74, 98의 VNI 값을 가지고 있다.

 

 

 

하나의 Deployment 시나리오는 Tunnel 종단 지점의 서버에서 VXLAN을 이해할 수 있는, 즉 VTEP 기능을 수행 할 수 있는 경우이다.

 

 또 다른 시나리오는 VXLAN Overlay network에 있는 Node가 기존 VLAN기반의 Legacy Network와 통신하고자 하는 경우이다.

이러한 Node는 Physical Node이거나 혹은 VM일 수 있다. 이 둘 간의 통신을 하기 위해서 Network에 VXLAN과 Non-VXLAN 사이의 Traffic을 전송하는 VXLAN Gateway가 필요하다.

 

다음은 VXLAN과 Non-VXLAN간의 통신을 하는 경우에 대한 것이다.

 

 VXLAN 연결 Interface에 들어온 Frame을 Gateway에서는 VXLAN header을 제거하고, Inner Ethernet Frame의 Destination Mac Address로 Physical Port로 전송을 하게 된다. 

명시적으로 Non-VXLAN interface로 전달하기 위한 설정이 되어있지 않으면, Inner VLAN ID와 함께 디캡슐화된 Frame은 폐기된다.

 

 반대로, Non-VXLAN Interface로부터 들어온 Frame은 내부의 VLAN ID를 기반으로 특정 VXLAN Overlay network로 Mapping된다.

이 경우에 명시적으로  캡슐화된 VXLAN Frame으로 전달하는 설정을 하지 않으며, VLAN ID는 VXLAN으로 캡술화 되기 전에 제거된다.

 

 VXLAN Tunnel 종단 기능을 하는 Gateway들은 ToR/Access Switch 혹은 Core 심지어 WAN edge Device가 될 수 있다.

WAN Edge Device가 이러한 Gateway 역할을 하는 경우에 Hybrid Cloud 환경에서 VXLAN Tunnel 종단인 Provider Edge Route를 포함할 수 있다.  이러한 모든 경우에 Gateway 기눙은 Software나 Hardware 모두 구현될 수 있다.

 

 

 

Inner VLAN Tag 처리

 VTEP와 VXLAN Gateway는 Inner VLAN Tag 처리를 위하여 다음과 같이 해야 한다.

 - 설정이 되어 있지 않으면, 디캡슐화된 VXLAN Frame은 Inner VLAN Tag과 함께 Dircard 된다.

 - 설정이 되어 있지 않으면, 캡슐화 시에 Tunnel Packet에 VTEP는 Inner VLAN tag를 포함하지 않는다.

 - VLAN-tagged Packet이 VXLAN Tunnel을 해야 하는 경우에 별도의 설정이 되어 있지 않으면,

   VTEP는 VLAN Tag를 제거하고 캡슐화한다.

 

 

 

 

 

 

 

Posted by 네떡지기

Last Update : 2014.04.28


 

새롭게 지난 주말부터 정리를 시작한 VXLAN입니다.

수정이 필요한 부분은 말씀해주시면, 확인 후 수정하도록 하겠습니다.


 

 

VXLAN

  물리적인 환경의 제약이 없이 Layer 2 Segment를 확장한다.

  〮 VM 이동 후에도 기존 IP 주소를 지속적으로 사용.

  표준화된 방법으로 Overlay를 구성할 수 있게하여,  다양한 Vendor들의 Ecosystem을 구축할 수 있음.

    ※ Cisco,Vmware, F5, Broadcom, Brocade, Arista etc

  기존 Layer 212bitVLAN ID4094 VLAN지원, VXLAN24bitVNID1600만개의 VXLAN을 지원한다.

  기존 Layer2 VLANSTP 사용하여 Loop방지를 하기 때문에 Blocking 등으로 인해 미사용하는 구간이 발생한다.

    반면에 VXLANLayer 3 기반의 RoutingECMP, Link Aggregation 프로토콜로 모든 경로를 다 사용할 수 있다.

  MAC in IP/UDP 방식으로 Encapsulation. (캡슐화 역할을 vSwitch에서 제공)

      - Encapsulation을 vSwitch(Software VTEP)에서 뿐만 아니라, Physical Switch(Hardware VTEP)에서도 제공할 수도 있으며,

        이 둘 간에는 상호 연동/호환이 가능하다.

 Multicast 기반으로 Tunneling을 하기 때문에 기존 Network망에서의 별도의 구성이 필요 없다.

 50ByteOverhead 발생. 향후 160Byte까지 확장 고려로, MTU1660Byte로 고려해야 하며 Jumbo Frame 설정 권고

 Multicast(IGMP /PIM)이 지원이 되야하고, Layer 3 Routing Protocol이 동작하고 있는 Network Infrastructure여야 한다

      - EncapsulationPhysical Switch에서 제공해도 되지만, 이 경우에는 VXLAN 구간의 모든 Physical 구간에 VXLAN

       지원하는 Physical Switch가 필요로 하게 되어, 해당 장비의 종속성을 띄게 된다.

 

 

VXLAN 사용 이유

 가상화 환경에서는 VM별로 vNIC을 사용하기 때문에 다수의 MAC Address가 생성되게 된고, 이로 인해 단일 Layer2

   Domain에서 Table 관리의 한계가 올 수 있음.

     VXLAN으로 모든 MAC AddressSwitch에서 가지지 않고, vSwitch에서만 소유하도록 함.

    ※ Core Network에서의 Mac Address 확장성 이슈 해결

 〮 VXLANEnd-Point Device에서만 제공 가능하여도 가능하기 때문에 보다 Vendor에 유연성을 제공한다.

 

 

 

VXLAN 구성 요소

  〮 VXLAN Segment

     - L2 / L3 환경에서의 VM간의 L2 환경을 구현한 Network 범위

     - VXLAN Layer 2 overlay network over which VMs communicate

  VXLAN Overlay Network

     - VXLAN segmentL2/L3 네트워크에서 구현

     - another term for VXLAN Segment

  VNI (VXLAN Network Identifier)

     - VXLAN Segment ID

  VXLAN Gateway

     - VXLANNon-VXLAN간의 트래픽 전송

     - an entity which forwards traffic between VXLAN and non-VXLAN environments

  VTEP (VXLAN Tunnel End Point)

     - VXLAN의 터널 지원하는 End Device.  vSwitch.

     - Local Host와 연결된 InterfaceVXLANEncapsulation/De-capsulation을 역할을 Core와 연결된 IP Interface가 있다.

     - VXLAN Tunnel End Point - an entity which originates and/or terminates VXLAN tunnels

 

 

VXLAN Header

 

 


 

 Flag (8bits)

 유효한 VXLAN Network ID(VNI) 설정된 경우 1로 설정되며, 나머지 7bit Reserved Filed0으로 설정하여 전송하며

   수신 시에는 해당 bit는 무시한다.  [ RRRR1RRR ]

 

VNI (VXLAN Segmemnt Identifier) (24bits)

 〮 VXLAN Overlay Network에 대한 식별자이며, VM들은 동일한 VXLAN Overlay에 있어야 통신이 가능하다.

 〮 VM은 서로 다른 VXLAN Overlay Networks 간에는 통신할 수 없다.

 〮 1600만개의 Segmaent가 동작하도록 허용.

 

Reserved (24bits & 8bits)

 〮 Reserved Filed0으로 설정하여 전송하며 수신 시에는 해당 bit는 무시한다.

 

 

 

Source Port (16bits)

 〮 UDP Source Port는 내부 PacketFiledHash하여 계산하는 것을 권고하는 데, 예를 들어 내부 PacketHeader

   Hash하는 것이다. 이것은 VXLAN overlay를 통한 VM간의 ECMP/Load balancing을 할 수 있게 한다.

 〮 UDP Source PortDynamic/Private Port의 범위인 49152-65535[RFC 6335]의 값이 나오도록 하는 것이 좋다

 

VXLAN Port (16bits)

〮 IANAVXLAN UDP Port4789를 지정하였으며, 이는 Destination UDP Port로 사용된다. (Vendor에 따라 다를 수 있다)

 

UDP Length(16bits)

 

CheckSum (16bits)

 UDP Checksum field0으로 전송되어야 하며, 0으로 전송된 경우에 Decapsulation된다.

   만약 0 아닌 Checksum 값이 확인이 되는 경우에는 Drop되게 된다.

 

 

 

IP Header (72bits)

 Version / IHL / Type of Service / Total Length / Identification / Flags / Fragment Offset / Time to Live

 

Protocol (8bits)

 0x11(17) = UDP packet

 

Header Checksum (16bits)

 

Source IP  (32bits)

 〮 VTEPSource IP로 설정

 

Destination IP (32bits)

 〮 DestinationVTEP IP Address로 설정.

 unknown unicast 혹은 Broadcast/Multicast Address의 경우에는 Multicast Group을 사용하여 전송한다.

 

 

Destination MAC Address (48bits)

 동일한 Subnet 경우에는 Destination VTEPMAC Address로 설정.

 다른 Subnet인 경우에는 Router와 같은 Next Hop DeviceMAC Address로 설정

 

Source MAC Address (48bits)

 〮 Source VTEP MAC address

 

VLAN (16bits)

 VXLAN 구현을 위한 옵션이며, Default로는 802.1Q Ethertype 0x8100과 연관된 VLAN ID Tag로 설정된다.

 

Ethertype (16bits)

 0x0800

 

 

 

Posted by 네떡지기

티스토리 툴바