netcfg: add verbose logging for TAP configuration

Log each step: address assignment, static routes, default route,
DNS changes, and cleanup flush.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Git Sagar 2026-06-06 17:08:28 +05:30
parent 17c1063e1f
commit 995504d761

View file

@ -30,6 +30,7 @@ func ConfigureTAP(ifname string, lease *dhcp.Lease, acceptDefaultGW, acceptStati
ones, _ := lease.SubnetMask.Size() ones, _ := lease.SubnetMask.Size()
addr := fmt.Sprintf("%s/%d", lease.ClientIP, ones) addr := fmt.Sprintf("%s/%d", lease.ClientIP, ones)
log.Printf("tap %s: adding address %s", ifname, addr)
if err := run("ip", "addr", "add", addr, "dev", ifname); err != nil { if err := run("ip", "addr", "add", addr, "dev", ifname); err != nil {
return noop, fmt.Errorf("ip addr add: %w", err) return noop, fmt.Errorf("ip addr add: %w", err)
} }
@ -39,12 +40,16 @@ func ConfigureTAP(ifname string, lease *dhcp.Lease, acceptDefaultGW, acceptStati
dest := r.Dest.String() dest := r.Dest.String()
if dest == "0.0.0.0/0" { if dest == "0.0.0.0/0" {
if acceptDefaultGW { if acceptDefaultGW {
log.Printf("tap %s: adding static default route via %s", ifname, r.Gateway)
if err := run("ip", "route", "add", "default", "via", r.Gateway.String(), "dev", ifname, "metric", "50"); err != nil { if err := run("ip", "route", "add", "default", "via", r.Gateway.String(), "dev", ifname, "metric", "50"); err != nil {
log.Printf("warning: static default route: %v", err) log.Printf("warning: static default route: %v", err)
} }
} else {
log.Printf("tap %s: skipping static default route via %s (accept-default-gateway not set)", ifname, r.Gateway)
} }
continue continue
} }
log.Printf("tap %s: adding static route %s via %s", ifname, dest, r.Gateway)
if err := run("ip", "route", "add", dest, "via", r.Gateway.String(), "dev", ifname); err != nil { if err := run("ip", "route", "add", dest, "via", r.Gateway.String(), "dev", ifname); err != nil {
log.Printf("warning: static route %s via %s: %v", dest, r.Gateway, err) log.Printf("warning: static route %s via %s: %v", dest, r.Gateway, err)
} }
@ -52,6 +57,7 @@ func ConfigureTAP(ifname string, lease *dhcp.Lease, acceptDefaultGW, acceptStati
} }
if acceptDefaultGW && lease.Gateway != nil && !hasDefaultRoute(lease.Routes) { if acceptDefaultGW && lease.Gateway != nil && !hasDefaultRoute(lease.Routes) {
log.Printf("tap %s: adding default route via %s", ifname, lease.Gateway)
if err := run("ip", "route", "add", "default", "via", lease.Gateway.String(), "dev", ifname, "metric", "50"); err != nil { if err := run("ip", "route", "add", "default", "via", lease.Gateway.String(), "dev", ifname, "metric", "50"); err != nil {
log.Printf("warning: default route: %v", err) log.Printf("warning: default route: %v", err)
} }
@ -59,11 +65,13 @@ func ConfigureTAP(ifname string, lease *dhcp.Lease, acceptDefaultGW, acceptStati
var savedResolv []byte var savedResolv []byte
if acceptDNS && len(lease.DNS) > 0 { if acceptDNS && len(lease.DNS) > 0 {
log.Printf("tap %s: setting DNS servers %v", ifname, lease.DNS)
savedResolv = backupResolv() savedResolv = backupResolv()
writeResolv(lease.DNS) writeResolv(lease.DNS)
} }
cleanup := func() { cleanup := func() {
log.Printf("tap %s: flushing addresses", ifname)
run("ip", "addr", "flush", "dev", ifname) run("ip", "addr", "flush", "dev", ifname)
if savedResolv != nil { if savedResolv != nil {
restoreResolv(savedResolv) restoreResolv(savedResolv)