네트워크/Overlay Network

VXLAN (Virtual eXtention LAN) MAC 주소 학습 방법 (Multicast & BGP)

고미-고미 2023. 2. 19. 15:14
728x90

● VXLAN (Virtual eXtention LAN) MAC 주소 학습 방법

 

Remote HOST의 MAC주소를 학습하는 방법은 Multicast 기반으로 VXLAN Flood & Learn 수행하는 방법과 Unicast 기반(VXLAN with MP-BGP EVPN)으로 수행하는 방법이 가장 널리 사용되는 방법 입니다. 

 

 

  ○ VXLAN Flood and Learn Multicast-Based (1세대)

  - Multicast를 사용하여 Remote VTEP과 HOST정보를 학습하는 것을 1세대 VXLAN이라고 합니다. 

 

    1. Multicast 사용 목적 

  • Broadcast, Unkown Unicast, Multicast (BUM) 트래픽 전송
  • Remote VTEP 발견
  • Remote-HOST MAC 주소를 학습하고 VXLAN Segment 마다 MAC to VTEP 맵핑
  • Multicast를 사용하면 Layer 2 Flooding 범위를 감소 시킬 수 있음
    - VNI와 Multicast를 맵핑을 통해 BUM Traffic이 발생하면 멀티캐스트 그룹으로만 트래픽을 전송

    2. 특징

  • VXLAN에서는 VNI에 맵핑 된 Multicast에 IGMP를 이용하여 특정 Multicast 그룹에 참여하고 해당 그룹에 대한 Multicast Distribution Tree는 VTEP을 기반으로 하여 Tree가 구성 됨.
  • Multicast를 통해  Broadcast, Unkown Unicast, Multicast Traffic (BUM Traffic)이 전송되며 트래픽이 전달되는 범위는 Multicast Group으로 제한
  • 서로 다른 VNI 사이 라우팅을 위해 외부 라우터 필요하며 이는 Haripin Traffic을 발생 시킴
  • VTEP 사이 인증기능이 없어 보안에 문제가 발생할 가능성이 존재함. (= Rogue VTEP 대응이 어려움)

 

    3. 동작 방식

  • VTEP 장비가 패킷을 받으면 Local Table을 먼저 참조 하고 없을 경우 Multicast Group으로 전달 함.
  • Multicast Group에 속해 있는 모든 장비에게 패킷이 전달(Flooding)되고, 특정 VTEP에서 해당 패킷에 대해 회신.
  • 해당 과정을 통해 Remote VTEP & Remote MAC 주소를 학습하고 최종적으로는 VTEP 사이 Unicast 통신 수행

 

    End SYSTEM A와 End SYSTEM B 사이 통신 과정

  1. End System A는 ARP Request 패킷을 생성하여 End System B의 MAC 주소를 요청 합니다.
  2. ARP Request 패킷이 VTEP#1에 도달하고 Local Table을 먼저 탐색 합니다. 요청한 MAC 주소를 알지 못할 경우 ARP 요청 패킷을 VXLAN으로 캡슐화하고, VNI에 맵핑 된 멀티캐스트 주소로 전송 합니다. 
  3. Multicast RP가 해당 패킷을 수신하고  멀티캐스트 주소를 확인 후 해당 주소에 참여하고 있는 모든 VTEP에게 패킷을 전달 합니다.
  4. VTEP은 VXLAN 패킷을 받고 캡슐화 해제를 수행하고 원본 이더넷 프레임을 참조하여 End System A의 MAC 주소와 Remote VTEP 주소를 학습 합니다. 
  5. 각각의 VTEP 장비들은 ARP Request 메시지를 Local Network로 전달 합니다.
  6. End System B가 ARP Reply 메시지를 발생 시키고 VTEP#2가 수신하고 Local Table에서 System A's MAC 주소를 찾습니다. System A's MAC 주소가 VTEP#1에 있다는 것을 확인하고 VTEP#2는 ARP Reply 메시지를 VXLAN 헤더를 추가하여 VTEP#1에게 Unicast로 전달 합니다. 
  7. VTEP#1 장비는 수신한 패킷을 캡슐화 해제를 수행하고 ARP Reply 메시지를 End System A 에게 전달 합니다. 
  8. MAC 주소 학습이 수행 될 때 해당 MAC과 연관이 있는 VTEP의 정보도 같이 학습이 됩니다. 
  9. Remote VTEP이 가진 HOST 정보를 식별한 뒤에는 Unicast를 사용하여 통신을 하게 됩니다. 

 

  ○ VXLAN Flood and Learn Unicast-Based with BGP (2세대)

  - BGP를 이용하여 VTEP은 자신의 정보를 BGP RR(Route-Reflector)에게 전달하고 RR은 해당 정보를 VTEP들에게 전파 합니다. 

   

    1. BGP 사용 목적 

      - BGP를 사용하여 VXLAN Control Plane 역할을 수행하며 결과적으로 불필요한 Flooding을 최소화 시킴.

      - BGP를 사용하여 Neighbor 관계를 생성하고, 정보 전파를 용이하게 함

 

    2. 특징

      - Leaf Node에서 MP-BGP를 이용하여 호스트 / 서브넷 경로 및 외부 연결 정보를 배포

      - 경로 정보를 식별하기 위해 RD (Route Distinguisher)와 RT (Route Target) 정보 활용

      - RD와 RT값은 BGP Extended Community 옵션을 활용하여 전달 됨

      - iBGP를 사용하며 iBGP의 제약사항 (iBGP로 받은 정보는 iBGP로 광고할 수 없음)을 극복하기 위해 Route Reflector 사용하여 확장성이 용이해짐.

      - VTEP의 정보를 모든 VTEP에게 전달해야 함 (Head End Replication)

      - 다른 VNI간 통신을 위해 L3 Routing을 수행 시 별도의 외부 라우터 필요없음.

 

 

    3. 동작방식

      1) VTEP들은 호스트 정보 (IP + MAC) 정보를 iBGP RR로 광고

      2) BGP가 모든 호스트 정보들을 다른 VTEP 장비들에게 전파

      3)  VTEP장비들은 Remote Host 정보들을 습득하게 되고 Routing Table 및 Forwarding Table에 저장


참고 URL

https://support.huawei.com/enterprise/en/doc/EDOC1100086966

 

728x90