Skip to content

Question: Is a MAC address strictly required for agent-server communication over L3 VPN tunnels? #10547

@sujoshua

Description

@sujoshua

Search before asking

  • I had searched in the issues and found no similar feature requirement.

DeepFlow Component

Server

What you expected to happen

Hello DeepFlow Team,

I am trying to use DeepFlow to manage a fleet of bare-metal servers. These servers are located in different geographical regions and are connected using a WireGuard (L3) VPN tunnel to form a private network.

My Environment Setup

  • Infrastructure: A group of geographically distributed bare-metal servers.

  • Networking: All servers are interconnected via a WireGuard tunnel, each having a private IP address within the VPN. The connectivity between nodes over this private network is working correctly.

  • DeepFlow Server: The DeepFlow server components are running on one of these servers, deployed via docker-compose, and are exposed on the server's private WireGuard IP address.

  • Verification: I have confirmed that the nodes can communicate with each other over the WireGuard network. The deepflow-ctl command also works correctly, indicating that the basic control plane communication is functional.

  • Agent Configuration: The controller-ip and port in /etc/deepflow-agent.yaml are correctly configured to point to the DeepFlow server's WireGuard IP.

The Problem

When I try to start the deepflow-agent on any of the nodes, it fails to initialize and enters a restart loop. The log shows the following critical error:

Error: get ctrl ip and mac failed: environment error: failed getting control ip and mac, deepflow-agent restart...

This error suggests that the agent is attempting to resolve the MAC address of the network interface associated with the controller-ip. However, WireGuard creates a pure L3 virtual interface (e.g., wg0), which does not have a MAC address.

This leads me to believe that the agent's startup process has a hard dependency on a Layer 2 MAC address, which makes it incompatible with L3 VPN tunneling solutions like WireGuard out-of-the-box.

My Questions

  1. MAC Address Requirement: Does the deepflow-agent strictly require the network interface it uses to communicate with the controller to have a physical MAC address?

  2. Agent-Side Requirement: Similarly, does the interface that the agent binds to on its own host also need to have a MAC address?

  3. Potential Workarounds:

  • Is there a configuration option in deepflow-agent.yaml to bypass this MAC address check?

  • Alternatively, is it possible to manually specify a dummy/virtual MAC address in the configuration file to satisfy this startup requirement?

My goal is to monitor traffic within this VPN-interconnected environment, and this initial startup failure is the primary blocker. Any guidance or potential solution would be greatly appreciated.

Thank you for your time and help!

DeepFlow version

v7.1.2

Kubernetes CNI

docker compose way

Operation-System/Kernel version

debian 13 6.12.41+deb13-cloud-amd64

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions