|
Comment configurer le réseau de mon serveur avant de l'apporter dans la salle serveur ?
|
|
Comment configurer le réseau de mon serveur avant de l'apporter dans la salle serveur ?
|
|
|
|
|
|
[[_TOC_]]
|
|
[[_TOC_]]
|
|
|
|
|
|
# Principe général
|
|
# Principe général
|
|
|
|
|
|
Pour accéder au réseau, il faut obtenir des adresses IP. Nous avons choisi de paramétrer les adresses IPs de manière statique, donc il faudra se rapprocher de l’équipe Grésille en charge de la salle serveur pour se voir attribuer les adresses IP nécessaires.
|
|
Pour accéder au réseau, il faut obtenir des adresses IP. Nous avons choisi de paramétrer les adresses IPs de manière statique, donc il faudra se rapprocher de l’équipe Grésille en charge de la salle serveur pour se voir attribuer les adresses IP nécessaires.
|
|
|
|
|
|
Par défaut, une adresse IPv4 et un bloc d'IPv6 en /60 sont attribuées.
|
|
Par défaut, une adresse IPv4 et un bloc d'IPv6 en /60 sont attribuées.
|
|
|
|
|
|
La configuration est exactement la même pour une machine physique et une machine virtuelle. Dans tous les cas, cela doit se faire lors d'une permanence.
|
|
La configuration est exactement la même pour une machine physique et une machine virtuelle. Dans tous les cas, cela doit se faire lors d'une permanence.
|
|
|
|
|
|
## Configuration normale
|
|
## Configuration normale
|
|
|
|
|
|
### IPV4
|
|
### IPV4
|
|
|
|
|
|
Configurer votre IPv4 avec un masque en `/32` sur l'interface réseau de votre machine.
|
|
Configurer votre IPv4 avec un masque en `/32` sur l'interface réseau de votre machine.
|
|
|
|
|
|
Utiliser `100.100.100.100` comme gateway et comme résolveur DNS.
|
|
Utiliser `100.100.100.100` comme gateway et comme résolveur DNS.
|
|
|
|
|
|
Ça peut demander de la configuration non-standard selon le système d'exploitation, cf. la suite de cette documentation.
|
|
Ça peut demander de la configuration non-standard selon le système d'exploitation, cf. la suite de cette documentation.
|
|
|
|
|
|
### IPV6
|
|
### IPV6
|
|
|
|
|
|
Le bloc IPv6 se déduit du bloc IPv4 de la manière suivante : si le bloc IPv4 est
|
|
Le bloc IPv6 se déduit du bloc IPv4 de la manière suivante : si le bloc IPv4 est
|
|
193.23.164.XYZ, le bloc IPv6 sera 2a10:a080:110X:YZ00::/64.
|
|
193.23.164.XYZ, le bloc IPv6 sera 2a10:a080:110X:YZ00::/64.
|
|
|
|
|
|
Configurer votre IPv6 avec un masque en `/64` sur l'interface réseau de votre
|
|
Configurer votre IPv6 avec un masque en `/64` sur l'interface réseau de votre
|
|
machine, et utiliser `fe80::100` comme gateway. Il est également possible de
|
|
machine, et utiliser `fe80::100` comme gateway. Il est également possible de
|
|
configurer votre IPv6 avec un masque en `/56` si vous le souhaitez (à usage de
|
|
configurer votre IPv6 avec un masque en `/56` si vous le souhaitez (à usage de
|
|
virtualisation, conteneurisation…).
|
|
virtualisation, conteneurisation…).
|
|
|
|
|
|
## Configuration alternative
|
|
## Configuration alternative
|
|
|
|
|
|
**N'utiliser cette configuration que temporairement, par exemple lors de l'installation d'une Debian où la configuration normale n'est pas supportée**
|
|
**N'utiliser cette configuration que temporairement, par exemple lors de l'installation d'une Debian où la configuration normale n'est pas supportée**
|
|
|
|
|
|
Configurer votre IPv4 avec un masque en `/24`, utiliser `193.23.164.254` comme gateway, et `100.100.100.100` comme résolveur DNS.
|
|
Configurer votre IPv4 avec un masque en `/24`, utiliser `193.23.164.254` comme gateway, et `100.100.100.100` comme résolveur DNS.
|
|
|
|
|
|
Pensez à revenir à la configuration normale dès que possible (par exemple une fois le système installé).
|
|
Pensez à revenir à la configuration normale dès que possible (par exemple une fois le système installé).
|
|
|
|
|
|
# Debian
|
|
# Debian
|
|
|
|
|
|
Attention, la configuration suivante peut ne pas fonctionner avec Yunohost (Debian 11), on a eu des problèmes une fois. La solution que l'on avait trouvé est précisée dans la partie Yunohost un peu plus loin.
|
|
Attention, la configuration suivante peut ne pas fonctionner avec Yunohost (Debian 11), on a eu des problèmes une fois. La solution que l'on avait trouvé est précisée dans la partie Yunohost un peu plus loin.
|
|
|
|
|
|
Dans le fichier `/etc/network/interfaces` :
|
|
Dans le fichier `/etc/network/interfaces` :
|
|
```
|
|
```
|
|
auto [mon_interface]
|
|
auto [mon_interface]
|
|
iface [mon_interface] inet static
|
|
iface [mon_interface] inet static
|
|
address [mon_ipv4]/32
|
|
address [mon_ipv4]/32
|
|
gateway 100.100.100.100
|
|
gateway 100.100.100.100
|
|
|
|
|
|
iface [mon_interface] inet6 static
|
|
iface [mon_interface] inet6 static
|
|
address [mon_bloc_ipv6]::1/64
|
|
address [mon_bloc_ipv6]::1/64
|
|
gateway fe80::100
|
|
gateway fe80::100
|
|
```
|
|
```
|
|
|
|
|
|
Il faut également ensuite ajouter un résolveur de nom de domaine.
|
|
Il faut également ensuite ajouter un résolveur de nom de domaine.
|
|
Dans le fichier `/etc/resolv.conf` changer la ligne contenant le `nameserver` par :
|
|
Dans le fichier `/etc/resolv.conf` changer la ligne contenant le `nameserver` par :
|
|
|
|
|
|
```
|
|
```
|
|
nameserver 100.100.100.100
|
|
nameserver 100.100.100.100
|
|
```
|
|
```
|
|
|
|
|
|
# Yunohost
|
|
# Yunohost
|
|
|
|
|
|
Dans yunohost la configuration réseau peut-être configurée pour être écrite par le service `dhcpd` et cela peut poser des problèmes, il va falloir le configurer.
|
|
Dans yunohost la configuration réseau peut-être configurée pour être écrite par le service `dhcpd` et cela peut poser des problèmes, il va falloir le configurer.
|
|
|
|
|
|
Dans le fichier `/etc/dhcpcd.conf` ajouter les lignes suivantes :
|
|
Dans le fichier `/etc/dhcpcd.conf` ajouter les lignes suivantes :
|
|
```
|
|
```
|
|
interface [mon_interface]
|
|
interface [mon_interface]
|
|
static ip_address=[mon_ipv4]/32
|
|
static ip_address=[mon_ipv4]/32
|
|
static ip6_address=[mon_bloc_ipv6]::1/64
|
|
static ip6_address=[mon_bloc_ipv6]::1/64
|
|
static routers=100.100.100.100
|
|
static routers=100.100.100.100
|
|
static domain_name_servers=100.100.100.100
|
|
static domain_name_servers=100.100.100.100
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
# Ubuntu / netplan
|
|
# Ubuntu / netplan
|
|
|
|
|
|
Créer un fichier dans le répertoire `/etc/netplan/` avec la configuration suivante:
|
|
Créer un fichier dans le répertoire `/etc/netplan/` avec la configuration suivante :
|
|
|
|
|
|
```network:
|
|
```
|
|
version: 2
|
|
network:
|
|
renderer: networkd
|
|
version: 2
|
|
ethernets:
|
|
renderer: networkd
|
|
eno1:
|
|
ethernets:
|
|
addresses:
|
|
eno1:
|
|
- X.X.X.X/32
|
|
addresses:
|
|
# gateway4: 100.100.100.100
|
|
- X.X.X.X/32
|
|
routes:
|
|
# gateway4: 100.100.100.100
|
|
- to: 0.0.0.0/0
|
|
routes:
|
|
via: 100.100.100.100
|
|
- to: 0.0.0.0/0
|
|
on-link: true
|
|
via: 100.100.100.100
|
|
nameservers:
|
|
on-link: true
|
|
search: [lab, home]
|
|
nameservers:
|
|
addresses: [8.8.8.8, "FEDC::1"]
|
|
search: [lab, home]
|
|
```
|
|
addresses: [8.8.8.8, "FEDC::1"]
|
|
|
|
```
|
|
# OpenWrt
|
|
|
|
|
|
Attribuer les droits sur le fichier en lançant `sudo chmod 600 /etc/netplan/fichier-de-config.yaml`.
|
|
Dans `/etc/config/network` :
|
|
|
|
|
|
Vérifier si tout va bien en lançant `sudo netplan apply`.
|
|
```
|
|
|
|
config interface 'wan'
|
|
# OpenWrt
|
|
option ifname 'eth0'
|
|
|
|
option proto 'static'
|
|
Dans `/etc/config/network` :
|
|
option ipaddr 'XXX.XXX.XXX.XXX/32'
|
|
|
|
list dns '100.100.100.100'
|
|
```
|
|
|
|
config interface 'wan'
|
|
config route internet
|
|
option ifname 'eth0'
|
|
option interface 'wan'
|
|
option proto 'static'
|
|
option target '0.0.0.0'
|
|
option ipaddr 'XXX.XXX.XXX.XXX/32'
|
|
option netmask '0.0.0.0'
|
|
list dns '100.100.100.100'
|
|
option gateway '100.100.100.100'
|
|
|
|
option onlink 1
|
|
config route internet
|
|
```
|
|
option interface 'wan'
|
|
|
|
option target '0.0.0.0'
|
|
# Linux
|
|
option netmask '0.0.0.0'
|
|
|
|
option gateway '100.100.100.100'
|
|
Configuration "à l'arrache" qui ne survit pas à un reboot :
|
|
option onlink 1
|
|
|
|
```
|
|
```bash
|
|
|
|
ip addr add XX.XX.XX.XX/32 dev ensYY # adapter l'IP et l'interface
|
|
# Linux
|
|
ip route add default via 100.100.100.100 dev ensYY onlink # adapter l'interface
|
|
|
|
echo "nameserver 100.100.100.100" > /etc/resolv.conf
|
|
Configuration "à l'arrache" qui ne survit pas à un reboot :
|
|
|
|
|
|
ip addr add 2a10:a080:110X:XXXX::1/64 dev ensYY # adapter l'IP et l'interface
|
|
```bash
|
|
ip -6 route add default via fe80::100 dev ensYY # adapter l'interface
|
|
ip addr add XX.XX.XX.XX/32 dev ensYY # adapter l'IP et l'interface
|
|
```
|
|
ip route add default via 100.100.100.100 dev ensYY onlink # adapter l'interface
|
|
|
|
echo "nameserver 100.100.100.100" > /etc/resolv.conf
|
|
Penser à supprimer le paquet `resolvconf` si il empêche de mettre à jour le fichier `/etc/resolv.conf`.
|
|
|
|
|
|
ip addr add 2a10:a080:110X:XXXX::1/64 dev ensYY # adapter l'IP et l'interface
|
|
# Dropbear SSH / initramfs
|
|
ip -6 route add default via fe80::100 dev ensYY # adapter l'interface
|
|
|
|
```
|
|
Pour déchiffrer le disque root à distance, il est commun d'utiliser [Dropbear SSH](https://github.com/mkj/dropbear), un serveur SSH dans l'initramfs. La plupart des tutoriels sur Internet suivent la documentation du [noyau Linux](https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt) mais celle-ci n'est pas très explicite et surtout ne fonctionne pas dans le cas où la passerelle (gateway) est hors du sous-réseau (par exemple `100.100.100.100` pour la salle serveur de Grésille).
|
|
|
|
|
|
Penser à supprimer le paquet `resolvconf` si il empêche de mettre à jour le fichier `/etc/resolv.conf`.
|
|
Dans ce cas il faut :
|
|
|
|
1. si déjà en place/testé, supprimer la configuration pré-existante et lancer `update-initramfs -u`
|
|
# Dropbear SSH / initramfs
|
|
2. créer un script `/etc/initramfs-tools/scripts/init-premount/network` avec comme contenu :
|
|
|
|
```sh
|
|
Pour déchiffrer le disque root à distance, il est commun d'utiliser [Dropbear SSH](https://github.com/mkj/dropbear), un serveur SSH dans l'initramfs. La plupart des tutoriels sur Internet suivent la documentation du [noyau Linux](https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt) mais celle-ci n'est pas très explicite et surtout ne fonctionne pas dans le cas où la passerelle (gateway) est hors du sous-réseau (par exemple `100.100.100.100` pour la salle serveur de Grésille).
|
|
#!/bin/sh
|
|
|
|
|
|
Dans ce cas il faut :
|
|
# Adapt here network interface and ip address.
|
|
1. si déjà en place/testé, supprimer la configuration pré-existante et lancer `update-initramfs -u`
|
|
NET_IFACE=XXXXXX
|
|
2. créer un script `/etc/initramfs-tools/scripts/init-premount/network` avec comme contenu :
|
|
STATIC_IP=193.23.164.XXX/32
|
|
```sh
|
|
STATIC_GW=100.100.100.100
|
|
#!/bin/sh
|
|
|
|
|
|
# The script seems to be run on the host when generating the initramfs,
|
|
# Adapt here network interface and ip address.
|
|
# so we want to avoid messing up with the network there.
|
|
NET_IFACE=XXXXXX
|
|
ip route get 1.2.3.4 2>/dev/null && exit 0
|
|
STATIC_IP=193.23.164.XXX/32
|
|
|
|
STATIC_GW=100.100.100.100
|
|
# Necessary to trick the dropbear script to think that it has already
|
|
|
|
# configured the network.
|
|
# The script seems to be run on the host when generating the initramfs,
|
|
touch /run/net-${NET_IFACE}.conf
|
|
# so we want to avoid messing up with the network there.
|
|
|
|
ip route get 1.2.3.4 2>/dev/null && exit 0
|
|
echo ip link set ${NET_IFACE} up
|
|
|
|
ip link set ${NET_IFACE} up
|
|
# Necessary to trick the dropbear script to think that it has already
|
|
sleep 2
|
|
# configured the network.
|
|
|
|
touch /run/net-${NET_IFACE}.conf
|
|
echo ip addr add ${STATIC_IP} dev ${NET_IFACE}
|
|
|
|
ip addr add ${STATIC_IP} dev ${NET_IFACE}
|
|
echo ip link set ${NET_IFACE} up
|
|
|
|
ip link set ${NET_IFACE} up
|
|
echo ip route add default via ${STATIC_GW} dev ${NET_IFACE} onlink
|
|
sleep 2
|
|
ip route add default via ${STATIC_GW} dev ${NET_IFACE} onlink
|
|
|
|
```
|
|
echo ip addr add ${STATIC_IP} dev ${NET_IFACE}
|
|
3. adapter le nom de l'interface réseau et l'adresse IP statique qui a été attribuée
|
|
ip addr add ${STATIC_IP} dev ${NET_IFACE}
|
|
|
|
|
|
NB : Pour connaître le nom de l'interface réseau utilisée (eth0, eno1, etc.), on peut la récupérer avec la commande `ip -a`
|
|
echo ip route add default via ${STATIC_GW} dev ${NET_IFACE} onlink
|
|
|
|
ip route add default via ${STATIC_GW} dev ${NET_IFACE} onlink
|
|
4. rendre le script exécutable :
|
|
```
|
|
`chmod +x /etc/initramfs-tools/scripts/init-premount/network`
|
|
3. adapter le nom de l'interface réseau et l'adresse IP statique qui a été attribuée
|
|
5. régénérer l'initramfs :
|
|
|
|
`update-initramfs -u`
|
|
NB : Pour connaître le nom de l'interface réseau utilisée (eth0, eno1, etc.), on peut la récupérer avec la commande `ip -a`
|
|
|
|
|
|
# BSD ? |
|
4. rendre le script exécutable :
|
|
|
|
`chmod +x /etc/initramfs-tools/scripts/init-premount/network`
|
|
|
|
5. régénérer l'initramfs :
|
|
|
|
`update-initramfs -u`
|
|
|
|
|
|
|
|
# BSD ? |