\documentclass[a4paper,french,12pt]{article}

\title{Réseaux Locaux\\TP2~: STP et RSTP}
\author{Tunui Franken}
\date{Dernière compilation~: \today{} à \currenttime}

\usepackage{styles}
\usepackage{enumitem}
\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}

\maketitle
\clearpage
\tableofcontents

\clearpage

\section{Présentation}

    \subsection{Topologie}

        \begin{center}
        \includegraphics[width=\linewidth]{./img/topologie.png}
        \end{center}

    \subsection{Plan d'adressage}

        \begin{tabularx}{\linewidth}{XXXX}
            \toprule
            \textbf{Périphérique} & \textbf{Interface} & \textbf{Adresse IP} & \textbf{Masque de sous-réseau} \\
            \toprule
            S1 & VLAN 99 & 192.168.1.11 & 255.255.255.0 \\
            \midrule
            S2 & VLAN 99 & 192.168.1.12 & 255.255.255.0 \\
            \midrule
            S3 & VLAN 99 & 192.168.1.13 & 255.255.255.0 \\
            \midrule
            PC1 & eth0 & 192.168.0.2 & 255.255.255.0 \\
            \midrule
            PC2 & eth0 & 192.168.0.3 & 255.255.255.0 \\
            \bottomrule
        \end{tabularx}

    \subsection{Affectation des VLANs}

        \begin{center}
        \begin{tabularx}{0.5\linewidth}{XX}
            \toprule
            \textbf{VLAN} & \textbf{Nom} \\
            \toprule
            10 & Utilisateur \\
            \midrule
            99 & Administration \\
            \bottomrule
        \end{tabularx}
        \end{center}

\section{Paramétrage de base}

    Configuration des hôtes PC selon l'adressage.
    Configuration de base pour chaque commutateur~:

    \begin{itemize}

        \item Désactivez la recherche DNS~:

            \begin{console}[gobble=16]
                Switch(config)# no ip domain-lookup
            \end{console}

        \item Configurez le nom du périphérique conformément à la topologie~:

            \begin{console}[gobble=16]
                Switch(config)# hostname S1
            \end{console}

        \item Attribuez \texttt{testtest} en tant que mots de passe de \texttt{console} et \texttt{vty}, puis activez la connexion~:

            \begin{console}[gobble=16]
                S1(config)# line console 0
                S1(config-line)# password testtest
                S1(config-line)# login local
                S1(config-line)# line vty 0 15
                S1(config-line)# password testtest
                S1(config-line)# login local
            \end{console}

        \item Attribuez \texttt{testtest} comme mot de passe chiffré du mode d'exécution privilégié~:

            \begin{console}[gobble=16]
                S1(config)# enable secret testtest
            \end{console}

        \item Désactivez tous les ports du commutateur~:

            \begin{console}[gobble=16]
                S1(config)# interface range f0/1-24
                S1(config-if-range)# shutdown
                S1(config-if-range)# interface range g0/1-2
                S1(config-if-range)# shutdown
            \end{console}

        \item Copiez la configuration en cours en tant que configuration de démarrage~:

            \begin{console}[gobble=16]
                S1# copy running-config startup-config
            \end{console}

    \end{itemize}

\section{Configuration des VLANs, du VLAN natif et des trunks}

    \subsection{Création des VLANs}

        \begin{console}[gobble=12]
            S1(config)# vlan 10
            S1(config-vlan)# name User
            S1(config-vlan)# vlan 99
            S1(config-vlan)# name Management
            S1(config-vlan)# end
        \end{console}

    \subsection{Activation des ports utilisateur en mode access et attrbution des VLANs}
        \begin{console}[gobble=12]
            S1(config)# int f0/1
            S1(config-if)# switchport mode acces
            S1(config-if)# switchport acces vlan 10
            S1(config-if)# no shutdown

            S3(config)# int f0/3
            S3(config-if)# switchport mode acces
            S3(config-if)# switchport acces vlan 10
            S3(config-if)# no shutdown
        \end{console}

    \subsection{Configuration des ports trunk et attrbution au VLAN 99 natif}

        \begin{console}[gobble=12]
            S1(config)# int range f0/2-3
            S1(config-if-range)# switchport mode trunk
            S1(config-if-range)# switchport trunk native vlan 99
            S1(config-if-range)# no shutdown

            S2(config)# int range f0/1-2
            S2(config-if-range)# switchport mode trunk
            S2(config-if-range)# switchport trunk native vlan 99
            S2(config-if-range)# no shutdown

            S3(config)# int range f0/1-2
            S3(config-if-range)# switchport mode trunk
            S3(config-if-range)# switchport trunk native vlan 99
            S3(config-if-range)# no shutdown
        \end{console}

    \subsection{Vérification des configurations et de la connectivité}

        \begin{itemize}

            \item Vérification des enregistrements de VLAN dans la table VLAN et de l'attrbution des ports~:

                \begin{console}[gobble=20]
                    S1# show vlan brief
                    VLAN Name                             Status    Ports
                    ---- -------------------------------- --------- -------------------------------
                    1    default                          active    Fa0/4, Fa0/5, Fa0/6, Fa0/7
                                                                    Fa0/8, Fa0/9, Fa0/10, Fa0/11
                                                                    Fa0/12, Fa0/13, Fa0/14, Fa0/15
                                                                    Fa0/16, Fa0/17, Fa0/18, Fa0/19
                                                                    Fa0/20, Fa0/21, Fa0/22, Fa0/23
                                                                    Fa0/24, Gig0/1, Gig0/2
                    10   User                             active    Fa0/1
                    99   Management                       active
                \end{console}

            \item Vérification de l'ensemble des configurations

                \begin{console}[gobble=20]
                    S1# show running-config
                \end{console}

            \item Quel est le paramètre par défaut du mode STP sur les commutateurs Cisco~?
                \begin{console}[gobble=20]
                    S1# show running-config | include spanning-tree mode
                    spanning-tree mode pvst
                \end{console}

            \item Vérifiez la connectivité entre PC1 et PC2.
                Votre requête ping a-t-elle abouti~?

                Oui.

        \end{itemize}

\section{Configuration du commutateur \texttt{root} et observation de la convergence de PVST+}

    \subsection{Identification du commutateur \texttt{root} actuel}

        Quelle commande permet à un utilisateur de déterminer l'état du protocole STP d'un commutateur Cisco pour tous les VLANs~?

        \begin{console}[gobble=12]
            S1# show spanning-tree summary
        \end{console}

        Quelle est la priorité de pont de chaque commutateur pour le VLAN 1~?

        \begin{console}[gobble=12]
            S1# show spanning-tree vlan 1
            Bridge ID  Priority    32769

            S2# show spanning-tree vlan 1
            Bridge ID  Priority    32769

            S3# show spanning-tree vlan 1
            Bridge ID  Priority    32769
        \end{console}

        Quel commutateur est le commutateur \texttt{root}~?

        \begin{console}[gobble=12]
            S1# show spanning-tree summary
            Root bridge for: default User Management
        \end{console}

        Pourquoi a-t-il été sélectionné comme commutateur root~?

        Son addresse MAC est la plus faible des trois commutateurs.

    \subsection{Configuration du commutateur \texttt{root principal} et du commutateur \texttt{root secondaire} pour tous les VLANs existants}

        \begin{enumerate}[label=\alph*.]

            \item Configurez le commutateur S2 en tant que commutateur \texttt{root principal} de tous les VLANs existants.

                \begin{console}[gobble=20]
                    S2(config)# spanning-tree vlan 1 root primary
                    S2(config)# spanning-tree vlan 10 root primary
                    S2(config)# spanning-tree vlan 99 root primary
                \end{console}

            \item Configurez le commutateur S1 en tant que commutateur \texttt{root secondaire} de tous les VLANs existants.

                \begin{console}[gobble=20]
                    S1(config)# spanning-tree vlan 1 root secondary
                    S1(config)# spanning-tree vlan 10 root secondary
                    S1(config)# spanning-tree vlan 99 root secondary
                \end{console}

        \end{enumerate}

        Quelle est la priorité de pont de S1 pour le VLAN 1~?

        \begin{console}[gobble=12]
            S1# show spanning-tree vlan 1
              Bridge ID  Priority    28673
        \end{console}

        Quelle est la priorité de pont de S2 pour le VLAN 1~?

        \begin{console}[gobble=12]
            S2# show spanning-tree vlan 1
              Bridge ID  Priority    24577
        \end{console}

        Dans le réseau, quelle interface est en état de blocage~?

        Il s'agit de l'interface \texttt{fa0/1} du commutateur S3~:

        \begin{console}[gobble=12]
            S3# show spanning-tree interface f0/1
            Vlan             Role Sts Cost      Prio.Nbr Type
            ---------------- ---- --- --------- -------- --------------------------------
            VLAN0001         Altn BLK 19        128.1     P2p
            VLAN0010         Altn BLK 19        128.1     P2p
            VLAN0099         Altn BLK 19        128.1     P2p
        \end{console}

    \subsection{Modification de la topologie de couche 2 et observation de la convergence}

        La commande \texttt{debug} n'étant pas disponible sous Packet Tracer, cette question est mise de côté.

\section{Configuration du RSTP+, PortFast et de BPDU Guard et examen de la convergence}

    \subsection{Configuration du protocole Rapid PVST+}

        \begin{enumerate}[label=\alph*.]

            \item Configurez S1 pour le protocole Rapid PVST+

                \begin{console}[gobble=20]
                    S1(config)# spanning-tree mode rapid-pvst
                \end{console}

            \item Configurez S2 et S3 pour le protocole Rapid PVST+

                \begin{console}[gobble=20]
                    S2(config)# spanning-tree mode rapid-pvst
                    S3(config)# spanning-tree mode rapid-pvst
                \end{console}

            \item Vérifiez les configurations

                \begin{console}[gobble=20]
                    S1# show running-config | include spanning-tree mode
                    spanning-tree mode rapid-pvst
                \end{console}

        \end{enumerate}

    \subsection{Configuration de PortFast et de la protection BPDU sur les ports access}

        \begin{enumerate}[label=\alph*.]

            \item Configurez l'interface f0/1 sur S1 avec PortFast

                \begin{console}[gobble=20]
                    S1(config)# interface f0/1
                    S1(config-if)# spanning-tree portfast
                \end{console}

            \item Configurez l'interface f0/1 sur S1 avec la protection BPDU

                \begin{console}[gobble=20]
                    S1(config)# interface f0/1
                    S1(config-if)# spanning-tree bpduguard enable
                \end{console}

            \item Configurez globalement tous les ports non trunk sur le commutateur S3 avec PortFast

                \begin{console}[gobble=20]
                    S3(config)# interface f0/3
                    S3(config-if)# spanning-tree portfast
                \end{console}

            \item Configurez globalement tous les ports PortFast non trunk sur le commutateur S3 avec la protection BPDU
                \begin{console}[gobble=20]
                    S3(config)# interface f0/3
                    S3(config-if)# spanning-tree bpduguard enable
                \end{console}

        \end{enumerate}

    \subsection{Observation de la convergence du protocole Rapid PVST+}

        \begin{enumerate}[label=\alph*.]

            \item Quel est le principal avantage de l'utilisation du protocole Rapid PVST+~?

                Le protocole Rapid PVST+ permet une convergence plus rapide lors d'un changement de la topologie.
                Ceci permet donc à un port Alternate de passer directement à l'état Forwarding sans attendre.

            \item En quoi la configuration d'un port avec PortFast permet-elle une convergence plus rapide~?

                Le mode PortFast permet à un port de passer directement de l'état Alternate à l'état Forwarding sans passer par les états Listening et Learning, et ainsi devoir attendre 15 secondes à chaque état.
                Ceci causerait par exemple des problêmes de DHCP, privant des hôtes d'adresse IP\@.

            \item Quel type de protection offre la protection BPDU~?

                Le mode PortFast est à configurer sur un port access, connecté à un hôte, et non pas à un autre commutateur.
                Un port en état PortFast ne devrait donc jamais recevoir de BPDU\@.
                Si c'est le cas, cela peut vouloir dire que la topologie est mal configurée, ou bien pire, qu'un acteur malveillant essaie de se faire passer pour un commutateur et tente d'influencer la topologie en envoyant des BPDU (par exemple pour devenir Root Bridge et écouter le trafic). \\
                Le BPDU Guard permet de désactiver un port qui est en mode PortFast et recevant un BPDU\@.

        \end{enumerate}

\end{document}
