L2TP PPP/NCP Interop
Ze as an LNS against a real xl2tpd/pppd
LAC, with FRR proving that a subscriber route makes it
all the way into BGP.
A peer-isolated Docker lab runs Ze as an LNS, a real
xl2tpd/pppd LAC, and FRR
as a BGP peer in separate privileged containers on
an isolated bridge network. It proves the complete
path from L2TP control tunnel through PPP LCP/IPCP,
kernel pppN interface creation,
dataplane connectivity, and BGP route
redistribution from a live PPP session.
Two scenarios: full PPP/IPv4 dataplane proof with cleanup verification, and a subscriber /32 BGP redistribution scenario -- advertised to FRR when the session comes up, withdrawn on teardown.
# Docker lab, all scenarios $ ./le deployment docker-l2tp-ppp-test # single scenario, verbose $ ZE_L2TP_INTEROP_SCENARIO=01-ppp-ipv4 ./le deployment docker-l2tp-ppp-test # QEMU path instead of Docker (needs tmp/kernel/vmlinuz) $ ./le deployment gokrazy-l2tp-ppp-test
Docker for the primary path. The QEMU path uses the
runtime kernel built by ze appliance kernel
--target runtime --arch arm64 and works where
Docker Desktop's VM lacks the PPPoL2TP kernel module.