1/14 1. TP Interconnexion : Routage Externe Le but de ce TP est d étudier le protocole de routage Externe (BGP). De voir les mécanismes de peering, de filtrage des annonces et les politiques de routage. Chacun des bancs de TP représente le réseau d un opérateur Internet. Un équipement simulant les clients de cet opérateur émettra des annonces BGP plus ou moins correctes. La salle de TP représente un point d interconnexion où les opérateurs vont échanger leur trafic. Préparation Plusieurs groupes de TP travailleront en même temps sur la maquette, chaque groupe représentant un ISP (Internet Service Provider). Sur chacun des banc, un PC va modéliser les réseaux des clients de ce fournisseur d accès. Le but de la manipulation est de configurer le PC routeur supposé appartenir à un ISP pour : faire un peering avec le client du fournisseur filtrer les annonces erronées du client agréger quand cela est possible les annonces du client passer des accords de peering avec les autres fournisseurs pour offrir une interconnectivité totale.
2/14 Précablage pour réseau local HUB POSTE 4 POSTE 3 PCs PCs POSTE 5 POSTE 2 PCs PCs POSTE 6 POSTE 1 PCs PCs Figure 1.Configuration du réseau de la salle Identification du matériel Identifier: des câbles 10baseT qui forment le réseau Ethernet 1 hub; 1 PC Station sous Linux, avec une seule carte Ethernet. Ce PC nous servira a simuler le comportement d un client en émettant des annonces de route BGP 1 PC Routeur sous Linux, sur lequel vous ferez la majeur partie des configuration.
3/14 Câblage WAN Site X Ethernet0 Ethernet1 PC Station PC Routeur Site Y Ethernet0 Ethernet1 PC Station PC Routeur Figure 2. Câblage des bancs Câbler votre site conformément au schéma de la figure 2. Plan d adressage Le plan d adressage est le suivant : Sur votre banc de travail, le préfixe du réseau reliant le PC routeur au PC station émulant vos clients sera 192.44.7_.0/24 1. - L interface du PC routeur aura pour numéro 192.44.7_.1 et - l interface du PC aura comme numéro 192.44.7_.2. Le réseau du GIX interconnectant les PC routeurs aura comme préfixe 192.44.80.0/24. Les interfaces auront comme adresse IP 192.44.80._. Comme nous allons jouer le rôle d un opérateur, les adresses définies 1.Le symbole _ désigne dans la suite du TP le numéro de votre banc de TP
4/14 dans le RFC 1597 pour les intranets ne devront pas être annoncées à l extérieur. Nous allons aussi définir des numéros de systèmes autonomes. Votre client aura pour numéro 650_2 et le PC routeur se trouvera dans le système autonome 650_1. Sur les PC Station et Routeur sous Linux se connecter en tant que root (mot de passe ws) Configuration du PC Station # cd /root #./genconf _ # cat /root/zebra.conf... # cat /root/bgpd.conf... #ethereal -i eth0 & Un script permet de construire les fichiers de configuration de votre client. Sur le PC Station, lancer ethereal pour visualiser le trafic sur le lien La fenêtre suivante apparaît : Configurer la capture menu Display/Options... et sélectionner les
5/14 bouttons comme indiqué ci-dessous. Lancer la capture des trames en allant dans le menu Capture/Start en configurant également les bouttons comme indiqué ci-dessous et cliquer sur OK.
6/14 Sur le PC station, dans une fenêtre xterm, taper #zebra -d -f /root/zebra.conf Dans une autre fenêtre lancer le processus de routage bgp en tapant, SANS METTRE L OPTION -d : #bgdp -f /root/bgpd.conf Quel trafic a-t-on sur le réseau? Pourquoi? Configuration du PC routeur Nous devons configurer le PC routeur pour que PC station puisse ouvrir une connexion TCP. Sur le cisco, taper : #cp /usr/local/etc/zebra.conf.sample /root/zebra.conf cp: overwrite /root/zebra.conf? y #zebra -d -f /root/zebra.conf #telnet localhost zebra trying 127.0.0.1... Password: zebra <--le mot de passe n apparaît pas à l écran Routeur>ena Password: zebra <--le mot de passe n apparaît pas à l écran Routeur# Router#conf term Router(config)#int ethernet 0 Router(config-if)#ip address 192.44.7_.1/24 Router(config-if)#end
7/14 Attendre 2 minutes Quel trafic a-t-on sur le réseau? quels drapeaux sont mis dans l en-tête TCP du deuxième paquet? Pourquoi? Nous devons maintenant configurer le routeur pour qu il accepte le peering avec le PC servant de routeur. Sur le PC routeur ouvrir une autre fenêtre xterm et taper: #cp /usr/local/etc/bgpd.conf.sample /root/bgpd.conf cp: overwrite /root/zebra.conf? y #bgpd -d -f /root/bgpd.conf #telnet localhost bgpd trying 127.0.0.1... Password: zebra <--le mot de passe n apparaît pas à l écran bgpd>ena bgpd# Visualiser la configuration bgpd# sh running-conf Un protocole BGP tourne déjà, mais le numéro d AS ne correspond pas à celui qui nous est attribué. Il faut donc supprimer cette configuration en tapant bgpd#conf term bgpd(config)#no router bgp xxxx bgpd(config)#router bgp 650_1 bgpd(config-router)#neighbor 192.44.7_.2 remote-as 650_2 bgpd(config-router)#end Nous pouvons visualiser la table de routage du PC routeur Router#sh ip ro
8/14 Que signifie le B au début de la ligne? visualiser le protocole BGP sur le PC routeur en tapant la commande bgpd#term monitor bgpd#debug bgp updates BGP updates debugging is on bgpd#debug bgp keepalives BGP keepalives debugging is on bgpd# Quel est le rôle des messages KEEPALIVE? ^Z Suspended Suspendre le processus bgpd qui tourne sur le PC station. Au bout de combien de temps l arrêt du processus de routage sur le PC station servant de routeur est détecté par le PC routeur? Quelle remarques par rapport à OSPF? Que contient la table de routage du PC routeur? bgpd#sh ip bgp Visualiser la base de données BGP D où provient cette entrée? #fg Relancer le routage sur le PC station
9/14 Revisualiser la base de données BGP sur le PC routeur bgpd#sh ip bgp Que contient la colonne path? Supprimer les affichages des messages keepalive bgpd#no debug bgp keepalive Filtrage des annonces Est-ce que le client doit nous envoyer des annonces pour les routes dont le préfixe est 10.0.0.0/8? Une première solution pour filtrer les annonces non conformes du client consiste à configurer le PC routeur avec la commande distributelist pour refuser les préfixes 10/8. bgpd#conf term bgpd(config)#router bgp 650_1 bgpd(config-router)#neighbor 192.44.7_.2 distribute-list 1 in bgpd(config-router)#exit bgpd(config)#access-list 1 deny 10.0.0.0/8 bgpd(config)#access-list 1 permit any bgpd(config)#exit Cette commande un filtre quand le cisco reçoit des annonces du PC station. Ce filtre est défini par un numéro (ici 1). Cette valeur fait référence à une liste d accès définie après. Cette liste comprend deux entrées. La première teste si le préfixe est 10/8. Si c est le cas, cette annonce est refusée, sinon toutes les autres annonces sont autorisées. La deuxième ligne est obligatoire, car dans les politiques de sécurité du PC routeur, tout ce qui n est pas explicitement autorisé est interdit. Est-ce que l ordre est important pour définir des listes d accès? Ce filtre n est pris en compte que lorsque le PC routeur reçoit des
10/14 annonces du PCstation. Dans notre cas, il faut attendre que la durée de vie de l annonce soit expirée pour que l entrée disparaisse de la table de routage. Pour accélérer la convergence, relancer le processus d echange BGP. Sur le PC Routeur, taper :. bgpd# clear ip bgp * Vérifier sur le PC routeur que les entrées 10/8 ne sont ni dans sa table de routage, ni dans la base de données BGP. Que pensez-vous de ces règles de filtrage? En prenant en compte l agrégation possible, quelles seraient les règles de filtrage pour prendre en compte que les préfixes autorisés par l ISP? Modifier la liste d accès pour prendre en compte votre nouvelle politique de filtrage bgpd#conf term bgpd(config)#no access-list 1 bgpd(config)#access-list 1 permit... bgpd(config)#end retaper clear ip bgp * pour vérifier que vos règles de filtrage sont correctes. Peering Nous devons définir une politique d échange d informations de routage pour garantir une connectivité totale. Dans un premier temps, nous allons utiliser la règle suivante. Chaque banc va établir un peering avec le banc de numéro supérieur et inférieur. Le dernier banc fera un peering avec le premier banc.
11/14 A quoi correspond la colonne path? Que contient la colonne Next Hop? Pourquoi un même préfixe apparaît plusieurs fois dans la base de données BGP? Agrégation Comme vous pouvez le remarquer, la base de données BGP et les tables de routage contiennent un nombre important d entrées. Pour le réduire, les routeurs peuvent agréger certains préfixes Est-il possible d agréger les entrées commençant par 200? Quels préfixes peuvent être agrégés? En quel préfixe/longueur de préfixe? Quel est le netmask équivalent à cette longueur de préfixe? Pour permettre l agrégation des préfixes par le routeur Cisco, taper les
12/14 bgpd#conf term commandes suivantes : bgpd(config)#router bgp 650_1 bgpd(config-router)#aggregate-address x.x.x.x/pp summary-only bgpd(config-router)#exit bgpd(config)#exit où x.x.x.x et pp représentent le préfixe et le la longueur du préfixe que vous avez précédemment calculés. Quel effet sur les tables de routage et la base de données BGP. Quelles modifications dans le chemin d AS? Filtrage en fonction du chemin d AS bgpd# sh ip bgp Taper : Certains préfixes sont annoncés par plusieurs AS. Quels critères principaux votre routeur choisit pour la meilleure annonce (celle précédée dans le listing du caractère >)? On peut toutefois remarquer que dans tous les cas, le champ Next Hop a la même valeur. Cela tient à la topologie en bus du réseau d interconnexion. Nous allons choisir un préfixe, par exemple *> 205.1.3.0 192.44.80.3 0 65031 65032 i * 192.44.80.3 0 65051 65031 65032 i
13/14 et nous allons changer les règles de précédence, en disant par exemple, que les annonces venant du système autonome 65051 sont prioritaires par rapport à celle venant du système autonome 65031. Entrer la configuration suivante en l adaptant à vos choix : bgpd#conf term bgpd(config)#ip as-path access-list 2 permit 650x2$ bgpd(config)#router bgp 650_1 bgpd(config-router)#neighbor 192.44.80.X filter-list 2 in bgpd(config-router)#exit bgpd(config)#exit bgpd#sh ip bgp regexp _650x1_ Taper bgpd#clear ip bgp * pour relancer la configuration du routeur et visualiser la base de données BGP et vérifier que l annonce la meilleure correspond bien aux choix que vous avez faits. Dans l exemple précédent, vous avez choisi une route en fonction d une politique locale. Vous pouvez aussi essayer d influencer les choix faits par les autres opérateurs. Pour cela vous avez deux possibilités : utiliser l attribut MED (Multi Exit Descriminator) qui va permettre de transporter un poids avec l annonce, allonger artificiellement la longueur du chemin d AS en recopiant plusieurs fois votre numéro d AS. Nous allons choisir cette deuxième solution et ajouter 3 fois notre numéro de système autonome vers un de nos voisins. bgpd#conf term bgpd(config)#route-map ajout-as permit 20 bgpd(config-route-map)# match ip address 3 bgpd(config-route-map)# set as-path prepend 650_1 650_1 650_1 bgpd(config-route-map)# exit bgpd(config)#access-list 3 permit any bgpd(config)#router bgp 650_1 bgpd(config-router)# neighbor 192.44.80.X route-map ajout-as out bgpd(config)# exit bgpd#write La liste route-map appelée ajout-as permet de définir des conditions et des actions sur les attributs transportés pas BGP. Dans tous les cas (condition définie par la liste d accès 3) nous ajoutons 3 fois le système autonome 650_1 au chemin d AS. Nous le faisons que pour les annonces émises vers le routeur 192.44.80.X.
14/14 Vérifier sur le site 192.44.80.X que cela a un effet sur ses choix d annonce. Remise en place du banc de travail #fastboot Rebooter le PC en tapant dans le mode super-utilisateur la commande Débrancher les câbles 10baseT.