<div align="center">
  <p align="center">
    <a href="#">
      <img src="https://cdn.iconscout.com/icon/free/png-512/free-cisco-logo-icon-download-in-svg-png-gif-file-formats--anyconnect-brand-logos-pack-icons-1579764.png?f=webp&w=256" height="100px" />
    </a>
  </p>
</div>
<div style="border: 2px solid #d1d5db; padding: 20px; border-radius: 8px; background-color: #f9fafb;">
  <h1 align="center">Configuration réseau OSPF chez CISCO</h1>
</div>

---
# Table des matières
- [Vérification fonctionnement OSPF](#v%C3%A9rification-fonctionnement-OSPF)
- [Activation d'OSPF sur le Routeur](#activation-ospf-sur-le-routeur)
- [Configurer un ID de Routeur](#configurer-un-id-de-routeur)
- [Configuration OSPF](#configuration-ospf)
- [Configurer des interfaces passives](#configurer-des-interfaces-passives)
- [Configuration du type de réseau](#configuration-du-type-de-r%C3%A9seau)
- [Configuration de la priorité OSPF](#configuration-de-la-priorit%C3%A9-ospf)
- [Configuration des coûts de liaisons](#configuration-des-coûts-de-liaisons)
- [Ajuster la largeur de bande passante de référence](#ajuster-la-largeur-de-bande-passante-de-r%C3%A9f%C3%A9rence)
- [Modifier les intervalles OSPFv2](#modifier-les-intervalles-ospfv2)
- [Propager une route statique via OSPFv2](#propager-une-route-statique-via-ospfv2)
---
# Vérification fonctionnement OSPF
```ios
show ip interface brief
```
```ios
show ip route 
```
```ios
show ip ospf neighbor
```
```ios
show ip protocols
```
```ios
show ip ospf
```
```ios
show ip ospf interface
```
---
#  Activation OSPF sur le Routeur
```ios
conf t
router ospf "id proccessus"
exit
```
>- **l'ID processus** correspond à un pool de gestion ospf. Tous les routeur/interface en ospf 10 interagirons ensemble.
- exemple
    ```ios
    conf t
    router ospf 10
    exit
    ```
---
# Configurer un ID de Routeur
## Configuration explicite
```ios
conf t
router ospf "id proccessus"
router-id "id routeur"
end
```
- exemple
    ```ios
    conf t
    router ospf 10
    router-id 1.1.1.1
    end
    ```
### Modification d'un ID de routeur
- Procéder à une nouvelle configuration de l'ID du routeur et faire un reset des paramètres ospf
```ios
conf t
router ospf "id proccessus"
router-id "id routeur"
end
clear ip ospf process
```
- exemple
    ```ios
    conf t
    router ospf 10
    router-id 1.1.1.1
    end
    clear ip ospf process
    ```
## Configuration via interface de bouclage
```ios
conf t
interface Loopback "id interface loopback"
ip address "id routeur" 255.255.255.255
end
```
- exemple
    ```ios
    conf t
    interface Loopback 1
    router-id 1.1.1.1
    end
    ```
## Configuration via IPv4 active
- Si aucun ID de routeur n'est configurée, l'adresse IPv4 configurée et active la plus élevée sera utilisée automatiquement.
---
# Configuration OSPF
## Via la commande *network*
### A partir de l'adresse réseau à router
```ios
conf t
router ospf "id proccessus"
network "réseau n°1 à router" "wildmask du réseau n°1 à router" area "zone réseau"
network "réseau n°2 à router" "wildmask du réseau n°2 à router" area "zone réseau"
```
>La **zone réseau** correspond à un ensemble de routeur.
- exemple
    ```ios
    conf t
    router ospf "id proccessus"
    network 10.10.1.0 0.0.0.255 area 5
    network 10.1.1.4 0.0.0.3 area 5
    ```
### A partir de l'adresse d'interface
```ios
conf t
router ospf "id proccessus"
network "adresse IP 1ere interface" 0.0.0.0 area "zone réseau"
network "adresse IP 2eme interface" 0.0.0.0 area "zone réseau"
```
- exemple
    ```ios
    conf t
    router ospf "id proccessus"
    network 10.10.1.1 0.0.0.0 area 5
    network 10.1.1.5 0.0.0.0 area 5
    ```
## Via la commande *ip ospf*
```ios
interface GigabitEthernet X/X/X
ip ospf "id proccessus" area "zone réseau"
interface Serial X/X/X
ip ospf "id proccessus" area "zone réseau"
interface Loopback X
ip ospf "id proccessus" area "zone réseau"
```
- exemple
    ```ios
    interface GigabitEthernet 0/0/0
    ip ospf 10 area 5
    interface Serial 0/0/0
    ip ospf 10 area 5
    interface Loopback 1
    ip ospf 10 area 5
    ```
---
# Configurer des interfaces passives
- But:
    - cela va désactiver l'envoie de message "hello" sur les interfaces désactivées. 
- Avantage:
    - évite l'interception des message "hello" par un attaquant sur le réseau
    - soulage le réseau en évitant les messages inutiles.
```ios
conf t
router ospf "id proccessus"
passive-interface "ID interface n°1"
passive-interface "ID interface n°2"
end
```
- exemple
    ```ios
    conf t
    router ospf 10
    passive-interface GigabitEthernet 0/0/0
    passive-interface loopback 0
    end
    ```
---
# Configuration du type de réseau
- types de réseau admis:
    <details>
    <summary>point-to-point</summary>

    - **avantages**:
        - Configuration simple
        - Pas d'élection de routeur désigné (DR) et de routeur de secours (BDR), ce qui réduit la complexité
        - Convergence rapide
    - **inconvénients**:
        - Nécessite une interface dédiée pour chaque liaison, ce qui peut consommer plus de ports
    </details>
    <details>
    <summary>broadcast</summary>
    
    - **avantages**:
        - Nécessite une interface dédiée pour chaque liaison, ce qui peut consommer plus de ports
        - Économie d'adresses IP grâce à l'utilisation d'un segment partagé
    - **inconvénients**:  
        - Élection d'un DR et d'un BDR, ce qui peut ralentir la convergence en cas de changement
        - Sensible aux tempêtes de broadcast si mal configuré 
    </details>
     
```ios
conf t
interface GigabitEthernet X/X/X
ip ospf network "type de réseau"
end
```
- exemple
    ```ios
    conf t
    interface GigabitEthernet X/X/X
    ip ospf network point-to-point
    end
    ```
---
# Configuration de la priorité OSPF
```ios
conf t
interface GigabitEthernet X/X/X
ip ospf priority XXX
clear ip ospf process
end
```
- exemple
    ```ios
    conf t
    interface GigabitEthernet 0/0/0
    ip ospf priority 255
    clear ip ospf process
    end
    ``` 
>- Un priorité de 255 correspond à forcer un DR (priorité la + haute)
>- La bonne pratique pour le BDR consiste à mettre une priorité de 254.
>- Saisir une priorité de 0 empéchera le router de devenir DR ou BDR même en cas de pannes des autres routeurs.
---
# Configuration des coûts de liaisons
```ios
interface "ID interface n°1"
ip ospf cost xx
interface "ID interface n°2"
ip ospf cost XX
end
```
- exemple
    ```ios
    interface GigabitEthernet 0/0/0
    ip ospf cost 30
    interface loopback 0
    ip ospf cost 10
    end
    ```
---
# Ajuster la largeur de bande passante de référence
```ios
router ospf "ID processus"
auto-cost reference-bandwidth "rapport de bande passante"
```
>Commande à propagé sur toutes ls interfaces des routeurs du réseau.
- Suivant le type de connectiques le plus rapide présent sur le réseau:
    <details>
    <summary>10 Gigabits Ethernet 10 Gbps</summary>

    ```ios
    router ospf "ID processus"
    auto-cost reference-bandwidth 10000
    ```
    </details>
    <details>
    <summary>1 Gigabits Ethernet 1 Gbps</summary>

    ```ios
    router ospf "ID processus"
    auto-cost reference-bandwidth 1000
    ```
    </details>
    <details>
    <summary>Fast Ethernet 100 Mbps</summary>

    ```ios
    router ospf "ID processus"
    auto-cost reference-bandwidth 100
    ```
    </details>   
    <details>
    <summary>Ethernet 10 Mbps</summary>

    ```ios
    router ospf "ID processus"
    auto-cost reference-bandwidth 10
    ```
    </details> 
--- 
# Modifier les intervalles OSPFv2
## Personnalisation des intervalles
```ios
interface "ID interface n°1"
ip ospf hello-interval "intervalle en seconde"
ip ospf dead-interval "intervalle en seconde"
```
>**hello-interval:** intervalle entre l'envoie de massage Hello. Par défaut: 10 secondes
>**dead-interval:** période pendant laquelle le routeur attend de recevoir un paquet Hello avant de déclarer le voisin en panne. Par défaut: 40 secondes
## Réinitialisation des intervalles
```ios
interface "ID interface n°1"
no ip ospf hello-interval
no ip ospf dead-interval
```
---
# Propager une route statique via OSPFv2
## 1. définition de la route statique
```ios
ip route "réseau à router" "netmasque du réseau" "interface où doit être routé lle trafic"
```
- exemple
```ios
ip route 0.0.0.0 0.0.0.0 Serial0/1/0
```
## 2. propagation de la route
```ios
router ospf "ID processus"
default-information originate
end
```
- exemple
    ```ios
    router ospf 10
    default-information originate
    end
    ```