pfres plateforme de la spécialité reseaux

75
PFRES : PlateForme de la spécialité RESeaux Manuel de l’utilisateur Benjamin Bachelart (mail) • Benjamin Baron (mail) Benjamin Gonzalez (mail) • Alexandre Ragaleux (mail) 2012

Upload: others

Post on 04-Apr-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

PFRES : PlateForme de laspécialité RESeaux

Manuel de l’utilisateur

Benjamin Bachelart (mail) • Benjamin Baron (mail)Benjamin Gonzalez (mail) • Alexandre Ragaleux (mail)

2012

Table des matières

1 Description générale de la plateforme 3

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 AS 1 : Entreprise 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 AS 2 : Coeur 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4 AS 3 : Coeur 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5 AS 4 : Entreprise 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

6 Câblage des équipements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

7 Connexion à la plateforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2 Généralités sur les équipements 24

1 Introduction sur protocoles de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2 Rapide prise en main des équipements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Implémentation de fonctionnalités (routeurs) 37

1 Protocoles de routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2 MPLS (MultiProtocol Label Switching) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4 Implémentation de services (serveurs) 47

1 NTP (Network Time Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

2 DHCP (Dynamic Host Configuration Protocol) . . . . . . . . . . . . . . . . . . . . . . . . 48

3 Serveur HTTP (Apache) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4 Serveur FTP (File Transfer Protocol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5 DNS (Domain Name Service) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6 Supervision des équipements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

7 VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

8 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5 VoIP et Qualité de service (QoS) 59

1 VoIP (Voice over IP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2 QoS (Quality of Service) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3 Application au projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4 Montée en charge et analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

6 Troubleshooting 72

7 Bibliographie 75

2

CHAPITRE1Description générale de la plateforme

1 Introduction

1.1 Aperçu de l’ensemble de la plateforme

15" LCD (7U)

KVM Switch/Button Panel

serveur3.ent1

serveur1.ent1serveur2.ent1

Cisco ASA 5510Cisco 2801Cisco WS-C3560-24PS

gate-net.rsr.lip6.fr

Avocent ACS 5016

FE 0/0

FE 0/1 CONSOLE

AUX Cisco 2800 SeriesDO NOT REMOVE DURING NETWORK OPERATION

FDX100

LINK

FDX100

LINK

CF

SLOT 3 SLOT 2 THIS SLOT ACCEPTS ONLY VICs AND WICs SLOT 1 SLOT 0 THIS SLOT ACCEPTS ONLY VICs AND WICs

PVDM 1

PVDM 0

AIM 1

AIM 0

INLINEPWR

SYSOK

SYSPWR COMPACT FLASH

POWER STATUS ACTIVE VPN FLASH

CISCO ASA 5510 seriesAdaptive Security Appliance

AS 1

Avocent ACS 5016

serveur2.core1

serveur1.core1

Cisco 3825

Cisco WS-C2960G-24TC-L

Cisco 3825

Catalyst 2960 SERIES

MODE

SYSTRPSMASTRSTATDUPLXSPEED

1X

2X

11X

12X

1 2 3 4 5 6 7 8 9 10 11 12

19X

20X

13 14 15 16 17 18 19 20

21

9X

10X

22 23 24

GE 0/0

GE 0/1CONSOLE

AUX

SPD

SPD SFP

PEP

NM E1

NM E0

SLOT

1

SLOT

0

SLOT

2

LINK

LINKSLOT

3

GE 0/0

GE 0/1CONSOLE

AUX

SPD

SPD SFP

PEP

NM E1

NM E0

SLOT

1

SLOT

0

SLOT

2

LINK

LINKSLOT

3

AS 2

Avocent ACS 5016

MEDIAL

PSEUDOL

HP ProCurve 2900-24GHP ProCurve 2900-24G

Juniper J4350

Juniper J4350

Juniper J4350

Juniper J4350

AS 3

Avocent ACS 5016

serveur3.ent2

serveur1.ent2serveur2.ent2

Juniper J2300Juniper J2300Juniper SSG20Juniper SSG20

Extreme Networks x450e-24p

AS 4

3

1.2 Aperçu des équipements

Armoire 1 Armoire 2 Armoire 3 Armoire 4

AS 1 (Entreprise) AS 2 (Coeur) AS 3 (Coeur) AS 4 (Entreprise)Alimentation Avocent PM 1000 (Power Distribution Unit)Contrôleur Cyclades ACS 5000 (Advanced Console Server)Commutateur 1 Cisco WS-C3560-24PS 1 Cisco WS-C2960G-24TC-L 2 HP ProCurve 2900-24G 1 Extreme x450e-24PRouteur 1 Cisco 2801 2 Cisco 3825 4 Juniper J4350 2 Juniper J2300Serveur 3 2 2 3Firewall 1 Cisco ASA 5510 N/A N/A 2 Juniper SSG20Matériel Téléphones IP Cisco SPA962

Routeurs

Cisco 2801 Cisco 3825 Juniper J4350 Juniper J2300

Ethernet Gigabit 4 4 4 4IEEE 802.1q VLAN 4 4 4 4IPv6 4 4 4 4Routage IP 4 4 4 4QoS 4 4 4 4VPN 4 4 4 4Multicast 4 4 4 4MPLS 4 4 4 4Système d’exploitation Cisco IOS 2801

v12.4(22)YB5Cisco IOS 3825

v12.4(22)JUNOS 8.2R2.4 JUNOS 8.2R1.7

Interfaces 2 FastEthernet 32 FastEthernet 4 Gigabit Ethernet 2 FastEthernet4 Gigabit Ethernet

Commutateurs

Cisco WS-C3560-24PS CiscoWS-C2960G-24TC-L

HP ProCurve 2900-24G(J9049A)

Extreme NetworkSummit X450e-24p

Ethernet Gigabit 4 4 4 4IEEE 802.1q VLAN 4 4 4 4IPv6 4 4 4 4Trunk 4 4 4 4Routage IP 4 4 4 4QoS 4 4 4 4VPN 4 4 4 4PoE 4 4 4 4Système d’exploitation Cisco IOS C3560

v12.2(25)SEB4Cisco IOS C2960v12.2(25)SEE2

T.12.06 ExtremeWare XOSv1150b10

Interfaces 24 FastEthernet 24 Gigabit Ethernet 24 Gigabit Ethernet 24 Gigabit Ethernet2 Gigabit Ethernet (10/100/1000BASE-T) (10/100/1000BASE-T)

Firewalls

Cisco ASA 5510 Series Juniper SSG20

IPS 4 4VPN SSL, DTLS, IPSec IPSecIEEE 802.1x NAC 4 4DHCP 4 4IPv6 4 4NAT 4 4Routage IP 4 4QoS 4 4Système d’exploitation Cisco Adaptive Security Appliance Software v7.1(2) ScreenOS v6.2.0r13.0Interfaces 3 FastEthernet 4 FastEthernet

4

1.3 Adressage de la plateforme

Les plages d’adresses utilisées pour chaque AS sont les suivantes :

Numéro de de l’AS Adresse IPv4 Adresse IPv6

AS1 23.7.100.0/24 2a00:b82:8502::/48

AS2 28.5.0.0/16 2e70:13::/32

AS3 13.8.0.0/16 2d05:37::/32

AS4 4.11.100/24 2a00:285:42::/48

VLAN 999 10.0.0.0/8 N/A

Les valeurs des deux premiers octets des NetID correspondent aux différentes dates de naissances des parti-cipants du projet (c’est un bon moyen de se souvenir des anniversaires !). La valeur en décimale du troisièmeoctet est à 100 si le réseau considéré est une entreprise et à 0 si le réseau est un FAI (dans ce cas le troisièmeoctet fait d’ailleurs parti de l’HostId de ce réseau).

Bien évidemment le découpage CIDR est utilisé pour IPv4 et les plages utilisées sont détaillés dans lesprésentations détaillées des AS.

1.4 Connexion à Internet (VLAN 999)

Le VLAN 999 interconnecte tous les systèmes autonomes à la passerelle gate-net.rsr.lip6.fr :– Les contrôleurs de console (ACS 5016) sont interconnectés les uns aux autres via ce VLAN,– Les serveurs de tous les AS peuvent accéder à Internet en configurant le proxy HTTP.Les contrôleurs de console permettent de contrôler les équipements de chaque AS : il existe un contrôleurde console par AS.

La passerelle gate-net.rsr.lip6.fr fait en effet office de proxy pour HTTP et HTTPS en utilisantSquid. Les serveurs ont alors accès à Internet sur leur Interface eth1.

MGMT1MGMT2MGMT3MGMT4gate-net

Serveurs AS 1Serveurs AS 2Serveurs AS 3Serveurs AS 4

FIGURE 1.1 – Représentation du VLAN 999

5

2 AS 1 : Entreprise 1

Cet AS simule une entreprise moyenne connectée à un FAI (AS 2).

Cette entreprise est protégée du trafic entrant par un firewall avant que les paquets puissent atteindre l’uniquegateway de l’AS. Ce routeur délimite le réseau interne de l’entreprise composé de trois PC/serveurs.

AS 2

ASA5510

Catalyst 2800

Catalyst 3560

serveur1.ent1 serveur3.ent1serveur2.ent1

VLAN 210 (géré par AS2)28.5.254.0/302e70:13:254:210::/64

VLAN 11123.7.100.0/272a00:b82:8502:112::/64

VLAN 11223.7.100.48/29

(a) Visualisation de l’AS 1

ASA5510 Catalyst 2800Catalyst 3560

serveur1.ent1 serveur3.ent1serveur2.ent1

VLAN 10023.7.100.32/28

(b) Administration de l’AS 1

FIGURE 1.2 – AS 1

serveur1.ent1eth1 eth0eth2

serveur2.ent1

eth1 eth0eth2

serveur3.ent1eth1 eth0eth2 eth2eth1MGMT

ASA5510

Cisco 2800

AS 2

0/0 0/1

1 2 3

4 5 6

7 8 9 11 12

14 15

210

100 111 210AS 1

999

gate-net

999eth3 eth4eth2eth1eth0 100

Connexion LIP6MGMT1

1121 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

10

11070

FIGURE 1.3 – Commutateur AS 1

Switch Cisco Catalyst 3560

VLAN Interface Switch IPv4 IPv6

100 N/A N/A 23.7.100.33/28 N/A

Routeur Cisco Catalyst 2801

VLAN Interface Switch IPv4 IPv6

100 fa0/0.100 19 23.7.100.34/28 N/A111 fa0/0 19 23.7.100.30/27 2a00:b82:8502:112::fffe/64

112 fa0/0.112 19 23.7.100.49/29 N/A210 fa0/1 20 28.5.254.2/30 (AS 2) 2a70:13:254:210::2/64 (AS 2)

6

Firewall Cisco ASA5510

VLAN Interface Switch IPv4 IPv6

100 man0/0 13 23.7.100.35/28 N/A210 man0/1 14 N/A N/A

serveur1.ent1.org

VLAN Interface Switch IPv4 IPv6

100 eth2 1 23.7.100.36/28 N/A111 eth0 3 23.7.100.1/27 IPv6 autoconfiguré112 eth0.112 3 23.7.100.50/29 N/A999 eth1 2 10.40.130.11 N/A

Remarque. L’adresse IPv6 associée à l’interface eth0 est autoconfigurée et est la suivante :2a00:b82:8502:112:215:17ff:fe29:e44c

où 00:15:17:29:e4:4c est l’adresse MAC de l’interface eth1.

serveur2.ent1.org

VLAN Interface Switch IPv4 IPv6

100 eth2 4 23.7.100.37/28 N/A111 eth0 6 23.7.100.2/27 IPv6 autoconfiguré999 eth1 5 10.40.130.12 N/A

Remarque. L’adresse IPv6 associée à l’interface eth0 est autoconfigurée et est la suivante :2a00:b82:8502:112:215:17ff:fe29:e414

où 00:15:17:29:e4:14 est l’adresse MAC de l’interface eth1.

serveur3.ent1.org

VLAN Interface Switch IPv4 IPv6

100 eth2 7 23.7.100.38/28 N/A111 eth0 9 23.7.100.3/27 IPv6 autoconfiguré999 eth1 8 10.40.130.13 N/A

Remarque. L’adresse IPv6 associée à l’interface eth0 est autoconfigurée et est la suivante :2a00:b82:8502:112:215:17ff:fe29:e412

où 00:15:17:29:e4:12 est l’adresse MAC de l’interface eth1.

Téléphone IP Phone SPA962

VLAN Interface Switch IPv4 IPv6

112 eth0 11 23.7.100.51/29 N/A

Mutualisation des ports sur les équipements :

VLAN Routeur Cisco 2801 serveur1.ent1.org

100 Virtualisé fa0/0.100 Dédié eth2111 Natif fa0/0 Natif eth0112 Virtualisé fa0/0.112 Virtualisé eth0.112210 Dédié fa0/1 –

7

Mots de passe :

Equipement Login Password Accès IPv4

Avocent ACS 5000 admin avocent ssh/telnet/http 10.40.130.10

Power Management admin avocent telnet consoleSwitch Cisco Catalyst 3560 cisco cisco ssh/telnet 23.7.100.33/28

Routeur Cisco Catalyst 2801 cisco cisco ssh/telnet 23.7.100.34/28

Firewall Cisco ASA5510 N/A N/A ssh/telnet 23.7.100.35/28

serveur1.ent1.org root password ssh/console 23.7.100.36/28

serveur2.ent1.org root password ssh/console 23.7.100.37/28

serveur3.ent1.org root password ssh/console 23.7.100.38/28

Nagios nagiosadmin password http 23.7.100.37/28

Cacti admin password http 23.7.100.37/28

Services de l’AS 1 :

Equipement Services

Routeur Cisco DHCPserveur1.ent1.org Apache, Asterisk, iperfserveur2.ent1.org Apache, DHCP (VLAN 999), IPSec, Nagios/Cacti, VPN (OpenVPN)serveur3.ent1.org Apache, DNS, FTP (ProFTPD), NTP

1 2 3 4 5 6 7 8

9 10 11 12 13 14 15 16AS 1

serveur3.ent1serveur1.ent1ASA5510

Cisco 2800

Catalyst 3560

serveur2.ent1 PDU-AS1

111

112

113 116

117

118

119

FIGURE 1.4 – Contrôleur de console MGMT1 de l’AS 1

8

3 AS 2 : Coeur 1

L’AS 2 est un FAI connecté directement à la première entreprise (AS 1) ainsi qu’à un second FAI (AS3).

Ce premier FAI est composé de deux routeurs, MIR et ISS. ISS est directement connecté à un routeur debordure de l’AS 3 via une liaison point à point ainsi qu’à un des routeurs de l’AS 4 (la seconde entreprise).MIR est quant-à lui simplement relié à l’AS 1. Ces deux routeurs sont directement relié aux serveurs du FAIvia un commutateur.

MIR

Catalyst 2960

serveur1.core1

serveur2.core1

VLAN 22228.5.0.0/272e70:13:0:222::/64

ISS

AS 1

AS 3 AS 4

VLAN 22128.5.0.48/30

2e70:13:0:221::/64

VLAN 21028.5.254.0/30

2e70:13:254:210::/64

VLAN 42128.5.254.8/30 (VLAN 420)2e70:13:254:420::/64

VLAN 32028.5.254.4/30

2e70:13:254:320::/64

(a) Visualisation de l’AS 2

MIR

Catalyst 2960

serveur1.core1

serveur2.core2

VLAN 20028.5.0.32/28

ISS

(b) Administration de l’AS 2

FIGURE 1.5 – AS 2

1 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

serveur1.core1eth1 eth0eth2

serveur2.core1

eth1 eth0eth2

AS 3MIR

2/01/00/1 0/0

ISS

1/1 2/01/00/1 0/0

AS 1

17 18 19

20 21 22

23 24 25 26

27 28 29 30 210

320

221

AS 2222200 210

420320

AS 4

420

999

MGMT2

120

13

FIGURE 1.6 – Commutateur AS 2

Switch Cisco Catalyst 2960

VLAN Interface Switch IPv4 IPv6

200 N/A N/A 28.5.0.33/28 N/A

Cisco Catalyst 3825 (MIR)

VLAN Interface Switch IPv4 IPv6

200 Gi0/1 11 28.5.0.34/28 N/A210 Gi0/0 12 28.5.254.1/30 2e70:13:254:210::1/64

221 Gi1/0 13 28.5.0.49/30 2e70:13:0:221::1/64

222 Gi2/0 14 28.5.0.29/27 2e70:13:0:222::fffd/64

9

Cisco Catalyst 3825 (ISS)

VLAN Interface Switch IPv4 IPv6

200 Gi0/1 17 28.5.0.35/28 N/A221 Gi1/0 19 28.5.0.50/30 2e70:13:0:221::2/64

222 Gi2/0 20 28.5.0.30/27 2e70:13:0:222::fffe/64

320 Gi0/0 18 28.5.254.5/30 2e70:13:254:320::1/64

420 Fa1/0 16 28.5.254.9/30 2e70:13:254:420::1/64

serveur1.core1.org

VLAN Interface Switch IPv4 IPv6

200 eth2 1 28.5.0.36/28 N/A222 eth0 3 28.5.0.1/27 2e70:13:0:222::1/64

999 eth1 2 10.40.130.21 N/A

serveur2.core1.org

VLAN Interface Switch IPv4 IPv6

200 eth2 4 28.5.0.37/28 N/A222 eth0 6 28.5.0.2/27 2e70:13:0:222::2/64

999 eth1 5 10.40.130.22 N/A

Mots de passe :

Equipement Login Password Accès IPv4

Avocent ACS 5000 admin avocent ssh/telnet/http 10.40.130.20

Power Management admin avocent telnet consoleSwitch Cisco Catalyst 2960 cisco cisco ssh/telnet 28.5.0.33/28

Cisco Catalyst 3825 (MIR) cisco cisco ssh/telnet 28.5.0.34/28

Cisco Catalyst 3825 (ISS) cisco cisco ssh/telnet 28.5.0.35/28

serveur1.core1.org root password ssh/console 28.5.0.36/28

serveur2.core1.org root password ssh/console 28.5.0.37/28

Nagios nagiosadmin password http 28.5.0.37/28

Cacti admin password http 28.5.0.37/28

Services de l’AS 2 :

Equipement Services

Routeur Cisco MIR (28.5.0.29/27) DHCPserveur1.core1.org Apacheserveur2.core1.org Apache, NTP, DNS (Cacti/Nagios)

1 2 3 4 5 6 7 8

9 10 11 12 13 14 15 16AS 2

serveur2.core1ISSCatalyst 2960

serveur1.core1 PDU-AS2MIR

122

123121 128

127 129

FIGURE 1.7 – Contrôleur de console MGMT2 de l’AS 2

10

4 AS 3 : Coeur 2

Ce second FAI est connecté à l’entreprise 2 par un premier routeur. Un second routeur est utilisé afin de reliédirectement le premier FAI (AS 2). Enfin un dernier routeur (routeur de cœur d’AS) est placé entre les deuxrouteurs de bordures, celui-ci a pour rôle de permettre aux clients d’accéder aux serveurs de ce FAI.

J2 J4AS 2 AS 4

J1

PSEUDOL

ProCurve 2900 HP

VLAN 33113.8.0.0/27

2d05:37:0:331::/64

VLAN 33213.8.0.48/30

2d05:37:0:332::/64

VLAN 33313.8.0.52/302d05:37:0:333::/64

VLAN 43113.8.254.0/30 (VLAN 430)2d05:37:254:430::/64

VLAN 32028.5.254.4/30

2e70:13:254:320::/64

MEDIAL

(a) Visualisation de l’AS 3

J2

MEDIAL

J4

J1

J3ProCurve 2900 HP2

PSEUDOL

ProCurve 2900 HP1

VLAN 30013.8.0.32/28

(b) Administration de l’AS 3

FIGURE 1.8 – AS 3

1 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

PSEUDOLeth1 eth0eth2

AS 2J1

0/30/20/0 0/1J2

0/30/20/0 0/1

1 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

MEDIAL

eth1 eth0eth2

AS 4J4

0/30/20/0 0/1

31 32 33

34 35 36 430

331 332 333

AS 3300

430320

HP1

HP2

999

MGMT3

80 81 82 83 84 85 86 87 130 320

92 93 94 95

J3

0/30/20/0 0/1

88 89 90 91

FIGURE 1.9 – Commutateur AS 3Routeur Juniper 1

VLAN Interface Switch IPv4 IPv6

300 ge-0/0/0 HP1 9 13.8.0.35/28 N/A331 ge-0/0/3 HP1 12 13.8.0.30/27 2d05:37:0:331::fffe/64

332 ge-0/0/1 HP1 10 13.8.0.49/30 2d05:37:0:332::1/64

333 ge-0/0/2 HP1 11 13.8.0.53/30 2d05:37:0:333::1/64

N/A lo0.0 N/A 10.255.3.1/32 N/A

Routeur Juniper 2

VLAN Interface Switch IPv4 IPv6

300 Ge-0/0/0 HP1 15 13.8.0.36/28 N/A332 Ge-0/0/1 HP1 16 13.8.0.50/30 2d05:37:0:332::2/64

320 Ge-0/0/3 HP1 18 28.5.254.6/30 (AS 2) 2e70:13:254:320::2/64 (AS 2)N/A lo0.0 N/A 10.255.3.2/32 N/A

11

Routeur Juniper 4

VLAN Interface Switch IPv4 IPv6

300 Ge-0/0/0 HP2 15 13.8.0.38/28 N/A333 Ge-0/0/1 HP2 16 13.8.0.54/30 2d05:37:0:333::2/64

430 Ge-0/0/3 HP2 18 13.8.254.1/30 2d05:37:254:430::1/64

N/A lo0.0 N/A 10.255.3.4/32 N/A

medial.core2.org

VLAN Interface Switch IPv4 IPv6

300 eth2 HP2 1 13.8.0.39/28 N/A331 eth0 HP2 3 13.8.0.1/27 2d05:37:0:331::1/64

999 eth1 HP2 2 10.40.130.32 N/A

pseudol.core2.org

VLAN Interface Switch IPv4 IPv6

300 eth2 HP1 1 13.8.0.40/28 N/A331 eth0 HP1 3 13.8.0.3/27 2d05:37:0:331::3/64

999 eth1 HP1 2 10.40.130.31 N/A

Mots de passe :

Equipement Login Password Accès IPv4

Avocent ACS 5000 admin avocent ssh/telnet/http 10.40.130.30

Power Management admin avocent telnet N/AHP ProCurve 1 root hp ssh/telnet 13.8.0.33/28

HP ProCurve 2 root hp ssh/telnet 13.8.0.34/28

Routeur Juniper 1 admin Juniper ssh/telnet 13.8.0.35/28

Routeur Juniper 2 admin Juniper ssh/telnet 13.8.0.36/28

Routeur Juniper 4 admin Juniper ssh/telnet 13.8.0.38/28

medial.core2.org root password ssh/console 13.8.0.39/28

pseudol.core2.org root password ssh/console 13.8.0.40/28

Nagios nagiosadmin password http 13.8.0.40/28

Cacti admin password http 13.8.0.40/28

Services de l’AS 3 :

Equipement Services

Routeur Juniper 1 (13.8.0.30) DHCPmedial.core2.org Apachepseudol.core2.org Apache, Cacti/Nagios, DNS, NTP

1 2 3 4 5 6 7 8

9 10 11 12 13 14 15 16AS 3

PSEUDOLJ1HP1

MEDIAL PDU-AS3J2HP2

J3

J4

131

132

133

134

135

136

137

138 139

FIGURE 1.10 – Contrôleur de console MGMT3 de l’AS 3

12

Prise en compte du routeur Juniper 3 dans la topologie

J2

MEDIAL

VLAN 33613.8.0.32/272d05:37:0:336::/64

J4

AS 2

AS 4

J1 J3 ProCurve 2900 HP2

PSEUDOL

ProCurve 2900 HP1

VLAN 33113.8.0.0/27

2d05:37:0:331::/64

VLAN 33413.8.0.88/30

2d05:37:0:334::/64

VLAN 33513.8.0.92/302d05:37:0:335::/64

VLAN 33213.8.0.80/302d05:37:0:332::/64

VLAN 33313.8.0.84/30

2d05:37:0:333::/64VLAN 430

13.8.254.0/302d05:37:254:430::/64

VLAN 32028.5.254.4/302e70:13:254:320::/64

FIGURE 1.11 – Visualisation de l’AS 3

1 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

PSEUDOLeth1 eth0eth2

AS 2J1

0/30/20/0 0/1J2

0/30/20/0 0/1

1 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

MEDIAL

eth1 eth0eth2

AS 4J3

0/30/20/0 0/1

J4

0/30/20/0 0/1

31 32 33

34 35 36 88 89 90 91 92 93 94 95 430

336

331

334

332

335

333

AS 3

300

430

320

80 81 82 83 84 85 86 87 320

999

MGMT3

130

FIGURE 1.12 – Commutateur AS 3 avec Juniper 3

13

5 AS 4 : Entreprise 2

L’AS 4 simule une entreprise plus importante que celle de l’AS 1 et avec des moyens financiers plus impor-tants.

Cette entreprise possède deux routeurs qui sont chacun connectés à un FAI différent afin d’améliorer lafiabilité de la connexion Internet (multi-homing). Bien évidement ces routeurs tout deux protégés par unfirewall matériel. Une DMZ (DeMilitarized Zone) à été mise en place dans laquelle sont installés les serveurspubliques de l’entreprise susceptible d’être accédés depuis Internet sans entrer dans le véritable réseau decette entreprise. Le réseau local de l’entreprise est constitué de deux serveurs/PC et d’un load balancer. Cedernier récupère tout le trafic sortant du réseau privé et le répartit entre les deux FAI selon la charge sur leurréseau par exemple.

AS 2

Firewall1.ent2

J2300-1

Extreme Network

serveur1.ent2

serveur3.ent2DMZ

serveur2.ent2

VLAN 4434.11.100.0/272a00:285:42:443::/64

AS 3

Firewall2.ent2

J2300-2

serveur3.ent2Load Balancer

Extreme Network

VLAN 4424.11.100.56/292a00:285:42:442::/64

VLAN 430 (géré par AS3)13.8.254.0/302d05:37:254:430::/64

VLAN 420 (géré par AS2)28.5.254.8/30

2e70:13:0:254:420::/64

VLAN 4414.11.100.48/292a00: 285:42:441::/64

VLAN 421 VLAN 431

VLAN 4444.11.100.64/28

(a) Visualisation de l’AS 4

Firewall1.ent2

J2300-1

serveur1.ent2 serveur2.ent2

Firewall2.ent2

J2300-2Extreme Network

serveur3.ent2

VLAN 4004.11.100.32/28

(b) Administration de l’AS 4

FIGURE 1.13 – AS 4

serveur1.ent2eth1 eth0eth2

serveur2.ent2

eth1 eth0eth2

serveur3.ent2eth1 eth0eth2 0/0 0/1 0/2

Firewall2.ent2 J2300-1AS 2

Port0 Port1

0/1 0/20/0

Firewall1.ent2J2300-2

Port0 Port1

40 41 42

46 47 48

49 50 51

52 53 54

55 56 57 420

430420

441 442 443

AS 4

400

421 431

AS 3

430

999

MGMT4

444

58

1 3 5 7 9 11 13 15 17 19 21 23

2 4 6 8 10 12 14 16 18 20 22 24

59

60 6171 140

FIGURE 1.14 – Commutateur AS 4

Extreme Networks Summit

VLAN Interface Switch IPv4 IPv6

400 N/A N/A 4.11.100.33/28 N/A

14

Routeur Juniper 1

VLAN Interface Switch IPv4 IPv6

400 fe-0/0/0.1 19 4.11.100.34/28 N/A441 fe-0/0/1.0 20 4.11.100.54/29 2a00:285:42:441::fffe/64

442 fe-0/0/1.1 19 4.11.100.62/29 2a00:285:42:442::fffe/64

444 fe-0/0/1.2 19 4.11.100.65/28 N/A420 fe-0/0/0.0 20 28.5.254.10/30 (AS 2) 2e70:13:254:420::2/64

Routeur Juniper 2

VLAN Interface Switch IPv4 IPv6

400 fe-0/0/0.1 21 4.11.100.35/28 N/A441 fe-0/0/1.0 22 4.11.100.53/29 2a00:285:42:441::fffd/64

442 fe-0/0/1.1 22 4.11.100.61/29 2a00:285:42:442::fffd/64

430 fe-0/0/0.0 21 13.8.254.2/30 (AS 3) 2d05:37:254:430::2/64

Firewall Juniper 1

VLAN Interface Switch IPv4 IPv6

400 eth0 10 4.11.100.36/28 N/A420 eth1 11 N/A N/A421 eth2 12 N/A N/A

Firewall Juniper 2

VLAN Interface Switch IPv4 IPv6

400 eth0 13 4.11.100.37/28 N/A430 eth1 14 N/A N/A431 eth2 15 N/A N/A

serveur1.ent2.org

VLAN Interface Switch IPv4 IPv6

400 eth2 1 4.11.100.38/28 N/A443 eth0 3 4.11.100.1/27 2a00:285:42:443::1/64

444 eth0.444 3 4.11.100.66/28 N/A999 eth1 2 10.40.130.41 N/A

serveur2.ent2.org

VLAN Interface Switch IPv4 IPv6

400 eth2 4 4.11.100.39/28 N/A443 eth0 6 4.11.100.2/27 2a00:285:42:443::2/64

999 eth1 5 10.40.130.42 N/A

serveur3.ent2.org

VLAN Interface Switch IPv4 IPv6

400 eth2.400 7 4.11.100.40/28 N/A441 eth2.441 7 4.11.100.49/29 2a00:285:42:441::1/64

442 eth1 8 4.11.100.57/29 2a00:285:42:442::1/64

443 eth0 9 4.11.100.3/27 2a00:285:42:443::3/64

999 eth1.999 9 10.40.130.43 N/A

15

Téléphone IP Phone SPA962

VLAN Interface Switch IPv4 IPv6

444 eth0 16 4.11.100.67/28 N/A

Mutualisation des ports sur les équipements concernés :

VLAN Routeur Juniper 1 Routeur Juniper 2 serveur1 serveur3

400 Virtualisé 0.1 Virtualisé 0.1 Dédié eth2 Virtualisé eth2.400441 Natif 1.0 Natif 1.0 – Natif eth2 (DMZ)442 Virtualisé 1.1 Virtualisé 1.1 – Dédié eth1 (LB)443 – – Natif eth0 Dédié eth0 (LB)444 Virtualisé 1.2 – Virtualisé eth0.444 –420 Natif 0.0 – – –430 – Natif 0.0 – –

Mots de passe :

Equipement Login Password Accès IPv4

Avocent ACS 5000 admin avocent ssh/telnet/http 10.40.130.40

Power Management admin avocent telnet consoleExtreme Networks Summit admin N/A ssh/telnet 4.11.100.33/28

Routeur Juniper 1 root Juniper ssh/telnet 4.11.100.34/28

Routeur Juniper 2 root Juniper ssh/telnet 4.11.100.35/28

Firewall Juniper 1 netscreen netscreen ssh/telnet 4.11.100.36/28

Firewall Juniper 2 netscreen netscreen ssh/telnet 4.11.100.37/28

serveur1.ent2.org root password ssh/console 4.11.100.38/28

serveur2.ent2.org root password ssh/console 4.11.100.39/28

serveur3.ent2.org root password ssh/console 4.11.100.40/28

Nagios nagiosadmin password http 4.11.100.40/28

Cacti admin password http 4.11.100.40/28

Services de l’AS 4 :

Equipement Services

serveur1.ent2.org Apache, Asterisk, IPSec, VPN (OpenVPN)serveur2.ent2.org Apache, Nagios/Cactiserveur3.ent2.org Apache, DHCP, DNS, FTP (ProFTPD), iperf, NTP

1 2 3 4 5 6 7 8

9 10 11 12 13 14 15 16AS 4

serveur2.ent2J2300-2Summit

serveur3.ent2 PDU-AS3J2300-1 Firewall1.ent2

Firewall2.ent2

serveur1.ent2

141

142

143

144

145

146

147

148 149

FIGURE 1.15 – Contrôleur de console MGMT4 de l’AS 4

16

6 Câblage des équipements

Câble AS Port source Port destination Adaptateur Couleur Droit

1 1 C3560 port 1 serveur1.ent1 port eth2 N/A Bleu Droit2 1 C3560 port 2 serveur1.ent1 port eth1 N/A Bleu Droit3 1 C3560 port 3 serveur1.ent1 port eth0 N/A Bleu Droit4 1 C3560 port 4 serveur2.ent1 port eth2 N/A Bleu Droit5 1 C3560 port 5 serveur2.ent1 port eth1 N/A Bleu Droit6 1 C3560 port 6 serveur2.ent1 port eth0 N/A Bleu Droit7 1 C3560 port 7 serveur3.ent1 port eth2 N/A Bleu Droit8 1 C3560 port 8 serveur3.ent1 port eth1 N/A Bleu Droit9 1 C3560 port 9 serveur3.ent1 port eth0 N/A Bleu Droit10 1 C3560 port 13 ASA5510 port MGMT N/A Bleu Droit11 1 C3560 port 14 ASA5510 port eth1 N/A Bleu Droit12 1 C3560 port 15 ASA5510 port eth2 N/A Bleu Droit14 1 C3560 port 19 Cisco 2800 port fa0/0 N/A Bleu Droit15 1 C3560 port 20 Cisco 2800 port fa0/1 N/A Bleu Droit17 2 C2960 port 1 serveur1.core1 port eth2 N/A Bleu Droit18 2 C2960 port 2 serveur1.core1 port eth1 N/A Bleu Droit19 2 C2960 port 3 serveur1.core1 port eth0 N/A Bleu Droit20 2 C2960 port 4 serveur2.core1 port eth2 N/A Bleu Droit21 2 C2960 port 5 serveur2.core1 port eth1 N/A Bleu Droit22 2 C2960 port 6 serveur2.core1 port eth0 N/A Bleu Droit23 2 C2960 port 11 MIR port Ge0/1 N/A Bleu Droit24 2 C2960 port 12 MIR port Ge0/0 N/A Bleu Droit25 2 C2960 port 13 MIR port Ge1/0 N/A Bleu Droit26 2 C2960 port 14 MIR port Ge2/0 N/A Bleu Droit27 2 C2960 port 17 ISS port Ge0/1 N/A Bleu Droit28 2 C2960 port 18 ISS port Ge0/0 N/A Bleu Droit29 2 C2960 port 19 ISS port Ge1/0 N/A Bleu Droit30 2 C2960 port 20 ISS port Ge2/0 N/A Bleu Droit13 2 C2960 port 16 ISS port Fa0/0 N/A Bleu Droit31 3 HP1 port 1 PSEUDOL port eth2 N/A Bleu Droit32 3 HP1 port 2 PSEUDOL port eth1 N/A Bleu Droit33 3 HP1 port 3 PSEUDOL port eth0 N/A Bleu Droit34 3 HP2 port 1 MEDIAL port eth2 N/A Jaune Droit35 3 HP2 port 2 MEDIAL port eth1 N/A Jaune Droit36 3 HP2 port 3 MEDIAL port eth0 N/A Jaune Droit40 4 Summit port 1 serveur1.ent2 port eth2 N/A Bleu Droit41 4 Summit port 2 serveur1.ent2 port eth1 N/A Bleu Droit42 4 Summit port 3 serveur1.ent2 port eth0 N/A Bleu Droit46 4 Summit port 4 serveur2.ent2 port eth2 N/A Bleu Droit47 4 Summit port 5 serveur2.ent2 port eth1 N/A Bleu Droit48 4 Summit port 6 serveur2.ent2 port eth0 N/A Bleu Droit49 4 Summit port 7 serveur3.ent2 port eth2 N/A Bleu Droit50 4 Summit port 8 serveur3.ent2 port eth1 N/A Bleu Droit51 4 Summit port 9 serveur3.ent2 port eth0 N/A Bleu Droit52 4 Summit port 10 Firewall1.ent2 port 0/0 (eth0) N/A Bleu Droit53 4 Summit port 11 Firewall1.ent2 port 0/1 (eth1) N/A Bleu Droit54 4 Summit port 12 Firewall1.ent2 port 0/2 (eth2) N/A Bleu Droit55 4 Summit port 13 Firewall2.ent2 port 0/0 (eth0) N/A Bleu Droit

Continue sur la page suivante

17

TABLE 1.1 – continué de la page précédenteCâble AS Port source Port destination Adaptateur Couleur Droit

56 4 Summit port 14 Firewall2.ent2 port 0/1 (eth1) N/A Bleu Droit57 4 Summit port 15 Firewall2.ent2 port 0/2 (eth2) N/A Bleu Droit58 4 Summit port 19 J2300-1 PORT0 (fe-0/0/0) N/A Blanc Droit59 4 Summit port 20 J2300-1 PORT1 (fe-0/0/1) N/A Blanc Droit60 4 Summit port 21 J2300-2 PORT0 (fe-0/0/0) N/A Blanc Droit61 4 Summit port 22 J2300-2 PORT1 (fe-0/0/1) N/A Blanc Droit70 1 C3560 port 11 IP Phone 1 port WAN N/A Jaune Droit71 4 Summit port 16 IP Phone 2 port WAN N/A Jaune Droit80 3 HP1 port 9 J1 port Ge-0/0/0 N/A Gris Croisé81 3 HP1 port 10 J1 port Ge-0/0/1 N/A Gris Croisé82 3 HP1 port 11 J1 port Ge-0/0/2 N/A Gris Croisé83 3 HP1 port 12 J1 port Ge-0/0/3 N/A Gris Croisé84 3 HP1 port 15 J2 port Ge-0/0/0 N/A Gris Croisé85 3 HP1 port 16 J2 port Ge-0/0/1 N/A Gris Croisé86 3 HP1 port 17 J2 port Ge-0/0/2 N/A Gris Croisé87 3 HP1 port 18 J2 port Ge-0/0/3 N/A Gris Croisé92 3 HP2 port 15 J4 port Ge-0/0/0 N/A Gris Croisé93 3 HP2 port 16 J4 port Ge-0/0/1 N/A Gris Croisé94 3 HP2 port 17 J4 port Ge-0/0/2 N/A Gris Croisé95 3 HP2 port 18 J4 port Ge-0/0/3 N/A Gris Croisé110 1 C3560 port 18 MGMT1 port 10/100 N/A Bleu Droit111 1 MGMT1 port 1 C3560 port console ADB0025 Blanc Droit112 1 MGMT1 port 2 Cisco 2800 port console ADB0025 Noir Droit113 1 MGMT1 port 3 ASA5510 port console ADB0025 Blanc Droit116 1 MGMT1 port 6 serveur1.ent1 port console ADB0039 Blanc Droit117 1 MGMT1 port 7 serveur2.ent1 port console ADB0039 Blanc Droit118 1 MGMT1 port 8 serveur3.ent1 port console ADB0039 Blanc Droit119 1 MGMT1 port 16 PDU-AS1 port console N/A Noir Droit120 2 C2960 port 7 MGMT2 port 10/100 N/A Bleu Droit121 2 MGMT2 port 1 C2960 port console ADB0025 Blanc Droit122 2 MGMT2 port 2 MIR port console ADB0025 Bleu Droit123 2 MGMT2 port 3 ISS port console ADB0025 Bleu Droit127 2 MGMT2 port 7 serveur1.core1 port console ADB0039 Blanc Droit128 2 MGMT2 port 8 serveur2.core1 port console ADB0039 Blanc Droit129 2 MGMT2 port 16 PDU-AS2 port console N/A Noir Droit130 3 HP1 port 21 MGMT3 port 10/100 N/A Bleu Droit131 3 MGMT3 port 1 HP1 port console (ADB0039) Bleu clair Rollover132 3 MGMT3 port 2 HP2 port console (ADB0039) Bleu clair Rollover133 3 MGMT3 port 3 J1 port console ADB0025 Bleu Droit134 3 MGMT3 port 4 J2 port console ADB0025 Bleu Droit135 3 MGMT3 port 5 J3 port console ADB0025 Bleu Droit136 3 MGMT3 port 6 J4 port console ADB0025 Bleu Droit137 3 MGMT3 port 7 PSEUDOL port console ADB0039 Blanc Droit138 3 MGMT3 port 8 MEDIAL port console ADB0039 Blanc Droit139 3 MGMT3 port 16 PDU-AS3 port console N/A Noir Droit140 4 Summit port 17 MGMT4 port 10/100 N/A Bleu Droit141 4 MGMT4 port 1 Summit port console (ADB0039) Blanc Rollover142 4 MGMT4 port 2 J2300-1 port console ADB0025 Bleu Droit143 4 MGMT4 port 3 J2300-2 port console ADB0025 Bleu Droit

Continue sur la page suivante

18

TABLE 1.1 – continué de la page précédenteCâble AS Port source Port destination Adaptateur Couleur Droit

144 4 MGMT4 port 4 Firewall1.ent2 port console ADB0025 Blanc Droit145 4 MGMT4 port 5 Firewall2.ent2 port console ADB0025 Blanc Droit146 4 MGMT4 port 6 serveur1.ent2 port console ADB0039 Blanc Droit147 4 MGMT4 port 7 serveur2.ent2 port console ADB0039 Blanc Droit148 4 MGMT4 port 8 serveur3.ent2 port console ADB0039 Blanc Droit149 4 MGMT4 port 16 PDU-AS4 port console N/A Noir Droit210 1/2 C3560 port 23 C2960 port 24 N/A Bleu Droit320 2/3 C2960 port 23 HP1 port 24 N/A Bleu Droit420 2/4 C2960 port 22 Summit port 23 N/A Bleu Droit430 3/4 HP2 port 24 Summit port 24 N/A Bleu Droit999 1 C3560 port 22 gate-net port eth3 N/A Bleu Droit100 – ROT26 11#320 gate-net port eth4 N/A Bleu Droit

Remarque. L’adresse MAC du port eth4 de gate-net est 00:90:0B:00:A1:09.

7 Connexion à la plateforme

Se connecter à la passerelle sphinx.lip6.frssh <login>@sphinx.lip6.fr

Se connecter à la gateway gate-net.rsr.lip6.fr :ssh [<login>@]gate-net.rsr.lip6.fr

Une fois connecté à la gateway gate-net, les contrôleurs de console (ACS) relatifs à chaque AS ont lesadresses IP suivantes :

AS Adresse IP du contrôleur de console

AS 1 10.40.130.10

AS 2 10.40.130.20

AS 3 10.40.130.30

AS 4 10.40.130.40

Donc pour se connecter à un ACS depuis la gateway gate-net :ssh [email protected]: avocent

Pour se connecter à un équipement depuis l’ACS, utiliser la commande ts_menu de l’ACS qui affiche lesdifférents équipements connectés ainsi que leurs noms.

Remarque. Pour se connecter aux contrôleurs de console physiquement, utiliser un câble croisé, le branchersur l’interface 10/100BaseT de l’ACS et se donner l’adresse IP non réservée (10.40.130.50 par exemple).

Il faut utiliser des câbles croisés pour relier les ACS avec les interfaces de la gateway gate-net.

Pour obtenir les <login>, s’adresser aux administrateurs système qui administrent le réseau du LIP6.

La gateway gate-net est connectée sur le réseau du LIP6 à partir de l’interface eth4.

Il est possible de se connecter à une contrôleur de console de l’AS x directement avec la commande suivante :ssh -t <login>@sphinx.lip6.fr "ssh -t gate-net.rsr.lip6.fr 'ssh admin@10

.40.130.x0'"

19

7.1 Connexion physique à la plateforme

Un serveur DHCP a été mis en place. Il s’agit du serveur serveur2.ent1.org, sur l’interface eth1 àl’adresse IPv4 10.40.130.12.

Pour se connecter à la plateforme, se connecter à l’aide d’un câble droit sur l’un des ports libres des switchsdes différents AS.

La configuration devra être effective à l’aide de DHCP.

Remarque. L’instance DHCP définie sur serveur2.ent1.org est la suivante (fichier /etc/dhcp/dhcpd.conf) :subnet 10.40.130.0 netmask 255.255.255.0 {

range 10.40.130.100 10.40.130.200;option routers 10.40.130.2;

}

Bien configurer le serveur DHCP pour fonctionner sur le port eth1 (éditer le fichier /etc/default/isc-dhcp-server) :INTERFACES="eth1"

7.2 Accès à distance aux contrôleurs de console (ACS) sans mot de passe

Il y a plusieurs sauts avant d’atteindre les contrôleurs de console :– Le serveur sphinx.lip6.fr– Le serveur gate-net.rsr.lip6.fr– Les contrôleurs de console 10.40.130.x0

Dans la suite, nous allons éditer au fur-et-à-mesure le fichier ~/.ssh/config afin de simplifier encore plusla connexion SSH aux serveurs distants.Nous allons commencer par les lignes suivantes qui concernent tous les hôtes :Host *

ServerAliveInterval 120ServerAliveCountMax 30

Pour se connecter en SSH à un hôte distant configuré dans le fichier ~/.ssh/config, il suffit de taper lacommande : ssh <host>

Configuration pour le serveur Sphinx

Il faut créer un couple clé publique/clé privée à l’aide de la commande ssh-keygen sans taper de passphrse,et en choisissant le nom .ssh/id_rsa_sphinx :ssh-keygen -t rsa -f .ssh/id_rsa_sphinx

Une fois les clés créées, deux fichiers sont créés :– .ssh/id_rsa_sphinx qui correspond à la clé privée,– .ssh/id_rsa_sphinx.pub qui correspond à la clé publique.

Ajouter alors la clé publique .ssh/id_rsa_sphinx.pub sur le serveur sphinx.lip6.fr, dans le fichier.ssh/authorized_keys2 :scp ~/.ssh/id_rsa_sphinx.pub <login>@sphinx.lip6.fr:.ssh/authorized_keys_ssh <login>@sphinx.lip6.frcat .ssh/authorized_keys_ >> .ssh/authorized_keys2 && rm .ssh/authorized_keys_

La première connexion sans mot de passe vers le serveur sphinx.lip6.fr devrait être fonctionnelle enutilisant le fichier .ssh/id_rsa_sphinx :ssh -i .ssh/id_rsa_sphinx <login>@sphinx.lip6.fr

Il est alors possible d’ajouter les informations concernant le serveur sphinx.lip6.fr dans le fichier ~/.ssh/config :

20

Host sphinxuser <login>port 22hostname sphinx.lip6.frIdentityFile ~/.ssh/id_rsa_sphinx

Il est possible de tester la connexion SSH avec l’hôte sphinx.lip6.fr : ssh sphinx.

Configuration pour le serveur Gate-net

Pour se connecter sur le serveur gate-net.rsr.lip6.fr, il suffit de faire la même procédure que sur leserveur sphinx.lip6.fr :sphinx$ ssh-keygen -t rsa -f .ssh/id_rsa_gate-netsphinx$ cat .ssh/id_rsa_gate-net.pub >> .ssh/authorized_keys2

Tester ensuite la connexion vers gate-net.rsr.lip6.fr :sphinx$ ssh -i .ssh/id_rsa_gate-net <login>@gate-net.rsr.lip6.fr

Remarque. Les deux serveur sphinx.lip6.fr et gate-net.rsr.lip6.fr partagent le même systèmede fichiers NFS, de ce fait, les blocs de commandes suivants sont équivalents :sphinx$ cat >> .ssh/authorized_keys2

sphinx$ scp ~/.ssh/id_rsa_sphinx.pub <login>@sphinx.lip6.fr:.ssh/authorized_keys_

sphinx$ ssh <login>@sphinx.lip6.frsphinx$ cat .ssh/authorized_keys_ >> .ssh/authorized_keys2 && rm .ssh/

authorized_keys_

Il est alors possible d’ajouter les lignes suivantes dans le fichier ~/.ssh/config qui correspondent à l’hôtegate-net.rsr.lip6.fr :Host gate

user <login>port 22hostname gate-net.rsr.lip6.frProxyCommand ssh -W %h:%p sphinxIdentityFile ~/.ssh/id_rsa_gate-net

Remarque. Le fichier d’identification (ou clé privée) ~/.ssh/id_rsa_gate-net se trouve sur votre or-dinateur, en local. Il faudra donc la récupérer sur votre ordinateur à l’emplacement correspondant :scp <login>@sphinx.lip6.fr:~/.ssh/id_rsa_gate-net ~/.ssh/

Configuration sur les contrôleurs de console (Avocent ACS)

Sur le serveur gate-net.rsr.lip6.fr, créer un nouveau couple de clés à l’aide de la commande :gate-net$ ssh-keygen -t rsa -f .ssh/id_rsa_acs

Il faut alors transférer la clé publique .ssh/id_rsa_acs.pub sur les contrôleurs de console à l’aide de lacommande suivante :gate-net$ scp ~/.ssh/id_rsa_acs.pub [email protected]:~/.ssh/authorized_keys_gate-net$ ssh [email protected][ACS]$ cat .ssh/authorized_keys_ >> .ssh/authorized_keys && rm .ssh/

authorized_keys_

Remarque. Sur les contrôleurs de console, le dossier ~/.ssh n’est pas forcément existant. Pour ce faire, seconnecter sur la console en admin, créer le dossier ~/.ssh et mettre les droits qui conviennent :[ACS]$ chmod go-w ~/[ACS]$ chmod 700 ~/.ssh[ACS]$ chmod 600 ~/.ssh/authorized_keys

Tester ensuite la connexion SSH avec le contrôleur de console :gate-net$ ssh -i .ssh/id_rsa_acs [email protected]

21

Si des problèmes persistent (permission denied, prompt du mot de passe), éditer le fichier /etc/ssh/sshd_config avec vi en root et décommenter les lignes suivantes :RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keys

Forcer l’authentification avec un mot de passe (attention, l’option ChallengeResponseAuthenticationdoit être positionnée à yes) :ssh -o PubkeyAuthentication=no <login>@<server>:<port>

Remarque. Le contrôleur de console est également accessible en telnet

Redémarrer le service SSH : kill -HUP `cat /var/run/sshd.pid`

Il est alors possible d’éditer le fichier ~/.ssh/config en ajoutant les informations correspondant aucontrôleur de console :Host asx

user adminport 22hostname 10.40.130.10ProxyCommand ssh -W %h:%p gateIdentityFile ~/.ssh/id_rsa_acs

Remarque. De même que pour le serveur gate-net.rsr.lip6.fr, il faut que le fichier ~/.ssh/id_rsa_acsse trouve sur votre ordinateur, en local. De ce fait, il est possible de le récupérer depuis le serveur sphinx.lip6.fr (les deux serveurs utilisent le même serveur de fichiers NFS) :scp <login>@sphinx.lip6.fr:~/.ssh/id_rsa_acs ~/.ssh/

Par ailleurs, il est possible d’utiliser le même couple de clés pour tous les contrôleurs de console.

Remarque pour les utilisateurs de Windows

Pour se connecter en SSH sur un serveur distant, il existe le programme PuTTY. Il n’est donc pas possibled’effectuer la manipulation expliquée précédemment sur PuTTY. De ce fait, il faut se connecter au serveursphinx.lip6.fr et créer un fichier de configuration ~/.ssh/config qui permettra à l’utilisateur de seconnecter sur le serveur gate-net.rsr.lip6.fr et les différents contrôleurs de console.

Une fois connecté sur le serveur sphinx.lip6.fr, créer le fichier ~/.ssh/config de configuration SSHqui contient les lignes suivantes (le serveur est assez restrictif, et ne propose pas l’option -W pour SSH, etne dispose pas de netcat non plus) :Host gate

user <login>port 22hostname gate-net.rsr.lip6.frIdentityFile ~/.ssh/id_rsa_gate-net

Host as1user adminport 22hostname 10.40.130.10ProxyCommand ssh gate 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'IdentityFile ~/.ssh/id_rsa_acs

Host as2user adminport 22hostname 10.40.130.20ProxyCommand ssh gate 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'IdentityFile ~/.ssh/id_rsa_acs

Host as3user adminport 22hostname 10.40.130.30

22

ProxyCommand ssh gate 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'IdentityFile ~/.ssh/id_rsa_acs

Host as4user adminport 22hostname 10.40.130.40ProxyCommand ssh gate 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'IdentityFile ~/.ssh/id_rsa_acs

Les deux couples de clés (clé publique, clé privée) id_rsa_gate-net et id_rsa_acs ont été générés àl’aide de la commande ssh-keygen -t rsa :sphinx$ ssh-keygen -t rsa -f .ssh/id_rsa_gate-netsphinx$ ssh-keygen -t rsa -f .ssh/id_rsa_acs

Par ailleurs, la clé publique id_rsa_gate-net.pub aura été ajoutée dans le fichier ~/.ssh/authorized_keys2du serveur sphinx.lip6.fr (qui utilise le même système de fichier NFS que gate-net.rsr.lip6.fr)qui contient l’ensemble des clés publiques des hôtes autorisées à se connecter à ce compte par l’intermé-diaire de RSA :sphinx$ cat ~/.ssh/id_rsa_gate-net.pub >> .ssh/authorized_keys2

Enfin, la clé publique id_rsa_acs aura été ajoutée au fichier ~/.ssh/authorized_keys des contrôleursde console à l’aide de la commande scp :gate-net$ scp ~/.ssh/id_rsa_acs.pub [email protected]:~/.ssh/authorized_keys_gate-net$ ssh [email protected][ACS]$ cat .ssh/authorized_keys_ >> .ssh/authorized_keys && rm .ssh/

authorized_keys_

Remarque. Le répertoire ~/.ssh doit être en mode 700 et les fichiers contenant les clés publiques ~/.ssh/authorized_keys* doivent être en mode 600.

Il est alors possible de se connecter directement aux contrôleurs de console, sans avoir ) taper de mot depasse depuis le serveur sphinx.lip6.fr en ayant une connexion transparente au serveur intermédiairegate-net.rsr.lip6.fr :ssh asX

23

CHAPITRE2Généralités sur les équipements

1 Introduction sur protocoles de base

1.1 Généralités sur les VLANs

Afin de créer plusieurs sous-réseaux dans les AS, nous utiliserons des VLANs (Virtual Local Area Network)qui permettent de créer des sous-réseaux virtuels au niveau d’un commutateur.

Standard 802.1Q (IEEE) : taille de l’entête de 4 octets, permet de supporter au maximum 4094 VLANs enmode trunk.

DestMAC

SourceMAC

Type802.1Q802.1Q

266 4

DestMAC

SourceMAC

TypeUntagged

Terminologie :– Trunking : une même connexion physique peut supporter plusieurs VLANs– Native VLAN : par défaut, les trames de ce VLAN sont untagged quand elles sont transmises dans un

trunk.– Access VLAN : le VLAN auquel un access port est assigné.– Voice VLAN : si configuré, il permet d’activer un trunking minimal pour supporter le trafic de voix, en

plus du trafic de données sur un access port.

1.2 IPv6

Dans le but d’avoir une plateforme évolutive, nous allons utiliser à la fois IPv4 et IPv6. Le protocole IPv6est configuré pour tous les VLANs, sauf celui d’administration (pour l’AS x, il s’agit du VLAN x00).

8 16 24 32

Ver Tra�c Class Flow Label

Payload Length Next Header Hop Limit

Source Address

Destination Address

Global unicast

Global Pre�x Subnet Interface ID

48 16 64Link-local unicast

Interface ID

4646Multicast

Group IP

Flag

s

Scop

e

1128 4 4

FE80 : : /64

FF

Entête IPv6 (de taille 40 octets) :– Version (4 bits) : toujours positionné à 6.– Traffic Class (8 bits) : une valeur de DSCP pour la QoS.– Flow Label (20 bits) : identifie les flots uniques (optionnel).

24

– Payload Length (16 bits) : longueur du payload en octets.– Next Header (8 bits) : entête ou protocole encapsulé (suivant).– Hop Limit (8 bits) : similaire au champ TTL Time To Live de IPv4.– Source Address (128 bits) : adresse IP de la source.– Destination Address (128 bits) : adresse IP de la destination.

Type des adresses IPv6 :– Unicast : communication un-à-un.– Multicast : communication un-à-plusieurs.– Anycast : une adresse configurée sur plusieurs équipements.

EUI-64

MAC 00 0a 27 5c 88 19

02 0a 27 � fe 5c 88 19

Formation de l’identifiant EUI-64 à partir de l’adresse MAC :– Insérer 0xfffe entre les deux moitiés de l’adresse MAC– Positionner le 7e bit (universal/loacl flag) à 1.

Préfixes réservés::/0 Default route::/128 Unspecified::1/128 LoopbackFC00::/7 Unique localFE80::/10 Link-local unicastFF00::/8 Multicast

Multicast scopes

1 Interface-local2 Link-local4 Admin-local5 Site-local8 Org-localE Global

Extention Headers :

0 Hop-by-hop Options Information additionnelle qui doit être examinée par chaquerouteur du chemin

43 Routing Routage à la source44 Fragment Inclus quand un paquet a été fragmenté par la source50 Encapsulating Security Payload

(ESP)Permet le chiffrement du payload (IPSec)

51 Authentication Header (AH) Permet l’authentification du paquet (IPSec)60 Destination Options Information additionnelle qui ne concerne que la destination

25

2 Rapide prise en main des équipements

2.1 Comparaison de commandes entre Cisco IOS et Juniper JunOS

Cisco IOS Juniper JunOS

Passer en mode configuration :

enableconf[igure] t[erminal] # conf t

clicongure

Voir la configuration :

[do] show run[ning-config] show configuration

Remonter dans l’arborescence :

exit uptop # racine de l'arborescence

Sauvegarder les changements :

wr[ite] me[mory] # wr me commit checkcommit

Equivalent de la commande grep :

grep <motif> match <motif># eg. [run] show route |match bgp

Revenir dans les configurations enregistrées :

configure replace target-url [list] [force] [time seconds] [nolock]

rollback

Exécuter une commande dans l’arborescence :

do <commande> run <commande>

Supprimer une entrée :

no <commande> delete <commande>

Définir un nom à l’équipement :

hostname <device name> run <commande>

Obtenir la version de l’équipement :

show versionshow hardware

show versionshow system <option>

Obtenir les logs de l’équipement :

show logging show log messages

Montrer le statut des interfaces configurées pour IP :

show ip interface brief show interface terse

Montrer la configuration, le statut et les statistiques des interfaces :

show interface [<interface>] show interfaces [<interface>] detail

26

Afficher les informations concernant un port physique de l’équipement :

show controller <interface> show interfaces <interface> extensive

Afficher un résumé de la table de routage :

show ip route show route

Vérifier si une destination est atteignable :

ping dest ping dest rapid # for cisco like outputping dest # for unix like output

2.2 Cisco IOS

Visualiser les configurations existantes :Switch# show vlan [id <vlan id>]Switch# show interface [status | switchport]Switch# show interface trunkSwitch# show running-config [int <interface>]

Création d’un VLAN :Switch(config)# vlan <vlan id>Switch(config-vlan)# name <vlan name>

Supprimer un VLAN :Switch(config)# no vlan <vlan id>

Configuration access port :Switch(config)# interface <interface>Switch(config-if)# switchport mode accessSwitch(config-if)# switchport nonegotiateSwitch(config-if)# switchport access vlan <vlan id>Switch(config-if)# switchport voice vlan <voice vlan id>

Variante trunk port :Switch(config-if)# switchport mode trunkSwitch(config-if)# switchport trunk encapsulation dot1QSwitch(config-if)# switchport trunk allowed vlan <vlan0, vlan2-vlan3>Switch(config-if)# switchport trunk native vlan <native vlan>

Créer une interface virtuelle à un VLAN :Switch(config)# interface <interface>.<vlan id>Switch(config-if)# encapsulation dot1Q <vlan id>

Port mirroring sur une interface :Switch(config)# monitor session <session id> source {vlan <vlan id> |

interface <interface>}Switch(config)# monitor session <session id> destination interface <interface>

Copier en FTP les fichiers de configuration (switch ou routeur) :Router# configure terminalRouter(config)# ip ftp username adminftpRouter(config)# ip ftp password passwordRouter(config)# endRouter# copy running-config ftp:! Address or name of remote host []? 4.11.100.3

27

2.3 Juniper JunOS (routeurs)

Afficher les commandes liés à une configuration :show | display set [relative]

Le mot-clé relative permet d’afficher les commandes à faire depuis le menu contextuel courant.

Comparer la configuration actuelle avec une configuration antérieure :show |compare rollback <1-9>

– Désactiver une commande : deactivate <command>

– Activer une commande : activate <command>

– Redémarrer le routeur Juniper : request system reboot

– Arrêter le routeur Juniper : request system poweroff

Configuration de l’adressage IPv6 sans état autonome ou SLAAC (Stateless Address Autoconfiguration).Les serveurs construisent ainsi leur adresse avec le préfixe ::IID/64 (où IID correspond à l’identifiantd’interface EUI-64)edit protocols router-advertisement interface <interface>set prefix <IID>::/64 # construit àpartir de cette adresseset no-managed-configuration # mettre en place autoconfiguration (flag M=0)set no-other-stateful-configuration # pas serveur DHCP sur réseau (flag O=0)

Monter une clé USB formatée en FAT 16/32 :user@router> start shell user rootroot@router% mount_msdos /dev/da0s1 /mntroot@router% ls /mnt

Remarque. Il est possible de copier le système de fichier sur la clé USB de la manière suivante :cp /confif/juniper.conf.gz /mnt

Ou bien : utiliser FTP pour envoyer les fichier sur les serveurs des entreprises 1 et 2 :ftp serveur3.ent<1,2>.orgConnected to 4.11.100.3.220 ProFTPD 1.3.3a Server (ftp-ent2) [::ffff:4.11.100.3]Name (4.11.100.3:root): adminftp331 Mot de passe requis pour adminftpPassword: <password>ftp> send juniper.conf.gzftp> exit

Remarque. Le dossier FTP cible doit être accessible par tout le monde : chmod 777 .

2.4 Juniper ScreenOS (firewalls)

Configuration de l’interface d’administration

Si eth0/z est l’interface reliée au réseau d’admin, alors :set interface eth0/z ip <firewall IP on admin network>/<subnet mask>

Pour tester la connexion :set interface eth0/z manage ping

Activer SNMP sur l’interface :Set interface eth0/z manage snmp

Configuration du firewall en mode “transparent”

Soit vlan1 le VLAN par défaut.set interface vlan1 ip <point-to-point link subnet IP>/<subnet mask>set vrouter trust-vr route <trust zone network IP>/<network mask> interface <

router internal IP> metric 1

28

Remarque. Il faut d’abord enlever les interfaces des bgroup par défault.set interface ethernet0/x ip 0.0.0.0/0 # ethernet0/x : -> zone trustset interface ethernet0/x zone v1-trustset interface ethernet0/y ip 0.0.0.0/0 # ethernet0/y : -> extérieurset interface ethernet0/y zone v1-untrustset vrouter trust-vr route 0.0.0.0/0 interface vlan1 gateway <router external

IP> metric 1

Polices (policies) :set policy from <zone 1> to <zone 2> <source address | any > <dest address |

any > <service name> < permit | deny | reject | tunnel >

Sauvegarder la configuration : save config

Configurer SNMP :set snmp community public Read-Onlyset snmp name firewall1set snmp location Parisset snmp contact "Olivier Fourmaux"

2.5 Extreme Networks Summit

Afficher la configuration : show configuration

Créer un VLAN :create vlan <vlan name>

Ajouter un tag (label) à un VLAN :configure vlan <vlan name> tag <vlan num>

Ajouter/supprimer des ports au VLAN :configure vlan <vlan name> <add|del> ports <port1>, <port2> <tagged|untagged>

Assigner une IP à un VLAN :configure valn <vlan name> ip <vlan IP> <vlan mask>

Activer le PoE (Power over Ethernet) sur tous les ports [un port] :enable inline-power [port <port>]

Désactiver le PoE (Power over Ethernet) sur tous les ports [un port] :disable inline-power [port <port>]

Configuration de SNMP :configure snmp sysName Switch-AS4configure snmp sysLocation Parisconfigure snmp sysContact "Olivier Fourmaux"configure snmp add community readonly public

Configuration du port mirroring :config mirroring {add | delete} ports <portlist>disable mirroringenable mirroring to <port> taggedshow mirroring # Montrer la configuration de port mirroring

2.6 HP ProCurve

Le HP ProCurve fournit par défaut une interface “graphique”. Un menu CLI (Command-Line Interface) estcependant accessible.

Menu de configuration :configure

Sortir du contexte actuel :

29

exit

Sauvegarde des configurations effectuées :write memory

Montrer les VLANs configurées :show vlans

Configurer l’adresse IP (prendre soin de rentrer dans le VLAN auparavant) :ip address <IP address>/<prefix>

Marquage 802.1q des ports pour qu’un port puisse supporter plusieurs VLANs (depuis le menu “graphi-que”) : 7. VLAN Menu > 3. VLAN Port AssignmentMarquer les VLANs associés aux ports souhaités par Tagged ; le VLAN natif est marqué par Untagged.Prendre bien soin d’assigner le VLAN Default à No pour ces ports-ci.

2.7 Serveur sous Debian

Adresse IP

Modification de l’adresse IP de la machine :vim /etc/network/interfaces/etc/init.d/networking restart # prise en compte des paramètres changés

Différentes configurations pour les interfaces :– Configuration statique : iface <interface name>inet static

– Configuration dynamique (avec DHCP) : iface <interface name>inet dhcp

– Configuration pour IPv6 : iface <interface name>inet6 {static | dhcp}

– Configuration automatique au démarrage du serveur : auto <interface name>

Commandes pour les interfaces :– Afficher les interfaces actives : ifconfig (option -a pour afficher toutes les interfaces)– Activer une interface : ifup <interface>

– Désactiver une interface : ifdown <interface>

Load Balancer

ip route add default scope global nexthop via 4.11.100.61 weight 1 nexthop via4.11.100.62 weight 1

Ajout d’une règle de routage qui permet de choisir aléatoirement l’une des deux passerelles :

– 4.11.100.61 : routeur Juniper 2– 4.11.100.62 : routeur Juniper 1

Remarque. A chaque fois que les interfaces sont modifiées ou que le serveur redémarre, il se peut quela règle par défaut ne soit plus présente (vérifier avec la commande ip route). Pour ce faire, retaper lacommande ci-dessus. Sinon, les serveurs de l’AS 4 ne seront plus accessibles et ne pourront plus accéder àl’ensemble du réseau.

VLANs

Il est possible d’associer une interface donnée à plusieurs VLANs différents.

Installer l’application vlan : apt-get install vlan

Configuration des VLANs :vconfig add <interface> <vlan tag>ifconfig <interface>.<vlan tag> up

Editer le fichier /etc/network/interfaces pour ajouter le VLAN à l’interface correspondante :

30

Accès à Internet

Connecter un serveur à Internet (via la gateway gate-net).

Le serveur est connecté au VLAN 999 par l’interface eth1. Le VLAN 999 permet aux serveurs d’accéderà Internet à l’aide d’un adresse privé de classe A.

Changer l’adresse IP du port eth1 du serveur pour correspondre à l’adresse IP du port de la gateway(10.40.130.2). Editer le fichier /etc/network/interfaces :auto eth1iface eth1 inet static

address 10.40.130.xy # serveur dans AS xnetmask 255.0.0.0

Activer l’interface eth1 : ifup eth1

Mettre à jour le système pour prendre en compte le proxy 10.40.130.2 (ie. l’adresse IP de l’interfaceeth4 de la gateway gate-net) :export http_proxy="http://10.40.130.2:8080"export https_proxy="http://10.40.130.2:8080"

Remarque. Attention, cette règle ne sera valide que pour la session associée au terminal (pour une validitéprolongée, placer ces deux lignes dans ~/.bashrc ou dans le fichier /etc/profile).

Port série

Accéder à un serveur Debian sur le port série (ie. configuration du serveur pour y accéder depuis l’ACS) :– Dans le fichier /etc/default/grub :GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"GRUB_TERMINAL=serialGRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --

stop=1"

– Dans le fichier /etc/inittab :T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

– Entrer la commande : update-grub– Reboot du serveur.

Dans le cas d’un autre serveur sous un autre système d’exploitation :– Dans le fichier /etc/inittab, au-dessus de la ligne 1:2345:respawn..... :T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100

– Dans le fichier /boot/grub/menu.lst (ou le fichier grub.conf s’il n’existe pas), en-dessous descommentaires parlant de “password md5” au début du fichier :serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1terminal --timeout=10 serial console

– Dans les entrées grub du même fichier, tout en bas du fichier, à la fin de la ligne kernel :console=tty0 console=ttyS0,9600n8

– Reboot du serveur.

Remarque. Pour accéder à un équipement à l’aide du port série, utiliser la commande screen :screen /dev/ttyS0# Quitter : CTRL+A MAJ+D MAJ+D

Pour installer screen : visiter l’URL http://packages.debian.org/squeeze/screen et télé-charger l’archive qui correspond (pour nous : architecture amd64).Installer l’archive <package>.deb : sudo dpkg -i <package>.deb

31

Commande apt-get

Désactiver le CD-ROM comme source principale de apt-get.Editer le fichier /etc/apt/sources.list : [sudo] vim /etc/apt/sources.list

Commenter la ligne commençant par deb cdrom (# devant).

Ajouter les sources :deb http://ftp.debian.org/debian/ squeeze-updates main contribdeb http://http.fr.debian.org/debian/ squeeze contrib non-free maindeb-src http://http.fr.debian.org/debian/ squeeze contrib non-free maindeb-src http://ftp.debian.org/debian/ squeeze-updates main contrib

Mettre la jour la base de données locale des paquets de apt-get : apt-get update

Wireshark

Wireshark est un logiciel permettant de capturer du trafic sur des interfaces.

– Installation de Wireshark : sudo apt-get install wireshark

– Lancement de Wireshark : gksu wireshark (en mode root pour pouvoir accéder aux interfaces).

Configuration du logiciel pour lister toutes les interfaces en mode user :– Re-configuration de Wireshark : dpkg-reconfigure wireshark-common

– Positionner le curseur sur “OUI” (pour autoriser tous les utilisateurs à accéder aux interfaces)– Ajouter les droits d’exécution pour les users sur le fichier /usr/bin/dumpcap :sudo chmod +x /usr/bin/dumpcap

– Lancer Wireshark depuis le lanceur d’application ou la commande wireshark

32

2.8 Avocent ACS 5016

Contrôleur de consoles (ACS : Advanced Controller System) de la série ACS 5000 comportant 16 ports RJ45permettant, une fois reliés aux ports console des équipements, de les contrôler. Ils sont au nombre de quatre,un pour chaque système autonome et sont reliés au VLAN 999 présenté dans le chapitre 1.

Le schéma suivant présente les branchements effectués entre le contrôleur de console MGNT1 et les équipe-ments, ainsi que les branchements avec le power unit 1 pour l’AS 1.

Serveur1.Ent1 Serveur2.Ent1 Serveur3.Ent1Catalyst 3560 Catalyst 2800 ASA5510

MGMT1Liaison Serie

Power Unit 1

Branchement prise de courant

FIGURE 2.1 – Intégration du contrôleur de console MGNT1 dans l’AS 1

Pour contrôler un équipement, utiliser la commande : ts_menu, puis choisir l’équipement à contrôler.

Accéder au CLI (Command-Line Interface) de l’ACS : CLI

Reset de l’ACS (Restore to factory defaults) : cli> sudo restoreconf factory_default

Changer l’alias d’un port <port> :cli> config physicalports <port> general alias <server alias>

Activer (ou désactiver) un port :cli> config physicalports <port> enable {yes|no}

Modifier le protocole d’accès à un port :cli> config physicalports <port> general protocol <telnet|sshv2|consolessh>

Sauvegarder les changements : cli> config savetoflash

Sortir d’une console lorsque l’on est connecté en telnet : CTRL+<dollar>

Remarque. Configuration du terminal pour telnet : 9600 bauds, 8 (data bits), N (parity), 1 (stop bits) et pasde flow control.

Configuration de l’ACS via l’interface d’administration HTTP :– Utilisation du VLAN 999 qui permet l’administration à distance des équipements,– Pour se connecter à l’ACS correspondant à l’AS x, se connecter en ssh à l’adresse 10.40.130.x0, avec0 < x < 4, et pour nom d’utilisateur admin (mot de passe : avocent) :ssh [email protected]

2.9 Avocent Power Management 1000

Les Avocent Power Management 1000 (ou PM/PDU 1000) permettent d’effectuer diverses mesures sur leséquipements branchés dessus. Par ailleurs, ils sont accessibles à l’aide des contrôleurs de console présentésprécédemment.

Navigation dans le CLI :--:-- / cli-> cd <path>--:-- <path> cli-> cd / # haut de arborescence

Enregistrer les changements :**:- <path> cli-> commit--:*- [<path>] cli-> save

33

Changer le nom d’hôte :--:- / cli-> cd /network/settings/--:- settings cli-> set hostname=<hostname>

**:- settings cli-> commit

Changer le nom d’un PDU :--:- / cli-> cd power_management/pdus/--:- / cli-> rename <pdu_id>--:*- [pdus] cli-> set new_pdu_id=<new pdu name>

Changer le nom d’une prise de courant :--:- / cli-> cd /power_management/pdus/<pdu>/settings/outlets--:- outlets cli-> set <outlet num> name=<outlet name>

Création d’un groupe de prises :--:- / cli-> cd power_management/outlet_groups/--:- outlet_groups cli-> add--:*- [outlet_groups] cli-> set group_name=<group name>--:*- [outlet_groups] cli-> save--:- outlet_groups cli-> add <group name>--:*- [HUBBLE] cli-> setoutlets= pdu= pdu_id=

Contrôler le courant sur une prise (seulement PM3000) :--:- / cli-> cd power_management/pdus/<PDU_ID>/outlets--:- outlets cli-> [cycle|on|off|lock|unlock] <outlet_num[,..,outlet_num]>

Erreur :Error: Outlet is metered only. It cannot be turned on, off or cycled. Action:

ON. Outlet(s): PDU-AS2[1].

Remarque. Voir la page suivante : http://www.emersonnetworkpower.com/en-US/Products/ACPower/RackPDU/Pages/AvocentPM100020003000PDUs.aspx (model comparison)

2.10 Câbles et connexions entre les équipements

Les deux types de câbles avec des terminaisons RJ-45 que l’on utilise sont les suivants :– Les câbles droits,– Les câbles croisés.La prise RJ-45 (Registered Jack) est en fait un connecteur 8P8C (8 Position 8 contact) utilisé généralementpour Ethernet sur des pairs torsadées.

Les standards TIA/EIA-568 définissent (entre autres) les dispositions des pins pour les pairs torsadées :T568A et T568B. Les définitions T568A et T568B sont présentées au niveau des figures 2.2, 2.3, 2.4 et 2.5suivantes pour des câbles droits et croisés.

Connexions des ports console des équipements :– Serveurs, Switch Summit, Switch ProCurve : câble rollover (bleu clair) RJ45 → DB-9,– Routeurs Juniper et Cisco : câble droit et adaptateur Cisco (ADB0039) branché sur l’équipement,– Cyclades PDM : câble droit seul (option pour la gestion automatique dans l’interface web).

Remarque. Les câbles rollover (bleu clair) RJ45 → DB-9 peuvent être remplacés par un adaptateur ADB0025YFDTE91 placé sur le port console DB-9 de l’équipement, puis en reliant un câble droit jusqu’au contrôleurde console.

34

3 Orange/White Tracer

Green/White Tracer

4

5

6

1

8

Blue/White Tracer

Orange

Brown

Brown/White Tracer

Blue

Green

7

2

Reserved

RX-

Reserved

Reserved

TX+

Reserved

RX+

TX-

5

4

2

7

3

6

8

1

Brown

Blue/White Tracer

Blue

Green

Brown/White Tracer

Orange/White Tracer

Orange

Green/White TracerPR 3

PR 1

PR 4

PR 2

PR 2

Color Standard EIA/TIA T568A

FIGURE 2.2 – Câble droit de la norme T568A

Brown/White Tracer

Blue

5

2

3

Green

1

8

Orange/White Tracer

Green/White Tracer

Brown

Blue/White Tracer

Orange

4

7

6

3 Green/White Tracer

Orange/White Tracer

4

5

6

1

8

Brown

Green

Blue/White Tracer

Blue

Brown/White Tracer

Orange

7

2

Color Standard EIA/TIA T568A

FIGURE 2.3 – Câble croisé de la norme T568A

Reserved

RX-

Reserved

Reserved

TX+

Reserved

RX+

TX-

5

4

2

7

3

6

8

1

Brown

Blue/White Tracer

Blue

Orange

Brown/White Tracer

Green/White Tracer

Green

Orange/White Tracer

3 Orange/White Tracer

Green/White Tracer

4

5

6

1

8

Blue/White Tracer

Green

Brown

Brown/White Tracer

Blue

Green

7

2PR 2

PR 1

PR 4

PR 3

PR 3

Color Standard EIA/TIA T568B

FIGURE 2.4 – Câble droit de la norme T568B

Brown/White Tracer

Blue

5

2

3

Orange

1

8

Green/White Tracer

Orange/White Tracer

Brown

Blue/White Tracer

Green

4

7

6

3 Green/White Tracer

Orange/White Tracer

4

5

6

1

8

Brown

Orange

Blue/White Tracer

Blue

Brown/White Tracer

Green

7

2

Color Standard EIA/TIA T568B

FIGURE 2.5 – Câble croisé de la norme T568B

35

Avocent ACS 5000, Cyclades PM 1000

Patch Channel Signal Type RJ-45-PinRTS Output 1DTR Output 2TxD Output 3GND Reference 4CTS Input 5RxD Input 6DCD Input 7DSR Input 8

Routeurs Cisco, routeurs/firewalls Juniper Newtorks

Patch Channel Signal Type RJ-45-PinRTS Output 1DTR Output 2TxD Output 3GND Reference 4GND Reference 5RxD Input 6DSR Input 7CTS Input 8

HP ProCurve, Extreme Summit x450e, serveurs

Patch Channel Signal Type DB-9-PinDCD Input 1RxD Input 2TxD Output 3DTR Output 4GND Reference 5DSR Input 6RTS Output 7CTS Input 8RI Input 9

Abréviations

CTS Clear To SendDCD Data Carrier DetectDSR Data Set ReadyDTR Data Termnal ReadyGND GroundRI Ring IndicatorRTS Request To SendRxD Receive DataTxD Transmit Data

Adaptateurs fournis : les adaptateurs fournis permettent de modifier les dispositions des différents signauxtransmis par les ports des équipements. Ces derniers sont présentés aux figures 2.6 et 2.7 suivantes.

CTS

RxD

DCD

GND

RTS

DSR

TxD

DTR

5

4

2

7

3

6

8

1

Brown

Blue/White Tracer

Blue

Orange

Brown/White Tracer

Green/White Tracer

Green

Orange/White Tracer

GND

DCD

Green RxD

TxD

6

8

5 Blue

Brown/White Tracer

RTSGreen/White Tracer

4

Blue/White Tracer

7

DTR

3

Green

Orange/White Tracer

2

CTS

Cyclades adapter ADB0025

Female RJ-45 (Cyclades ACS 5000) Female DB-9 (Console port)

FIGURE 2.6 – Adaptateur ADB0025 permettant de connecter les équipements Cisco

CTS

RxD

DCD

GND

RTS

DSR

TxD

DTR

5

4

2

7

3

6

8

1

Brown

Blue/White Tracer

Blue

Orange

Brown/White Tracer

Green/White Tracer

Green

Orange/White Tracer

RTS

TxD

CTS

DSR

DTR

GND

GND

RxD6 Orange/White Tracer

Green/White Tracer

4

1

3

8

2

Blue/White Tracer

Green

Brown

Brown/White Tracer

Blue

Green

5

7

Cyclades adapter ADB0039

Male RJ-45 (Cyclades ACS 5000) Male RJ-45 (console port)

FIGURE 2.7 – Adaptateur ADB0039 permettant de connecter les équipements munis d’un port console DB-9

36

CHAPITRE3Implémentation de fonctionnalités (routeurs)

1 Protocoles de routage

1.1 Routage statique

Juniper JunOS Configuration statique des routes sur les routeurs Juniper (à partir du menu [edit])

Configurer une route statique et spécifier l’adresse suivante à être utilisée quand le trafic est routé vers cetteroute statique :set routing-options static route <destination prefix> next-hop <next-hop IP>

Configurer la route par défaut (default gatway) :set routing-options static route 0.0.0.0/0 next-hop <gateway IP>

Options sur la route statique :set routing-options static route <destination prefix> [options]

– Toujours garder la route statique dans la table de routage (forwarding table) : retain– Empêcher la route statique d’être re-annoncée (readvertised) : no-readvertise– Enlever les routes inactives de la table de routage : active

Cisco IOS Configuration statique des routes sur les routeurs Cisco

Configurer une route statique :Router(config)# route <interface> <destination prefix> <mask> <next-hop IP> [<

distance>]

Remarque. Le paramètre <distance> est la distance administrative de la route (par défaut, elle est égale à1 si aucune valeur n’est spécifiée).

Configurer la route par défaut (0.0.0.0/0) :Router(config)# route <interface> {0 0 | 0.0.0.0 0.0.0.0} <gateway IP> [<

distance> | tunneled]

