6rdrtr

command module
v0.0.0-...-9aa6ec3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2017 License: MIT Imports: 7 Imported by: 0

README

6rdrtr

Set up 6RD on your router. Run 6rdrtr. Suddenly IPv6.

This utility is meant to be a set-and-forget tool that looks at your interfaces and just Does The Right Thing.

  1. radvd, the de-facto Linux app for stateless configuration of clients
  2. The golang.org/x/net/icmp package
  3. skoef's ndp package, which defines useful ICMPv6 datatypes
  4. skoef's dhcpv6 package
  5. Linux Kernel ip-sysctl.txt

Core Functionality

  • 6rdrtr should require two arguments: your external ipv6 interface (eg 6rd or sit0), and your internal interface (eg eth0 or lan0).
  • It should be able to automatically add an address to your internal interface that is within the prefix of your 6rd interface.
  • It should be able to monitor your external interface for changes, to detect if the IPv6 address has changed, and:
    • deprecate the old route immediately
    • update the address of your internal interface to match
    • immediately begin advertising a new prefix and route

Additional Functionality

  • 6rdrtr should be able to detect if your Linux kernel is configured incorrectly by reading /proc
  • It should also be able to automatically correct some issues given an appropriate argument (ala fsck -p)

Current Non-goals

  • 6rdrtr won't configure IP routing on your router. Your initscripts/systemd will be better equipped to handle dependency graphs and such.
  • It won't configure your 6rd interface for you, though this is not impossible down the road.
  • It won't actually route packets. This is up to your kernel.

Why not radvd?

radvd operates on a straightforward principle: the prefix you configure is the prefix it advertises. It has a couple of hacks for meeting some narrow usecases, like classic 6to4 addressing, but by-and-large it is focused on statically assigned prefixes. It is very awkward and frustrating to try to contort radvd into advertising a prefix that changes every once in a while, such as a 6rd prefix you might receive from your DSL provider.

In addition, while radvd will monitor an interface for changes (well... kind of) it will not actually create a routable address on your internal interface for your internal clients to use. So short of more contorting and flailing, a single utility that handles both (related) tasks seems simpler.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL