본문 바로가기
Network Know-how 기록하기

[AWS]Gateway Load Balancer #3(GENEVE Protocol)

by 네트워크 엔지니어 환영 2023. 12. 4.
반응형
틀린 부분이 있다면 꼭 지적해 주시면 감사하겠습니다.

VXLAN & GENEVE Protocol

  • L2 네트워크에서 VLAN은 최대 4096개까지 생성 가능함
  • 이더넷 프레임에서 VLAN 번호를 나타내는 VID(Vlan ID)가 12bit인 탓에 2의 12 제곱인 4096개까지 가능한 것
  • 과거에는 VLAN 4096개 넉넉한 숫자였을 수도 있지만 현재에는 부족한 숫자임
    • 가상화 기술의 등장은 물리 네트워크를 논리적으로 나눠 쓰는 방법을 극대화시킴
  • VLAN의 한계인 최대 개수 문제를 해결한 것이 바로 Virtual Extensible LAN, VLXAN
  • VLAN(4096개 각각) 내부에 또 다른 VLAN 4096개를 생성하는 방법을 사용하여 사용 가능한 VLAN 개수를 비약적으로 늘려 최대 1600만 개의 VLAN을 사용할 수 있음
    • VXLAN 4096개 각각의 내부에 VLAN이 4096개 존재하는 것
  • 이더넷 프레임(VLAN ID, 1~4096) 외부에 VXLAN 헤더를 덧씌워 캡슐화하고 추가적인 L4, L3, L2 Header(Outer Port, IP, MAC)를 씌운 뒤 전송하는 방법을 사용함
    https://www.juniper.net/
    (Inner)Original Ethernet Frame에 VXLAN 헤더를 덧씌워 캡슐화한 (Outer) 이더넷프레임(출처 : 주니퍼 네트웍스 설명서)
  • 위의 그림에서 볼 수 있듯이 Original Ethernet Frame은 4096개의 VLAN ID를 가질 수 있고 VXLAN Header에 덧씌워진 상태로 외부에서 보면 마치 VXLAN 1개인 것처럼 보이며 VXLAN 또한 4096개를 생성할 수 있음(4096개 x 4096개)
  • 이더넷 프레임을 캡슐화하는만큼 캡슐화하는 디바이스와 캡슐화된 이더넷 프레임의 캡슐화를 이해하고 해제할 수 있는 디바이스가 있어야 함, 다시 말해 VXLAN을 이해해야 활용 가능
  • VXLAN을 이해하는 디바이스가 물리적인 네트워크를 기반으로 캡슐화를 통해 가상의 네트워크를 형성하여 통신하기에 Overlay Network라 불림 
    • IPSec VPN이 어떻게 동작하는 지를 떠올려보면 이해가 쉬움
  • GENEVE ProtocolGeneric Network Virtualization Encapsulation의 약자로 VXLAN과 같은 역할을 하는 캡슐화 프로토콜이며 UDP 6081 포트를 사용하여 이더넷 프레임을 캡슐화함(VXLAN은 UDP 4789 포트를 사용)
  • 아래는 GENEVE Protocol의 GENEVE Header를 중심으로 Original Ehternet frame인 Inner Ethernet frame과 캡슐화되며 덧씌워지는 Outer Ethernet Frame을 도식화한 그림임

GENEVE의 Outer Header(출처 : https://www.rfc-editor.org/rfc/rfc8926.html)
GENEVE의 Inner Header(Orignial Ethernet Frame 부분, 출처 : https://www.rfc-editor.org/rfc/rfc8926.html)

  • GENEVE Header가 씌워지며 Outer UDP Header에 포트 번호 6081이 기재된 것을 볼 수 있음

 

AWS Gateway Load Balancer와 3rd Party Appliance를 활용함에 있어서 GENEVE가 필요한 이유

  • Gateway Load Balancer(이하 GWLB)와 3rd Party Appliance(이하 서드 파티 어플라이언스)는 GENEVE Protocol을 활용하여 이더넷 프레임을 캡슐화하여 서로 주고받는 식으로 통신을 하게 됨
  • UDP 6081 포트를 사용하여 서로 캡슐화된 이더넷 프레임을 주고받는 것을 의미함
  • 서드 파티 어플라이언스 또한 GENEVE를 반드시 지원하고 활용할 줄 알아야 연동 가능
  • 서드 파티 어플라이언스가 탑재된 EC2의 보안 그룹에는 UDP 6081 포트 이외에 별다른 포트는 필요로 하지 않음
    • 헬스 체크 용도의 포트 번호가 별도로 존재한다면 추가로 열어야 함
  • 서드 파티 어플라이언스(방화벽)와 GWLB에 연동하기 위해 GENEVE가 필요한 이유는 다음과 같음
    • 방화벽은 IP와 Port 정보를 기반으로 트래픽을 통제하는 장비인만큼 다양한 포트를 가진 이더넷 프레임이 유입됨
    • GENEVE를 사용하지 않는다면 통제 대상이 되는 이더넷 프레임의 목적지 포트가 유입될 수 있도록 EC2의 보안 그룹에서 일일이 목적지 포트를 열어줘야 함
      • 보안 그룹에서 포트가 허용되어야 EC2 인스턴스에 올려진 방화벽에 이더넷 프레임이 접근할 수 있기 때문
    • GENEVE를 통해 캡슐화하게 되면 목적지 포트를 UDP 6081로 지정할 수 있으므로 캡슐화하여 방화벽에게 전달하기에 이러한 수고가 필요하지 않음
    • 보안 그룹의 포트를 UDP 6801 포트만 허용한다는 것을 의미

댓글