Notes perso (in mixed French) sur les proble`mes e'pineux
d'adressage et de routages en IPv6.

Ordre:
    Les adresses se classent dans l'ordre (meilleure a la plus mauvaise) :
	valid global(s)
	deprecated global(s)
	valid site-local
	deprecated site-local
	link-local
	IPv4-compatible(s?)

    L'ioctl SIOCFIFADDR6 a e'te' ajoute' pour mettre en te^te une
    adresse, SIOCAIFADDR6 (ifconfig alias) les ajoutant en queue.
    Bug sur les adresses multicast a` corriger.

Boot time:
    interface principale
	L'interface LAN ou une des interfaces LAN s'il y en a plusieurs
	(multihomed) est conside're'e comme l'interface principale
    LAN
	Toutes les interfaces LAN (UP,MULTICAST,BROADCAST et
	adresse LL a` 6 octets) doivent avoir une adresse link-local
	(fe80::<MAC>/80).
    link-local interface
	S'il y a plusieurs interfaces LAN alors les adresses
	link-local deviennent ambigu"es. Il faut commencer
	par mettre l'adresse link-local principale sur ll0
	et utiliser l'option "-i" de ndp(8) quand il faut
	de'signer une interface LAN.
    SIT0
	La premie`re interface SIT (sit0) doit avoir comme
	adresse IPv4 celle de l'interface principale, comme
	adresse IPv6 l'adresse IPv4-compatible correspondante
	(::<IPv4>/96) et comme route magique la route directe
	"cloning" vers le pre'fixe IPv4-compatible (::/96).
    SIT*
	D'autres interfaces SIT peuvent e^tre utilise'es dans
	le cas d'une machine a` l'intersection de plusieurs
	nuages IPv4. En the'orie on pourrait associer a` chaque
	route indirecte IPv4 la route vers le pre'fixe
	IPv4-compatible (::<subnet-IPv4>/96+<subnet-length>).
    local IPv4-compatible
	Toutes les adresses IPv4-compatibles locales doivent
	e^tre configure'es sur l'interface LAN correspondante
	(::<local-IPv4>/96+<subnet-length>).
    LOOPBACK
	L'interface loopback lo0 doit e^tre configure'e avec
	les adresses host ::1 et ::127.0.0.1
    MULTICAST
	Le multicast local (ff01::/16 et ff11::/16) doit e^tre
	route' par l'interface locale et le multicast link-local
	(ff02::/16 et ff12::/16) par l'interface principale
	(indispensable pour que le Neighbor Discovery puisse
	envoyer du multicast).
    Local short paths
	Il est possible d'ajouter une route host directe via
	l'adresse loopback (::1) pour toutes les adresses locales
	mais les resolutions LAN et SIT le font toutes seules.
    site-local
	Chaque interface LAN peut e^tre configure'e avec une
	adresse site-local. S'il y en a au moins une, il faut
	mettre au de'marrage une route site-local directe
	par de'faut (pre'fixe fec0::/10) sur l'interface
	principale en suivant le principe que tout est
	on-link avant la de'couverte du premier routeur.
    default
	Sur le principe que tout est on-link avant la de'couverte
	du premier routeur il faut mettre une route par de'faut
	directe sur l'interface principale avec comme ifa
	la meilleure adresse possible.
    addrconf6
	Addrconf6 est sense' faire le boulot dans les cas ordinaires.

Hack du fe80:: (link-local router anycast address)
    rationate
	Les adresses "designated" des routeurs sont des adresses
	link-local donc le hack ne complique pas vraiment les choses!
    principe
	Le routeur par de'faut est fe80:: .
	Le router discovery patche l'adresse MAC et l'interface associe'es.
	Le prefix discovery patche l'ifa pour obtenir une addresse
	source par de'faut la meilleure possible (pas link-local :-).

Routes directes pour une interface LAN
    Seulement trois cas sont corrects pour une route directe
    via une interface LAN
	Route pour une destination ou un prefixe multicast
	(pas de resolution d'IPv6 vers une adresse link-layer)
	Route cloning pour un prefixe "on-link"
	(se clone dans le genre suivant)
	Route pour un host avec une adresse gateway link-layer

Source address selection
    L'adresse source est choisie d'apre`s la route vers la destination
    (si la destination n'est pas local c'est l'adresse de rt_ifa).

    Quand on ajoute une route rt_ifa est choisie suivant le couple
    destination/gateway, par contre RTM_CHANGE permet de pre'ciser
    l'interface (son index) et l'adresse d'interface (ifa).

Outils de debug
    ifconfig -a
	flags
	premie`res adresses avec netmask/prefixlen et broadcast/destination
    route -d monitor (interface dump)
	index
	flags
	adresse link
	adresses avec netmask (unspec) et broadcast/destination
    netstat -ian (interface)
	index
	adresse link
	multicasts link
	adresses avec network
	multicasts

    route -v
	destination
	gateway
	netmask
	interface (adresse link)
	flags
	me'triques (mtu, expire, ...)
	adresse d'interface (ifa)
    netstat -rn (route)
	destination (netmask (unspec) par "netstat -rnA")
	gateway (adresse ou index)
	flags
	reference count/use count
	mtu
	interface
    ndp6
	destination (host on-link)
	interface (index)
	gateway (adresse link)
