tailscale / tailscale/tailscale-rs

netmon: track whether ipv6 addresses are deprecated

Open
#417 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
1.2k
Forks
61
Avg merge
2d 13h
Merged PRs (30d)
22

Description

On my home network, I have IPv6 configured to use SLAAC, and I sometimes end up with devices with many addresses in the deprecated state. I'm guessing this is due to privacy extensions causing the address to rotate periodically. We still advertise these addresses in callmemaybe and send disco pings to them, and they're reported up to control. I think they probably shouldn't be; the intent of the deprecated status is that the address is only still around for existing connections but shouldn't be used for new ones. The tradeoff is obviously that these addresses then wouldn't be available as possible connectivity candidates, but it's probably worth eating that marginal cost for more sensible behavior. Todo here is to see what if anything the go codebase does about this.

Anyway, regardless of what we do in the runtime about it, the first thing to do is just to track the flag in netmon.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the netmon implementation and its IPv6 address tracking, then inspect the Go codebase for how deprecated addresses are represented. Track the deprecated flag in the Rust netmon state; leave callmemaybe, disco pings, and control behavior for follow-up work.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.