pfres plateforme de la spécialité reseaux
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