Remarque. Il est possible de remplacer 0.0.0.0 0.0.0.0 par 0 0 pour indiquer<destination prefix><mask>

1.2 IGP (Internor Gateway Protocol)

Par défaut, OSPF est implémenté sur l’ensemble des réseaux de la plateforme. Cependant, il est possibled’implémenter RIP ou IS-IS. L’ensemble des opérations à effectuer sont décrites dans les sections suivantes.

37

Type Etat de liensAlgorithme Dijkstra

Admin Distance 110Métrique 100 000 kbps/vitesse du lien

Standards RFCs 2328, 2740Protocoles IP

Protocole Transport IP/89Authentification Plaintext, MD5AllSPF address 224.0.0.5

AllDR address 224.0.0.6

Version Type Length

8 16 24 32

Router ID

Area ID

Checksum Instance ID Reserved

Data

FIGURE 3.1 – Entête OSPF

OSPF (Open Shortest Path First)

Juniper JunOS JunOS gère à la fois OSPF et OSPFv3 qui permet l’utilisation de IPv6.

Dans le menu [edit protocols ospf]edit protocols ospfset area 0.0.0.0 interface <interface> [passive]

Variante OSPFv3 pour IPv6 :edit protocols ospf3set area 0.0.0.0 interface <interface> [passive]

