# Ajout de routes statiques

## Exemple de configuration Pour une config Netplan

# Configuration des routes réseau

## Netplan (`/etc/netplan/`)

Les routes doivent être définies directement sous les paramètres de l'interface de sortie souhaitée. Il est important de choisir le bon fichier netplan avant d'y placer vos routes.

---

### Configuration avec IP statique

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enp114s0:
      addresses:
        - 192.168.249.8/24
      gateway4: 192.168.249.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      dhcp4: no
      dhcp6: no

```

---

### Configuration avec route statique (IP statique)

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 192.168.1.82/32
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 1.1.1.1

```

---

### Configuration avec route statique (DHCP)

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: yes
      routes:
        - to: 192.168.1.82/32
          via: 192.168.1.1

```

---

### Explication des attributs

- **`to`** : l'adresse IP de destination à atteindre (ex: `192.168.1.82/32` pour une IP précise, ou `192.168.45.0/24` pour un réseau entier).
- **`via`** : la gateway permettant d'atteindre la destination. Dans le cas d'un réseau sans gateway, on indiquera l'adresse IP de l'interface de sortie.

---

### Cas particulier : route sans gateway (`on-link: true`)

Lorsque vous avez **deux interfaces sur le même subnet**, le kernel peut ne pas savoir quelle interface utiliser pour joindre une IP spécifique. Dans ce cas, `on-link: true` combiné à une table de routage dédiée permet de forcer l'interface de sortie.

`on-link: true` indique au kernel que la destination est directement accessible sur le lien réseau, sans gateway intermédiaire. La valeur de `via` sera alors l'IP de destination elle-même.

```yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    enxdceae7dd1709:
      addresses:
        - 192.168.1.244/24
      routes:
        - to: 192.168.1.15/32
          via: 192.168.1.15
          on-link: true
          table: 100
        - to: 192.168.1.22/32
          via: 192.168.1.22
          on-link: true
          table: 100
      routing-policy:
        - to: 192.168.1.15/32
          table: 100
          priority: 50
        - to: 192.168.1.22/32
          table: 100
          priority: 50
      dhcp4: false

```

> **Note :** Plus la valeur de `priority` est basse, plus la règle est prioritaire. Une priorité de `50` sera donc appliquée avant une règle à `100`.

> **Attention :** Cette configuration ne résout pas le cas où l'IP de destination est aussi assignée localement sur une autre interface de la même machine. Dans ce cas, le kernel traitera toujours le paquet en local.

---

## `/etc/network/interfaces`

Ajouter la commande suivante après la configuration réseau dans le fichier `/etc/network/interfaces` :

```
up ip route add <réseau_destination>/<masque> via <gateway_ou_interface>

```

**Exemple :**

```
up ip route add 192.168.45.0/24 via 192.168.6.1

```