Traceflow는 VDS(vSphere Distributed Switch) 포트에 패킷을 삽입하고 오버레이 및 언더레이 네트워크에서 물리적/논리적 엔티티(예: ESXi 호스트, 논리적 스위치 및 논리적 라우터)를 이동할 때 패킷 경로와 함께 다양한 관찰 지점을 제공합니다. 이를 통해 패킷이 대상에 도달하기까지의 경로 또는 반대로 도중에 패킷이 삭제되는 지점을 식별할 수 있습니다. 각 엔티티는 입력 및 출력에서의 패킷 처리를 보고하므로 패킷을 받을 때 또는 패킷을 전달할 때 문제가 발생하는지 확인할 수 있습니다.
Traceflow는 게스트 VM 스택 간을 이동하는 ping 요청/응답과는 다릅니다. Traceflow는 오버레이 네트워크를 탐색할 때 표시된 패킷을 관찰하는 일을 수행합니다. 각 패킷은 대상 게스트 VM에 도달하고 전달 가능해질 때까지 오버레이 네트워크를 이동할 때 모니터링됩니다. 하지만 삽입된 Traceflow 패킷은 실제로는 대상 게스트 VM에 절대로 전달되지 않습니다. 따라서 게스트 VM의 전원이 꺼져 있어도 Traceflow가 성공할 수 있습니다.
Traceflow에서는 다음 트래픽 유형을 지원합니다.
- 계층 2 유니캐스트
- 계층 3 유니캐스트
- 계층 2 브로드캐스트
- 계층 2 멀티캐스트
사용자 지정 헤더 필드 및 패킷 크기를 사용하여 패킷을 구성할 수 있습니다. Traceflow의 소스는 항상 가상 시스템 vNIC(가상 NIC)입니다. 대상 끝점은 NSX 오버레이 또는 언더레이의 임의 디바이스일 수 있습니다. 그렇지만 NSX ESG(Edge Services Gateway)의 상위(north)에 있는 대상은 선택할 수 없습니다. 대상은 동일한 서브넷에 있거나 NSX 논리적 분산 라우터를 통해 연결할 수 있어야 합니다.
소스 및 대상 vNIC가 동일한 계층 2 도메인에 있는 경우 Traceflow 작업이 계층 2로 간주됩니다. NSX에서 이는 소스 및 대상 vNIC가 동일한 VXLAN 네트워크 식별자(VNI 또는 세그먼트 ID)에 있음을 의미합니다. 예를 들어, 2개의 VM이 동일한 논리적 스위치에 연결된 경우 이런 상황이 발생합니다.
NSX 브리징이 구성되면 알 수 없는 계층 2 패킷이 항상 브리지로 전송됩니다. 일반적으로 브리지에서 이러한 패킷을 VLAN에 전달하고 해당 Traceflow 패킷을 전달됨으로 보고합니다. 패킷이 전달된 것으로 보고되었다고 해서 추적 패킷이 지정된 대상으로 전달되었음을 의미하는 것은 아닙니다.
계층 3 Traceflow 유니캐스트 트래픽의 경우 2개의 끝점이 서로 다른 논리적 스위치에 있고 다른 VNI를 갖고 있으며, DLR(논리적 분산 라우터)에 연결되어 있습니다.
멀티캐스트 트래픽의 경우 소스는 VM vNIC이고 대상은 멀티캐스트 그룹 주소입니다.
Traceflow 관찰에는 브로드캐스트된 Traceflow 패킷의 관찰이 포함될 수 있습니다. ESXi 호스트는 대상 호스트의 MAC 주소를 모를 경우 Traceflow 패킷을 브로드캐스트합니다. 브로드캐스트 트래픽의 경우 소스는 VM vNIC입니다. 브로드캐스트 트래픽의 계층 2 대상 MAC 주소는 FF:FF:FF:FF:FF:FF입니다. 방화벽 검사를 위한 올바른 패킷을 생성하기 위해 브로드캐스트 Traceflow 작업에 서브넷 접두사 길이가 필요합니다. 서브넷 마스크를 통해 NSX에서 패킷에 대한 IP 네트워크 주소를 계산할 수 있습니다.
Traceflow를 사용하는 두 가지 방법은 API 또는 GUI를 통하는 것입니다. API는 GUI에서 사용하는 API와 동일하지만 예외로 API는 패킷 내에 정확한 설정을 지정할 수 있는 반면 GUI는 제한된 설정만 지정할 수 있습니다.
GUI를 사용하여 다음 값을 설정할 수 있습니다.
- 프로토콜---TCP, UDP, ICMP.
- TTL(Time-to-live). 기본값은 64 홉입니다.
- TCP 및 UDP 소스/대상 포트 번호. 기본값은 0입니다.
- TCP 플래그.
- ICMP ID 및 일련 번호. 둘 다 기본값은 0입니다.
- Traceflow 작업에 대한 만료 시간 초과(밀리초). 기본값은 10,000ms입니다.
- 이더넷 프레임 크기. 기본값은 프레임당 128바이트입니다. 최대 프레임 크기는 프레임당 1,000바이트입니다.
- 페이로드 인코딩. 기본값은 Base64입니다.
- 페이로드 값.