Remarque. Le mot-clé passive permet d’annoncer la route sur le réseau interne, mais n’envoie pas depaquet OSPF hello.

Afficher les voisins (neighbors) OSPF :run show ospf neighbor

Cisco IOS De même, Cisco IOS gère à la fois OSPF et OSPFv3.Router(config)# router ospf <num>! Advertising other static protocols to OSPFRouter(config-router)# redistribute static subnets! BackboneRouter(config-router)# network <network address> <reversed mask> area 0

Configuration d’une interface avec OSPF :Router(config)# interface Ethernet0/1Router(config-if)# description <description>Router(config-if)# ip address <interface IP address> <mask>Router(config-if)# ip ospf <num> area 0! Optional MD5 authentication configuredRouter(config-if)# ip ospf authentication message-digestRouter(config-if)# ip ospf message-digest-key 1 md5 FooBar! Give the priority in DR electionRouter(config-if)# ip ospf priority 100

Debug OSPF :Router# show ip [route | protocols]Router# show ip ospf interfaceRouter# show ip ospf neighborRouter# show ip ospf border-routersRouter# show ip ospf virtual-linksRouter# debug ip ospf [...]

38

RIP (Routing Information Protocol)

Type Vecteur de distanceAlgorithme Bellman-Ford

Admin Distance 120Métrique Hop count (max. 15)

