Routage sous Cisco et Linux support de cours
...
Configuration du routeur comme serveur d’accès distant
3.1. Objectifs
Dans le cadre du Remote Access (RAS), il faut mettre en place une topologie de réseau permettant à un client (PC) d’accéder, via ISDN, au réseau Internet ou à un réseau intranet (FIGURE 3.1). Cela permet, par exemple, à un employé d’accéder au réseau de son entreprise depuis son domicile de façon totalement transparente. Internet sera simulé par un réseau Ethernet et un PABX jouera le rôle de l’ISDN. Le point d’accès à ce réseau se fera par un routeur Cisco 2621. Les buts à atteindre sont :
FIGURE 3.1 : Topologie du réseau pour RAS
La mise en place de ce réseau se fera à travers plusieurs étapes permettant de traiter les problèmes potentiels un à un.
3.2. Configuration « routeur à routeur » 3.2.1. Topologie
La topologie « routeur à routeur » (FIGURE 3.2) permet de configurer les routeurs et leurs interfaces en s’affranchissant des problèmes de compatibilité pouvant survenir entre ces derniers et un TA (Terminal Adapter). Pour ce montage, nous utilisons deux routeurs. Le premier est un Cisco 2621 possédant deux interfaces Ethernet 10-100 Mb/s ( fastEthernet 0/0 & 0/1) et quatre interfaces BRI (Basic Rat Interface 1/0, 1/1, 1/2 & 1/3) pour l’ISDN. Le deuxième est un Cisco 2500 possédant une interface Ethernet (Ethernet 0) et une interface BRI (Basic Rate Interface 0).
eth0
IP add. 10.1.0.2 Mask 255.255.255.0
N°25 N°24
ISDN
(PABX) Cisco2600
BRI1/0
IP add. 10.3.0.2 Mask 255.255.255.0
FIGURE 3.2 : Topologie « routeur à routeur »
Cliquez sur Use the following IP address, puis remplir les différents champs selon la FIGURE 3.2. Terminer en cliquant sur OK, puis OK.
Remarques : Le serveur DNS n’est pas utilisé dans cette topologie. Toutefois il est nécessaire de remplir le champ Preferred DNS server (par ex. 10.3.0.18), sinon Windows essaie d’obtenir une adresse automatiquement.
3.2.3. Configuration et test des routeurs (HDLC)
Dans un premier temps, la configuration des deux routeurs est identique. Cette dernière leur permet d’établir la connexion ISDN lorsqu’un paquet doit être envoyé au réseau distant. Voici comment configurer le routeur Cisco2600.
Pour commencer, on peut donner un nom (hostname) au routeur. Ce nom apparaîtra comme prompt du routeur, mais surtout, il sera utilisé pour l’authentification d’une connexion PPP (voir § 3.2.4).
Ø Router(config)# hostname Cisco2600
Ø Cisco2600(config)#
Le routeur, lorsqu’il reçoit des paquets, doit savoir vers qui les envoyer, c’est à dire qu’il doit posséder une table de routage. Cette table est définie de manière statique avec la commande « ip route ».
ip route prefix mask address
Selon la FIGURE 3.2, si le Cisco2600 reçoit un paquet du client à destination du réseau 10.1.0.0, il doit envoyer le paquet vers l’interface 10.3.0.1.
Ø Cisco2500(config)# ip route 10.1.0.0 255.255.255.0 10.3.0.1 Il faut aussi spécifier le type de trafic autorisé à établir la connexion ISDN.
dialer-list dialer-group protocol protocol-name {permit | deny |
list access-list-number}
Dans notre cas, tout le trafic IP est autorisé.
Ø Cisco2600(config)# dialer-list 1 protocol ip permit
Les types de commutateurs pour l’ISDN ne sont pas les mêmes dans tous les pays. En Suisse, il faut configurer le routeur avec « basic-net3 ». Pour cela, on utilise la commande suivante :
Ø Cisco2600(config)# isdn switch-type basic-net3
Pour configurer l’interface Ethernet, taper :
Ø Cisco2600(config)# interface fastethernet0/0
Comme le montre la FIGURE 3.2, cette interface possède une adresse IP. La commande suivante permet de la configurer :
ip address ip-address mask
Ø Cisco2600(config-if)# ip address 10.2.0.2 255.255.255.0
Ø Cisco2600(config-if)# exit
Passons à la configuration de l’interface BRI :
Ø Cisco2600(config)# interface BRI1/0
Ø Cisco2600(config-if)# ip address 10.3.0.2 255.255.255.0
Il faut configurer l’interface pour lui indiquer le type d’encapsulation des paquets à employer. Pour un RAS, qui fonctionne avec une liaison de type point à point, Windows utilise le protocole PPP (Point to Point Protocol). C’est ce protocole qui sera choisi lors de la configuration des équipements. Avec ce protocole, les appareils passent par une phase où ils s’authentifient auprès de leur correspondant (voir § 3.2.4). C’est pourquoi, lors du premier test, une encapsulation HDLC est préférée afin de s’affranchir de cette phase d’authentification et de vérifier le bon fonctionnement de la configuration des routeurs.
Ø Cisco2600(config-if)# encapsulation HDLC
La commande suivante permet de faire le lien entre la dialer-list décrite précédemment et l’interface.
dialer-group group-number
Ø Cisco2600(config-if)# dialer-group 1
Laboratoire de transmission de données LOGEAN Philippe 17. décembre 2001
En suite, il faut indiquer le numéro de téléphone que doit composer le routeur afin d’atteindre le réseau distant.
dialer map protocol next-hop-address [name hostname] [speed 56 | 64] [broadcast] dialer-string
Ø Cisco2600(config-if)# dialer map ip 10.3.0.1 name Cisco2500 25
Pour finir, un timer mettant fin à la liaison ISDN doit être mis en place. dialer idle-timeout seconds
Ø Cisco2600(config-if)# dialer idle-timeout 120
Par défaut, la fonction de routage des paquets IP est activée sur les routeurs. Si ce n’est pas le cas, il faut taper la commande suivante :
Ø Cisco2600(config)# ip routing
En tapant show ip route, il est possible de voir toutes les routes connues par le routeur. Sur la FIGURE 3.5, on retrouve la route définie avec la commande ip route. Elle est précédée d’un S qui indique quelle est une route statique. On remarque que les interfaces directement connectées au routeur sont automatiquement ajoutées à la table de routage. Ces dernières sont précédées d’un C. La commande show running¬config permet de voir la configuration actuelle du routeur (annexe Configuration « routeur à routeur » Cisco 2600 HDLC)
FIGURE 3.5 : Show ip route
Afin de ne pas trop charger ce document, seules les modifications à la configuration actuelle seront indiquées. Les configurations complètes des routeurs se trouvent en annexe.
La configuration du routeur Cisco2500 s’effectue de la même manière avec quelques différences. La route est :
Ø Cisco2500(config)# ip route 10.2.0.0 255.255.255.0 10.3.0.2
Les interfaces à configurer sont Ethernet 0 et BRI 0 selon la FIGURE 3.2. Le dialer map est aussi différent :
~ Cisco2500(config-if)# dialer map ip 10.3.0.2 name Cisco2600 24
Pour la configuration compète, voir l’annexe Configuration « routeur à routeur » Cisco 2500 HDLC.
En effectuant un ping 10.2.0.1 (serveur) depuis le poste client, on a vérifié le bon fonctionnement de l’installation. Des LED vertes, située en dessous des connecteurs du routeur, permettent de contrôler que les canaux B de l’ISDN sont activés. Le but n’est pas de détailler cet échange, car la configuration qui nous intéresse emploie le protocole PPP, mais simplement de tester le fonctionnement des routeurs et des PCs sans se préoccuper de l’authentification. Cette vérification étant concluante, nous pouvons nous concentrer sur PPP.
3.2.4. Point to Point Protocol (PPP)
Le protocole PPP (RFC 1661) permet d’encapsuler des paquets, de différentes sortes de protocoles, sur des liaisons point à point. Dans le cas étudié, la liaison point à point est le canal B de l’ISDN et les paquets envoyés sont de type IP.
FIGURE 3.6 : Encapsulation des différents protocoles
Ce protocole offre :
L’encapsulation des paquets est réalisé suivant la figure ci-dessous.
PPP Header Protocol Data CRC
2 2 variable 2/4
FIGURE 3.7 : Format de la trame PPP
0xC021 Link Control Protocol (LCP)
0xC023 Password Authentication Protocol (PAP) 0xC025 Link Quality Report
0xC223 Challenge Handshake Authentication Protocol (CHAP)
0x8021 Internet Protocol Control Protocol (IPCP)
0x0021 Internet Protocol (IP)
0x003D Multilink Protocol (MP)
Data : Ce champ est de taille variable. Par défaut, il est de 1500 bytes, mais cette valeur est négociable lors de l’initialisation de la liaison (LCP). Le format des données dépend du protocole encapsulé.
Voici les différentes phases d’établissement du protocole PPP après l’activation de la liaison point à point (canal B). La première est l’envoi de paquets LCP (Link Control Protocol). Ils permettent de négocier les paramètres de la connexion comme, par exemple, la longueur des paquets, l’utilisation des deux canaux B (multilink) et le type de protocole d’authentification. Ils permettent aussi de tester la ligne. La figure ci dessous représente la négociation LCP.
FIGURE 3.8 : Négociation LCP
FIGURE 3.9 : Format de la trame LCP
1 Configure-Request
2 Configure-Ack
3 Configure-Nak
4 Configure-Reject
5 Terminate-Request
6 Terminate-Ack
7 Code-Reject
8 Protocol-Reject
9 Echo-Request
10 Echo-Reply
11 Discard-Request
Type Length Data
1 1 variable
FIGURE 3.10 : Format des options de configuration LCP
1 Maximum-Receive-Unite
3 Authentication-Protocol
4 Quality-Protocol
17 Multilink Maximum Receved Reconstructed Unit
18 Multilink Short Sequence Number Header Format
19 Endpoint Discriminator
Pour plus de détails, le lecteur peut se référer à la RFC 1661 (The Point to Point Protocol).
La deuxième phase de l’établissement est l’authentification de l’interlocuteur (RFC 1334). Les protocoles employés sont PAP ou CHAP. La négociation du protocole utilisé est faite lors de la négociation LCP.
Le routeur Cisco2500 a une version d’IOS plus ancienne que celle du Cisco2600. Cela pose des problèmes de compatibilité lors de l’authentification. C’est pourquoi un deuxième routeur Cisco2600 est utilisé en remplacement du Cisco2500. Afin de garder les mêmes configurations, le hostname Cisco2500 est conservé pour le second routeur.
Password Authentification Protocol (PAP) est un protocole d’authentification très simple. Le routeur coté « client » envoie, dans le paquet Authenticate-Request, son hostname et son password. Le routeur coté « serveur » vérifie qu’il possède un username et un password correspondant à ce paquet. Si c’est le cas, il envoie Autenticat-Ack qui indique que le routeur « client » est autentifié. Ce protocole envoie le username et le passeword en clair.
PAP : Autenticat-Ack
Laboratoire de transmission de données LOGEAN Philippe 17. décembre 2001
La figure ci-dessous représente la trame pour le protocole PAP.
FIGURE 3.12 : Trame PAP
1 Authenticate-Request
2 Authenticate-Ack
3 Authenticate-Nak
Challenge-Handshake Autentication Protocol (CHAP) a l’avantage de ne pas envoyer de password en clair. Après la phase d’établissement, le routeur du coté serveur envoie un paquet Chalenge au routeur client afin de l’authentifier. Ce paquet contient une variable aléatoire et l’identité du routeur serveur (hostname). La taille de la variable aléatoire dépend de la méthode utilisée pour la générer, mais est indépendante de l’algorithme de « hashage ». Le routeur client concatène cette variable aléatoire et son password pour calculer un hash. (16 bytes avec MD5). La valeur du hash, ainsi que l’identité du routeur client sont renvoyées au routeur coté serveur dans un paquet Response. Ce routeur possède une liste des clients autorisés à se connecter (username). Il recalcule le hash, en utilisant le password correspondant au client et la variable aléatoire, et la compare avec la hash reçu du client. S’ils sont identiques, il renvoie le message Succes qui indique au client qu’il est authentifié.
CHAP : Success
FIGURE 3.13 : Transfert CHAP
La figure ci-dessous représente la trame CHAP.
FIGURE 3.14 : Trame CHAP
1 Challenge
2 Response
3 Success
4 Failure
Identifier : Ce champ est d’un octet. La valeur de ce champ est identique entre un paquet de requête et l’acquittement lui correspondant.
Length : Ce champ est de deux octets. Il indique la longueur du paquet CHAP
Cette longueur inclut les champs Code, Identifier, Length et Data.
Data : Ce champ est de taille variable. Le format des données est déterminé par le champ Code. Pour les paquets Challenge ou Response, le champ data prend la forme illustrée à la FIGURE 3.15. Pour les paquets Success et Failure, ce champ peut être nul ou de longueur variable. Le protocole n’implémente pas de message pour ces deux paquets, toutefois, ce champ peut être utilisé pour envoyer un message lisible par l’utilisateur.
Value-Size Value Name
1 variable variable
FIGURE 3.15 : Format des data des paquets Chllenge et Response
Pour plus d’information, le lecteur peut se référer à la RFC 1994.
La dernière phase de l’établissement est la configuration de la couche de niveau 3 (NCP : Network Control Protocol). Le protocole utilisé pour cette configuration dépend du type de paquets à transporter. Pour des paquets IP, le protocole utilisé est IPCP (Internet Protocol Control Protocol). Ce protocole permet, par exemple, de configurer l’adresse IP du client et de lui indiquer l’adresse du serveur DNS (voir § 3.5.1). Il permet aussi de négocier un protocole de compression des entêtes TCP/IP. IPCP utilise le même mécanisme d’échange de paquets que LCP (voir FIGURE 3.8). Par contre, il dispose d’un ensemble d’options de configuration lui étant propre.
FIGURE 3.16 : Format de la trame IPCP
Type Length Address
1 1 4
FIGURE 3.17 : Format des options de configuration IPCP
HES-SO/Ecole d’Ingénieurs de Genève 20
Laboratoire de transmission de données LOGEAN Philippe 17. décembre 2001
3.2.5. Configuration des routeur pour PPP
La configuration des routeurs pour PPP ne change pas beaucoup de celle vue précédemment (§ 3.2.3). Voici les changements à apporter pour Cisco2600.
Il faut utiliser l’encapsulation PPP pour l’interface BRI1/0.
Ø Cisco2600(config-if)# encapsulation PPP
Il faut aussi indiquer le protocole d’authentification qui sera employé à l’établissement de la liaison. Nous utiliserons CHAP, car ce protocole est plus sûr que PAP (voir § 3.2.4).
Ø Cisco2600(config-if)# ppp authentication chap callin
Callin est optionnel. Il indique au routeur qu’il doit procéder à l’authentification de sont interlocuteur uniquement lorsqu’il est appelé. Si cette option n’est pas utilisée, l’authentification est aussi effectuée lorsque le routeur est l’appelant. Nous utilisons callin, car pour un RAS, le but du routeur, offrant le point d’accès au réseau, est uniquement d’authentifier le client (qui est l’appelant).
La commande suivante permet de créer une liste de username et de password. Cette liste permet, au routeur client et au routeur serveur, de connaître le password à employer pendant la phase d’établissement. Cela est fait par comparaison des usernames de la liste avec le hostname du routeur distant.
username user name password type password
Ø Cisco2600(config-if)# username Cisco2500 password 0 pass
La configuration complète de ce routeur se trouve dans l’annexe Configuration « routeur à routeur » Cisco 2600 PPP
La configuration du second routeur s’effectue de la même manière que celle vue ci-dessus, avec ces quelques différences :
3.3. Configuration « TA à routeur » avec adresse statique 3.3.1. Topologie
Cette topologie correspond plus à celle utilisée par un particulier pour un RAS. En effet, du côté client, le routeur est remplacé par un TA (Terminal Adaptor) et la liaison Ethernet laisse place à USB. Le reste de la configuration ne change pas. Dans cette première configuration, le client possède une adresse statique.
FIGURE 3.21 : Topologie du réseau
3.3.2. Configuration des PCs
La configuration du PC client consiste en l’installation du TA (Fritz!Card USB) et à la configuration du niveau IP. Pour commencer, il faut connecter le TA selon la FIGURE 3.21. La connexion au PC se fait en utilisant une interface USB. Le TA est Plug and Play. Lorsqu’il est connecté au PC, Windows 2000 détecte ce nouveau matériel et ouvre la fenêtre suivante :
FIGURE 3.22 : ISDN Switch Type or D-channel Protocol
Laboratoire de transmission de données LOGEAN Philippe 17. décembre 2001
Remarques : On constate qu’il n’y a plus de Default Gateway et de Subnet mask du coté client. Ces paramètres sont inutiles pour une liaison PPP de ce type, car il n’y a qu’un chemin possible. En revanche, le réseau distant devra gérer ces paramètres pour permettre au client d’atteindre d’autres réseaux.
Le serveur DNS n’est pas utilisé dans cette topologie. Toutefois il est nécessaire de remplir le champ Preferred DNS server (par ex. 10.2.0.18), sinon Windows essaye d’obtenir une adresse automatiquement.
Le PC client est à présent configuré. La configuration du PC serveur est identique à la configuration « routeur à routeur ».
3.3.3. Configuration du routeur
Voici les quelques modifications à apporter, sur la configuration du Cisco2600, pour cette topologie (FIGURE 3.21).
Il faut configurer l’adresse IP de l’interface BRI1/0.
Ø Cisco2600(config-if)# ip address 10.1.0.2 255.255.255.0
Dans un RAS, ce n’est pas le serveur qui appelle le client, mais le client qui appelle le serveur. C’est pourquoi le dialer map n’a plus d’utilité dans la configuration du BRI1/0 (voir remarque sur le dialer map § 3.3.4). Il en va de même pour les commandes dialer-group et dialer-list (voir remarque sur idle-timeout § 3.3.5). En ajoutant « no »devant une commande, cela permet de la supprimer.
Ø Cisco2600(config-if)# no dialer-group 1
Ø Cisco2600(config-if)# no dialer map ip 10.3.0.1 name Cisco2500 25
Ø Cisco2600(config)# no dialer-list 1 protocol ip permit
Enfin, le dernier changement concerne idle-timeout. Dans un RAS, c’est généralement le client qui gère le temps de connexion. En effet, il peut rester connecté le temps voulu. Par sécurité, il est possible de spécifier un idle-timeout, du coté client, dans l’onglet Options des propriétés de connexion. Pour annuler le idle¬timeout sur le routeur, tapez :
Ø Cisco2600(config-if)# dialer idle-timeout 0
La configuration complète du routeur se trouve dans l’annexe Configuration Cisco2600-TA avec adresse IP statique.