Skip to content
LinkState
Go back

Why readiness goes green while forwarding stays dead

Following One Flow from Host into Custom Node Image

Overview

This article walks through the packet flow from the host into a custom node image, explains how health checks can report success while the actual lab datapath is still broken, and provides troubleshooting steps and CLI examples.

Host and Custom Node Image

The packet we follow originates on the host, destined for the node’s data plane address 10.0.0.10/24 via the data interface:

host (eth0) → veth-data-host → lab bridge → veth-data-ns → data namespace → application socket

Management Bridge and Namespace Wiring

Containerlab creates a Linux bridge named clab-mgmt on the host. For each node:

Data Interfaces and Lab Datapath

For each data interface, Containerlab creates a second veth pair (veth-data-hostveth-data-ns):

Health checks target the management address (172.20.20.10) and never enter the data namespace.

Health Check Mechanisms

Types

  1. ICMP echo to the management IP (ping -c 3 172.20.20.10).
  2. TCP connect to a listening port on the management interface (nc -z 172.20.20.10 8080).
  3. HTTP GET to a health endpoint (curl -s -o /dev/null -w "%{http_code}" http://172.20.20.10:8080/health).
  4. Scripted check inside the mgmt namespace returning 0/1.

All rely solely on the management bridge


Share this post on:

Previous Post
Diff normalization to kill false canary alarms
Next Post
Generating parsers from samples without blind trust