Standards RFCs 2080, 2453Protocoles IP IPv4, IPv6

Protocole Transport UDPAuthentification Plaintext, MD5

Multicast IP 224.0.0.9 / FF02::9

Implémentations de RIP :– RIPv1 : implémentation originale, limitée à un routage par classes (classful routing). Obsolète.– RIPv2 : introduit pour permettre un routage sans classes (classless routing), l’authentification, les mises

à jours déclanchées (triggered updates) et les annonces multicast (multicast announcements).– RIPng, RIP Next Generation : Etend RIPv3 pour le support du routage IPv6. Les fonctions sont simi-

laires à RIPv2, et sont donc tout aussi limitées.Comparaison des différentes implémentations :

RIPv1 RIPv2 RIPng

IP IPv4 IPv4 IPv6Admin distance 120 120 120Port UDP 520 520 521Classless Non Oui OuiAdresse d’avertissement Broadcast 224.0.0.9 FF02::9

Authentification Aucune MD5 Aucune

Terminologie :– Split horizon : un routeur n’annonce pas une route au voisin par lequel il l’a apprise.– Route poisonning : quand le réseau devient injoignable, une mise-à-jour avec une métrique infinie est

générée pour annoncer explicitement que la route est injoignable.– Poison Reverse : un router annonce qu’un réseau est injoignable par l’interface par laquelle il l’a appris.

