NetVM: 1:1 profile:node mapping — hashed iface names, netvm-enter + netvm-chrome launcher
This commit is contained in:
+6
-11
@@ -2,18 +2,13 @@
|
||||
# netvm-topology.sh — live topology + per-node diagnostics.
|
||||
# Run as root (operator: sudo -n via the allowlist).
|
||||
set -u
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
. "$SCRIPT_DIR/netvm-names.sh"
|
||||
for ns in $(ip netns list 2>/dev/null | awk '{print $1}' | grep '^warp-'); do
|
||||
node="${ns#warp-}"
|
||||
hs=$(ip netns exec "$ns" wg show "wg-${node}" latest-handshakes 2>/dev/null | awk '{print $2}')
|
||||
netvm_names "${ns#warp-}"
|
||||
hs=$(ip netns exec "$ns" wg show "$WG" latest-handshakes 2>/dev/null | awk '{print $2}')
|
||||
[ -z "$hs" ] && hs="none"
|
||||
routes=$(ip netns exec "$ns" ip route 2>/dev/null | tr '\n' '|' )
|
||||
egress=$(ip netns exec "$ns" curl -sk --max-time 10 'https://1.1.1.1/cdn-cgi/trace' 2>/dev/null | grep -oP '^ip=\K.*' || true)
|
||||
printf 'node=%s netns=%s handshake=%s egress=%s\n routes: %s\n' "$node" "$ns" "$hs" "${egress:-?}" "${routes:-none}"
|
||||
printf 'node=%s netns=%s ifaces=%s/%s handshake=%s egress=%s\n' "$NODE" "$ns" "$WG" "$VETH" "$hs" "${egress:-?}"
|
||||
done
|
||||
# host-side NAT rules for our subnets
|
||||
iptables -t nat -L POSTROUTING -n 2>/dev/null | grep '10.201\.' || echo "no netvm NAT rules on host"
|
||||
|
||||
echo "--- host links ---"
|
||||
ip link show 2>/dev/null | grep -E 'veth-|vpeer-|wg-' || echo "(no netvm links on host)"
|
||||
echo "--- all netns ---"
|
||||
ip netns list 2>/dev/null || echo "(none)"
|
||||
iptables -t nat -L POSTROUTING -n 2>/dev/null | grep '10.201\.' || echo "(no netvm NAT rules on host)"
|
||||
|
||||
Reference in New Issue
Block a user