Modification commandes pour route par défaut
This commit is contained in:
parent
9abc2f4439
commit
f9645a2c92
520
HowtoIPv6.md
520
HowtoIPv6.md
|
@ -1,260 +1,260 @@
|
||||||
# IPv6
|
# IPv6
|
||||||
|
|
||||||
Globalement, cela fonctionne comme IPv4. Quelques différences :
|
Globalement, cela fonctionne comme IPv4. Quelques différences :
|
||||||
|
|
||||||
* ndp (l'équivalent d'arp) utilise du multicast (vs du broadcast) pour
|
* ndp (l'équivalent d'arp) utilise du multicast (vs du broadcast) pour
|
||||||
la résolution des adresses mac/IPv6
|
la résolution des adresses mac/IPv6
|
||||||
* Les IP à utiliser dans la documentation sont 2001:DB8::/32
|
* Les IP à utiliser dans la documentation sont 2001:DB8::/32
|
||||||
* Il y a 2^128 IP. Pour calculer le nombre d'IP dans un bloc
|
* Il y a 2^128 IP. Pour calculer le nombre d'IP dans un bloc
|
||||||
2^(128-taille-du-préfixe)
|
2^(128-taille-du-préfixe)
|
||||||
* Il n'y a pas d'adresse de réseau ni de broadcast
|
* Il n'y a pas d'adresse de réseau ni de broadcast
|
||||||
|
|
||||||
Les tailles de bloc de bloc généralement :
|
Les tailles de bloc de bloc généralement :
|
||||||
|
|
||||||
* /32 : ce qui est alloué par le [RIR](https://fr.wikipedia.org/wiki/Registre_Internet_r%C3%A9gional)
|
* /32 : ce qui est alloué par le [RIR](https://fr.wikipedia.org/wiki/Registre_Internet_r%C3%A9gional)
|
||||||
* /48 : ce qui est parfois délégué aux 'end users'
|
* /48 : ce qui est parfois délégué aux 'end users'
|
||||||
* /56 : ce qui est parfois délégué aux 'end users'
|
* /56 : ce qui est parfois délégué aux 'end users'
|
||||||
* /64 : taille minimale du bloc pour avoir de l'autoconfiguration
|
* /64 : taille minimale du bloc pour avoir de l'autoconfiguration
|
||||||
|
|
||||||
XXX: parler des link local etc
|
XXX: parler des link local etc
|
||||||
|
|
||||||
## ROUTEUR : Autoconfiguration ou DHCPv6 sous OpenBSD
|
## ROUTEUR : Autoconfiguration ou DHCPv6 sous OpenBSD
|
||||||
|
|
||||||
### Mettre en place rtadvd
|
### Mettre en place rtadvd
|
||||||
|
|
||||||
Rtadvd permet d'annoncer que le routeur gère et donc route de
|
Rtadvd permet d'annoncer que le routeur gère et donc route de
|
||||||
l'IPv6. Ainsi les clients peuvent _s'auto-configurer_ en utilisant une
|
l'IPv6. Ainsi les clients peuvent _s'auto-configurer_ en utilisant une
|
||||||
adresse IPv6 composée avec le préfixe de l'adresse IPv6 du routeur
|
adresse IPv6 composée avec le préfixe de l'adresse IPv6 du routeur
|
||||||
(qui est en fait l'adresse du réseau), et de l'adresse MAC de la
|
(qui est en fait l'adresse du réseau), et de l'adresse MAC de la
|
||||||
machine.
|
machine.
|
||||||
|
|
||||||
Exemple :
|
Exemple :
|
||||||
* Le préfixe est 2001:db8:33d8:4::/64 ;
|
* Le préfixe est 2001:db8:33d8:4::/64 ;
|
||||||
* L'adresse MAC d'une machine est 00:1e:c9:47:3e:44 ;
|
* L'adresse MAC d'une machine est 00:1e:c9:47:3e:44 ;
|
||||||
* Son adresse IPv6 devient 2001:db8:33d8:4:21e:c9ff:fe47:3e44/64.
|
* Son adresse IPv6 devient 2001:db8:33d8:4:21e:c9ff:fe47:3e44/64.
|
||||||
|
|
||||||
|
|
||||||
### Configuration de rtadvd
|
### Configuration de rtadvd
|
||||||
|
|
||||||
Il faut indiquer sur quelle interface faire l'annonce, suivi du
|
Il faut indiquer sur quelle interface faire l'annonce, suivi du
|
||||||
préfixe, et de la longueur de celui-ci. Enfin `raflags#64` indique que
|
préfixe, et de la longueur de celui-ci. Enfin `raflags#64` indique que
|
||||||
les clients choisissent leurs adresses IPv6 (auto-configuration) et
|
les clients choisissent leurs adresses IPv6 (auto-configuration) et
|
||||||
peuvent récupérer d'autres informations, tel que le serveur DNS, via
|
peuvent récupérer d'autres informations, tel que le serveur DNS, via
|
||||||
DHCPv6. Pour le _MTU_, voir la partie [#IPv6etPPPoE IPv6 et PPPoE]
|
DHCPv6. Pour le _MTU_, voir la partie [#IPv6etPPPoE IPv6 et PPPoE]
|
||||||
|
|
||||||
sis0:\
|
sis0:\
|
||||||
:addr="2001:db8:33d8:4::":prefixlen#64:raflags#64:\
|
:addr="2001:db8:33d8:4::":prefixlen#64:raflags#64:\
|
||||||
:mtu#1492
|
:mtu#1492
|
||||||
|
|
||||||
|
|
||||||
### WIDE-DHCPv6
|
### WIDE-DHCPv6
|
||||||
|
|
||||||
Description du protocole DHCPv6 à faire...
|
Description du protocole DHCPv6 à faire...
|
||||||
|
|
||||||
_WIDE-DHCPv6_ est un serveur DHCPv6 développé par [KAME](http://www.kame.net/).
|
_WIDE-DHCPv6_ est un serveur DHCPv6 développé par [KAME](http://www.kame.net/).
|
||||||
Pour l'installer utiliser _pkg_add_.
|
Pour l'installer utiliser _pkg_add_.
|
||||||
|
|
||||||
Pour diffuser un serveur DNS en IPv6, modifier le fichier
|
Pour diffuser un serveur DNS en IPv6, modifier le fichier
|
||||||
/etc/dhcp6s.conf en indiquant l'adresse IPv6 du serveur DNS :
|
/etc/dhcp6s.conf en indiquant l'adresse IPv6 du serveur DNS :
|
||||||
|
|
||||||
|
|
||||||
option domain-name-servers 2001:7a8:33d8:14:11:11ff:fecc:cf54;
|
option domain-name-servers 2001:7a8:33d8:14:11:11ff:fecc:cf54;
|
||||||
|
|
||||||
|
|
||||||
## Client wide-dhcpv6-client
|
## Client wide-dhcpv6-client
|
||||||
|
|
||||||
C'est un client qui permet d'interroger un serveur DHPCv6, pour
|
C'est un client qui permet d'interroger un serveur DHPCv6, pour
|
||||||
l'installer sous Debian :
|
l'installer sous Debian :
|
||||||
|
|
||||||
|
|
||||||
# apt install wide-dhcpv6-client
|
# apt install wide-dhcpv6-client
|
||||||
|
|
||||||
|
|
||||||
Ensuite il faut configurer lors de l'installation ou dans le fichier
|
Ensuite il faut configurer lors de l'installation ou dans le fichier
|
||||||
`/etc/default/wide-dhcpv6-client` l'interface sur laquelle écouter.
|
`/etc/default/wide-dhcpv6-client` l'interface sur laquelle écouter.
|
||||||
|
|
||||||
## IPv6 et PPPoE
|
## IPv6 et PPPoE
|
||||||
|
|
||||||
Lorsqu'on utilise PPPoE il est nécessaire de diffuser un _MTU_ de 1492
|
Lorsqu'on utilise PPPoE il est nécessaire de diffuser un _MTU_ de 1492
|
||||||
dans la configuration de rtadvd, sinon les paquets ne traverseront par
|
dans la configuration de rtadvd, sinon les paquets ne traverseront par
|
||||||
le lien en PPPoE.
|
le lien en PPPoE.
|
||||||
|
|
||||||
Voici un exemple de trame diffusé lorsque le routeur annonce qu'il gère l'IPv6.
|
Voici un exemple de trame diffusé lorsque le routeur annonce qu'il gère l'IPv6.
|
||||||
|
|
||||||
|
|
||||||
No. Time Source Destination Protocol Info
|
No. Time Source Destination Protocol Info
|
||||||
2076 214.592925 fe80::200:24ff:fec9:6b68 ff02::1 ICMPv6 Router advertisement
|
2076 214.592925 fe80::200:24ff:fec9:6b68 ff02::1 ICMPv6 Router advertisement
|
||||||
|
|
||||||
Frame 2076 (118 bytes on wire, 118 bytes captured)
|
Frame 2076 (118 bytes on wire, 118 bytes captured)
|
||||||
Ethernet II, Src: Olicom_c9:6b:68 (00:00:24:c9:6b:68), Dst: IPv6mcast_00:00:00:01 (33:33:00:00:00:01)
|
Ethernet II, Src: Olicom_c9:6b:68 (00:00:24:c9:6b:68), Dst: IPv6mcast_00:00:00:01 (33:33:00:00:00:01)
|
||||||
Internet Protocol Version 6
|
Internet Protocol Version 6
|
||||||
0110... = Version: 6
|
0110... = Version: 6
|
||||||
... 0000 0000............... = Traffic class: 0x00000000
|
... 0000 0000............... = Traffic class: 0x00000000
|
||||||
......... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000
|
......... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000
|
||||||
Payload length: 64
|
Payload length: 64
|
||||||
Next header: ICMPv6 (0x3a)
|
Next header: ICMPv6 (0x3a)
|
||||||
Hop limit: 255
|
Hop limit: 255
|
||||||
Source: fe80::200:24ff:fec9:6b68 (fe80::200:24ff:fec9:6b68)
|
Source: fe80::200:24ff:fec9:6b68 (fe80::200:24ff:fec9:6b68)
|
||||||
Destination: ff02::1 (ff02::1)
|
Destination: ff02::1 (ff02::1)
|
||||||
Internet Control Message Protocol v6
|
Internet Control Message Protocol v6
|
||||||
Type: 134 (Router advertisement)
|
Type: 134 (Router advertisement)
|
||||||
Code: 0
|
Code: 0
|
||||||
Checksum: 0xa084 [correct]
|
Checksum: 0xa084 [correct]
|
||||||
Cur hop limit: 64
|
Cur hop limit: 64
|
||||||
Flags: 0x40
|
Flags: 0x40
|
||||||
0...... = Not managed
|
0...... = Not managed
|
||||||
.1..... = Other
|
.1..... = Other
|
||||||
..0.... = Not Home Agent
|
..0.... = Not Home Agent
|
||||||
...0 0... = Router preference: Medium
|
...0 0... = Router preference: Medium
|
||||||
Router lifetime: 1800
|
Router lifetime: 1800
|
||||||
Reachable time: 0
|
Reachable time: 0
|
||||||
Retrans timer: 0
|
Retrans timer: 0
|
||||||
ICMPv6 Option (Source link-layer address)
|
ICMPv6 Option (Source link-layer address)
|
||||||
Type: Source link-layer address (1)
|
Type: Source link-layer address (1)
|
||||||
Length: 8
|
Length: 8
|
||||||
Link-layer address: 00:00:24:c9:6b:68
|
Link-layer address: 00:00:24:c9:6b:68
|
||||||
ICMPv6 Option (MTU)
|
ICMPv6 Option (MTU)
|
||||||
Type: MTU (5)
|
Type: MTU (5)
|
||||||
Length: 8
|
Length: 8
|
||||||
MTU: 1492
|
MTU: 1492
|
||||||
ICMPv6 Option (Prefix information)
|
ICMPv6 Option (Prefix information)
|
||||||
Type: Prefix information (3)
|
Type: Prefix information (3)
|
||||||
Length: 32
|
Length: 32
|
||||||
Prefix length: 64
|
Prefix length: 64
|
||||||
Flags: 0xc0
|
Flags: 0xc0
|
||||||
1...... = Onlink
|
1...... = Onlink
|
||||||
.1..... = Auto
|
.1..... = Auto
|
||||||
..0.... = Not router address
|
..0.... = Not router address
|
||||||
...0... = Not site prefix
|
...0... = Not site prefix
|
||||||
Valid lifetime: 2592000
|
Valid lifetime: 2592000
|
||||||
Preferred lifetime: 604800
|
Preferred lifetime: 604800
|
||||||
Prefix: 2001:7a8:33d8:4::
|
Prefix: 2001:7a8:33d8:4::
|
||||||
|
|
||||||
|
|
||||||
## Configuration cliente sous OpenBSD
|
## Configuration cliente sous OpenBSD
|
||||||
|
|
||||||
### Autoconfiguration
|
### Autoconfiguration
|
||||||
|
|
||||||
Cela va rajouter une adresse link local en ipv6 (en fe80::/10),
|
Cela va rajouter une adresse link local en ipv6 (en fe80::/10),
|
||||||
puis il va obtenir deux adresses IP, une liée à l'adresse mac (par
|
puis il va obtenir deux adresses IP, une liée à l'adresse mac (par
|
||||||
exemple avec la mac c8:5b:76:90:5b:35 on obtient
|
exemple avec la mac c8:5b:76:90:5b:35 on obtient
|
||||||
2001:db8:37:129:ca5b:76ff:fe90:5b35) et une autre adresse avec un flag
|
2001:db8:37:129:ca5b:76ff:fe90:5b35) et une autre adresse avec un flag
|
||||||
« autoconfprivacy » qui n'aura aucun lien avec l'adresse mac. C'est
|
« autoconfprivacy » qui n'aura aucun lien avec l'adresse mac. C'est
|
||||||
cette dernière qui sera utilisée.
|
cette dernière qui sera utilisée.
|
||||||
|
|
||||||
#### Configuration en dur
|
#### Configuration en dur
|
||||||
|
|
||||||
Dans le fichier /etc/hostname.interface correspondant à votre
|
Dans le fichier /etc/hostname.interface correspondant à votre
|
||||||
interface, il suffit de rajouter le mot clé *rtsol* :
|
interface, il suffit de rajouter le mot clé *rtsol* :
|
||||||
|
|
||||||
|
|
||||||
dhcp
|
dhcp
|
||||||
rtsol
|
rtsol
|
||||||
|
|
||||||
#### Configuration (temporaire) en ligne de commande
|
#### Configuration (temporaire) en ligne de commande
|
||||||
|
|
||||||
doas ifconfig em0 inet6 autoconf
|
doas ifconfig em0 inet6 autoconf
|
||||||
|
|
||||||
### Configuration en IP fixe
|
### Configuration en IP fixe
|
||||||
|
|
||||||
#### Configuration en dur
|
#### Configuration en dur
|
||||||
|
|
||||||
Éditer le fichier /etc/hostname.interface correspondant à votre
|
Éditer le fichier /etc/hostname.interface correspondant à votre
|
||||||
interface et indiquez l'adresse IPv6 après le mot-clé *inet6* suivie
|
interface et indiquez l'adresse IPv6 après le mot-clé *inet6* suivie
|
||||||
du préfixe, ici 64. Ce qui donne par exemple :
|
du préfixe, ici 64. Ce qui donne par exemple :
|
||||||
|
|
||||||
|
|
||||||
inet <IPv4> <masque-IPv4>
|
inet <IPv4> <masque-IPv4>
|
||||||
inet6 2001:db8:6666:333:123:45ff:fe1d:3456 64
|
inet6 2001:db8:6666:333:123:45ff:fe1d:3456 64
|
||||||
|
|
||||||
|
|
||||||
Pour la passerelle il faut éditer le fichier /etc/mygate et ajouter
|
Pour la passerelle il faut éditer le fichier /etc/mygate et ajouter
|
||||||
une ou plusieurs passerelles (IPv4 et IPv6) :
|
une ou plusieurs passerelles (IPv4 et IPv6) :
|
||||||
|
|
||||||
192.0.2.1
|
192.0.2.1
|
||||||
2001:db8:42::1
|
2001:db8:42::1
|
||||||
|
|
||||||
#### Configuration (temporaire) en ligne de commande
|
#### Configuration (temporaire) en ligne de commande
|
||||||
|
|
||||||
# ifconfig sis0 inet6 2001:db8:42::42/64
|
# ifconfig sis0 inet6 2001:db8:42::42/64
|
||||||
# route add -inet6 default 2001:db8:42::1
|
# route add -inet6 default 2001:db8:42::1
|
||||||
|
|
||||||
|
|
||||||
### Préférer l'IPv6 ou l'IPv4
|
### Préférer l'IPv6 ou l'IPv4
|
||||||
|
|
||||||
Pour préférer l'IPv6, dans `/etc/resolv.conf` il faut mettre (à la
|
Pour préférer l'IPv6, dans `/etc/resolv.conf` il faut mettre (à la
|
||||||
fin) :
|
fin) :
|
||||||
|
|
||||||
family inet6 inet4
|
family inet6 inet4
|
||||||
|
|
||||||
Sinon, l'IPv4 est préférée par défaut.
|
Sinon, l'IPv4 est préférée par défaut.
|
||||||
|
|
||||||
## Configuration cliente sous Debian
|
## Configuration cliente sous Debian
|
||||||
|
|
||||||
### Configuration en dur
|
### Configuration en dur
|
||||||
|
|
||||||
Editer le fichier */etc/network/interfaces* :
|
Editer le fichier */etc/network/interfaces* :
|
||||||
|
|
||||||
|
|
||||||
auto lo
|
auto lo
|
||||||
iface lo inet loopback
|
iface lo inet loopback
|
||||||
|
|
||||||
auto eth0
|
auto eth0
|
||||||
iface eth0 inet static
|
iface eth0 inet static
|
||||||
address <IPv4>
|
address <IPv4>
|
||||||
netmask <masque-IPv4>
|
netmask <masque-IPv4>
|
||||||
gateway <gateway-IPv4>
|
gateway <gateway-IPv4>
|
||||||
|
|
||||||
iface eth0 inet6 static
|
iface eth0 inet6 static
|
||||||
address 2001:db8:42::42
|
address 2001:db8:42::42
|
||||||
netmask 64
|
netmask 64
|
||||||
up ip route add 2000::0/3 via 2001:db8:42::1
|
gateway 2001:db8:42::1
|
||||||
|
|
||||||
|
|
||||||
### Configuration (temporaire) en ligne de commande
|
### Configuration (temporaire) en ligne de commande
|
||||||
|
|
||||||
|
|
||||||
# ifconfig eth0 add 2001:db8:42::42/64
|
# ifconfig eth0 add 2001:db8:42::42/64
|
||||||
# ip route add 2000::0/3 via 2001:db8:42::1
|
# ip route add default via 2001:db8:42::1
|
||||||
|
|
||||||
|
|
||||||
_Note : La commande route est fourni via le paquet `iproute`_
|
_Note : La commande route est fourni via le paquet `iproute`_
|
||||||
|
|
||||||
### Préféfer l'IPv4 à l'IPv6 lors de la résolution DNS
|
### Préféfer l'IPv4 à l'IPv6 lors de la résolution DNS
|
||||||
|
|
||||||
Mettre ceci dans /etc/gai.conf
|
Mettre ceci dans /etc/gai.conf
|
||||||
|
|
||||||
|
|
||||||
precedence ::ffff:0:0/96 100
|
precedence ::ffff:0:0/96 100
|
||||||
|
|
||||||
## Afficher/manipuler la table d'entrée IPv6 - adresse mac
|
## Afficher/manipuler la table d'entrée IPv6 - adresse mac
|
||||||
|
|
||||||
### OpenBSD
|
### OpenBSD
|
||||||
|
|
||||||
Il y a ndp(8). Pour afficher la table :
|
Il y a ndp(8). Pour afficher la table :
|
||||||
|
|
||||||
ndp -s
|
ndp -s
|
||||||
|
|
||||||
### Debian
|
### Debian
|
||||||
|
|
||||||
Il y a la commande ip. Pour afficher la table :
|
Il y a la commande ip. Pour afficher la table :
|
||||||
|
|
||||||
ip -6 n
|
ip -6 n
|
||||||
|
|
||||||
## Avertissements
|
## Avertissements
|
||||||
|
|
||||||
### Debian, kvm et les bridges
|
### Debian, kvm et les bridges
|
||||||
|
|
||||||
Il se peut que le bridge sur l'hyperviseur ne laisse pas passer le
|
Il se peut que le bridge sur l'hyperviseur ne laisse pas passer le
|
||||||
multicast utilisé par le NDP. Il faut activer le *snooping multicast*.
|
multicast utilisé par le NDP. Il faut activer le *snooping multicast*.
|
||||||
|
|
||||||
En CLI :
|
En CLI :
|
||||||
|
|
||||||
echo 0 > /sys/class/net/br0/bridge/multicast_snooping
|
echo 0 > /sys/class/net/br0/bridge/multicast_snooping
|
||||||
|
|
||||||
Dans /etc/network/interfaces :
|
Dans /etc/network/interfaces :
|
||||||
|
|
||||||
auto br0
|
auto br0
|
||||||
iface br0 inet manual
|
iface br0 inet manual
|
||||||
bridge_ports eth0
|
bridge_ports eth0
|
||||||
up echo 0 > /sys/class/net/br0/bridge/multicast_snooping
|
up echo 0 > /sys/class/net/br0/bridge/multicast_snooping
|
||||||
|
|
Loading…
Reference in a new issue