Juniper JunOS Configuration minimale pour le protocole RIP.[edit protocols rip]# Créer le groupe <group name> et ajouter une interfaceset group <group name> neighbor <interface name># Répéter pour chaque interface du groupe <group name>

[edit policy-options]# Inclure la condition pour correspondre aux routes directesset policy-statement advertise-rip-routes term from-direct from protocol

directset policy-statement advertise-rip-routes term from-rip from protocol rip

# Accepter cette conditionset policy-statement advertise-rip-routes term from-direct then acceptset policy-statement advertise-rip-routes term from-rip then accept

Configuration minimale pour RIPng :[edit protocols ripng]set group <group name> neighbor <interface name># Répéter pour chaque interface du groupe <group name>

[edit policy-options]set policy-statement redist-direct from protocol directset policy-statement redist-direct the accept

39

Cisco IOS Cisco IOS est compatible avec RIPv2 et RIPng.

Configuration de RIPv2 :! Enable RIPv2 IPv4 routingRouter(config)# router ripRouter(config-router)# version 2! Disable RIPv2 automatic summarizationRouter(config-router)# no auto-summary! Designate RIPv2 interfaces by networkRouter(config-router)# network <network>! Identify unicast-only neighborsRouter(config-router)# neighbor <IP address>! Originate a default routeRouter(config-router)# default-information originate! Designate passive interfacesRouter(config-router)# passive-interface {<interface> | default}! Modify timersRouter(config-router)# timers basic <update> <invalid> <hold> <flush>

Configuration des interfaces avec RIPv2 :! Configure manual route summarizationRouter(config-if)# ip summary-address rip <network mask>

! Enable MD5 authentication (RIPv2 only)Router(config-if)# ip rip authentication mode md5Router(config-if)# ip rip authentication key-chain <key-chain>

Configuration de RIPng :! Enable IPv6 routingRouter(config)# ipv6 unicast-routing! Enable RIPng IPv6 routingRouter(config)# ipv6 router rip <name>! Toggle split-horizon and poison-reverseRouter(config-router)# [no] split-horizonRouter(config-router)# [no] poison-reverse! Modify timersRouter(config-router)# timers basic <update> <invalid> <hold> <flush>

Configuration des interfaces avec RIPng :! Enable RIPng on the interfaceRouter(config-if)# ipv6 rip <name> enable! Configure manual route summarizationRouter(config-if)# ipv6 rip <name> summary-address <prefix>

Debug :Router# show ip[v6] protocolsRouter# show ip[v6] rip databaseRouter# show ip[v6] route ripRouter# debug ip rip { database | events }Router# debug ipv6 rip [<interface>]

1.3 EGP (Exterior Gateway Protocol)

Utilisation du seul protocole de routage inter-domaine BGP (Border Gateway Protocol).

Type Vecteur de cheminseBGP Admin Distance 20iBGP Admin Distance 200

Standards RFC 4271Protocoles IP

Protocole Transport TCP/179Authentification MD5

40

Terminologie :– Autonomous System (AS) : domaine logique sous le contrôle d’une seule et même entité.– External BGP (eBGP) : liens BGP qui couvrent les bordures de l’AS.– Internal BGP (iBGP) : liens BGP qui sont formés dans l’AS.– Synchronization Requirement : une route doit être connue par un IGP avant qu’elle soit annoncée aux

pairs BGP.

Attributs BGP :

Nom DescriptionWell-known mandatory : doit être supporté et propagé1 Origin Type de l’origine (IGP, EGP, inconnu)2 AS Path Liste des AS que l’annonce a traversé3 Next Hop Pair extérieur dans l’AS voisinWell-known Discretionary : doit être supporté, propagation optionnelle5 Local preference Métrique utile aux voisins locaux pour atteindre les destinations ex-

ternes (par défaut : 100)6 Atomic Aggregate Inclut les AS qui ont été jetés à cause d’une agrégation de routesOptional Transitive : marqué comme partiel if non supporté par le voisin7 Aggregator ID et AS de la route résumée8 Community Label de la routeOptional Nontransitive : supprimé si non supporté par le voisin4 Multiple Exit Discrimina-

tor (MED)Métrique utile aux voisins externes pour atteindre l’AS local (pardéfaut : 0)

9 Originator ID Identifiant du noeud à l’origine de la route reflector10 Cluster List Liste des identifiants des clusters13 Cluster ID Cluster source– Weight Attribut propriétaire (Cisco) non communiqué aux pairs

Sélection de la route :

Attribut Description Préférence1 Weight Préférence administrative Plus élevée2 Local Preference Communiquée entre les pairs d’un même AS Plus élevée3 Self-Originated Préférer les chemins d’origine locale Vrai4 AS Path Minimiser les sauts entre AS Plus court5 Origin Préférer les routes apprises avec IGP plutôt que EGP, et EGP

plutôt qu’inconnuIGP

6 MED Utilisé par les pairs externes pour entrer dans un AS Plus petit7 External Préférer les routes eBGP plutôt que les routes iBGP eBGP8 IGP Cost Considérer mes métriques IGP Plus petit9 eBGP Peering Favoriser les routes stables Plus vielle10 Rouer ID Tie Breaker Plus petit

Etats de voisins :– Idle : voisin ne répond pas– Active : tentative de connexion– Connect : connexion TCP établie

– Open Sent : message Open envoyé– Open confirm : réponse reçue– Established : lien établi

iBGP (internal BGP)

iBGP est BGP utilisé en interne dans un AS comme un mécanisme pour échanger des informations entreplusieurs routeurs de bordure BGP.

Les routeurs parlant iBGP doivent être connecté en réseau maillé (full mesh) pour éviter les boucles.

41

Juniper JunOS Pour tous les routeurs de l’AS.

Il faut utiliser les adresses IP loopback des routeurs Juniper pour qu’ils puissent communiquer entre eux(pour la robustesse/disponibilité des routeurs, afin de prévenir qu’une interface soit inactive). Les adressesIP loopback sont alors configurées de la manière suivante pour les routeurs de l’AS 3 :– Juniper 1 : 10.255.3.1– Juniper 2 : 10.255.3.2– Juniper 4 : 10.255.3.4

Configuration de l’adresse loopback :edit interfaces lo0set unit 0 family inet address 10.255.<AS number>.<router number>/32

Editer les options de routage :edit routing-optionsset router-id <router loopback address>autonomous-system <AS number>

Editer les paramètres du protocole BGP :edit protocols bgp group internal-peersset type internalset local-address <router loopback address>export next-hop-selfneighbor <neighbor router loopback address>

Créer la règle next-hop-self :edit policy-options policy-statement next-hop-selfedit term bgp# annonce des routes apprises avec BGPset from protocol bgp# paramètre next-hop contient l'adresse du routeur (pour défauts de route)set then next-hop self

Debug BGP :# Lister les routes annoncées a un voisin[run] show route advertising-protocol bgp IP_pair

# Voir les préfixes annoncés/reçus via les pairs :[run] show bgp neighbor

Cisco IOS Configuration de iBGP pour les routeurs Cisco.Router(config)# router bgp <AS number>Router(config-router)# neighbor <neighbor IP> remote-as <same AS number>

eBGP (external BGP)

eBGP (External Border Gateway Protocol) est utilisé pour transporter des données à d’autres systèmesautonomes qui utilisent BGP également.

Juniper JunOSset routing-options autnonmous-system <AS number>set roting-options static route <network address>/<network prefix> discard

Editer les paramètres du protocole BGP ([edt protocol bgp]) :edit protocols bgp group <group name>set type external # E-BGPset export TO-EXTERNAL # utilisation de la règle TO-EXTERNALset peer-as <neighbor AS number>set neighbor <neighbor IP address>

42

Créer la règle TO-EXTERNAL :edit policy-options policy-statement TO-EXTERNALedit term 1 # premier amendement# annoncer une route configurée statiquementset from protocol static# annonce des routes statiques concernant le préfixe de l'ASset from route-filter <network address>/<network prefix>set then accept

upedit term 2 # second amendementset then reject # rien d'autre n'est annoncé

Remarque. Pour un AS de transit, il faut en plus annoncer les routes apprises avec E-BGP :edit term 2set from protocol bgpset then accept

upedit term 3set then reject

Cisco IOS Configuration de eBGP pour les routeurs CiscoRouter(config)# router bgp <AS number>Router(config-router)# bgp dampening # descriptionRouter(config-router)# network <network address> <network mask>Router(config-router)# neighbor <neighbor IP address> remote-as <neighbor AS

number>

Ne pas oublier de créer la route vers null (sinon la route ne sera pas annoncée avec BGP)Router(config-router)# ip route <network address> <network mask> Null0

Debug / troubleshooting BGP :Router# show ip bgp [summary]Router# show ip bgp neighborsRouter# show ip route [bgp]Router# clear ip bgp * [soft]Router# debug ip bgp [...]

Influencer la sélection de chemins :Router(config-router)# neighbor 172.16.0.1 weight 200 ! weightRouter(config-router)# bgp default local-preference 100 ! local preferenceRouter(config-router)# default-metric 400 ! MEDRouter(config-router)# neighbor 172.16.0.1 route-map Foo ! route mapRouter(config-router)# bgp bestpath as-path ignore ! ignore AS path

Installer un attribut local-pref :Router(config)# route-map LOCALPREF permit 10Router(config-route-map)# set local-preference 500Router(config-route-map)# router bgp <AS BGP number>Router(config-router)# neighbor <BGP peer> route-map LOCALPREF in

43

2 MPLS (MultiProtocol Label Switching)

Label

8 16 24 32

TC S TTL

L2 IP

Label stack

FIGURE 3.2 – entête MPLS

Attributs :– Label (20 bits) : valeur unique de label– Traffic class/EXP (3 bits) : marquage de QoS (Quality of Service) à l’aide d’un mappage de CoS (Class

of Service)– Bottom of Stack (1 bit) : indique que le label est le dernier dans la pile– Time to Live (8 bits) : compteur de sauts mappé du champ TTL de IP

Terminologie :– Label Distribution Protocol (LDP) : protocole de distribution de paquets (RFC 3036)– Resource reSerVation Protocol - Traffic Engineering (RSVP-TE) : protocole de réservation de res-

sources sur un réseau IP, extension du protocole RSVP.– Label Switching Router (LSR) : tout routeur effectuant un label switching– Label-Switched Path (LSP) : chemin unidirectionnel traversant un ou plusieurs LSR que prend un label-

switched packet qui appartient à une FEC– Forwarding Equivalence Class (FEC) : groupe de paquets qui sont forwardés de la même manière,

typiquement à l’aide du préfixe de l’adresse destination et/ou de la classe de service (CoS)– Label Information Base (LIB) : contient tous les labels appris par un LSR à l’aide d’un protocole de

distribution de labels (RSVP, LDP, TDP. . .)– Label FIB (LFIB) : base de donnée de routage pour des paquets étiquetés

L’implémentation de MPLS n’est possible que pour au moins trois routeurs interconnectés dans le mêmesystème autonome.

Il est nécessaire de spécifier les rôles des routeurs pour un LSP donné (Label Switched Path) :– Ingress router (LER, Label Edge Router)– Egress router (LER, Label Edge Router)– Transit routeurs (LSR, Label Switched Router)

Afin de faire de la qualité de service (QoS), nous allons surtout développer la manière dont MPLS estimplémenté, en utilisant RSVP.

Le schéma 3.3 suivant montre la manière dont MPLS est implémenté dans l’AS 3.

Juniper JunOS Implémentation de MPLS/RSVP.

Activer MPLS et RSVP sur tous les routeurs mis en jeu :# Activer MPLSedit protocols mplsset interface all # activer MPLS sur toutes les interfacesset interface <interface> disable # désactiver MPLS sur l'interface

# Activer RSVPedit protocols rsvpset interface all # activer RSVP sur toutes les interfacesset interface <interface> disable # désactiver RSVP sur l'interface

44

J2 J1 J4AS 4AS 2

PSEUDOLMEDIAL

Ingress RouterLER

Transit RouterLSR

Egress RouterLERLSP

L2 IP

L2 IP

FIGURE 3.3 – MPLS dans l’AS 3, dans le sens J2 → J4Activer MPLS sur toutes les interfaces mises en jeu dans la topologie :set interfaces <interface> family mpls

Configurer un LSP (Label-Switched Path)edit protocol mplsset label-switched-path <lsp name> to <egress router>

Remarque. Il faut bien configurer le LSP sur chacun des routeurs LER (Label Edge Router) afin que le LSPsoit valide :– LSP de l’ingress router vers l’egress router– LSP inversé de l’egress router vers l’ingress router (qui voient donc leurs rôles inversés)

Attention à bien activer le Traffic Engineering pour OSPF (quand OSPF est utilisé en tant que IGP) :edit protocols ospfset traffic-engineering shortcuts lsp-metric-into-summary

upedit protocols mplstraffic-engineering bgp-igp

Debug MPLS/RSVP :show route table inet.3show rsvp neighborshow rsvp interfaceshow rsvp session detailshow mpls lsp extensive

