22
0
Fork 0

Modification commandes pour route par défaut

This commit is contained in:
jdubois 2021-06-23 17:50:35 +02:00
parent 9abc2f4439
commit f9645a2c92
1 changed files with 260 additions and 260 deletions

View File

@ -1,260 +1,260 @@
# IPv6
Globalement, cela fonctionne comme IPv4. Quelques différences :
* ndp (l'équivalent d'arp) utilise du multicast (vs du broadcast) pour
la résolution des adresses mac/IPv6
* 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
2^(128-taille-du-préfixe)
* Il n'y a pas d'adresse de réseau ni de broadcast
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)
* /48 : 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
XXX: parler des link local etc
## ROUTEUR : Autoconfiguration ou DHCPv6 sous OpenBSD
### Mettre en place rtadvd
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
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
machine.
Exemple :
* Le préfixe est 2001:db8:33d8:4::/64 ;
* 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.
### Configuration de rtadvd
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
les clients choisissent leurs adresses IPv6 (auto-configuration) et
peuvent récupérer d'autres informations, tel que le serveur DNS, via
DHCPv6. Pour le _MTU_, voir la partie [#IPv6etPPPoE IPv6 et PPPoE]
sis0:\
:addr="2001:db8:33d8:4::":prefixlen#64:raflags#64:\
:mtu#1492
### WIDE-DHCPv6
Description du protocole DHCPv6 à faire...
_WIDE-DHCPv6_ est un serveur DHCPv6 développé par [KAME](http://www.kame.net/).
Pour l'installer utiliser _pkg_add_.
Pour diffuser un serveur DNS en IPv6, modifier le fichier
/etc/dhcp6s.conf en indiquant l'adresse IPv6 du serveur DNS :
option domain-name-servers 2001:7a8:33d8:14:11:11ff:fecc:cf54;
## Client wide-dhcpv6-client
C'est un client qui permet d'interroger un serveur DHPCv6, pour
l'installer sous Debian :
# apt install wide-dhcpv6-client
Ensuite il faut configurer lors de l'installation ou dans le fichier
`/etc/default/wide-dhcpv6-client` l'interface sur laquelle écouter.
## IPv6 et PPPoE
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
le lien en PPPoE.
Voici un exemple de trame diffusé lorsque le routeur annonce qu'il gère l'IPv6.
No. Time Source Destination Protocol Info
2076 214.592925 fe80::200:24ff:fec9:6b68 ff02::1 ICMPv6 Router advertisement
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)
Internet Protocol Version 6
0110... = Version: 6
... 0000 0000............... = Traffic class: 0x00000000
......... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000
Payload length: 64
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source: fe80::200:24ff:fec9:6b68 (fe80::200:24ff:fec9:6b68)
Destination: ff02::1 (ff02::1)
Internet Control Message Protocol v6
Type: 134 (Router advertisement)
Code: 0
Checksum: 0xa084 [correct]
Cur hop limit: 64
Flags: 0x40
0...... = Not managed
.1..... = Other
..0.... = Not Home Agent
...0 0... = Router preference: Medium
Router lifetime: 1800
Reachable time: 0
Retrans timer: 0
ICMPv6 Option (Source link-layer address)
Type: Source link-layer address (1)
Length: 8
Link-layer address: 00:00:24:c9:6b:68
ICMPv6 Option (MTU)
Type: MTU (5)
Length: 8
MTU: 1492
ICMPv6 Option (Prefix information)
Type: Prefix information (3)
Length: 32
Prefix length: 64
Flags: 0xc0
1...... = Onlink
.1..... = Auto
..0.... = Not router address
...0... = Not site prefix
Valid lifetime: 2592000
Preferred lifetime: 604800
Prefix: 2001:7a8:33d8:4::
## Configuration cliente sous OpenBSD
### Autoconfiguration
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
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
« autoconfprivacy » qui n'aura aucun lien avec l'adresse mac. C'est
cette dernière qui sera utilisée.
#### Configuration en dur
Dans le fichier /etc/hostname.interface correspondant à votre
interface, il suffit de rajouter le mot clé *rtsol* :
dhcp
rtsol
#### Configuration (temporaire) en ligne de commande
doas ifconfig em0 inet6 autoconf
### Configuration en IP fixe
#### Configuration en dur
Éditer le fichier /etc/hostname.interface correspondant à votre
interface et indiquez l'adresse IPv6 après le mot-clé *inet6* suivie
du préfixe, ici 64. Ce qui donne par exemple :
inet <IPv4> <masque-IPv4>
inet6 2001:db8:6666:333:123:45ff:fe1d:3456 64
Pour la passerelle il faut éditer le fichier /etc/mygate et ajouter
une ou plusieurs passerelles (IPv4 et IPv6) :
192.0.2.1
2001:db8:42::1
#### Configuration (temporaire) en ligne de commande
# ifconfig sis0 inet6 2001:db8:42::42/64
# route add -inet6 default 2001:db8:42::1
### Préférer l'IPv6 ou l'IPv4
Pour préférer l'IPv6, dans `/etc/resolv.conf` il faut mettre (à la
fin) :
family inet6 inet4
Sinon, l'IPv4 est préférée par défaut.
## Configuration cliente sous Debian
### Configuration en dur
Editer le fichier */etc/network/interfaces* :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address <IPv4>
netmask <masque-IPv4>
gateway <gateway-IPv4>
iface eth0 inet6 static
address 2001:db8:42::42
netmask 64
up ip route add 2000::0/3 via 2001:db8:42::1
### Configuration (temporaire) en ligne de commande
# ifconfig eth0 add 2001:db8:42::42/64
# ip route add 2000::0/3 via 2001:db8:42::1
_Note : La commande route est fourni via le paquet `iproute`_
### Préféfer l'IPv4 à l'IPv6 lors de la résolution DNS
Mettre ceci dans /etc/gai.conf
precedence ::ffff:0:0/96 100
## Afficher/manipuler la table d'entrée IPv6 - adresse mac
### OpenBSD
Il y a ndp(8). Pour afficher la table :
ndp -s
### Debian
Il y a la commande ip. Pour afficher la table :
ip -6 n
## Avertissements
### Debian, kvm et les bridges
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*.
En CLI :
echo 0 > /sys/class/net/br0/bridge/multicast_snooping
Dans /etc/network/interfaces :
auto br0
iface br0 inet manual
bridge_ports eth0
up echo 0 > /sys/class/net/br0/bridge/multicast_snooping
# IPv6
Globalement, cela fonctionne comme IPv4. Quelques différences :
* ndp (l'équivalent d'arp) utilise du multicast (vs du broadcast) pour
la résolution des adresses mac/IPv6
* 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
2^(128-taille-du-préfixe)
* Il n'y a pas d'adresse de réseau ni de broadcast
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)
* /48 : 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
XXX: parler des link local etc
## ROUTEUR : Autoconfiguration ou DHCPv6 sous OpenBSD
### Mettre en place rtadvd
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
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
machine.
Exemple :
* Le préfixe est 2001:db8:33d8:4::/64 ;
* 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.
### Configuration de rtadvd
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
les clients choisissent leurs adresses IPv6 (auto-configuration) et
peuvent récupérer d'autres informations, tel que le serveur DNS, via
DHCPv6. Pour le _MTU_, voir la partie [#IPv6etPPPoE IPv6 et PPPoE]
sis0:\
:addr="2001:db8:33d8:4::":prefixlen#64:raflags#64:\
:mtu#1492
### WIDE-DHCPv6
Description du protocole DHCPv6 à faire...
_WIDE-DHCPv6_ est un serveur DHCPv6 développé par [KAME](http://www.kame.net/).
Pour l'installer utiliser _pkg_add_.
Pour diffuser un serveur DNS en IPv6, modifier le fichier
/etc/dhcp6s.conf en indiquant l'adresse IPv6 du serveur DNS :
option domain-name-servers 2001:7a8:33d8:14:11:11ff:fecc:cf54;
## Client wide-dhcpv6-client
C'est un client qui permet d'interroger un serveur DHPCv6, pour
l'installer sous Debian :
# apt install wide-dhcpv6-client
Ensuite il faut configurer lors de l'installation ou dans le fichier
`/etc/default/wide-dhcpv6-client` l'interface sur laquelle écouter.
## IPv6 et PPPoE
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
le lien en PPPoE.
Voici un exemple de trame diffusé lorsque le routeur annonce qu'il gère l'IPv6.
No. Time Source Destination Protocol Info
2076 214.592925 fe80::200:24ff:fec9:6b68 ff02::1 ICMPv6 Router advertisement
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)
Internet Protocol Version 6
0110... = Version: 6
... 0000 0000............... = Traffic class: 0x00000000
......... 0000 0000 0000 0000 0000 = Flowlabel: 0x00000000
Payload length: 64
Next header: ICMPv6 (0x3a)
Hop limit: 255
Source: fe80::200:24ff:fec9:6b68 (fe80::200:24ff:fec9:6b68)
Destination: ff02::1 (ff02::1)
Internet Control Message Protocol v6
Type: 134 (Router advertisement)
Code: 0
Checksum: 0xa084 [correct]
Cur hop limit: 64
Flags: 0x40
0...... = Not managed
.1..... = Other
..0.... = Not Home Agent
...0 0... = Router preference: Medium
Router lifetime: 1800
Reachable time: 0
Retrans timer: 0
ICMPv6 Option (Source link-layer address)
Type: Source link-layer address (1)
Length: 8
Link-layer address: 00:00:24:c9:6b:68
ICMPv6 Option (MTU)
Type: MTU (5)
Length: 8
MTU: 1492
ICMPv6 Option (Prefix information)
Type: Prefix information (3)
Length: 32
Prefix length: 64
Flags: 0xc0
1...... = Onlink
.1..... = Auto
..0.... = Not router address
...0... = Not site prefix
Valid lifetime: 2592000
Preferred lifetime: 604800
Prefix: 2001:7a8:33d8:4::
## Configuration cliente sous OpenBSD
### Autoconfiguration
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
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
« autoconfprivacy » qui n'aura aucun lien avec l'adresse mac. C'est
cette dernière qui sera utilisée.
#### Configuration en dur
Dans le fichier /etc/hostname.interface correspondant à votre
interface, il suffit de rajouter le mot clé *rtsol* :
dhcp
rtsol
#### Configuration (temporaire) en ligne de commande
doas ifconfig em0 inet6 autoconf
### Configuration en IP fixe
#### Configuration en dur
Éditer le fichier /etc/hostname.interface correspondant à votre
interface et indiquez l'adresse IPv6 après le mot-clé *inet6* suivie
du préfixe, ici 64. Ce qui donne par exemple :
inet <IPv4> <masque-IPv4>
inet6 2001:db8:6666:333:123:45ff:fe1d:3456 64
Pour la passerelle il faut éditer le fichier /etc/mygate et ajouter
une ou plusieurs passerelles (IPv4 et IPv6) :
192.0.2.1
2001:db8:42::1
#### Configuration (temporaire) en ligne de commande
# ifconfig sis0 inet6 2001:db8:42::42/64
# route add -inet6 default 2001:db8:42::1
### Préférer l'IPv6 ou l'IPv4
Pour préférer l'IPv6, dans `/etc/resolv.conf` il faut mettre (à la
fin) :
family inet6 inet4
Sinon, l'IPv4 est préférée par défaut.
## Configuration cliente sous Debian
### Configuration en dur
Editer le fichier */etc/network/interfaces* :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address <IPv4>
netmask <masque-IPv4>
gateway <gateway-IPv4>
iface eth0 inet6 static
address 2001:db8:42::42
netmask 64
gateway 2001:db8:42::1
### Configuration (temporaire) en ligne de commande
# ifconfig eth0 add 2001:db8:42::42/64
# ip route add default via 2001:db8:42::1
_Note : La commande route est fourni via le paquet `iproute`_
### Préféfer l'IPv4 à l'IPv6 lors de la résolution DNS
Mettre ceci dans /etc/gai.conf
precedence ::ffff:0:0/96 100
## Afficher/manipuler la table d'entrée IPv6 - adresse mac
### OpenBSD
Il y a ndp(8). Pour afficher la table :
ndp -s
### Debian
Il y a la commande ip. Pour afficher la table :
ip -6 n
## Avertissements
### Debian, kvm et les bridges
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*.
En CLI :
echo 0 > /sys/class/net/br0/bridge/multicast_snooping
Dans /etc/network/interfaces :
auto br0
iface br0 inet manual
bridge_ports eth0
up echo 0 > /sys/class/net/br0/bridge/multicast_snooping