82 lines
3.4 KiB
Markdown
82 lines
3.4 KiB
Markdown
# IP
|
|
|
|
## Généralités
|
|
|
|
IP (Internet Protocol) est le protocole principal de communication sur l'internet, actuellement deux versions sont en cours d'utilisation : IPv4 et IPv6.
|
|
|
|
IP permet de transmettre des datagrammes d'un point à un autre.
|
|
|
|
### Adressage
|
|
|
|
Les adresses IP sont alloués avec la méthode du CIDR (Classless Inter-Domain Routing). Cette méthode consiste à noter une adresse au format `adresse/longueur_préfixe`, elle induit une attribution des IP par blocs.
|
|
|
|
Les `n` bits (où `n` est la longueur du préfixe) les plus significatifs servent à identifier le réseau auquel l'adresse appartient.
|
|
|
|
## IPv4
|
|
|
|
Une adresse IPv4 s'écrit sur 32 bits et utilise une notation décimale pointée (4 entiers séparés par des `.`), par exemple `192.168.0.1` est une adresse IPv4.
|
|
|
|
De même `192.168.0.0/24` est un exemple de notation CIDR pour un sous-réseau IPv4.
|
|
|
|
Dans un réseau local les adresses IPv4 peuvent être attribuées par le protocole DHCP ou configurées statiquement.
|
|
|
|
À noter que dans un sous-réseau IPv4 la première et la dernière sont réservées respectivement pour identifier le réseau et effectuer du broadcast.
|
|
|
|
### IPv4 privées
|
|
|
|
Certains blocs d'adresses IPv4 sont réservés à des utilisations privées, celà signifie qu'ils ne sont pas annoncés sur l'internet. Ils sont spécifiés par la [RFC 1918](https://tools.ietf.org/html/rfc1918) et sont les suivants :
|
|
* `10.0.0.0/8`
|
|
* `172.16.0.0/12`
|
|
* `192.168.0.0/16`
|
|
|
|
### IPv4 de lien local
|
|
|
|
Un bloc d'IPv4 est réservé pour utilisation sur le réseau local, c'est à dire que ce bloc n'est normalement jamais routé, il s'agit du bloc `169.254.0.0/16`.
|
|
|
|
### IPv4 multicast
|
|
|
|
un bloc d'IPv4 est réservé pour du multicast, il s'agit du bloc `224.0.0.0/4`.
|
|
|
|
## IPv6
|
|
|
|
Une adresse IPv6 s'écrit sur 128 bits et utilise une notation hexadécimale séparée par des `:` (deux-points), par exemple `2001:0db8:0000:0000:0000:0000:0000:0000` (on regroupe les octets par groupe de 2).
|
|
|
|
Il existe également une notation compacte pour les adresses IPv6 : on peut omettre les 0 en début de bloc et remplacé le plus longue suite de blocs nuls par `::`, par exemple l'adresse précédente peut s'écrire `2001:db8::`.
|
|
|
|
Ainsi `2001:db8::/32` est un exemple de notation CIDR pour un sous-réseau IPv6.
|
|
|
|
Dans un réseau local les adresses IPv6 peuvent être attribuées par le protocole NDP, par le protocole DHCPv6 ou configurées statiquement.
|
|
|
|
La liste des IPv6 attribuées est disponible [ici](https://www.iana.org/assignments/ipv6-address-space/ipv6-address-space.xhtml) et [là](https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml).
|
|
|
|
### IPv6 uniques locales
|
|
|
|
Un bloc d'adresses IPv6 est réservé pour des utilisations privées, c'est l'équivalent des blocs d'IPv4 privées. Il s'agit du bloc `fc00::/7`
|
|
|
|
### IPv6 de lien local
|
|
|
|
Un bloc d'IPv6 est réservé pour utilisation sur le réseau local, il s'agit du bloc `fe80::/10`.
|
|
|
|
### IPv6 multicast
|
|
|
|
Un bloc d'IPv6 est réservé pour du multicast, il s'agit du bloc `ff00::/8`.
|
|
|
|
## ip
|
|
|
|
Sous Linux la commande privilégiée pour consulter l'état de la configuration réseau est `ip` (fournie par la suite `iproute2`) voici quelques exemples de commandes :
|
|
|
|
Afficher l'état des interfaces de la machine (adresses IP attribuées et leur sous-réseau) :
|
|
```bash
|
|
ip address
|
|
```
|
|
|
|
Afficher l'état des routes IPv4 de la machine :
|
|
```bash
|
|
ip route
|
|
```
|
|
|
|
Afficher l'état des routes IPv6 de la machine :
|
|
```bash
|
|
ip -6 route
|
|
```
|