Remarque. Il est possible de créer un fichier de statistiques pour MPLS :[protocols mpls]mpls {

statistics {file mpls-stats.txt;auto-bandwidth;

}

Le fichier de statistique est alors accessible par la commande :[run] file show /var/log/mpls-stats.txt

Cisco IOS Configuration de MPLS pour les routeurs Cisco.! Activer CEFRouter(config)# ip cef! Selctionner un protocole de distibution de labelsRouter(config)# mpls label protocol ldp! Activer MPLS sur les interfacesRouter(config)# interface <interface name>Router(config-if)# ip address <IP address> <mask>Router(config-if)# mpls ip

45

! Augmenter la MTU de MPLS (multilabel stack)Router(config-if)# mpls mtu 1512

Debug :Router(config)# show mpls interfacesRouter(config)# show mpls ldp bindings [detail] ! (LIB)Router(config)# show ip cef [detail] ! (FIB)Router(config)# show mpls ldp neighborsRouter(config)# show mpls forwarding-table [detail] ! (LFIB)Router(config)# debug mpls [...]

Implémentation de MPLS-TE avec RSVP, en s’appuyant sur RSVP :Router(config)# mpls traffic-eng area <area number>Router(config)# mpls traffic-eng router-id <loopback address> ! doit avoir un

masque 255.255.255.255Router(config)#Router(config)# ip cef [distributed]Router(config)# mpls traffic-engineering tunnel

! Activer MPLS/RSVP sur les interfaces concernéesRouter(config)# interface <interface name>Router(config-it)# bandwidth <bandwidth>Router(config-it)# ip address <IP address> <mask>Router(config-it)# mpls traffic-engineering tunnelRouter(config-it)# ip rsvp bandwidth <bandwidth>

! Configuration d'un tunnelRouter(config)# interface <tunnel name>Router(config-it)# ip unnumbered <loopback address>Router(config-it)# tunnel destination <dest address>Router(config-it)# tunnel mode mpls traffic-eng! Annonce de la présence du tunne par le protocole de routageRouter(config-it)# tunnel mpls traffic-eng autoroute announce

46

CHAPITRE4Implémentation de services (serveurs)

1 NTP (Network Time Protocol)

NTP est un protocole permettant la synchronisation des horloges locales des systèmes d’exploitation deséquipements d’un même réseau sujet à la gigue (jitter).

NTP utilise UDP sur le port 123.

serveur3.ent2PSEUDOLserveur2.core1serveur3.ent1

Serveurs AS 1 Serveurs AS 4

serveur1.core1 MEDIAL

requête NTP

FIGURE 4.1 – Architecture NTP dans la plateforme

Debian Les serveurs ayant pour système d’exploitation Debian peuvent à la fois être utilisés en tant queserveur NTP, ainsi que client NTP.

Configuration d’un serveur NTP

Installation du serveur NTP (à partir du CD d’installation de Debian par exemple) :apt-get install ntp ntpdate

Le fichier de configuration du serveur NTP se trouve par défaut dans : /etc/ntp.conf :server 127.0.0.1 # Spécifier le serveur NTP père (itself)fudge 127.0.0.1 stratum 10

Exécuter le deamon ntp : /etc/init.d/ntp start

Configuration d’un client NTP Vérifier que le deamon ntp n’est pas en marche (eg. commande top).

Dans le cas échéant, supprimer le lien symbolique ntp du dossier /etc/rc5.d et stopper le deamon ntp :/etc/init.d/ntp stop.

Installer le client NTP : apt-get install ntpdate

Planifier une synchronisation périodique (eg. Tous les jours à 12 :00) :$ crontab -e

# Editeur NANO00 12 * * * /usr/sbin/ntpdate <NTP server IP>

47

Redémarrer cron : /etc/init.d/cron restart

Utilisation de crontab :export EDITOR=vi Spécifier un éditeur pour le fichier crontabcrontab -e Editer un fichier crontab, créé si besoincrontab -l Afficher le fichier crontabcrontab -r Supprimer le fichier crontab

# Minute Hour Day of Month Month Day of Week Command# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)

0 2 12 * 0,6 <command>

Remarque. Il est possible de placer plusieurs commandes à la suite :– En utilisant && pour qu’elles soient exécutées successivement,– En utilisant ; pour qu’elles soient exécutées simultanément.

Afficher la date du système : date

Fixer la date sur le système : date [MMjjhhmm[[CC]AA][.ss]]

Juniper JunOS Configuration manuelle de la date/heure :set system time-zone Europe/Berlinset date 201001251115.00 # January 25, 2010 and 11:15:00 a.mset date ntp <ntp server IP>

Configuration de NTP :set system ntp server <ntp server IP> version 4 preferset system ntp server <ntp server 2 IP> version 4

Cisco IOS Configuration de NTP en mode client :! Configurer l'adresse IP du serveur NTPset ntp server <ntp server IP>! Activer le mode NTP clientset ntp client enable! Vérifier la configuration NTPshow ntp [noalias]

2 DHCP (Dynamic Host Configuration Protocol)

DHCP est un protocole qui permet d’assigner une adresse IP à un équipement, dès sa connexion sur un LANoù se trouve un serveur DHCP.

Debian Installation de DCHP pour Debian : apt-get install isc-dhcp-server

Editer le fichier de configuration /etc/dhcp/dhcpd.conf :option domain-name "<domain name>";option domain-name-servers <domain name server IP>;subnet 192.168.1.0 netmask 255.255.255.0 {

range <lowest IP address> <highest IP address>;option routers <router IP/name>;

}

Etablir des baux statiques :host <host name> {

hardware ethernet <MAC address>;fixed-address <IP address>;

}

48

Redémarrer le service DCHP : /etc/init.d/isc-dhcp-server restart

Remarque. Pour configurer l’interface sur laquelle le serveur DHCP intervient, il faut éditer le fichier /etc/default/isc-dhcp-server :# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?# Separate multiple interfaces with spaces, e.g. "eth0 eth1".INTERFACES="eth1"

Juniper JunOS Aller dans le menu de configuration DHCP :topedit system services dhcp

Editer une plage (pool) d’adresses à attribuer :edit pool <network>/<prefixe>set address-range low <lowest IP address> high <highest IP address>set default-router <default router IP address>

Configurer des baux statiques :edit static-binding <MAC address>set fixed-address <fixed IP address>set host-name <hostname>

Cisco IOS Exclure des plages d’adresses :Router(config)# ip dhcp excluded-address <start> [<end>]

Création d’une pool d’adresses à attribuer :Router(config)# ip dhcp pool <pool name>Router(dhcp-config)# network <network address> <network mask>Router(dhcp-config)# default-router <default router IP>! FacultatifRouter(dhcp-config)# dns-server <DNS server IP>Router(dhcp-config)# domain-name <domain name>

Configurer des baux statiques :Router(dhcp-config)# host <host ip> <mask>Router(dhcp-config)# {client-identifier|hardware-address} <MAC address>Router(dhcp-config)# client-name <client name>

Remarque. Pour créer des baux statiques, il faut avoir au préalable configuré une nouvelle pool spécifiqueau mapping.

Durée du bail :Router(dhcp-config)# lease inifinte # bail inifiniRouter(dhcp-config)# lease <days> <hours> <minutes>

Activer le service DHCP sur le routeur :Router(config)# service dhcp

Commandes de debug :Router# show ip dhcp binding

3 Serveur HTTP (Apache)

HTTP est un protocole permettant d’afficher des pages web sur les navigateurs des clients via port TCP/80.

Un service HTTP est installé par défaut sur les serveurs Debian. Il est accessible depuis l’adresse localhost(127.0.0.1) depuis le serveur lui-même et depuis sont adresse dans le réseau depuis les autres serveurs.

Les fichiers HTML sont placés par défaut dans le dossier /var/www.

Redémarrer le service Apache : /etc/init.d/apache2.

49

4 Serveur FTP (File Transfer Protocol)

FTP est un protocole permettant le transfert de fichier. La signalisation se fait sur le port TCP/20 et letransfert de fichier proprement dit se fait sur le port TCP/21.

Installation de proftpd : apt-get install proftpd Le serveur FTP utilise les comptes de Debianpour gérer les authentifications.

Editer le fichier /etc/proftpd.conf. Dans notre cas, nous allons simplement autoriser les utilisateurs àécrire dans le dossier /mnt/ftp par défaut :#Seul l'utilisateur adminftp a le droit d'écrire dans /mnt/ftp<Directory /mnt/ftp>

<Limit WRITE>AllowUser adminftpDenyAll

</Limit></Directory>

5 DNS (Domain Name Service)

DNS est un protocole permettant de mettre en correspondance des adresses physiques et des adresses lo-giques. La structure logique des adresses est hiérarchique : <sous-domaine>.<domaine>.<tld>.

5.1 Configuration sur un seul as (pas de hiérarchie)

Client

Editer le fichier /etc/resolv.conf :domain [<domain>.]<tld>search [<domain>.]<tld>nameserver <DNS server IP>

Serveur

Dans le fichier /etc/hostname, donner le nom complet de la machine. Par exemple : serveur3.ent1.org où : serveur3 est le <host>, ent1 est le <domain> et org est le <tld>.

Redémarrer le service hostname.sh : /etc/init.d/hostname.sh start

Dans le fichier /etc/host.conf, définir la séquence de recherche pour la résolution de nom :order hosts, bindmulti on

Editer le fichier /etc/hosts (ce fichier permet de bypasser la résolution de nom classique par serveurDNS) :127.0.0.1 localhost.<domain>.<tld> localhost23.7.100.3 <host>.<domain>.<tld> <host>

Editer le fichier /etc/resolv.conf (ce fichier est utile à la résolution de noms du domaine) :domain <domain>.<tld>search <domain>.<tld>nameserver <DNS server IP>

Installer le service bind : apt-get install bind9

Aller ensuite dans le dossier /etc/bind (cd /etc/bind) et copier le fichier db.local pour le domaine<domain>.<tld> qui nous intéresse (cp db.local db.<domain>.<tld>)

Editer le ficher db.<domain>.<tld> :

50

; BIND data file for <interface> interface;$TTL 604800@ IN SOA <host>.<domain>.<tld>. root.<domain>.<tld>. (

2 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL

;@ IN NS <host>.<domain>.<tld>.<host> IN A <host IP><Ajouter une ligne par machine du réseau>

Copier ensuite le fichier db.127 pour le domaine <domain>.<tld> qui nous intéresse (cp db.127 db.

<domain>.<tld>.inv)

Editer le fichier db.<domain>.<tld>.inv :; BIND reverse data file for <interface> interface;$TTL 604800@ IN SOA <host>.<domain>.<tld>. root.<domain>.<tld>. (

1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL

;@ IN NS <host>.<host IP LSByte> IN PTR <host>.<domain>.<tld>.<Ajouter une ligne par machine du réseau>

Editer le fichier named.conf.local (et non le fichier racine named.conf) :zone "<domain>.<tld>" {

type master;file "/etc/bind/db.<domain>.<tld>";forwarders{};

};zone "<reversed IP>.in-addr.arpa" {

type master;file "/etc/bind/db.<domain>.<tld>.inv";forwarders{};

};

Redémarrez le service bind9 : /etc/init.d/bind9 restart

Debug

On peut vérifier la syntaxe :named-checkzone webadonf.lan /etc/bind/db.webadonf.lan[.inv]named-checkconf /etc/bind/named.conf[.options]

5.2 DNS entre les AS

Sur chaque serveur DNS, éditer le fichier /etc/bind/db.root et commenter toutes les lignes du fichier.

Les serveurs DNS de chaque AS doivent être indiqués. Pour cela, ajouter deux lignes pour chaque AS en lesadaptant :. 360000 IN NS <domain>.<tld>.<domain>.<tld>. 3600000 A <AS DNS server IP>

Remarque. Il y a 4 AS, donc il faut ajouter 6 lignes dans le fichier db.root de chaque serveur DNS.

51

6 Supervision des équipements

Afin de superviser l’ensemble des équipements, nous utilisons le protocole SNMP (Supervision NetworkManagement Protocol) qui utilise les ports UDP/161 et UDP/162 (pour les traps).

6.1 Installation et configuration de Nagios

Nagios est un outil qui permet de superviser des équipements à l’aide du protocole SNMP (Simple NetworkManagement Protocol).

Installation de Nagios : apt-get install nagios3

Définir les noms des machines administrées (éditer le fichier /etc/nagios3/conf.d/hosts.cfg) :define host{

host_name <name>alias <alias>address <ip>check_command <commande executée>

}

La liste des commandes que l’on peut exécuter se trouve dans les fichiers .cfg présents dans le dossier/etc/nagios-plugins/config, comme check-swithch-alive, check-router-alive ou check-host-alive.

Définir les groupes de machines (éditer le fichier /etc/nagios3/conf.d/hostgroups_nagios2.cfg) :define hostgroup{

hostgroup_name <group name>alias <alias>members <member 1>, <member 2>, ...

}

Définir les services supervisés sur les hôtes ou les groupes (éditer le fichier /etc/nagios3/conf.d/services_nagios2.cfg) :define service{

hostgroup_name <group> # ou host_name <host>service_description <description>check_command <command>

}

Les commandes disponibles sont présentes dans le dossier /etc/nagios-plugins/config.

Afin de prendre en compte les configurations, il faut redémarrer le service : /etc/init.d/nagios3restart

6.2 Configuration de SNMP (client)

Afin de vérifier que SNMP est bien activé sur les routeurs, on doit utiliser l’utilitaire snmpwalk.

Il faut tout d’abord veiller à ce que le paquet snmp soit téléchargeable ; pour ce faire, il faut ajouter unesource apt dans le fichier /etc/apt/sources.list :deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-freedeb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free

Il est alors possible d’installer snmp à l’aide de la commande apt-get install snmp.

Il est possible de tester le protocole SNMP sur les routeurs avec cet exemple :

52

snmpwalk -c public -v 2c 13.8.0.36 1.3.6.1.4.1.2636.3.1.13.1.5iso.3.6.1.4.1.2636.3.1.13.1.5.1.1.0.0 = STRING: "midplane"iso.3.6.1.4.1.2636.3.1.13.1.5.4.1.0.0 = STRING: "Jseries CPU fan"iso.3.6.1.4.1.2636.3.1.13.1.5.7.1.0.0 = STRING: "FPC: FPC @ 0/*/*"iso.3.6.1.4.1.2636.3.1.13.1.5.8.1.1.0 = STRING: "PIC: 4x GE Base PIC @ 0/0/*"iso.3.6.1.4.1.2636.3.1.13.1.5.9.1.0.0 = STRING: "Routing Engine"iso.3.6.1.4.1.2636.3.1.13.1.5.9.1.1.0 = STRING: "USB Hub"iso.3.6.1.4.1.2636.3.1.13.1.5.9.1.2.0 = STRING: "Removable Compact Flash"

6.3 Configuration des équipements pour SNMP

Cisco :Router(config)# snmp-server community public RO ! Read-OnlyRouter(config)# snmp-server community private RW ! Read-writeRouter(config)# snmp-server location ParisRouter(config)# snmp-server contact Olivier FourmauxRouter(config)# snmp-server enable trapsRouter(config)# snmp host <snmp server> traps SNMPv2

Juniper :[edit snmp]community public {

authorization read-only;client {

4.11.100.32/28; # seule autorisation0.0.0.0/0 restrict; # interdiction àtout le monde

}}

6.4 Utilisation de Cacti

Introduction et installation

Cacti est un outil open-source permettant de consulter aisément des mesures de performances effectuéesayant pour source des serveurs (et les services fonctionnant sur ceux-ci), ou autres équipements réseaux.Cacti communique généralement avec les équipements réseaux en utilisant le protocole SNMP.

Pour fonctionner convenablement, Cacti requiert la présence d’un serveur web HTTP (Apache, Nginx,Lighttpd, . . .), d’un serveur de base de donnée (plutôt de type MySQL), ainsi que de PHP.

Nous utilisons des distributions Debian, de ce fait, nous installons Cacti simplement grâce au gestionnairede paquets aptitude, de la manière suivante : apt-get install cacti.

Configuration BDD/Utilisateurs

Il faut ensuite configurer Cacti (via un navigateur) afin de lui permettre d’utiliser MySQL. L’installation estsimple, puisque tout est quasiment automatique. . .Il faut se rendre à l’adresse http://localhost/cacti/ et procéder de la manière suivante :– Sélectionner “New Install”, puis “Next”,– On arrive ensuite sur une page qui vérifie que les outils requis par Cacti sont présents sur la machine (tout

doit être vert). Cliquer enfin sur “Finish”,– Ensuite on arrive sur la page de login, s’authentifier avec le couple de login/mot de passe suivant : admin

/admin, on doit ensuite choisir un nouveau mot de passe. Cliquer sur “Save”.Cacti est enfin configuré.

53

Ajouts d’équipements sources

Il faut tout d’abord bien s’assurer que les équipements soient compatibles SNMP, et bien sûr configurés.

– Cliquer sur le lien “Create devices for network”,– Cliquer sur “Add” en haut à droite, juste en dessous de “Logout”.

Remplir les champs “Description”, “Hostname” (ie. IP de la machine), . . .Mettre “Host template”" à “Generic SNMP-enabled Host”, “SNMP Version” à “Version 2”, on valide le touten cliquant sur le bouton “Create”.

On va maintenant ajouter les informations à récupérer sur l’équipement :– Cliquer sur “Data Source List” (approximativement en haut à droite), ensuite sur le lien “Add” à droite,– Changer “Selected Data Template” à “Interface – Traffic” puis cliquer sur le bouton “Create”,– Sur la page qui s’affiche, juste cliquer sur le bouton “Save”.

Remarque. Il faut parfois patienter quelques minutes avant que la requête SNMP ne soit réalisé.

On va créer un graphique par interface sur lequel on aura le débit du trafic sur l’interface en octet/sec :– Cliquer sur “Create Graphs for this Host”,– Sélectionner les interfaces qui nous intéressent, ne pas oublier de changer la valeur de “Select a graph

type :” selon ce que l’on recherche (ici trafic en octets) puis valider avec “Create”.

Il faut maintenant ajouter l’équipement dans l’arbre :– Cliquer sur “Graph Trees” dans le menu de gauche, puis “Default Tree”.

54

Cliquer sur “Add”. Sur la page chargée, changer la valeur de “Tree Item Type” par “Host”, puis Choisir dansla liste “Host” l’équipement à ajouter, on valide ensuite avec “Create”.

On peut modifier le texte affiché des graphes dans la “Graph List” de l’équipement, afin de rendre pluslisible les informations (PORT 24 → serveur2), etc.

Il faut patienter quelques minutes (environ 5), avant de pouvoir consulter le résultat dans l’onglet bleu“Graphs”.

7 VPN

OpenVPN est basé sur une architecture client/serveur. Il doit être installé aux deux extrémités du VPN. Uneextrémité est désignée comme serveur (ici le serveur 1 de l’AS 4) et l’autre comme client (le serveur 2 del’AS 1).

Installation d’OpenVPN (sur le serveur et le client) : apt-get install openvpn.

serveur1.ent1Client OpenVPN

serveur1.ent2Serveur OpenVPN

server.crt server.key

dh1024.pem

client.crt client.key

ca.crt

Internet

FIGURE 4.2 – Architecture VPN dans la plateforme

7.1 Configuration du serveur OpenVPN

Se connecter en root : su sous debian.

Il faut tout d’abord ouvrir un terminal et effectuer une copie dans son dossier /root des scripts de générationde clés :

55

cp /usr/share/doc/openvpn/examples/easy-rsa ~/openvpn/ -R

L’ensemble des commandes se feront dans le répertoire déplacé : cd ~/openvpn/2.0/

Maintenant éditer le fichier vars et initialiser les variables KEY_COUNTRY, KEY_PROVINCE, KEY_CITY,KEY_ORG, and KEY_EMAIL. Ne laisser surtout pas un seul champ vide. Il faut modifier les dernières lignesà sa convenance. Dans notre cas :export KEY_COUNTRY=FRexport KEY_PROVINCE=ileDeFranceexport KEY_CITY=parisexport KEY_ORG=pfresexport [email protected]

Puis effectuez la commande : . ./vars pour prendre en compte les changements des variables.

On efface toutes les clés et certificats existants à l’aide de la commande : ./clean-all.

Puis, il faut créer le certificat et la clé de l’Autorité de Certification Maitre (Master Certificate Authority(CA) : ./build-ca

Le certificat et la clé de l’Autorité de Certification sont à présent créés au niveau des fichiers : ca.crt etca.key dans le dossier keys.

Nous allons générer un certificat et une clé privée pour le serveur. Si le nom du serveur est : server, lecertificat et la clé privée sont créés à l’aide de la commande : ./build-key-server server. Laisser lesparamètres par défaut et et accepter les deux questions.

Les paramètres Diffie-Hellman doivent être générés pour le serveur OpenVPN : ./build-dh

Attention pour le serveur le fichier d’exemple est compressé dans le fichier : server.conf.gz, il faut legunzipper de la façon suivante :cd /usr/share/doc/openvpn/examples/sample-config-filessudo gunzip server.conf.gz

Puis exécuter la commande ci dessous :sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/

openvpn/

La configuration par défaut est correcte et ne nécessite pas de modifications dans notre cas.

Remarque. Il faut prendre une attention toute particulière concernant :– L’utilisation du pool d’adresses 192.168.0.0/24 pour le VPN : il ne faut qu’un réseau utilise des

adresses de cette plage.– Si le nom du serveur n’est pas server il faut éditer le fichier et changer le nom des fichiers server.[ca|cert|key] en <server name>.[ca|cert|key].

Le serveur doit recevoir les paquets VPN du client sur une interface précise. Pour ce faire, éditer la ligne :local 4.11.100.1 dans /etc/openvpn/server.conf.

Editez ensuite la directive remote pour indiquer l’adresse IP/nom d’hôte et le port du serveur OpenVPN.Ici : remote 4.11.100.1 1193.

7.2 Configuration du client OpenVPN

Il faut copier le répertoire donné en exemple dans l’installation de OpenVPN pour le client :cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/

openvpn/

De la même manière que pour le serveur, il faut générer ensuite le couple de clés et certificats du clientclient1 à l’aide de la commande : ./build-key client1

Comme le fichier de configuration du serveur, éditer d’abord les paramètres ca, cert et key pour pointervers les fichiers générés précédemment (du client cette fois). Dans notre cas il faut renommer client.caen client1.ca, etc.

56

7.3 Finalisation (wrap-up)

Il faut également déplacer (commande cp pour le serveur et scp pour le client) les clés et certificats dans ledossier /etc/openvpn. Sont concernés les fichiers suivants :– ca.crt : pour le serveur et le client,– Pour le serveur : les fichiers server.crt, server.key, dh1024.pem– Pour le client : les fichiers client.crt, client.key, ca.crtPour simplifier la recherche de problèmes (troubleshooting), il est préférable de démarrer le serveur OpenVPNdepuis la ligne de commande (ie. dans le dossier /etc/openvpn) plutôt que de démarrer le démon (ie. /etc/init.d/openvpn start). Dans un terminal :# Serveurcd /etc/openvpn && sudo openvpn server.conf

# Clientcd /etc/openvpn && sudo openvpn client.conf

Si le VPN fonctionne, alors de nouvelles interfaces auront être activées sur le serveur et le client (commandeifconfig). Par ailleurs, la nouvelle interface doit avoir une adresse IP dans le pool d’adresses indiqué surle fichier configuration du serveur.

Si les nouvelles interfaces sont activées, il est possible de pinger le client à partir du serveur ou réciproque-ment : ping 192.168.0.1. Si le ping a fonctionné, le VPN fonctionne ! Vous pouvez utiliser le démon(ie. /etc/init.d/openvpn start).

Il est ensuite possible d’ajouter des machines au client et/ou au serveur. Dans le cadre du projet, et pourrester dans un caractère général, on n’obligera pas les hôtes à passer par le VPN.

8 IPSec

IPSec (IP Secure) est un protocole de sécurité pour IP. Il est composé de :– Ecapsulation Security Payload (ESP) qui permet de chiffrer les données,– Authentication Header (AH) qui permet d’authentifier les données.Par ailleurs, il peut être utilisé en mode tunnel (ie. encapsulation de tout le paquet IP) ou en mode transport(ie. encapsulation du payload).

Pour implémenter IPSec sur la plateforme, nous utilisons le paquet ipsec-tools : sudo apt-get

install ipsec-tools.

Editer le fichier /etc/ipsec-tools.conf à l’aide d’un éditeur de texte. Le fichier est composé de deuxparties :– Une première partie définissant les clés à utiliser (commandes add),– Une seconde partie définissant les politiques de sécurité (commande spdadd).

8.1 Configuration des clés à utiliser

Définition des clés que les deux partis vont utiliser à l’aide de la commande add :add <local ip> <remote ip> [ah|esp] <unique number 1> [-E|-A] <encryption

algorithm> <key 1>;add <remote ip> <local ip> [ah|esp] <unique number 2> [-E|-A] <encryption

algorithm> <key 2>;

Pour utiliser les modes AH et ESP, il faudra taper deux fois les deux lignes précédentes :– Avec l’option -A (authentication) et deux clés différentes et un algorithme d’authentification (eg. hmac-md5),

– Avec l’option -E (encryption) et deux autres clés différentes et un algorithme de chiffrement (eg. 3des-cbc, aes-cbc).

57

8.2 Configuration des politiques de sécurité

Les politiques de sécurité permettent de définir les politiques pour les communications entrantes et sortantes.Pour accepter toutes les communications entrantes et/ou sortantes, utiliser le mot-clé any.spdadd <local ip> [<port>|any] <remote ip> [<port>|any] -P out ipsec

esp/{transport|tunnel}//{require|option}[ah/{transport|tunnel}//{require|option}];

spdadd <remote ip> [<port>|any] <local ip> [<port>|any] -P in ipsecesp/{transport|tunnel}//{require|option}[ah/{transport|tunnel}//{require|option}];

Remarque. Le manuel associé à ipsec-tools est accessible à l’aide de la commande man setkey

8.3 Finalisation

Protéger le fichier ipsec-tools.conf à l’aide de la commande :sudo chmod 750 ipsec-tools.conf

Cela empêche un utilisateur mal intentionné d’avoir accès aux clés.

Pour activer le service, utiliser la commande : sudo /etc/init.d/setkey start.

58

CHAPITRE5VoIP et Qualité de service (QoS)

1 VoIP (Voice over IP)

La VoIP est une technique qui permet de communiquer par la voix sur des réseaux compatibles IP.

Afin d’implémenter la VoIP sur la plateforme, nous avons choisi d’utiliser Asterisk. Asterisk implémenteles protocoles H.320, H.323 et SIP, ainsi qu’un protocole spécifique nommé IAX (Inter-Asterisk eXchange).

Ce protocole IAX permet la communication entre deux serveurs Asterisk ainsi qu’entre client et serveurAsterisk.

Asterisk peut également jouer le rôle de registrar et passerelle avec les réseaux publics (RTC, GSM, etc.)

Configuration des équipements :interface <interface>! Configure data and voice access VLANsswitchport access vlan <VLAN> switchport voice vlan <VLAN>

! Trust ingress QoS markingsmls qos trust cos

! Optionally pre-allocate power for the portpower inline static [max <wattage>]

1.1 Installation du serveur de voix Asterisk

Mettre à jour Debian : apt-get update && apt-get dist-upgrade

Installer les dépendances pour Asterisk 10 Debian :install -y build-essential linux-headers-`uname -r` libxml2-dev ncurses-dev

libsqlite3-dev sqlite3

Créer un répertoire dans /usr/src pour Asterisk : mkdir /usr/src/asterisk

Aller dans ce répertoire : cd /usr/src/asterisk

Télécharger Asterisk 10 et les outils DAHDI en utilisant la commande wget :wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk

-10.0.0.tar.gz &&wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/releases

/dahdi-linux-complete-2.6.0+2.6.0.tar.gz

Extraire les deux archives tar.gz :tar -xvzf asterisk-10.0.0.tar.gz && tar -xvzf dahdi-linux-complete

-2.6.0+2.6.0.tar.gz

Installer (build) les outils DAHDI sur Debian (à faire avant d’installer Asterik) :

59

cd dahdi-linux-complete-2.6.0+2.6.0/make all &&make install &&make config

Lancer les outils DAHDI : /etc/init.d/dahdi start

Installer (build) Asterisk 10 pour Debian 6 en le compilant :cd ../asterisk-10.0.0/make clean./configure

Une fois la configuration de l’application terminée, le logo Asterisk doit apparaître :

.$$$$$$$$$$$$$$$=...$7$7.. .7$$7:.

.$$:. ,$7.7.$7. 7$$$$ .$$77

..$$. $$$$$ .$$$7..7$ .?. $$$$$ .?. 7$$$.

$.$. .$$$7. $$$$7 .7$$$. .$$$..777. .$$$$$$77$$$77$$$$$7. $$$,$$$~ .7$$$$$$$$$$$$$7. .$$$..$$7 .7$$$$$$$7: ?$$$.$$$ ?7$$$$$$$$$$I .$$$7$$$ .7$$$$$$$$$$$$$$$$ :$$$.$$$ $$$$$$7$$$$$$$$$$$$ .$$$.$$$ $$$ 7$$$7 .$$$ .$$$.$$$$ $$$$7 .$$$.7$$$7 7$$$$ 7$$$$$$$$ $$$$$$$7. $$ (TM)$$$$$$$. .7$$$$$$ $$

$$$$$$$$$$$$7$$$$$$$$$.$$$$$$$$$$$$$$$$$7$$$$.

Afin de personnaliser l’installation de Asterisk, installer (build) en utilisant menuselect : make menuselect

Installer (make) Asterisk 10 : make && make install

– Lancer la console Asterisk avec la commande asterisk– Lancer le service Asterisk : /etc/init.d/asterisk start

1.2 Utilisation du serveur de voix Asterisk

L’un des téléphones sera placé dans l’AS 1 et l’autre dans l’AS 4 dans les sous-réseaux suivants :– AS 1 : 23.7.100.48/29 (vlan 112)– AS 4 : 4.11.100.64/28 (vlan 444)Ces sous-réseaux sont dédiés à la téléphonie. Les détails des adresses des AS 1 et 4 ont été donnés respecti-vement au niveau des sections 2 et 5 du chapitre 1.

L’outil rasterisk permet :– L’affichage des messages d’erreurs en direct,– L’affichage de l’état des téléphones,– L’affichage de l’état des liens trunk.

60

Pour vérifier l’enregistrement des téléphones, la commande sip show peers permet d’afficher l’état desutilisateurs.

Editer le fichier /etc/asterisk/sip.conf :[general]context=local ; context par defaut pour les utilisateursbindport=5060 ; port UDP du protocole SIPbindaddr=0.0.0.0 ; trafic 0.0.0.0 pour toutes les interfaceslanguage=fr ; messages vocaux en français

register => trunk_AS4_vers_AS1:[email protected] ; enregistrement auprès duserveur Asterisk Ent2 (AS 4).

[Bob] ; obligatoire ; login SIPsecret=pfres ; obligatoire ; mot de passe SIPtype=friend ; obligatoire ; autorise les appels entrant et sortanthost=dynamic ; obligatoire ; adresse IP du clientcallerid="Bob" <100> ; facultatif ; nom et numméro de téléphone affichés sur

le téléphone appelé.

[trunk_AS1_vers_AS4] ; trunk pour enregistrement du serveur Asterisk Ent2 (AS4) auprès du serveur Ent1 (AS 1).

context=localsecret=pfrestype=friendhost=dynamicinsecure=port,invite

Afin de vérifier que l’enregistrement est bien effectif, exécuter la commande sip show registery dansrasterisk.

La colonne State du trunk doit être à l’état Registered (cela n’est possible que si le serveur de l’AS 4est aussi configuré).

Editer le fichier /etc/asterisk/extensions.conf :[local]exten => 100, 1, Dial(SIP/Bob, 10) ; les appels arrivant sur le serveur

Asterisk àdestination du numéro 100 sont envoyés vers le téléphone de Bobpendant 10 secondes.

exten => _2XX, 1 ,Dial(SIP/trunk_AS1_vers_AS4/${EXTEN}) ; les appels arrivantsur le serveur Asterisk àdestination de numéro commençant par 2 sont envoyés sur le serveur Ent2 (AS 4).

Il faut bien sur faire une configuration équivalente sur le serveur Asterisk de l’AS 4.Remarque. Pour prendre en compte les changements, effectuer la commande :/etc/init.d/asterisk restart

1.3 Configuration des téléphones

Configurer les adresses IP et masques sur les téléphones Linksys SPA962 en utilisant directement le menudu téléphone (touche fichier puis sous-menu network).

Se connecter à l’interface web du téléphone.

Cliquer sur admin et advanced en haut gauche, puis cliquer sur l’onglet Ext 1.

Noter l’adresse de votre serveur Asterisk dans le champ proxy, noter le login et le mot de passe (ici pfres)de Bob dans les champs User ID et Password.

Placer (xxx) dans le champ Dial Plan. Ceci indique que l’on utilise des numéros à 3 chiffres.

Placer Enable IP dialing sur no.

Cliquer enfin sur Submit All changes (le téléphone redémarre alors).

61

2 QoS (Quality of Service)

2.1 Généralités

Modèles de qualité de service :– Best effort : aucune politique de QoS n’est implementée.– Intergrated Services (IntServ) : le protocole RSVP (Ressource Reservation Protocol) est utilisé pour

réserver de la bande passante pour les flots à travers tous les nœuds sur un chemin.– Differentiated Services (DiffServ) : les paquets sont classifiés et marqués individuellement. Les décisions

concernant les politiques de QoS sont prises indépendamment par chaque nœud sur un chemin.

Marquage de QoS des trames (couche 2) :

Médium Nom TypeEthernet Class of Service (CoS) 3-bit 802.1p field in 802.1Q headerFrame Relay Discard Eligibility (DE) 1-bit drop eligibility flagATPM Cell Loss Priority (CLP) 1-bit drop eligibility flagMPLS Traffic Class (TC) 3-bit field compatible with 802.1p

Ver HL LenTOS

Precedence

DSCP

Marquage de QoS des paquets IP :– IP Precedence : les premiers 3 bits du champ TOS de l’entête IP (limité à 8 classes)– Differentiated Services Code Point (DSCP) : les premiers 6 bits du champ TOS de l’entête IP sont évalués

pour avoir plus de classes disponibles. Rétro-compatibilité avec IP Precedence.

Binary DSCP Forwarding Class Packet Loss Priority (PLP) Prec.56 111000 NC2/CS7 Network-control Low 748 110000 NC1/CS6 Internetwork-control Low 646 101110 EF Expedited-forwarding (Critical) Low 532 100000 CS4 Flash Override Low

434 100010 AF41 Assured-forwarding Low36 100100 AF42 Assured-forwarding Medium38 100110 AF43 Assured-forwarding High24 011000 CS3 Flash Low26 011010 AF31 Assured-forwarding Low28 011100 AF32 Assured-forwarding Medium30 011110 AF33 Assured-forwarding High

3

16 010000 CS2 Immediate Low

218 010010 AF21 Assured-forwarding Low20 010100 AF22 Assured-forwarding Medium22 010110 AF23 Assured-forwarding High8 001000 CS1 Priority Low10 001010 AF11 Assured-forwarding Low12 001100 AF12 Assured-forwarding Medium14 001110 AF13 Assured-forwarding High

1

0 000000 BE Best-effort N/A 0

62

Gestion de file d’attente (Congestion Avoidance) :– Random Eraly Detection (RED) : les paquets sont jetés aléatoirement avant que la file ne soit pleine

pour éviter les drop tail. RED permet de désynchroniser les fenêtres de congestion TCP avec un bonparamétrage.

– Weighted RED (WRED) : RED avec la capacité de distinguer le trafic prioritaire en se basant sur sonmarquage QoS.

– Class-Based WRED (CBWRED) : WRED utilisé à l’intérieur d’une file d’attente class-based WFQ(CBWFQ).

HardwareQueue

QueuingDecision

Scheduler

Software Queue

No

YesSoftware Queue

Software QueueHW

QueueFull?

FIGURE 5.1 – Diagramme de QoS

Terminologie :– Per-Hop Behavior (PHB) : actions individuelles de QoS effectuées à chaque nœud indépendant DiffServ.– Trust Boundary : au-delà de ce point, le marquage QoS des paquets entrant n’est pas certain (trusted).– Tail Drop : a lieu lorsqu’un paquet est jeté parce que la file est pleine.– Policing : impose un plafond artificiel sur la bande passante qui peut être utilisée. Le trafic excédant par

rapport à la politique est re-classifié ou jeté.– Shaping : similaire à policing, mais met en buffer le trafic excédant pour délayer la transmission. La

bande passante est mieux utilisée, mais du délai est introduit.– TCP Synchronization : les flux synchronisent les fenêtres TCP, ce qui sous-utilise le lien.

DCSP Per-Hop Behaviors :– Class Selector (CS) : compatible avec les valeurs de IP Precedence.– Assured Forwarding (AF) : 4 classes avec des drop preferences variables.– Expedited Forwarding (EF) : priorité en file d’attente pour le trafic sensible au temps.

TCAPHB

Ingress Node Interior Node

EgressNode

TCAPHB

PHB

(a) Architecture DiffServ (Differentiated Services)

Classification / Marquage / Contrôle / Mise en forme Classification / Marking / Policing / Shaping

(b) Traffic Conditioning Agreement (TCA)

File d'attente / RejetQueuing / Dropping

(c) Per-Hop Behavior (PHB)

63

First In First Out (FIFO)

Hardware Queue

TxRing

– Les paquets sont traités dans leur ordre d’arrivée.– Aucune priorité n’est utilisée.– File d’attente par défaut sur les interfaces à haut-

débit (> 2 Mbit/s).

Priority Queuing (PQ)

High

Medium

Normal

Low

HardwareQueue

– 4 files d’attente statiques non re-configurables.– Les files d’attente de plus hautes priorités sont tou-

jours vidées avant celles de plus basses priorités.– Les files d’attente de basses priorité ont des risques

de famine (au niveau de la bande passante).

Custom Queuing (CQ)500 B/cycle

4500 B/cycle

1500 B/cycle

Queue A

Queue B

Queue CHardware

Queue

– Rotation des files d’attente en utilisant WeightedRound Robin (WRR).

– Traite un nombre configurable d’octets de chaquefile d’attente par tour.

– Evite la famine au niveau de chaque file d’at-tente, mais aucun délai de bout-en-bout garanti (pasadapté pour le trafic sensible au temps).

Weighted Fair Queuing (WFQ)Flow 1

Flow 2

Flow n

...Hardware

Queue

– Les files d’attente sont créées dynamiquement pourchaque flot pour assurer un traitement équitable.

– Statistiquement, les paquets des flots les plus“agressifs” sont jetés plus souvent.

– Aucun support pour le trafic sensible au temps.

Class-Based Weighted Fair Queuing (CBWFQ)512 kbps Min

1024 kbps Min

Remainder

Queue A

Queue B

DefaultHardware

Queue

– WFQ avec des files d’attente configurées par un ad-ministrateur.

– Une quantité/pourcentage de bande passante est al-louée à chaque file d’attente.

– Aucun support pour le trafic sensible au temps.

Low Latency Queuing (LLQ)

512 kbps Min

1024 kbps Min

Remainder

Queue A

Queue B

Default

512 kbps MaxPriority

HardwareQueue

– CBWFQ avec une politique de priorité stricte pourla file d’attente.

– Très configurable, tout en assurant le support pourle trafic sensible au temps.

2.2 Implémentation dans Juniper JunOS

Ingress

Egress

BAClassifier

Policing(Ingress)

MultifieldClassifier

ForwardingPolicy

RewriteMarker

MultifieldClassifier

Policing(Egress)Scheduler Shaper RED

Forwarding Class

Loss PriorityFabric

FIGURE 5.2 – Processus de QoS au niveau des routeurs Juniper

Les composantes définissant la Class of Service pour les routeurs Juniper sont les suivantes :

64

Multifield Classifier Associer les code-points DSCP ou EXP et les PLP (Packet Loss Priority) à une classede services donnée aux différents flots[edit class-of-service classifiers]

Forwarding-classes Définir plusieurs files d’attente. Quatre classes sont définies par défaut sur Juniper :– File d’attente (Queue) 0 : classe Best-Effort,– File d’attente (Queue) 1 : classe Expedited-Forwarding,– File d’attente (Queue) 2 : classe Assured-Forwarding,– File d’attente (Queue) 3 : classe Network-Control.[edit class-of-service forwarding-classes]

Interfaces Appliquer des règles données (définies au niveau des classifiers) aux interfaces souhaitées[edit class-of-service interfaces]

Scheduler Définir un comportement pour le trafic sortant en fonction de la forwarding-class[edit class-of-service schedulers]

Scheduler-map Associer les schedulers à une forwarding-class[edit class-of-service scheduler-maps]

Policer Restreindre selon des critères (bande passante, sporadicité, . . .) les différents flots[edit firewall policer <policer name>]

Filter Filtrer des flots particulier selon différents critères (adresse IP source/destination, protocole de lacouche transport, . . .)[edit firewall filter <filter name>]

Debug/Troubleshooting :show class-of-service <interface>show class-of-service classifier name <classifier name>show class-of-service code-point-aliases dscpshow class-of-service rewrite-rule

MPLS et QoS

Les routeurs Juniper de l’AS 3 doivent pouvoir à la fois supporter la QoS tout en utilisant MPLS. De cefait, il est nécessaire de les rendre compatibles avec le Traffic Class implémenté au niveau de MPLS (avecle champ EXP).

Utilisation du champ EXP de MPLS (EXPerimental) qui correspond à la classe de service pour le protocoleMPLS. Il s’agit de E-LSP (EXP-inferred Label Switched Path) qui peuvent porter des paquets avec 8 Per-Hop Behavior distincts pour un seul LSP.

Code Point Forwarding Class Loss Priority

000 Best effort Low001 Best effort High010 Expedited forwarding Low011 Expedited forwarding High100 Assured forwarding Low101 Assured forwarding High110 Network control Low111 Network control High

Redéfinir les valeurs DSCP en valeurs pour le champ EXP de MPLS :[edit class-of-service]rewrite-rules {

exp base-exp-remarking {forwarding-class be {

loss-priority low code-point 000;

65

}forwarding-class assured-forwarding {

loss-priority low code-point 001;loss-priority high code-point 010;

}forwarding-class expedited-forwarding {

loss-priority low code-point 101;}

}}

Attacher les rewrite rules aux interfaces concernées des routeurs concernés :[edit class-of-service interfaces]<interface> {

unit <interface unit> {rewrite-rules {

dscp <rewrite DSCP rule>;exp <rewrite EXP rule>;

}}

}

2.3 Implémentation dans Cisco IOS

Différentes étapes pour la configuration de la QoS

Première étape : définir le trafic qui nécessite une qualité de service particulière au niveau du routeur. Celapeut se faire à l’aide de :– Les Access Control List (ACL),– La fonction NBAR (Network Based Application) définie par Cisco, qui permet au routeur de reconnaître

du trafic particulier (HTTP, Skype. . .)Création des ACL en utilisant la commande :Router(config)# access-list <acl number> {deny | permit | remark} <protocol> {

<source> <source-wildcard> | host <source> | any} [operator <port>] {<dest> <dest-wildcard> | host <dest> | any} [operator <port>]

Deuxième étape : créer une classe de trafic (traffic class) à l’aide de class-map.Une class-map répartit le trafic en différents groupes.Router(config)# class-map [match-all | match-any] <class name>

! Match criteria for class map based on a specified Access Control List (ACL)Router(config-cmap)# match access-group {<access group> | name <access group

name>}

! Valeurs optionnellesRouter(config-cmap)# match any ! successful for all packetsRouter(config-cmap)# match class-map <class name>Router(config-cmap)# match destination-address mac <MAC address>Router(config-cmap)# match discard-class <class number>Router(config-cmap)# match [ip] dscp <dscp value> ! match criterion is a

specific IP DSCPRouter(config-cmap)# match field <protocol> <protocol field> {eq [mask] | neq

[mask] | gt | lt | range <range> | regex <string>} <value> [next <next-protocol>]

