Introduction à TCP IP et aux routeurs IOS
Introduction à TCP IP et aux routeurs IOS
...
1.2 Modèle TCP/IP
(1)Liaisons physiques
1.2.1 TCP / UDP
TCP et UDP sont les deux protocoles principaux dans la couche de transport. TCP et UDP utilisent IP comme couche réseau. TCP procure une couche de transport fiable, même si le service qu’il (IP) utilise ne l’est pas. TCP est orienté connexion, c’est-à-dire qu’il réalise une communication complète entre 2 points. Cela permet d’effectuer une commu¬nication client/serveur, par exemple, sans se préoccuper du chemin emprunté.
UDP émet et reçoit des datagrammes6. Cependant, contrairement à TCP, UDP n’est pas fiable et n’est pas orienté connexion. Il est utilisé pour les résolutions DNS et aussi pour TFTP.
1.2.2 IP
IP est le protocole principal de la couche réseau. Il est utilisé à la fois par TCP et UDP. Chaque bloc de données TCP,UDP, ICMP et IGMP qui circule est encapsulé dans de l’IP. IP est non fiable et n’est pas orienté connexion (contrairement à SNA par exemple).
Par non fiable, nous voulons dire qu’il n’existe aucune garantie pour que le datagramme IP arrive à la destination. Si, par exemple, un datagramme IP arrive à un routeur saturé, le routeur efface le paquet et envoie un message ICMP “unreachable” à la source. La fiabilité d’une connexion doit être maintenue par TCP.
“Pas orienté connexion”, signifie que IP ne maintient aucune information d’état concer¬nant les datagrammes successifs. Le trajet des datagrammes pour atteindre B à partir de A, n’est peut être pas le même. Les datagrammes peuvent également arriver dans le désordre par exemple. L’avantage majeur de cette technique du moindre effort, c’est la grande tolé¬rance, notamment, vis-à-vis des pannes de l’infrastructure.
Masque de sous-réseau Outre l’adresse IP, une machine doit aussi connaître le nombre de bits attribués à l’identification du sous-réseau et à l’identificateur de machine. Ces infor¬mations sont fournies par le masque de sous-réseau (netmask). Ce masque est un masque de 32 bits (pour IPv4) contenant soit des bits à 1 pour l’identification du réseau et des bits à 0 pour l’identification de machines.
Dans la première implémentation d’IP, un militaire ( ? ! ?) décida de couper en plusieurs classes :
Classe A
8 bits de réseau
Classe B
16 bits de réseau
Classe C
24 bits de réseau
Mais ce fut une très mauvaise idée, car beaucoup de réseaux étaient trop grands pour entrer dans la classe C mais trop petits pour la classe B. Donc il y eut, au début, un gas-pillage important d’adresses IP et les tables de routage devenaient de plus en plus grandes. La solution est de pouvoir attribuer exactement le nombre de bits désirés.
Maintenant, il est possible de choisir le masque réseau que l’on désire pour configurer une infrastructure réseau. Mais pourquoi s’inquiéter des classes? parceque lorqu’un subnet n’est pas défini, il teste sur la classe.
Espace d’adressage IP privé Une entreprise qui décide d’utiliser des adresses IP ne doit pas les prendre au hasard. Il existe des classes définies par l’IANA pour l’adressage :
– 10.0.0.0 à 10.255.255.255 - 1 réseau de classe A
– 172.16.0.0 à 172.31.255.255 - 16 réseaux de classe B
– 192.168.0.0 à 192.178.255.255 - 256 réseaux de classe C
1.2.3 ICMP
ICMP est souvent considéré comme faisant partie de la couche IP. ICMP communique des messages (erreurs, modification, information). La commande “ping”, qui permet de voir si une machine répond, utilise ICMP (echo).
PING localhost.localdomain (127.0.0.1) from 127.0.0.1 : 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1) : icmp_seq=0 ttl=255 time=0.1 ms 64 bytes from localhost.localdomain (127.0.0.1) : icmp_seq=1 ttl=255 time=0.1 ms 64 bytes from localhost.localdomain (127.0.0.1) : icmp_seq=2 ttl=255 time=0.1 ms 64 bytes from localhost.localdomain (127.0.0.1) : icmp_seq=3 ttl=255 time=0.1 ms 64 bytes from localhost.localdomain (127.0.0.1) : icmp_seq=4 ttl=255 time=0.1 ms
--- localhost.localdomain ping statistics --¬
5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.1 ms
Une fonctionnalité intéressante de ICMP est le “redirect”. Il est courant de n’avoir qu’un default gateway sur une workstation mais celle-ci doit atteindre plusieurs réseaux sans pas¬ser par le même gateway. La solution est de créer toutes les routes statiques sur le default gateway. Lorsque la workstation veut atteindre une destination passant par un autre gate¬way, le default gateway émet un ICMP redirect. Ce n’est pas le seul cas d’utilisation, il sert aussi lors de changement de la topologie (ligne down, ...).
1.3 Routage IP 1.3.1 Concept
En théorie, le routage IP est simple, particulièrement dans le cas d’une workstation. Si une machine de destination est directement connectée à une autre machine (par exemple : une liaison PPP) ou sur un réseau partagé (par exemple : Ethernet), alors le datagramme IP est envoyé sans intermédiaire à cette destination. Par contre, le routage est plus complexe sur un routeur ou sur un machine avec plusieurs interfaces.
Le routage IP est effectué sur le base de “saut à saut” (hop to hop routing). Les étapes du routage IP peuvent être découpées de cette manière :
- Recherche, dans une table de routage, de l’entrée associée à l’adresse IP de destina¬tion. S’il trouve une correspondance entre la table de routage et l’adresse de destina¬tion, le datagramme IP est envoyé au routeur de “saut suivant”(next-hop router). Ce cas de figure est utilisé pour les liaisons point à point.
- Recherche, dans la table de routage, de l’entrée correspondant exactement à l’inden¬tificateur du réseau de destination. Si cette adresse est localisée, envoi du paquet au routeur de saut suivant indiqué ou à l’interface directement connecté (par exemple : si l’interface existe sur le routeur). C’est ici aussi que l’on tient compte des masques de sous-réseau.
- Recherche, dans la table de routage, de l’entrée par défaut. Envoi du paquet au rou¬teur “de saut suivant” si cette entrée est configurée.
Si le déroulement de ces 3 phases est correct, alors le datagramme IP est délivré au prochain routeur ou host. Par contre, si cela n’est pas le cas, un message ICMP (host unreachable ou network unreachable) est envoyé au host d’origine et le datagramme IP est jeté.
Voici une sortie de la table de routage d’un routeur CISCO :
lab-bt#sh ip route
Codes : C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate
default
U - per-user static route, o - ODR
Gateway of last resort is 0.0.0.0 to network 0.0.0.0
C 128.253.0.0/16 is directly connected, Ethernet0
10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
S 10.130.10.3/32 is directly connected, BRI0
S 10.130.10.0/32 [1/0] via 10.130.10.3
C 10.132.0.0/16 is directly connected, Loopback0
S* 0.0.0.0/0 is directly connected, BRI0
lab-bt#
1.3.2 Routage dynamique
Lorsqu’un réseau atteint une taille assez importante, il est très lourd de devoir ajouter les entrées dans les tables de routage à la main. La solution est le routage dynamique. Cela permet de mettre à jour les entrées dans les différentes tables de routage de façon dynamique.
RIPv1(Routing Information Protocol) C’est le protocole (distance vector protocol) le plus vieux mais qui est toujours implanté sur beaucoup de sites. C’est un protocole de type IGP (Interior Gateway Protocol) qui utilise une algorithme permettant de trouver le chemin le plus court. Il supporte un maximum de 15 noeuds traversés (il n’est pas adapté au réseau de grande taille). Il fonctionne par envoi de messages toutes les 30 secondes. Les messages RIP permettent de dresser une table de routage.
RIPv2 (Routing Information Protocol) C’est une version améloriée pour ajouter le sup-port des sous-réseaux (subnets), des liaisons multipoints et de l’authentification.
EIGRP Ce protocole (Hybrid link-state & distance vector protocol) de routage a été developpé par Cisco pour améliorer RIP et le rendre plus stable. Il fonctionne très bien mais il est bien sûr uniquement compatible avec les produits Cisco.
OSPF(Open Shortest Path First) C’est la deuxième génération de protocole de routage (Link-state protocol). Il est beaucoup plus complexe que RIP mais ses performances et sa stabilité sont supérieures. Le protocole OSPF utilise une base de données distribuées, qui garde en mémoire l’état des liaisons. Ces informations forment une description de la topologie du réseau et de l’état de l’infrastructure. Le protocole RIP est adapté pour des réseaux de taille raisonnable par contre OSPF est de meilleure facture pour les réseaux de taille importante (par exemple ISP).
BGP (Border Gateway Protocol) BGP est utilisé sur Internet pour le routage entre, par exemple, les différents systèmes autonomes OSPF. Ce protocole a été créé pour des besoins propres à Internet suite à la grande taille du réseau lui-même.
IDRP (Interdomain Routing Protocol - IPv6)
1.4 Services UDP
1.4.1 DNS
DNS permet d’utiliser des noms symboliques pour accéder aux hôtes. DNS est uti¬lisé dans la majorité des cas lors de l’utilisation d’un protocole TCP. Il est même utilisé indirectement pour des vérifications d’hôtes distants.
DNS utilise une méthode requête/réponse et s’appuie sur le protocole de transport UDP. Il a été choisi car il est rapide et efficace. DNS utilise un système de nommage hiérarchique à structure arborescente.
1.5 Services TCP
1.5.1 SMTP
SMTP fournit un mécanisme d’échanges et de transports pour le courrier électronique entre 2 hosts. Le protocole utilisé est très simple et existe depuis de nombreuses années. Il a évolué pour suivre les évolutions du courrier électronique.
...
1.5.2 POP3
2 Router CISCO 2.1 Hardware
2.1.1 Structure
Unité centrale (CPU) L’unité centrale, ou le microprocesseur, est responsable de l’exé-cution du système d’exploitation (chez Cisco, c’est IOS) du routeur. Le système d’exploita¬tion prend aussi bien en charge les protocoles que l’interface de commande via une session telnet. La puissance du microprocesseur est directement liée à la puissance de traitement du routeur .
Mémoire Flash La flash représente une sorte de ROM effaçable et programmable. Sur beaucoup de routeurs, la flash est utilisé pour maintenir une image d’un ou plusieurs sys-tèmes d’exploitation. Il est tout à fait possible de maintenir plusieurs images sur la même flash (suivant la taille de la flash). La mémoire flash est pratique car elle permet une mise à jour de la mémoire sans changer des “chips”. La flash peut se présenter sous forme de barette mais aussi sous forme de carte.
ROM La ROM contient le code pour réaliser les diagnostics de démarrage (POST : Po¬wer On Self Test). En plus, la ROM permet le démarrage et le chargement du système d’exploitation contenu sur la flash. On change rarement la ROM. Si on la change, on doit souvent enlever des “chips” et les remplacer.
RAM La RAM est utilisé par le système d’exploitation pour maintenir les informations durant le fonctionnement. Elle peut contenir les tampons (buffer), les tables de routage, la table ARP, la configuration mémoire et un nombre important d’autres choses. Et comme c’est de la RAM, lors de la coupure de l’alimentation, elle est effacée.
NVRAM (RAM non volatile) Le problème de la RAM est la non-conservation des don-nées après la coupure de l’alimentation. La NVRAM solutionne le problème, puisque les données sont conservées même après la coupure de l’alimentation. L’utilisation de la NVRAM permet de ne pas avoir de mémoire de masse (Disques Durs, Floppy). Cela évite donc les pannes dues à une partie mécanique. La configuration est maintenue dans la NVRAM.
Portes I/O La structure même d’un routeur est l’ouverture donc l’interfaçage vers le monde extérieur est important. Il existe un nombre impressionant d’interfaces possibles pour un routeur (Liaison série asynchrone, synchrone, ethernet, tokenring, ATM, Sonet, FO, ...). La vitesse du bus qui interconnecte les I/O avec les différents composants du routeur marque aussi la puissance de traitement du routeur.
2.1.2 Processus de démarrage
2.2 Software (IOS)
2.2.1 Porte console
La configuration de base d’un routeur Cisco (et des autres aussi) se fait en général via la porte console. La porte console, sur un routeur, est configurée comme une interface DTE (Data Terminal Equipment). Mais la porte RS232 d’un PC est aussi une interface
DTE7, c’est pour cela que vous ne pouvez connecter un cable série directement sur la porte console. La solution est d’utiliser un cable croisé (entre le fil 2 & 3) avec les différents fils de signaux. Le cable de console est souvent fourni en standard avec les routeurs Cisco.
La connexion s’effectue, en standard, à 9600bauds avec 8 bits de data, 1 bit stop et pas de parité. Vous pouvez utiliser votre émulateur de terminal favori8.
2.2.2 Interpreteur de commande (CLI exec)
L’interpreteur de commande, comme son nom l’indique, est responsable de l’interpré-tation des commandes que vous tapez. La commande interprétée, si elle est correcte, réalise l’opération demandée.
Reply to request 4 from 128.253.154.110, 4 ms Reply to request 4 from 128.253.154.204, 1 ms lab-bt#sh arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 128.253.154.204 0 0080.c723.989f ARPA Ethernet0
Internet 128.253.154.110 0 0040.951a.24c4 ARPA Ethernet0
Internet 128.253.154.116 - 0010.7bc2.07cf ARPA Ethernet0
Internet 128.253.154.2 0 0000.4d21.8405 ARPA Ethernet0
Internet 128.253.154.9 0 0040.055a.9476 ARPA Ethernet0
lab-bt#
Si lors de la configuration initiale un (ou des) password a été configuré, vous devez intro-duire ce password pour accéder à l’interpreteur de commande. Il y a 2 modes d’execution sur un routeur Cisco :
- Le mode utilisateur (prompt : >)
- Le mode privilégié (prompt: #)
Lors de la connexion initiale avec le routeur, vous arrivez dans le mode utilisateur. Pour passer au mode privilégié, vous devez introduire la commande enable et ensuite introduire un mot de passe. Le mode utilisateur sert uniquement à la visualisation des paramètres (pas de la configuration) et des différents status du routeur. Par contre, le mode privilégié permet, en plus de la visualisation des paramètres, la configuration du routeur et le changement de paramètres dans la configuration.
L’interpreteur de commande des routeurs Cisco est très souple et vous permet de de-mander les commandes disponibles. Vous désirez savoir les commandes qui commencent par “ho”, rien de plus simple, ho ? <enter>. Il est aussi possible d’utiliser l’expansion de commande comme sous Unix (avec la touche de tabulation). Si il n’y pas de confu¬sions possibles, vous pouvez utiliser les abbréviations de commande. Par exemple, sh ip int brie au lieux de show ip interface brief. Cela permet de gagner du temps et de rendre la vie un peu plus facile.
2.2.3 Les fichiers de configuration
Dans un routeur cisco (en général), il existe différents fichiers de configuration. Il y a un fichier de configuration dans la nvram (startup-config), qui est lu au démarrage du routeur et copié en mémoire. Il y a un autre fichier de configuration dans la mémoire vive (running-config).
La “startup-config” est conservée dans la nvram sous forme ASCII. Tandis que la “running-config” est dans la ram sous forme binaire.
2.2.4 Images IOS
2.2.5 Configuration générale
Lorsque vous désirez passer en mode configuration, vous devez taper (en mode enable) : conf terminal
Cela siginifie que vous configurer le routeur en mode terminal. Il est tout à fait possible de configurer via TFTP par exemple. A ce moment le prompt change en :
router(config)#
Donc vous êtes dans la racine de la configuration du routeur et vous pouvez configurer les paramètres généraux.
2.2.6 Configuration des interfaces
Mais lors de la configuration d’un routeur, vous configurez souvent des interfaces. Il est donc nécessaire de passer du mode configuration générale vers le configuration de l’in¬terface. Voici un exemple:
router> enable
password :
router#configure terminal
router(config)#interface ethernet 0
router(config-if)#ip address 10.1.1.1 255.255.255.0
router(config-if)#exit
router(config)#exit
router#copy running-config startup-config
Dans cet exemple, on peut voir la configuration de l’interface ethernet 09 avec son addresse IP et son masque réseau. Lors de ce genre de configuration, nous modifions la configura¬tion “running” et donc nous réalisons un copy running-config startup-config pour sauver la configuration dans la nvram.
2.2.7 Configuration des lignes VTY
Il existe aussi différent types d’interfaces à configurer. Par exemple, la configuration des interfaces vituelles (pour l’accès via telnet du cli-exec) se fait de la même manière que les interfaces.
gw-int>enable password :
gw-int#configure terminal
gw-int(config)#line vty 0 6
gw-int(config-line)#password MonSuperPasswordd
gw-int(config-line)#exec-timeout 15 0
gw-int(config-line)#exit
gw-int(config)#exit
gw-int#
Dans ce cas, on configure le password pour 7 sessions possibles via telnet sur le routeur. On spécifie le password (sinon on ne sait pas se connecter à distance) ainsi que le timeout d’utilisation pour fermer les sessions quand elles ne sont plus utilisées.
...
2.3 Les “access lists”
Les routeurs Cisco fournissent la possibilité de faire du filtering. Les “access lists” peuvent être configurées pour tous les protocoles routables (IP, IPX, AppleTalk, ...).
Vous pouvez configurer les “access lists” sur chaque routeur de façon indépendante. Les “access lists” permettent de prévenir l’accès sur votre réseau. Les “access lists” ne sont pas uniquement destinées à la sécurité mais peuvent être utilisées dans le cadre de contrôles d’ouverture de ligne (DDR, ...).
2.3.1 Utilisation des “access lists”
Les “access list” filtrent le traffic réseau en contrôlant si des paquets routés sont transfé¬rés ou bloqués sur le(les) interface(s) du routeur. Un routeur peut examiner chaque paquet suivant ce que vous avez spécifié dans les “access lists”. Il est à noter que la sécurité est minimum, un utilisateur averti pourrait contourner les “access lists”.
Les critères d’une “access list” sont l’adresse de source du traffic, la destination du traffic, le niveau de protocole ou d’autres informations.
Pourquoi utiliser des “access lists” Il y a beaucoup de raisons pour configurer des “ac-cess lists” :
– Restreindre la mise à jour des tables de routage
– Contrôler le flux du réseau (pour les route-map par exemple)
– Et bien sûr limiter les accès aux réseaux ou à des services spéficiques du routeur Vous pouvez utiliser les “access lists” pour fournir un niveau minimum de sécurité. Si aucune “acess lists” n’est configurée, le traffic passe sans aucune restriction à travers le routeur.
2.3.2 Création d’”access lists”
Il y a 2 étapes pour la création de listes de contrôle. La première est de créer l’access list et la seconde étape est de l’appliquer sur l’interface. Lors de la création de l’”acess list”, il faut lui assigner un identificateur unique. Dans la majorité des cas, vous devrez utiliser un numéro (suivant le type de protocole à filtrer). Il est aussi possible d’utiliser une “access list” basée un nom mais uniquement avec certains protocoles.
...
La création d’une “access list” est une suite de critères avec les paramètres sources, destinations, ou types de protocole. Pour une “access list” donnée (un numéro unique ou un nom unique) vous pouvez avoir plusieurs entrées. Vous n’êtes pas limité dans la taille de la liste (juste par la mémoire) . Par contre, plus la liste est longue, plus elle prend du temps à être parcourue(! !).
exemple:
interface serial 0/4
ip addresse 192.168.1.254 255.255.255.0
ip access-group 1 in
access-list 1 permit 192.168.1.1
access-list 1 deny 192.168.2.0 0.0.0.255
A la fin de chaque “access lists”, il y a la règle implicite “deny all traffic”. Ce qui signifie que ce qui n’est pas spécifié est interdit.
L’ordre des entrées dans l’”access-list” est important et c’est la première règle qui sa-tisfait qui est prise en compte.
Lors de la modification d’une “access list”, il est difficile de la modifier. Il vous est impossible d’insérer une règle dans l’”acces list”. La seule solution est d’effacer la liste et de la recréer (même si vous avez 300 entrées 8-). Vous pouvez aussi copier la liste en TFTP et ensuite la recharger en TFTP.
2.4 Les “dialer list” 2.5 ISDN
ISDN utilise un nombre important de protocoles. 2.5.1 ISDN couche 1
Le layer 1 est la couche physique responsable pour la connexion au switch. Il supporte la connexion à un TA/NT1 ou à des “devices” multiples. Les canaux B et D partagent le même interface physique.
Canal D Canal B
(layer 3) DSS1 (Q.931) IP/IPX...
(layer 2) LAPD (Q.921) HDLC/PPP/FR/...
(layer 1) I.430/I.431/ANSI T1.601
Le canal D est gouverné par DDR (Dial on Demand Routing). DDR est le mécanisme pour réaliser des connexions “Dial On Demand”. Le canal B est utilisé pour la transmission des données (IP,IPX...).
2.5.2 ISDN couche 2 (Q.921)
Un numéro de TEI est assigné par le switch ISDN. Cela permet de donner une identifi-cation à votre connexion sur le NT1/TA.
2.5.3 ISDN couche 3 (Q.931)
Un protocole DSS1 (Digital Subscriber Signalling System N 1) est utilisé pour la ges¬tion des appels, des connexions & des alertes.
Suivant le pays, les techniques de “signalling” ne sont pas les mêmes entre le switch & le NT1.
Lors de l’utilisation d’ISDN, vous devez spécifier le type de switch :
isdn switch-type basic-net3
! Attention lors de la modification du switch-type, dans la majorité des cas, vous devez redémarrer le router!