Router(config-cmap)# match input-interfaces <interface name>Router(config-cmap)# match protocol <protocol name>Router(config-cmap)# match source-address mac <address destination>

66

Troisième étape : créer une une politique de trafic (traffic policy) à l’aide d’une policy-map.Une policy-map permet d’appliquer d’appliquer des politiques sur les classes définies lors de l’étape précé-dente avec class-map.Router(config)# policy-map <policy name>Router(config-pmap)# class {<class name> | class-default } ! name of a traffic

class

! Valeurs optionnellesRouter(config-pmap-c)# bandwidth {<bandwidth kbps | percent <percent>}Router(config-pmap-c)# fair-queue <number of queues>Router(config-pmap-c)# police <bps> [<burst normal>] [<burst max>] conform-

action <action> exceed-action <action> [violate-action <action>]Router(config-pmap-c)# priority {<bandwidth kbps> | percent <percentage>} [<

burst>]Router(config-pmap-c)# queue-limit <number of packets>Router(config-pmap-c)# random-detect [dscp-based | prec-based] ! enable WRED

or DWREDRouter(config-pmap-c)# set discard-class <value>Router(config-pmap-c)# set [ip] dscp {<dscp value> | <from field> [table <

table map name>]}Router(config-pmap-c)# service-policy <policy map name>Router(config-pmap-c)# shape {average | peak} <mean rate> [<burst size> [<

excess burst size>]]

Quatrième étape : attacher la policy-map à l’interface.Il est possible d’appliquer la policy-map soit dans le mode input ou le mode output, en utilisant la com-mande :Router(config)# interface <interface>Router(config-if)# service-policy output [type-access-control] {input | output

} <policy map name>

Par ailleurs, si NBAR est utilisé pour reconnaître le trafic, il faut également activer NBAR sur l’interface àl’aide de la commande suivante :Router(config-if)# ip nbar protocol-discovery

Cinquième étape : vérifier la classe de trafic et la politique de trafic :Router# show class-map [type {stack | access-control}] [<class map name>]Router# show policy-map <policy map> [class <class name>]

Remarque. Pour classifier le trafic, il est possible d’utiliser :– La commande rate-limit– Une policy-map que l’on attache aux interfaces en input.

Configuration des edge routers

! Creation de listes pour repérer le trafic VoIPRouter(config)# access-list 101 remark RTP TrafficRouter(config)# access-list 101 permit udp any any range 16384 32767Router(config)# access-list 101 permit ip host 23.7.100.51 host 4.11.100.67

Router(config)# access-list 102 remark SIP TrafficRouter(config)# access-list 102 permit tcp any any eq 5060Router(config)# access-list 102 permit udp any any eq 5060

! Classer les paquets entrant selon leur valeur de ToSRouter(config)# class-map match-all expedited-forwardingRouter(config-cmap)# match access-group 101Router(config)# class-map match-all assured-forwardingRouter(config-cmap)# match access-group 102

67

! Définition d'une policy-mapRouter(config)# policy-map QOS-policyRouter(config-pmap)# class expedited-forwardingRouter(config-pmap-c)# priority 512Router(config-pmap)# class assured-forwardingRouter(config-pmap-c)# priority 256Router(config-pmap)# class class-defaultRouter(config-pmap-c)# fair-queueRouter(config-pmap-c)# random-detect

! Attacher les policies aux interfacesRouter(config)# interface <interface>Router(config-if)# rate-limit input access-group 102 2560000 65536 65536

conform-action set-dscp-transmit 34 exceed-action set-dscp-continue 0Router(config-if)# rate-limit input access-group 101 5120000 65536 65536

conform-action set-dscp-transmit 46 exceed-action set-dscp-continue 0Router(config-if)# rate-limit input 1408000 8000 8000 conform-action transmit

exceed-action dropRouter(config-if)# service-policy output QOS-policy

Configuration des transit routers

! Classer les paquets entrant selon leur valeur de ToSRouter(config)# class-map match-all expedited-forwardingRouter(config-cmap)# match dscp 46Router(config)# class-map match-all assured-forwardingRouter(config-cmap)# match dscp 34

! Définition d'une policy-mapRouter(config)# policy-map QOS-policyRouter(config-pmap)# class expedited-forwardingRouter(config-pmap-c)# priority 512Router(config-pmap)# class assured-forwardingRouter(config-pmap-c)# priority 256Router(config-pmap)# class class-defaultRouter(config-pmap-c)# fair-queueRouter(config-pmap-c)# random-detect

! Attacher les policies aux interfacesRouter(config)# interface <interface>Router(config-if)# service-policy output QOS-policy

3 Application au projet

Afin de faire transiter la VoIP plusieurs protocoles ont besoin d’être “avantagés” par rapport aux autres :– Le protocole SIP (Session Initiation Protocol) est un protocole de signalisation, comme H.323, et transite

entre les serveurs Asterisk,– Le protocole RTP (Real-Time Protocol) est un protocole transportant la voix, transitant entre les deux

téléphones.

Les éléments entrant en jeu pour la VoIP sont récapitulés dans le tableau suivant :

Eléments AS 1 AS 4

Serveur Asterisk 23.7.100.50 4.11.100.66

Téléphone IP 23.7.100.51 4.11.100.67

Il y a donc deux catégories de routeurs qui sont mis en jeu :– Les routeurs de bordure : les routeurs des AS 1 et 4 connectés aux AS 2 et 3 qui devront marquer les

paquets et faire du PHB (Per-Hop Behavior) également,– Les routeurs de cœur : les routeurs des AS 2 et 3 qui devront faire du PHB (Per-Hop Behavior).

68

Serveur1.Ent2Asterisk

Serveur1.Ent1Asterisk

Juniper1 ISS MIR

Routeur AS 1

J1

J2

J4Juniper2

AS 2

AS 3

AS 1AS 4

local-pref 100

local-pref 200

FIGURE 5.3 – Transit de la VoIP entre les AS 1 et 4

Remarque. Nous avons choisi volontairement de prendre le chemin le plus long pour aller de l’AS 1 versl’AS 4 et y revenir. Il y a au total 9 sauts. Nous avons choisi de procéder de cette manière pour pourvoirmettre en évidence le rôle de la QoS dans la VoIP. Par ailleurs, afin de configurer le champ EXP de MPLS,il faut absolument passer par l’AS 3, d’où le transit par les 4 AS.

Il a été possible de forcer le passage vers l’AS 3 à partir de l’AS 4 (qui est multihomé par les AS 2 et 3) enconsidérant une valeur plus élevée pour l’attribut Local-Preference pour l’AS 3 par rapport à l’AS 2.

Concernant la QoS en particulier, nous avons défini trois classes de trafic qui sont répertoriées dans le tableausuivant :

Type de trafic Classe de service DSCP EXP (TC) PLP

RTP (Voix) Expedited-Forwarding EF (46 / 101110) EF (000) LowSIP (Signalisation) Assured-Forwarding AF41 (34 / 100010) AF (100) LowReste Best-Effort BE (0 / 000000) BE (000) Low

Remarque. Les routeurs Juniper comportent quatre classes de service par défaut qui sont celles présentéesdans le tableau précédent, avec la classe Network-Control de DSCP CS6.

Les classes de services sont représentées par le schéma suivant :

Toutes les classes

Best Effort

ExpeditedForwarding

Trafic RTP

Trafic SIP

AssuredForwarding

FIGURE 5.4 – Quality of Service

69

4 Montée en charge et analyse

Montée en charge

Utilisation de la commande iperf :Server# iperf -u -sClient# iperf -c <server address> -i <interval> -t <time to transmit> -rub <

packet size>Client# iperf -c 4.11.10.3 -i 2 -t 30 -rub 600M

Remarque. La commande iperf est disponible sur les serveurs suivants :– serveur1.ent1.org avec pour adresse IP : 23.7.100.1– serveur3.ent2.org avec pour adresse IP : 4.11.100.30

Analyse de traces

Avec le logiciel Wireshark, il est possible de capturer du trafic et de l’exporter en format pcap.

Notre objectif est de capturer du trafic en considérant plusieurs protocoles :– Le protocole SIP qui permet la signalisation,– Le protocole RTP qui permet de transit de la voix,– Le reste du trafic qui doit transiter en best effort.

Afin de représenter le trafic sur des graphiques à l’aide de gnuplot, il nous faut tout d’abord récupérerles champs qui nous sont utiles pour l’analyse (notamment l’instant d’arrivée de la trame sur l’interfaced’écoute, la taille du paquet IP).

Pour ce faire, nous allons utiliser l’outil tshark, qui n’est autre que Wireshark en ligne de commande :tshark -e frame.time_relative -e ip.len -Tfields -R rtp -r capture.pcap >

rtp_traffictshark -e frame.time_relative -e ip.len -Tfields -R sip -r capture.pcap >

sip_traffictshark -e frame.time_relative -e ip.len -Tfields -R "not (sip or rtp)" -r

capture.pcap > remainder_traffic

Une fois le trafic classé, il nous suffit d’utiliser un script AWK pour regrouper les différentes instants (dis-crets) en classes (continu). Nous avons choisit d’avoir une précision au dixième de seconde, afin d’avoir unnombre conséquent de paquets, mais pas trop par instant.

Nous avons alors le script AWK suivant :BEGIN {}{

split($2, a, ",");for(i in a) {

count[int($1*10.0)] += a[i]}

}END {

for(i in count){printf("%f\t%d\n", i/10.0, count[i]);

}}

Enfin, nous utilisons un script gnuplot pour tracer les courbes :resetunset keyset xlabel 'Temps'set ylabel 'Octets'set term postscript.pdf enhanced color "Times-Roman" 22set style fill solid 0.5 noborder

70

set output 'throughput.pdf'set boxwidth 0.15

plot "gp_bg" u 1:(max) w filledcurves above y1=0. lc rgb"#eeeeee" notitle,\'< tshark -e frame.time_relative -e ip.len -Tfields -R "not (sip or rtp)"

-r capture.pcap | awk -f analyse.awk | sed "s/\,/\./" | sort -n'using 1:2 t "Remainder" smooth freq w boxes lc rgb"blue",\

'< tshark -e frame.time_relative -e ip.len -Tfields -R rtp -r capture.pcapawk -f analyse.awk | sed "s/\,/\./" | sort -n' using 1:2 t "RTP"

smooth freq w boxes lc rgb"green",\'< tshark -e frame.time_relative -e ip.len -Tfields -R sip -r capture.pcap

| awk -f analyse.awk | sed "s/\,/\./" | sort -n' using 1:2 t "SIP"smooth freq w boxes lc rgb"red"

plot '< cat remainder_traffic | awk -f analyse.awk | sed "s/\,/\./" | sort -n'using 1:2 t "RTP" smooth freq w boxes lc rgb"red",\'< cat rtp_traffic | awk -f analyse.awk | sed "s/\,/\./" | sort -n' using

1:2 t "RTP" smooth freq w boxes lc rgb"red",\'< cat sip_traffic | awk -f analyse.awk | sed "s/\,/\./" | sort -n' using

1:2 t "SIP" smooth freq w boxes lc rgb"green"

Remarque. Pour tracer un fond de couleur grise pour mettre en valeur une partie du graphique, il suffit detracer le graphique qui nous intéresse avant la commande set term :p '< cat rtp_traffic | awk -f amalyse.awk | sed "s/\,/\./" | sort -n' using

1:2

Puis d’utiliser la variable gnuplot GPVAL_Y_MAX qui permet d’avoir la valeur maximale des données pourfixer la hauteur du graphique : set yrange [0:max].

Enfin, il est possible de tracer le fond gris pour mettre en valeur les données :plot "background" u 1:(GPVAL_Y_MAX) w filledcurves above y1=0. lc rgb"#eeeeee"

notitle

où background est un fichier contenant deux lignes : l’abscisse de départ et l’abscisse d’arrivée du fond.

Nous avons donc le graphique suivant :

10

100

1000

10000

100000

1e+06

0 20 40 60 80 100 120 140 160

Oct

ets

Temps

iperf

SIP

RTP

FIGURE 5.5 – Capture de trafic entre Juniper 2 (AS 3) et MIR (AS 2)

Nous pouvons donc constater que les trafics de voix (RTP, en rouge) et de signalisation (SIP, en vert) restentconstants, même quand il y a du trafic transversal (avec iperf, en beu). De ce fait, l’implémentation dequalité de service est fonctionnelle au cœur de la plateforme.

71

CHAPITRE6Troubleshooting

Routeurs Cisco 3820

Les routeurs C3820 perdent leur configuration au reboot

Les routeurs Cisco C3850 perdent leur configuration lors d’un redémarrage ou d’une perte de courant.

Cause Le router peut ignorer la configuration de démarrage située dans la NVRAM (non-volatile RAM)pendant sa boot sequence. Pour le vérifier, il faut compléter les étapes suivantes :

a. Après que le routeur ait démarré, ne pas entrer dans le menu de configuration initial (initialconfiguration dialog) : chosir No.

b. Presser la touche “Entrée” pour afficher le prompt Router>

c. Saisir le mot-clé enable pour entrer dans le mode privilégié

d. Router#show start

Si la configuration n’est pas la même que celle enregistrée avec le redémarrage du routeur, passerà l’étape suivante.

e. Router#show version

La dernière ligne affichée correspond à quelque chose comme :Configuration register is 0x2142Dans notre exemple, le router ignore la configuration de démarrage stockée dans la NVRAMpendant sa boot sequence.

Solution Le registre de configuration n’a pas été configuré proprement. Pour changer le registre de confi-guration, taper les commandes suivantes :Router# configure terminalRouter(config)# config-register 0x2102Router(config)# end

! VérificationRouter# show version...Configuration register is 0x2142 (will be 0x2102 at next reload)

! Router reloadRouter#reloadSystem configuration has been modified. Save? [yes/no]: nProceed with reload? [confirm]

Remarque. Pour de plus amples détails, se référer au support web de Cisco : http://www.cisco.com/en/US/products/hw/routers/ps233/products_tech_note09186a00800a65a5.shtml

72

L’interface des routeurs est bloquée au niveau 2

Cause Sur les routeurs CISCO 3825, l’attribution d’une adresse IP à une interface renvoie une erreur et nepeut s’effectuer.

Solution Les routeurs CISCO 3825 possèdent des interfaces fonctionnant par défaut au niveau 2, il convien-dra de ne pas oublier de taper la commande :Router(config-int)# no switchport

Dans le cas où nous souhaitons utiliser une interface destiné à effectuer du routage, cette commandeest nécessaire. Sans celle-ci, l’attribution d’une adresse IP à une interface n’est pas possible.

Problème de ping entre les ASs

Cause La plupart du temps, il s’agit d’un câble mal branché. Le taquet de certains câbles est effet absent,ce qui peut mener à des débranchements occasionnels.

Solution Se référer aux diodes des commutateurs. Les diodes doivent être allumées en vert si le câble estbien branché des deux côtés. Par ailleurs, la liste des câbles est disponible à la section 6.Une fois le câble rebranché, les protocoles de routage vont progressivement converger pour créer uneroute entre tous les ASs. Il faut donc attendre entre 1 et 5 minutes.

Cause La configuration de load-balancer du serveur serveur3.ent2.org (AS 4) est inexistante.

Solution Il suffit de se connecter au serveur serveur3.ent2.org de l’AS 4 à l’aide du contrôleur deconsole et ajouter la ligne suivante :ip route add default scope global nexthop via 4.11.100.61 weight 1

nexthop via 4.11.100.62 weight 1

Les téléphones IP sont inactifs (diodes orange)

Cause Les serveurs Asterisk des ASs de types entreprise (AS 1 et AS 4) sont désactivés :– serveur1.ent1.org

– serveur2.ent2.org

Solution Les serveurs comportant le daemon Asterisk sont peut-être éteints (ou n’ont pas encore démarrés).Le daemon Asterisk n’est peut-être pas encore activé : /etc/init.d/asterisk restart

Vérifier que les téléphones soient bien enregistrés à l’aide de la commande sip show registery

dans le CLI rasterisk.Pour plus d’informations, se référer à la section sur Asterisk 1.2

Impossible de contrôler un équipement à l’aide du contrôleur de console

L’erreur suivante apparaît lorsque l’on essaye de se connecter à un port console :

Connection closed by foreign hosterror reading pseudo-tty: Input/output error (5)

Cause Il existe des utilisateurs déjà connectés à l’équipement via le même protocole (ici, telnet).

Solution Sur tous les équipements, il est impossible à plusieurs utilisateurs de se connecter simultanémentsur le port console.Passer par le réseau de la plateforme en se connecter en SSH sur l’équipement souhaité.

73

Multi-homing de l’AS 4

Cause L’AS 4 est transitif : il donne aux AS 2 et AS 3 toutes les routes apprises :– Annonce faite à l’AS 2 : la route vers l’AS 3 et ses clients,– Annonce faite à l’AS 3 : la route vers l’AS 2 et ses clients.Il est donc considéré comme fournisseur par tous ses voisins (et non comme client).

Solution Le comportement par défaut de BGP sur les OS des routeurs est d’annoncer aux voisins toutes lesroutes apprises, cependant dans notre cas, nous sommes juste client de deux fournisseurs différents,nous avons donc dû filtrer les routes annoncées pour restreindre les annonces BGP à notre uniqueréseau.

Concernant le routeur Juniper 3

Le système de fichier (partitionné en UFS) de la carte compact flash du routeur Juniper 3 semble être cor-rompu. De ce fait, il faudrait le remplacer avec une version non corrompue. Cependant, la version que nousavons trouvée (junos-jsr-10.3R2.11-export-cf1024) est faite pour une carte compact flash de1024 Mo (au lieu de 256 Mo, taille de la carte compact flash actuelle).

Comme indiquée sur cette page web, la manipulation reste facile d’accès. Cependant, le fichier suivant :junos-jseries-8.2R2.4-export-cf256 (qui est le système de fichiers actuel des routeurs J4350)nécessaire reste introuvable.

74

CHAPITRE7Bibliographie

[1] Site web packetLife.net. Accès : http://packetlife.net. Accédé pour la dernière fois le 7 juin2012.

[2] Site web Juniper. Accès : http://www.juniper.net/techpubs/software/jseries/junos82/. Accédé pour la dernière fois le 7 juin 2012.

[3] Site web Cisco. Accès : http://www.cisco.com/en/US/docs/ios/12_2/qos/command/reference/qrfcmd8.html. Accédé pour la dernière fois le 7 juin 2012.

[4] K. Dooley et I. Brown (2006). Cisco IOS Cookbook. (2e ed.). O’Reilly.

[5] A. Garrett. JUNOS Cookbook. O’Reilly

[6] W. Goralski, C. Gadecki M. Bushong (2011). JunOS for DUMMIES. (2e ed.). Wiley.

[7] G. Clarke (2011). CCENT Certification All-in-One for DUMMIES. Wiley.

[8] S. Angelescu (2010). CCNA Certification All-in-One for DUMMIES. Wiley.

[9] A. Tanenbaum et D. Wetherall (2011). Comupter Networks. (5e ed.). Pearson.

[10] G. Pujolle (2011). Les réseaux. (7e ed.). Eyrolles.

[11] T. Thomas, D. Pavlichek, L. Dwyer, R. Chowbay, W. Downing, J. Sonderegger (2002). Juniper Net-works Reference Guide : JUNOS Routing, Configuration, and Architecture. (1re ed.). Addison Wesley.

[12] G. Davies (2011). DAY ONE : DEPLOYING BASIC QOS. Juniper Networks Books.

[13] T. Fiola et J. Panagos (2011). THIS WEEK : DEPLOYING MPLS. Juniper Networks Books.

[14] J. Panagos et A. Statti (2011). DAY ONE : JUNOS MONITORING AND TROUBLESHOOTING. Juni-per Networks Books.

[15] Avocent (2010). CYCLADES ACS 5000 Installation/Administration/User Guide. Avocent Corporation.

[16] Avocent (2010). CYCLADES ACS 5000 Command Reference Guide. Avocent Corporation.

[17] Avocent (2011). Avocent PM PDU Installer/User Guide. Avocent Corporation.

[18] Extreme Networks (2007). ExtremeXOS Summit Family Switches Hardware Installation Guide. Ex-treme Networks, Inc.

[19] Hewlett-Packard Company (2006). ProCurve Series 2900 Switches Installation and Getting StartedGuide. Hewlett-Packard Development Company.

[20] Juniper Networks, Inc (2012). Junos OS Class of Service Configuration Guide. Juniper Networks, Inc.

[21] Juniper Networks, Inc (2011). JUNOS Software J Series Services Routers Hardware Guide. JuniperNetworks, Inc.

[22] Juniper Networks, Inc (2011). JUNOS Software MPLS. Juniper Networks, Inc.

Merci pour votre attention :)

75