Manuel du projet

Transcription

Manuel du projet
PFRES : PlateForme de la
spécialité RESeaux
Manuel de l’utilisateur
Benjamin Bachelart (mail) • Benjamin Baron (mail)
Benjamin Gonzalez (mail) • Alexandre Ragaleux (mail)
2012
Table des matières
1
2
3
4
5
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
Généralités sur les équipements
24
1
Introduction sur protocoles de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2
Rapide prise en main des équipements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Implémentation de fonctionnalités (routeurs)
37
1
Protocoles de routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2
MPLS (MultiProtocol Label Switching) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
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
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
CHAPITRE
Description générale de la plateforme
1
1.1
Introduction
Aperçu de l’ensemble de la plateforme
AS 1
AS 2
Avocent ACS 5016
Avocent ACS 5016
1
Cisco WS-C3560-24PS
PVDM 1
PVDM 0
INLINE
PWR
SYS
OK
SYS
PWR
AIM 1
FE 0/1
CONSOLE
FE 0/0
AUX
FDX
100
LINK
FDX
100
LINK
SLOT 3
SLOT 2 THIS SLOT ACCEPTS ONLY VICs AND WICs
SLOT 1
SLOT 0 THIS SLOT ACCEPTS ONLY VICs AND WICs
CF
AIM 0
COMPACT FLASH DO NOT REMOVE DURING NETWORK OPERATION
Cisco 2800 Series
A daptive Security A ppliance
STATUS
ACTIVE
VPN
FLASH
2
3
4
5
6
7
8
9
10
11
1X
9X
11X
2X
10X
12X
12
13
14
15
16
17
18
19
Catalyst 2960 SERIES
20
Cisco WS-C2960G-24TC-L
19X
21
22
23
24
20X
Cisco 2801
Cisco ASA 5510
Cisco 3825
N M E1
S
L
O
T
N M E0
S
L
O
T
3
2
S
L
O
T
S
L
O
T
1
0
S
L
O
T
S
L
O
T
CONSOLE
GE 0/1
LINK
SPD
AUX
SPD
GE 0/0
PEP
CISCO ASA 5510 series
POWER
SYST
RPS
MASTR
STAT
DUPLX
SPEED
MODE
SFP
LINK
Cisco 3825
N M E1
3
2
S
L
O
T
S
L
O
T
1
0
CONSOLE
GE 0/1
LINK
SPD
AUX
SPD
GE 0/0
LINK
PEP
N M E0
SFP
15" LCD (7U)
serveur1.core1
serveur1.ent1
serveur2.ent1
serveur2.core1
serveur3.ent1
KVM Switch/Button Panel
gate-net.rsr.lip6.fr
AS 3
AS 4
Avocent ACS 5016
HP ProCurve 2900-24G
HP ProCurve 2900-24G
Avocent ACS 5016
Extreme Networks x450e-24p
Juniper SSG20
Juniper SSG20
Juniper J2300
Juniper J2300
PSEUDOL
Juniper J4350
Juniper J4350
MEDIAL
serveur1.ent2
serveur2.ent2
serveur3.ent2
Juniper J4350
Juniper J4350
3
1
1.2
Aperçu des équipements
Alimentation
Contrôleur
Commutateur
Routeur
Serveur
Firewall
Matériel
Armoire 1
Armoire 2
AS 1 (Entreprise)
AS 2 (Coeur)
AS 3 (Coeur)
Avocent PM 1000 (Power Distribution Unit)
Cyclades ACS 5000 (Advanced Console Server)
1 Cisco WS-C2960G-24TC-L
2 HP ProCurve 2900-24G
2 Cisco 3825
4 Juniper J4350
2
2
N/A
N/A
Téléphones IP Cisco SPA962
1 Cisco WS-C3560-24PS
1 Cisco 2801
3
1 Cisco ASA 5510
Armoire 3
Armoire 4
AS 4 (Entreprise)
1 Extreme x450e-24P
2 Juniper J2300
3
2 Juniper SSG20
Routeurs
Ethernet Gigabit
IEEE 802.1q VLAN
IPv6
Routage IP
QoS
VPN
Multicast
MPLS
Système d’exploitation
Interfaces
Cisco 2801
Cisco 3825
Juniper J4350
Juniper J2300
4
4
4
4
4
4
4
4
Cisco IOS 2801
v12.4(22)YB5
2 FastEthernet
4
4
4
4
4
4
4
4
Cisco IOS 3825
v12.4(22)
32 FastEthernet
4 Gigabit Ethernet
4
4
4
4
4
4
4
4
JUNOS 8.2R2.4
4
4
4
4
4
4
4
4
JUNOS 8.2R1.7
4 Gigabit Ethernet
2 FastEthernet
Cisco WS-C3560-24PS
Cisco
WS-C2960G-24TC-L
HP ProCurve 2900-24G
(J9049A)
Extreme Network
Summit X450e-24p
4
4
4
4
4
4
4
4
Cisco IOS C3560
v12.2(25)SEB4
24 FastEthernet
2 Gigabit Ethernet
4
4
4
4
4
4
4
4
Cisco IOS C2960
v12.2(25)SEE2
24 Gigabit Ethernet
4
4
4
4
4
4
4
4
T.12.06
4
4
4
4
4
4
4
4
ExtremeWare XOS
v1150b10
24 Gigabit Ethernet
(10/100/1000BASE-T)
Commutateurs
Ethernet Gigabit
IEEE 802.1q VLAN
IPv6
Trunk
Routage IP
QoS
VPN
PoE
Système d’exploitation
Interfaces
24 Gigabit Ethernet
(10/100/1000BASE-T)
Firewalls
IPS
VPN
IEEE 802.1x NAC
DHCP
IPv6
NAT
Routage IP
QoS
Système d’exploitation
Interfaces
Cisco ASA 5510 Series
Juniper SSG20
4
SSL, DTLS, IPSec
4
4
4
4
4
4
Cisco Adaptive Security Appliance Software v7.1(2)
3 FastEthernet
4
IPSec
4
4
4
4
4
4
ScreenOS v6.2.0r13.0
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
AS2
AS3
AS4
VLAN 999
23.7.100.0/24
28.5.0.0/16
13.8.0.0/16
4.11.100/24
10.0.0.0/8
2a00:b82:8502::/48
2e70:13::/32
2d05:37::/32
2a00:285:42::/48
N/A
Les valeurs des deux premiers octets des NetID correspondent aux différentes dates de naissances des participants du projet (c’est un bon moyen de se souvenir des anniversaires !). La valeur en décimale du troisième
octet 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ème
octet 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 les
pré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ôleur
de console par AS.
La passerelle gate-net.rsr.lip6.fr fait en effet office de proxy pour HTTP et HTTPS en utilisant
Squid. Les serveurs ont alors accès à Internet sur leur Interface eth1.
MGMT4
MGMT3
Serveurs AS 4 Serveurs AS 3
MGMT2
MGMT1
Serveurs AS 2
Serveurs AS 1
F IGURE 1.1 – Représentation du VLAN 999
5
gate-net
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’unique
gateway de l’AS. Ce routeur délimite le réseau interne de l’entreprise composé de trois PC/serveurs.
AS 2
VLAN 112
23.7.100.48/29
ASA5510
VLAN 210 (géré par AS2)
28.5.254.0/30
2e70:13:254:210::/64
Catalyst 2800
VLAN 100
23.7.100.32/28
VLAN 111
23.7.100.0/27
2a00:b82:8502:112::/64
Catalyst 3560
serveur1.ent1
serveur2.ent1
serveur3.ent1
ASA5510
Catalyst 3560
serveur1.ent1
serveur2.ent1
(a) Visualisation de l’AS 1
Catalyst 2800
serveur3.ent1
(b) Administration de l’AS 1
F IGURE 1.2 – AS 1
AS 2
serveur1.ent1
serveur3.ent1
eth2 eth1 eth0
eth2 eth1 eth0
1
2
1
7
3
3
5
8
7
ASA5510
MGMT
9
eth1 eth2
210
10 11 12
9
11
13
15
17
19
21
23
100
111
112
210
AS 1
2
4
4
6
5
8
10
12
14
70
6
16
18
14 15
110
eth2 eth1 eth0
serveur2.ent1
MGMT1
20
22
24
999
999
0/0 0/1
eth0 eth1 eth2 eth3 eth4
Cisco 2800
gate-net
100
Connexion LIP6
F IGURE 1.3 – Commutateur AS 1
Switch Cisco Catalyst 3560
VLAN
Interface
Switch
100
N/A
N/A
IPv4
IPv6
23.7.100.33/28
N/A
IPv4
IPv6
23.7.100.34/28
23.7.100.30/27
23.7.100.49/29
28.5.254.2/30 (AS 2)
N/A
Routeur Cisco Catalyst 2801
VLAN
Interface
Switch
100
111
112
210
fa0/0.100
fa0/0
fa0/0.112
fa0/1
19
19
19
20
6
2a00:b82:8502:112::fffe/64
N/A
2a70:13:254:210::2/64 (AS 2)
Firewall Cisco ASA5510
VLAN
Interface
Switch
100
210
man0/0
man0/1
13
14
IPv4
IPv6
23.7.100.35/28
N/A
N/A
N/A
IPv4
IPv6
23.7.100.36/28
23.7.100.1/27
23.7.100.50/29
10.40.130.11
N/A
IPv6 autoconfiguré
N/A
N/A
serveur1.ent1.org
VLAN
Interface
Switch
100
111
112
999
eth2
eth0
eth0.112
eth1
1
3
3
2
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
100
111
999
eth2
eth0
eth1
4
6
5
IPv4
IPv6
23.7.100.37/28
23.7.100.2/27
10.40.130.12
N/A
IPv6 autoconfiguré
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
100
111
999
eth2
eth0
eth1
7
9
8
IPv4
IPv6
23.7.100.38/28
23.7.100.3/27
10.40.130.13
N/A
IPv6 autoconfiguré
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
112
eth0
11
IPv4
IPv6
23.7.100.51/29
N/A
Mutualisation des ports sur les équipements :
VLAN
Routeur Cisco 2801
serveur1.ent1.org
100
111
112
210
Virtualisé fa0/0.100
Natif fa0/0
Virtualisé fa0/0.112
Dédié fa0/1
Dédié eth2
Natif eth0
Virtualisé eth0.112
–
7
Mots de passe :
Equipement
Login
Password
Accès
IPv4
Avocent ACS 5000
Power Management
Switch Cisco Catalyst 3560
Routeur Cisco Catalyst 2801
Firewall Cisco ASA5510
admin
admin
cisco
cisco
avocent
avocent
cisco
cisco
ssh/telnet/http
telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/console
ssh/console
ssh/console
http
http
10.40.130.10
serveur1.ent1.org
serveur2.ent1.org
serveur3.ent1.org
Nagios
Cacti
N/A
N/A
root
root
root
nagiosadmin
admin
password
password
password
password
password
console
23.7.100.33/28
23.7.100.34/28
23.7.100.35/28
23.7.100.36/28
23.7.100.37/28
23.7.100.38/28
23.7.100.37/28
23.7.100.37/28
Services de l’AS 1 :
Equipement
Services
Routeur Cisco
DHCP
Apache, Asterisk, iperf
Apache, DHCP (VLAN 999), IPSec, Nagios/Cacti, VPN (OpenVPN)
Apache, DNS, FTP (ProFTPD), NTP
serveur1.ent1.org
serveur2.ent1.org
serveur3.ent1.org
Catalyst 3560
ASA5510
111
113
1
2
serveur1.ent1 serveur3.ent1
118
116
3
4
5
6
7
8
AS 1
9
10
11
12
13
14
15
112
117
Cisco 2800
serveur2.ent1
16
119
PDU-AS1
F IGURE 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 de
bordure 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 FAI
via un commutateur.
AS 1
VLAN 210
28.5.254.0/30
2e70:13:254:210::/64
VLAN 222
28.5.0.0/27
2e70:13:0:222::/64
MIR
serveur2.core1
VLAN 221
28.5.0.48/30
2e70:13:0:221::/64
Catalyst 2960
ISS
VLAN 320
28.5.254.4/30
2e70:13:254:320::/64
VLAN 200
28.5.0.32/28
VLAN 421
28.5.254.8/30 (VLAN 420)
2e70:13:254:420::/64
AS 3
MIR
serveur1.core1
serveur2.core2
Catalyst 2960
AS 4
serveur1.core1
ISS
(a) Visualisation de l’AS 2
(b) Administration de l’AS 2
F IGURE 1.5 – AS 2
AS 3
MGMT2
serveur1.core1
MIR
eth2 eth1 eth0
0/1 0/0 1/0 2/0
17 18 19
1
120
3
5
320
23 24 25 26
7
9
11
13
15
17
19
21
23
200
221
222
320
420
999
210
AS 2
2
4
6
8
10
12
14
16
18
20
22
24
20 21 22
13 27 28 29 30
420
210
eth2 eth1 eth0
1/1 0/1 0/0 1/0 2/0
AS 4
AS 1
ISS
serveur2.core1
F IGURE 1.6 – Commutateur AS 2
Switch Cisco Catalyst 2960
VLAN
Interface
Switch
200
N/A
N/A
IPv4
IPv6
28.5.0.33/28
N/A
IPv4
IPv6
28.5.0.34/28
28.5.254.1/30
28.5.0.49/30
28.5.0.29/27
N/A
Cisco Catalyst 3825 (MIR)
VLAN
Interface
Switch
200
210
221
222
Gi0/1
Gi0/0
Gi1/0
Gi2/0
11
12
13
14
9
2e70:13:254:210::1/64
2e70:13:0:221::1/64
2e70:13:0:222::fffd/64
Cisco Catalyst 3825 (ISS)
VLAN
Interface
Switch
200
221
222
320
420
Gi0/1
Gi1/0
Gi2/0
Gi0/0
Fa1/0
17
19
20
18
16
IPv4
IPv6
28.5.0.35/28
28.5.0.50/30
28.5.0.30/27
28.5.254.5/30
28.5.254.9/30
N/A
IPv4
IPv6
28.5.0.36/28
28.5.0.1/27
10.40.130.21
N/A
IPv4
IPv6
28.5.0.37/28
28.5.0.2/27
10.40.130.22
N/A
2e70:13:0:221::2/64
2e70:13:0:222::fffe/64
2e70:13:254:320::1/64
2e70:13:254:420::1/64
serveur1.core1.org
VLAN
Interface
Switch
200
222
999
eth2
eth0
eth1
1
3
2
2e70:13:0:222::1/64
N/A
serveur2.core1.org
VLAN
Interface
Switch
200
222
999
eth2
eth0
eth1
4
6
5
2e70:13:0:222::2/64
N/A
Mots de passe :
Equipement
Avocent ACS 5000
Power Management
Switch Cisco Catalyst 2960
Cisco Catalyst 3825 (MIR)
Cisco Catalyst 3825 (ISS)
serveur1.core1.org
serveur2.core1.org
Nagios
Cacti
Login
Password
Accès
IPv4
admin
admin
cisco
cisco
cisco
root
root
nagiosadmin
admin
avocent
avocent
cisco
cisco
cisco
password
password
password
password
ssh/telnet/http
telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/console
ssh/console
http
http
10.40.130.20
Services de l’AS 2 :
Equipement
Services
Routeur Cisco MIR (28.5.0.29/27)
DHCP
Apache
Apache, NTP, DNS (Cacti/Nagios)
serveur1.core1.org
serveur2.core1.org
Catalyst 2960
ISS
serveur2.core1
121
123
128
1
2
3
4
5
6
7
8
AS 2
9
10
11
12
13
122
14
15
127
16
129
serveur1.core1 PDU-AS2
MIR
F IGURE 1.7 – Contrôleur de console MGMT2 de l’AS 2
10
console
28.5.0.33/28
28.5.0.34/28
28.5.0.35/28
28.5.0.36/28
28.5.0.37/28
28.5.0.37/28
28.5.0.37/28
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 deux
routeurs de bordures, celui-ci a pour rôle de permettre aux clients d’accéder aux serveurs de ce FAI.
VLAN 320
28.5.254.4/30
2e70:13:254:320::/64
VLAN 332
13.8.0.48/30
2d05:37:0:332::/64
VLAN 333
13.8.0.52/30
2d05:37:0:333::/64
VLAN 300
MEDIAL 13.8.0.32/28
VLAN 431
13.8.254.0/30 (VLAN 430)
2d05:37:254:430::/64
AS 4
AS 2
J3
J4
J4
J1
J2
ProCurve 2900 HP2
ProCurve 2900 HP1
ProCurve 2900 HP
J2
VLAN 331
13.8.0.0/27
2d05:37:0:331::/64
J1
PSEUDOL
PSEUDOL
MEDIAL
(a) Visualisation de l’AS 3
(b) Administration de l’AS 3
F IGURE 1.8 – AS 3
AS 2
PSEUDOL
J1
J2
eth2 eth1 eth0
0/0 0/1 0/2 0/3
0/0 0/1 0/2 0/3
31 32 33
80 81 82 83
84 85 86 87
1
3
5
7
9
11
13
15
MGMT3
17
130
19
320
21
23
HP1
2
4
6
8
10
12
14
16
18
20
22
24
300
331
332
320
430
999
333
AS 3
1
3
5
7
9
11
13
15
17
19
21
23
HP2
2
4
6
8
10
12
14
16
18
34 35 36
88 89 90 91
92 93 94 95
eth2 eth1 eth0
0/0 0/1 0/2 0/3
0/0 0/1 0/2 0/3
J3
J4
20
22
24
430
AS 4
MEDIAL
F IGURE 1.9 – Commutateur AS 3
Routeur Juniper 1
VLAN
Interface
Switch
IPv4
IPv6
300
331
332
333
N/A
ge-0/0/0
ge-0/0/3
ge-0/0/1
ge-0/0/2
lo0.0
HP1 9
HP1 12
HP1 10
HP1 11
N/A
13.8.0.35/28
13.8.0.30/27
13.8.0.49/30
13.8.0.53/30
10.255.3.1/32
N/A
2d05:37:0:331::fffe/64
2d05:37:0:332::1/64
2d05:37:0:333::1/64
N/A
Routeur Juniper 2
VLAN
Interface
Switch
IPv4
IPv6
300
332
320
N/A
Ge-0/0/0
Ge-0/0/1
Ge-0/0/3
lo0.0
HP1 15
HP1 16
HP1 18
N/A
13.8.0.36/28
13.8.0.50/30
28.5.254.6/30 (AS 2)
10.255.3.2/32
N/A
11
2d05:37:0:332::2/64
2e70:13:254:320::2/64 (AS 2)
N/A
Routeur Juniper 4
VLAN
Interface
Switch
IPv4
IPv6
300
333
430
N/A
Ge-0/0/0
Ge-0/0/1
Ge-0/0/3
lo0.0
HP2 15
HP2 16
HP2 18
N/A
13.8.0.38/28
13.8.0.54/30
13.8.254.1/30
10.255.3.4/32
N/A
2d05:37:0:333::2/64
2d05:37:254:430::1/64
N/A
medial.core2.org
VLAN
Interface
Switch
IPv4
IPv6
300
331
999
eth2
eth0
eth1
HP2 1
HP2 3
HP2 2
13.8.0.39/28
13.8.0.1/27
10.40.130.32
N/A
2d05:37:0:331::1/64
N/A
pseudol.core2.org
VLAN
Interface
Switch
IPv4
IPv6
300
331
999
eth2
eth0
eth1
HP1 1
HP1 3
HP1 2
13.8.0.40/28
13.8.0.3/27
10.40.130.31
N/A
2d05:37:0:331::3/64
N/A
Mots de passe :
Login
Password
Accès
IPv4
admin
admin
root
root
admin
admin
admin
root
root
nagiosadmin
admin
avocent
avocent
hp
hp
Juniper
Juniper
Juniper
password
password
password
password
ssh/telnet/http
telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/console
ssh/console
http
http
10.40.130.30
Equipement
Avocent ACS 5000
Power Management
HP ProCurve 1
HP ProCurve 2
Routeur Juniper 1
Routeur Juniper 2
Routeur Juniper 4
medial.core2.org
pseudol.core2.org
Nagios
Cacti
Services de l’AS 3 :
Equipement
Services
Routeur Juniper 1 (13.8.0.30)
DHCP
Apache
Apache, Cacti/Nagios, DNS, NTP
medial.core2.org
pseudol.core2.org
HP1
131
2
137
135
133
1
PSEUDOL
J3
J1
3
4
5
6
7
8
AS 3
9
10
132
HP2
11
12
13
14
134
136
J2
J4
15
16
138 139
MEDIAL
PDU-AS3
F IGURE 1.10 – Contrôleur de console MGMT3 de l’AS 3
12
N/A
13.8.0.33/28
13.8.0.34/28
13.8.0.35/28
13.8.0.36/28
13.8.0.38/28
13.8.0.39/28
13.8.0.40/28
13.8.0.40/28
13.8.0.40/28
Prise en compte du routeur Juniper 3 dans la topologie
AS 2
VLAN 320
28.5.254.4/30
2e70:13:254:320::/64
VLAN 334
13.8.0.88/30
2d05:37:0:334::/64
VLAN 335
13.8.0.92/30
2d05:37:0:335::/64
J2
VLAN 331
13.8.0.0/27
2d05:37:0:331::/64
ProCurve 2900 HP1
J1
ProCurve 2900 HP2
J3
VLAN 333
13.8.0.84/30
2d05:37:0:333::/64
VLAN 332
13.8.0.80/30
2d05:37:0:332::/64
J4
VLAN 430
13.8.254.0/30
2d05:37:254:430::/64
PSEUDOL
MEDIAL
AS 4
F IGURE 1.11 – Visualisation de l’AS 3
AS 2
PSEUDOL
J1
J2
eth2 eth1 eth0
0/0 0/1 0/2 0/3
0/0 0/1 0/2 0/3
31 32 33
80 81 82 83
84 85 86 87
1
3
2
1
5
4
3
2
7
6
5
4
9
8
7
6
11
10
9
8
13
12
11
10
15
14
13
12
17
16
15
14
MGMT3
19
18
17
16
21
20
19
18
34 35 36
88 89 90 91
92 93 94 95
eth2 eth1 eth0
0/0 0/1 0/2 0/3
0/0 0/1 0/2 0/3
J3
J4
320
130
23
22
21
20
24
23
22
300
331
332
333
334
335
336
320
430
999
24
430
AS 4
MEDIAL
F IGURE 1.12 – Commutateur AS 3 avec Juniper 3
13
AS 3
VLAN 336
13.8.0.32/27
2d05:37:0:336::/64
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 importants.
Cette entreprise possède deux routeurs qui sont chacun connectés à un FAI différent afin d’améliorer la
fiabilité de la connexion Internet (multi-homing). Bien évidement ces routeurs tout deux protégés par un
firewall matériel. Une DMZ (DeMilitarized Zone) à été mise en place dans laquelle sont installés les serveurs
publiques de l’entreprise susceptible d’être accédés depuis Internet sans entrer dans le véritable réseau de
cette entreprise. Le réseau local de l’entreprise est constitué de deux serveurs/PC et d’un load balancer. Ce
dernier récupère tout le trafic sortant du réseau privé et le répartit entre les deux FAI selon la charge sur leur
réseau par exemple.
VLAN 441
4.11.100.48/29
2a00: 285:42:441::/64
AS 2
AS 3
VLAN 421
VLAN 431
serveur3.ent2
DMZ
Firewall1.ent2
VLAN 420 (géré par AS2)
28.5.254.8/30
2e70:13:0:254:420::/64
Firewall2.ent2
VLAN 430 (géré par AS3)
13.8.254.0/30
2d05:37:254:430::/64
Extreme Network
J2300-1
J2300-2
VLAN 442
4.11.100.56/29
2a00:285:42:442::/64
serveur3.ent2
Load Balancer
VLAN 400
4.11.100.32/28
Firewall1.ent2
VLAN 443
4.11.100.0/27
2a00:285:42:443::/64
Extreme Network
VLAN 444
4.11.100.64/28
serveur1.ent2
J2300-1
serveur2.ent2
Extreme Network
serveur1.ent2
(a) Visualisation de l’AS 4
serveur2.ent2
AS 2
serveur3.ent2
eth2 eth1 eth0
eth2 eth1 eth0
0/0
40 41 42
49 50 51
55 56 57
2
5
4
7
6
9
8
J2300-1
Firewall2.ent2
serveur1.ent2
3
11
10
12
46 47 48
52 53 54
0/0
0/1
0/1
13
eth2 eth1 eth0
0/2
Port0 Port1
15
14
17
16
71
420
58 59
19
18
21
20
22
140
400
441
442
443
420
421
430
431
444
999
23
60 61
24
430
Port0 Port1
0/2
AS 3
serveur2.ent2
Firewall1.ent2
MGMT4
J2300-2
F IGURE 1.14 – Commutateur AS 4
Extreme Networks Summit
VLAN
Interface
Switch
400
N/A
N/A
J2300-2
serveur3.ent2
(b) Administration de l’AS 4
F IGURE 1.13 – AS 4
1
Firewall2.ent2
IPv4
IPv6
4.11.100.33/28
N/A
14
AS 4
Routeur Juniper 1
VLAN
Interface
Switch
400
441
442
444
420
fe-0/0/0.1
fe-0/0/1.0
fe-0/0/1.1
fe-0/0/1.2
fe-0/0/0.0
19
20
19
19
20
IPv4
IPv6
4.11.100.34/28
4.11.100.54/29
4.11.100.62/29
4.11.100.65/28
28.5.254.10/30 (AS 2)
N/A
IPv4
IPv6
4.11.100.35/28
4.11.100.53/29
4.11.100.61/29
13.8.254.2/30 (AS 3)
N/A
IPv4
IPv6
4.11.100.36/28
N/A
N/A
N/A
N/A
N/A
IPv4
IPv6
4.11.100.37/28
N/A
N/A
N/A
N/A
N/A
IPv4
IPv6
4.11.100.38/28
4.11.100.1/27
4.11.100.66/28
10.40.130.41
N/A
IPv4
IPv6
4.11.100.39/28
4.11.100.2/27
10.40.130.42
N/A
IPv4
IPv6
4.11.100.40/28
4.11.100.49/29
4.11.100.57/29
4.11.100.3/27
10.40.130.43
N/A
2a00:285:42:441::fffe/64
2a00:285:42:442::fffe/64
N/A
2e70:13:254:420::2/64
Routeur Juniper 2
VLAN
Interface
Switch
400
441
442
430
fe-0/0/0.1
fe-0/0/1.0
fe-0/0/1.1
fe-0/0/0.0
21
22
22
21
2a00:285:42:441::fffd/64
2a00:285:42:442::fffd/64
2d05:37:254:430::2/64
Firewall Juniper 1
VLAN
Interface
Switch
400
420
421
eth0
eth1
eth2
10
11
12
Firewall Juniper 2
VLAN
Interface
Switch
400
430
431
eth0
eth1
eth2
13
14
15
serveur1.ent2.org
VLAN
Interface
Switch
400
443
444
999
eth2
eth0
eth0.444
eth1
1
3
3
2
2a00:285:42:443::1/64
N/A
N/A
serveur2.ent2.org
VLAN
Interface
Switch
400
443
999
eth2
eth0
eth1
4
6
5
2a00:285:42:443::2/64
N/A
serveur3.ent2.org
VLAN
Interface
Switch
400
441
442
443
999
eth2.400
eth2.441
eth1
eth0
eth1.999
7
7
8
9
9
15
2a00:285:42:441::1/64
2a00:285:42:442::1/64
2a00:285:42:443::3/64
N/A
Téléphone IP Phone SPA962
VLAN
Interface
Switch
444
eth0
16
IPv4
IPv6
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
441
442
443
444
420
430
Virtualisé 0.1
Natif 1.0
Virtualisé 1.1
–
Virtualisé 1.2
Natif 0.0
–
Virtualisé 0.1
Natif 1.0
Virtualisé 1.1
–
–
–
Natif 0.0
Dédié eth2
–
–
Natif eth0
Virtualisé eth0.444
–
–
Virtualisé eth2.400
Natif eth2 (DMZ)
Dédié eth1 (LB)
Dédié eth0 (LB)
–
–
–
Mots de passe :
Equipement
Avocent ACS 5000
Power Management
Extreme Networks Summit
Routeur Juniper 1
Routeur Juniper 2
Firewall Juniper 1
Firewall Juniper 2
serveur1.ent2.org
serveur2.ent2.org
serveur3.ent2.org
Nagios
Cacti
Login
Password
Accès
IPv4
admin
admin
admin
root
root
netscreen
netscreen
root
root
root
nagiosadmin
admin
avocent
avocent
ssh/telnet/http
telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/telnet
ssh/console
ssh/console
ssh/console
http
http
10.40.130.40
N/A
Juniper
Juniper
netscreen
netscreen
password
password
password
password
password
Services de l’AS 4 :
Equipement
Services
serveur1.ent2.org
serveur2.ent2.org
serveur3.ent2.org
Apache, Asterisk, IPSec, VPN (OpenVPN)
Apache, Nagios/Cacti
Apache, DHCP, DNS, FTP (ProFTPD), iperf, NTP
Summit
J2300-2
141
143
1
2
Firewall2.ent2 serveur2.ent2
147
145
3
4
5
6
7
8
AS 4
9
10
142
J2300-1
11
12
13
144
14
146
15
16
148 149
Firewall1.ent2 serveur1.ent2 serveur3.ent2 PDU-AS3
F IGURE 1.15 – Contrôleur de console MGMT4 de l’AS 4
16
console
4.11.100.33/28
4.11.100.34/28
4.11.100.35/28
4.11.100.36/28
4.11.100.37/28
4.11.100.38/28
4.11.100.39/28
4.11.100.40/28
4.11.100.40/28
4.11.100.40/28
6
Câblage des équipements
Câble
AS
1
2
3
4
5
6
7
8
9
10
11
12
14
15
17
18
19
20
21
22
23
24
25
26
27
28
29
30
13
31
32
33
34
35
36
40
41
42
46
47
48
49
50
51
52
53
54
55
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
Port source
Port destination
Adaptateur
Couleur
Droit
C3560 port 1
C3560 port 2
C3560 port 3
C3560 port 4
C3560 port 5
C3560 port 6
C3560 port 7
C3560 port 8
C3560 port 9
C3560 port 13
C3560 port 14
C3560 port 15
C3560 port 19
C3560 port 20
C2960 port 1
C2960 port 2
C2960 port 3
C2960 port 4
C2960 port 5
C2960 port 6
C2960 port 11
C2960 port 12
C2960 port 13
C2960 port 14
C2960 port 17
C2960 port 18
C2960 port 19
C2960 port 20
C2960 port 16
HP1 port 1
HP1 port 2
HP1 port 3
HP2 port 1
HP2 port 2
HP2 port 3
Summit port 1
Summit port 2
Summit port 3
Summit port 4
Summit port 5
Summit port 6
Summit port 7
Summit port 8
Summit port 9
Summit port 10
Summit port 11
Summit port 12
Summit port 13
serveur1.ent1 port eth2
serveur1.ent1 port eth1
serveur1.ent1 port eth0
serveur2.ent1 port eth2
serveur2.ent1 port eth1
serveur2.ent1 port eth0
serveur3.ent1 port eth2
serveur3.ent1 port eth1
serveur3.ent1 port eth0
ASA5510 port MGMT
ASA5510 port eth1
ASA5510 port eth2
Cisco 2800 port fa0/0
Cisco 2800 port fa0/1
serveur1.core1 port eth2
serveur1.core1 port eth1
serveur1.core1 port eth0
serveur2.core1 port eth2
serveur2.core1 port eth1
serveur2.core1 port eth0
MIR port Ge0/1
MIR port Ge0/0
MIR port Ge1/0
MIR port Ge2/0
ISS port Ge0/1
ISS port Ge0/0
ISS port Ge1/0
ISS port Ge2/0
ISS port Fa0/0
PSEUDOL port eth2
PSEUDOL port eth1
PSEUDOL port eth0
MEDIAL port eth2
MEDIAL port eth1
MEDIAL port eth0
serveur1.ent2 port eth2
serveur1.ent2 port eth1
serveur1.ent2 port eth0
serveur2.ent2 port eth2
serveur2.ent2 port eth1
serveur2.ent2 port eth0
serveur3.ent2 port eth2
serveur3.ent2 port eth1
serveur3.ent2 port eth0
Firewall1.ent2 port 0/0 (eth0)
Firewall1.ent2 port 0/1 (eth1)
Firewall1.ent2 port 0/2 (eth2)
Firewall2.ent2 port 0/0 (eth0)
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Jaune
Jaune
Jaune
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Continue sur la page suivante
17
Câble
AS
56
57
58
59
60
61
70
71
80
81
82
83
84
85
86
87
92
93
94
95
110
111
112
113
116
117
118
119
120
121
122
123
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
4
4
4
4
4
4
1
4
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
Port source
TABLE 1.1 – continué de la page précédente
Port destination
Adaptateur
Summit port 14
Summit port 15
Summit port 19
Summit port 20
Summit port 21
Summit port 22
C3560 port 11
Summit port 16
HP1 port 9
HP1 port 10
HP1 port 11
HP1 port 12
HP1 port 15
HP1 port 16
HP1 port 17
HP1 port 18
HP2 port 15
HP2 port 16
HP2 port 17
HP2 port 18
C3560 port 18
MGMT1 port 1
MGMT1 port 2
MGMT1 port 3
MGMT1 port 6
MGMT1 port 7
MGMT1 port 8
MGMT1 port 16
C2960 port 7
MGMT2 port 1
MGMT2 port 2
MGMT2 port 3
MGMT2 port 7
MGMT2 port 8
MGMT2 port 16
HP1 port 21
MGMT3 port 1
MGMT3 port 2
MGMT3 port 3
MGMT3 port 4
MGMT3 port 5
MGMT3 port 6
MGMT3 port 7
MGMT3 port 8
MGMT3 port 16
Summit port 17
MGMT4 port 1
MGMT4 port 2
MGMT4 port 3
Firewall2.ent2 port 0/1 (eth1)
Firewall2.ent2 port 0/2 (eth2)
J2300-1 PORT0 (fe-0/0/0)
J2300-1 PORT1 (fe-0/0/1)
J2300-2 PORT0 (fe-0/0/0)
J2300-2 PORT1 (fe-0/0/1)
IP Phone 1 port WAN
IP Phone 2 port WAN
J1 port Ge-0/0/0
J1 port Ge-0/0/1
J1 port Ge-0/0/2
J1 port Ge-0/0/3
J2 port Ge-0/0/0
J2 port Ge-0/0/1
J2 port Ge-0/0/2
J2 port Ge-0/0/3
J4 port Ge-0/0/0
J4 port Ge-0/0/1
J4 port Ge-0/0/2
J4 port Ge-0/0/3
MGMT1 port 10/100
C3560 port console
Cisco 2800 port console
ASA5510 port console
serveur1.ent1 port console
serveur2.ent1 port console
serveur3.ent1 port console
PDU-AS1 port console
MGMT2 port 10/100
C2960 port console
MIR port console
ISS port console
serveur1.core1 port console
serveur2.core1 port console
PDU-AS2 port console
MGMT3 port 10/100
HP1 port console
HP2 port console
J1 port console
J2 port console
J3 port console
J4 port console
PSEUDOL port console
MEDIAL port console
PDU-AS3 port console
MGMT4 port 10/100
Summit port console
J2300-1 port console
J2300-2 port console
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
ADB0025
ADB0025
ADB0025
ADB0039
ADB0039
ADB0039
N/A
N/A
ADB0025
ADB0025
ADB0025
ADB0039
ADB0039
N/A
N/A
(ADB0039)
(ADB0039)
ADB0025
ADB0025
ADB0025
ADB0025
ADB0039
ADB0039
N/A
N/A
(ADB0039)
ADB0025
ADB0025
Couleur
Droit
Bleu
Bleu
Blanc
Blanc
Blanc
Blanc
Jaune
Jaune
Gris
Gris
Gris
Gris
Gris
Gris
Gris
Gris
Gris
Gris
Gris
Gris
Bleu
Blanc
Noir
Blanc
Blanc
Blanc
Blanc
Noir
Bleu
Blanc
Bleu
Bleu
Blanc
Blanc
Noir
Bleu
Bleu clair
Bleu clair
Bleu
Bleu
Bleu
Bleu
Blanc
Blanc
Noir
Bleu
Blanc
Bleu
Bleu
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Croisé
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Rollover
Rollover
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Rollover
Droit
Droit
Continue sur la page suivante
18
TABLE 1.1 – continué de la page précédente
Port destination
Adaptateur
Câble
AS
Port source
144
145
146
147
148
149
210
320
420
430
999
100
4
4
4
4
4
4
1/2
2/3
2/4
3/4
1
–
MGMT4 port 4
MGMT4 port 5
MGMT4 port 6
MGMT4 port 7
MGMT4 port 8
MGMT4 port 16
C3560 port 23
C2960 port 23
C2960 port 22
HP2 port 24
C3560 port 22
ROT26 11#320
Firewall1.ent2 port console
Firewall2.ent2 port console
serveur1.ent2 port console
serveur2.ent2 port console
serveur3.ent2 port console
PDU-AS4 port console
C2960 port 24
HP1 port 24
Summit port 23
Summit port 24
gate-net port eth3
gate-net port eth4
ADB0025
ADB0025
ADB0039
ADB0039
ADB0039
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Couleur
Droit
Blanc
Blanc
Blanc
Blanc
Blanc
Noir
Bleu
Bleu
Bleu
Bleu
Bleu
Bleu
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
Droit
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.fr
ssh <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 les
adresses IP suivantes :
AS
Adresse IP du contrôleur de console
AS 1
AS 2
AS 3
AS 4
10.40.130.10
10.40.130.20
10.40.130.30
10.40.130.40
Donc pour se connecter à un ACS depuis la gateway gate-net :
ssh [email protected]
password: avocent
Pour se connecter à un équipement depuis l’ACS, utiliser la commande ts_menu de l’ACS qui affiche les
différents équipements connectés ainsi que leurs noms.
Remarque. Pour se connecter aux contrôleurs de console physiquement, utiliser un câble croisé, le brancher
sur 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 switchs
des 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 plus
la connexion SSH aux serveurs distants.
Nous allons commencer par les lignes suivantes qui concernent tous les hôtes :
Host *
ServerAliveInterval 120
ServerAliveCountMax 30
Pour se connecter en SSH à un hôte distant configuré dans le fichier ~/.ssh/config, il suffit de taper la
commande : 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.fr
cat .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 en
utilisant 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 sphinx
user <login>
port 22
hostname sphinx.lip6.fr
IdentityFile ~/.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 le
serveur sphinx.lip6.fr :
sphinx$ ssh-keygen -t rsa -f .ssh/id_rsa_gate-net
sphinx$ 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ème
de 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.fr
sphinx$ 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ôte
gate-net.rsr.lip6.fr :
Host gate
user <login>
port 22
hostname gate-net.rsr.lip6.fr
ProxyCommand ssh -W %h:%p sphinx
IdentityFile ~/.ssh/id_rsa_gate-net
Remarque. Le fichier d’identification (ou clé privée) ~/.ssh/id_rsa_gate-net se trouve sur votre ordinateur, 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 la
commande 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, se
connecter 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 yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Forcer l’authentification avec un mot de passe (attention, l’option ChallengeResponseAuthentication
doit ê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 au
contrôleur de console :
Host asx
user admin
port 22
hostname 10.40.130.10
ProxyCommand ssh -W %h:%p gate
IdentityFile ~/.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_acs
se 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 possible
d’effectuer la manipulation expliquée précédemment sur PuTTY. De ce fait, il faut se connecter au serveur
sphinx.lip6.fr et créer un fichier de configuration ~/.ssh/config qui permettra à l’utilisateur de se
connecter 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 SSH
qui contient les lignes suivantes (le serveur est assez restrictif, et ne propose pas l’option -W pour SSH, et
ne dispose pas de netcat non plus) :
Host gate
user <login>
port 22
hostname gate-net.rsr.lip6.fr
IdentityFile ~/.ssh/id_rsa_gate-net
Host as1
user admin
port 22
hostname 10.40.130.10
ProxyCommand ssh gate 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'
IdentityFile ~/.ssh/id_rsa_acs
Host as2
user admin
port 22
hostname 10.40.130.20
ProxyCommand ssh gate 'exec 3<>/dev/tcp/%h/22; cat <&3 & cat >&3;kill $!'
IdentityFile ~/.ssh/id_rsa_acs
Host as3
user admin
port 22
hostname 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 as4
user admin
port 22
hostname 10.40.130.40
ProxyCommand 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-net
sphinx$ 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_keys2
du 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ôleurs
de 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 de
passe depuis le serveur sphinx.lip6.fr en ayant une connexion transparente au serveur intermédiaire
gate-net.rsr.lip6.fr :
ssh asX
23
CHAPITRE
Généralités sur les équipements
1
1.1
Introduction sur protocoles de base
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 en
mode trunk.
Dest
MAC
Untagged
802.1Q
Source
MAC
Type
Dest
MAC
Source
MAC
802.1Q
Type
6
6
4
2
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 IPv6
est configuré pour tous les VLANs, sauf celui d’administration (pour l’AS x, il s’agit du VLAN x00).
8
Ver
16
24
Traffic Class
32
Global unicast
Flow Label
Payload Length
Next Header
Global Prefix
Hop Limit
48
Link-local unicast
Source Address
Subnet
Interface ID
16
64
FE80 : : /64
8
Flags
FF
4 4
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
Scope
Multicast
Destination Address
Interface ID
64
64
Group IP
112
2
–
–
–
–
–
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.
MAC
02
EUI-64
00
0a
27 5c
88
0a
27
ff
5c 88
fe
19
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.
Multicast scopes
Préfixes réservés
::/0
::/128
::1/128
FC00::/7
FE80::/10
FF00::/8
Default route
Unspecified
Loopback
Unique local
Link-local unicast
Multicast
1
2
4
5
8
E
Interface-local
Link-local
Admin-local
Site-local
Org-local
Global
Extention Headers :
0
Hop-by-hop Options
43
44
50
Routing
Fragment
Encapsulating Security Payload
(ESP)
Authentication Header (AH)
Destination Options
51
60
Information additionnelle qui doit être examinée par chaque
routeur du chemin
Routage à la source
Inclus quand un paquet a été fragmenté par la source
Permet le chiffrement du payload (IPSec)
Permet l’authentification du paquet (IPSec)
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
Juniper JunOS
Cisco IOS
Passer en mode configuration :
enable
conf[igure] t[erminal] # conf t
cli
congure
Voir la configuration :
show configuration
[do] show run[ning-config]
Remonter dans l’arborescence :
exit
up
top # racine de l'arborescence
Sauvegarder les changements :
commit check
commit
wr[ite] me[mory] # wr me
Equivalent de la commande grep :
match <motif>
# eg. [run] show route |match bgp
grep <motif>
Revenir dans les configurations enregistrées :
configure replace target-url [list] [
force] [time seconds] [nolock]
rollback
Exécuter une commande dans l’arborescence :
run <commande>
do <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 version
show hardware
show version
show 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 interfaces <interface> extensive
show controller <interface>
Afficher un résumé de la table de routage :
show ip route
show route
Vérifier si une destination est atteignable :
ping dest rapid # for cisco like output
ping dest # for unix like output
ping dest
2.2
Cisco IOS
Visualiser les configurations existantes :
Switch#
Switch#
Switch#
Switch#
show
show
show
show
vlan [id <vlan id>]
interface [status | switchport]
interface trunk
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 access
Switch(config-if)# switchport nonegotiate
Switch(config-if)# switchport access vlan <vlan id>
Switch(config-if)# switchport voice vlan <voice vlan id>
Variante trunk port :
Switch(config-if)#
Switch(config-if)#
Switch(config-if)#
Switch(config-if)#
switchport
switchport
switchport
switchport
mode trunk
trunk encapsulation dot1Q
trunk allowed vlan <vlan0, vlan2-vlan3>
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 terminal
Router(config)# ip ftp username adminftp
Router(config)# ip ftp password password
Router(config)# end
Router# 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’identifiant
d’interface EUI-64)
edit protocols router-advertisement interface <interface>
set prefix <IID>::/64 # construit àpartir de cette adresse
set 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 root
root@router% mount_msdos /dev/da0s1 /mnt
root@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>.org
Connected to 4.11.100.3.
220 ProFTPD 1.3.3a Server (ftp-ent2) [::ffff:4.11.100.3]
Name (4.11.100.3:root): adminftp
331 Mot de passe requis pour adminftp
Password: <password>
ftp> send juniper.conf.gz
ftp> 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
set
set
set
set
interface ethernet0/x ip 0.0.0.0/0 # ethernet0/x : -> zone trust
interface ethernet0/x zone v1-trust
interface ethernet0/y ip 0.0.0.0/0 # ethernet0/y : -> extérieur
interface ethernet0/y zone v1-untrust
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
set
set
set
snmp
snmp
snmp
snmp
community public Read-Only
name firewall1
location Paris
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
configure
configure
configure
snmp
snmp
snmp
snmp
sysName Switch-AS4
sysLocation Paris
sysContact "Olivier Fourmaux"
add community readonly public
Configuration du port mirroring :
config mirroring {add | delete} ports <portlist>
disable mirroring
enable mirroring to <port> tagged
show 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) est
cependant 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 “graphique”) : 7. VLAN Menu > 3. VLAN Port Assignment
Marquer 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 via
4.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 que
la règle par défaut ne soit plus présente (vérifier avec la commande ip route). Pour ce faire, retaper la
commande 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 eth1
iface eth1 inet static
address 10.40.130.xy # serveur dans AS x
netmask 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’interface
eth4 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=serial
GRUB_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 des
commentaires parlant de “password md5” au début du fichier :
serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --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 contrib
deb http://http.fr.debian.org/debian/ squeeze contrib non-free main
deb-src http://http.fr.debian.org/debian/ squeeze contrib non-free main
deb-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 RJ45
permettant, 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 équipements, ainsi que les branchements avec le power unit 1 pour l’AS 1.
Liaison Serie
Branchement prise de courant
MGMT1
Catalyst 3560
Catalyst 2800
Serveur1.Ent1
Serveur2.Ent1
Serveur3.Ent1
ASA5510
Power Unit 1
F IGURE 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 pas
de 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, avec
0 < 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és
pré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-> set
outlets= 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éralement
pour 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.5
suivantes 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 ADB0025
YFDTE91 placé sur le port console DB-9 de l’équipement, puis en reliant un câble droit jusqu’au contrôleur
de console.
34
Color Standard EIA/TIA T568A
TX+
Green/White Tracer
1
1
Green/White Tracer
TX-
Green
2
2
Green
PR 3
RX+
Orange/White Tracer
3
3
Orange/White Tracer
Reserved
Blue
4
4
Blue
Reserved
Blue/White Tracer
5
5
Blue/White Tracer
RX-
Orange
6
6
Orange
Reserved
Brown/White Tracer
7
7
Brown/White Tracer
Reserved
Brown
8
8
Brown
PR 2
PR 1
PR 2
PR 4
F IGURE 2.2 – Câble droit de la norme T568A
Color Standard EIA/TIA T568A
Green/White Tracer
1
1
Orange/White Tracer
Green
2
2
Orange
Orange/White Tracer
3
3
Green/White Tracer
Blue
4
4
Brown/White Tracer
Blue/White Tracer
5
5
Brown
Orange
6
6
Green
Brown/White Tracer
7
7
Blue
Brown
8
8
Blue/White Tracer
F IGURE 2.3 – Câble croisé de la norme T568A
Color Standard EIA/TIA T568B
TX+
Orange/White Tracer
1
1
Green/White Tracer
TX-
Orange
2
2
Green
PR 2
RX+
Green/White Tracer
3
3
Orange/White Tracer
Reserved
Blue
4
4
Blue
Reserved
Blue/White Tracer
5
5
Blue/White Tracer
RX-
Green
6
6
Green
Reserved
Brown/White Tracer
7
7
Brown/White Tracer
Reserved
Brown
8
8
Brown
PR 3
PR 1
PR 3
PR 4
F IGURE 2.4 – Câble droit de la norme T568B
Color Standard EIA/TIA T568B
Orange/White Tracer
1
1
Orange/White Tracer
Orange
2
2
Green
Green/White Tracer
3
3
Green/White Tracer
Brown/White Tracer
Blue
4
4
Blue/White Tracer
5
5
Brown
Green
6
6
Orange
Brown/White Tracer
7
7
Blue
Brown
8
8
Blue/White Tracer
F IGURE 2.5 – Câble croisé de la norme T568B
35
Avocent ACS 5000, Cyclades PM 1000
Routeurs Cisco, routeurs/firewalls Juniper Newtorks
Patch Channel
Signal Type
RJ-45-Pin
Patch Channel
Signal Type
RJ-45-Pin
RTS
DTR
TxD
GND
CTS
RxD
DCD
DSR
Output
Output
Output
Reference
Input
Input
Input
Input
1
2
3
4
5
6
7
8
RTS
DTR
TxD
GND
GND
RxD
DSR
CTS
Output
Output
Output
Reference
Reference
Input
Input
Input
1
2
3
4
5
6
7
8
Abréviations
HP ProCurve, Extreme Summit x450e, serveurs
Patch Channel
Signal Type
DB-9-Pin
DCD
RxD
TxD
DTR
GND
DSR
RTS
CTS
RI
Input
Input
Output
Output
Reference
Input
Output
Input
Input
1
2
3
4
5
6
7
8
9
CTS
DCD
DSR
DTR
GND
RI
RTS
RxD
TxD
Clear To Send
Data Carrier Detect
Data Set Ready
Data Termnal Ready
Ground
Ring Indicator
Request To Send
Receive Data
Transmit Data
Adaptateurs fournis : les adaptateurs fournis permettent de modifier les dispositions des différents signaux
transmis par les ports des équipements. Ces derniers sont présentés aux figures 2.6 et 2.7 suivantes.
Cyclades adapter ADB0025
Female RJ-45 (Cyclades ACS 5000)
Female DB-9 (Console port)
Orange/White Tracer
1
7
DTR
Orange
2
TxD
Green/White Tracer
3
GND
Blue
4
CTS
Blue/White Tracer
RxD
Green
DCD
DSR
RTS
Green/White Tracer
RTS
4
Green
DTR
3
Orange/White Tracer
TxD
5
Blue
GND
5
8
Blue/White Tracer
CTS
6
2
Green
RxD
Brown/White Tracer
7
6
Brown/White Tracer
DCD
Brown
8
F IGURE 2.6 – Adaptateur ADB0025 permettant de connecter les équipements Cisco
Cyclades adapter ADB0039
Male RJ-45 (Cyclades ACS 5000)
Male RJ-45 (console port)
RTS
Orange/White Tracer
1
8
Green/White Tracer
CTS
DTR
Orange
2
7
Green
DSR
TxD
Green/White Tracer
3
6
Orange/White Tracer
RxD
GND
Blue
4
4
Blue
GND
CTS
Blue/White Tracer
5
1
Blue/White Tracer
RTS
RxD
Green
6
3
Green
TxD
DCD
Brown/White Tracer
7
5
Brown/White Tracer
GND
DSR
Brown
8
2
Brown
DTR
F IGURE 2.7 – Adaptateur ADB0039 permettant de connecter les équipements munis d’un port console DB-9
36
CHAPITRE
Implémentation de fonctionnalités (routeurs)
1
1.1
Protocoles de routage
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 cette
route 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 possible
d’implémenter RIP ou IS-IS. L’ensemble des opérations à effectuer sont décrites dans les sections suivantes.
37
3
Type
Algorithme
Admin Distance
Métrique
Standards
Protocoles
Protocole Transport
Authentification
AllSPF address
AllDR address
Etat de liens
Dijkstra
110
100 000 kbps/vitesse du lien
RFCs 2328, 2740
IP
IP/89
Plaintext, MD5
8
Version
224.0.0.5
224.0.0.6
16
24
Type
32
Length
Router ID
Area ID
Checksum
Instance ID
Reserved
Data
F IGURE 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 ospf
set area 0.0.0.0 interface <interface> [passive]
Variante OSPFv3 pour IPv6 :
edit protocols ospf3
set 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 de
paquet 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 OSPF
Router(config-router)# redistribute static subnets
! Backbone
Router(config-router)# network <network address> <reversed mask> area 0
Configuration d’une interface avec OSPF :
Router(config)# interface Ethernet0/1
Router(config-if)# description <description>
Router(config-if)# ip address <interface IP address> <mask>
Router(config-if)# ip ospf <num> area 0
! Optional MD5 authentication configured
Router(config-if)# ip ospf authentication message-digest
Router(config-if)# ip ospf message-digest-key 1 md5 FooBar
! Give the priority in DR election
Router(config-if)# ip ospf priority 100
Debug OSPF :
Router#
Router#
Router#
Router#
Router#
Router#
show ip [route | protocols]
show ip ospf interface
show ip ospf neighbor
show ip ospf border-routers
show ip ospf virtual-links
debug ip ospf [...]
38
RIP (Routing Information Protocol)
Type
Algorithme
Admin Distance
Métrique
Standards
Protocoles IP
Protocole Transport
Authentification
Multicast IP
Vecteur de distance
Bellman-Ford
120
Hop count (max. 15)
RFCs 2080, 2453
IPv4, IPv6
UDP
Plaintext, MD5
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 similaires à RIPv2, et sont donc tout aussi limitées.
Comparaison des différentes implémentations :
IP
Admin distance
Port UDP
Classless
Adresse d’avertissement
Authentification
RIPv1
RIPv2
RIPng
IPv4
120
520
Non
Broadcast
Aucune
IPv4
120
520
Oui
IPv6
120
521
Oui
224.0.0.9
FF02::9
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 interface
set 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 directes
set policy-statement advertise-rip-routes term from-direct from protocol
direct
set policy-statement advertise-rip-routes term from-rip from protocol rip
# Accepter cette condition
set policy-statement advertise-rip-routes term from-direct then accept
set 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 direct
set policy-statement redist-direct the accept
39
Cisco IOS Cisco IOS est compatible avec RIPv2 et RIPng.
Configuration de RIPv2 :
! Enable RIPv2 IPv4 routing
Router(config)# router rip
Router(config-router)# version 2
! Disable RIPv2 automatic summarization
Router(config-router)# no auto-summary
! Designate RIPv2 interfaces by network
Router(config-router)# network <network>
! Identify unicast-only neighbors
Router(config-router)# neighbor <IP address>
! Originate a default route
Router(config-router)# default-information originate
! Designate passive interfaces
Router(config-router)# passive-interface {<interface> | default}
! Modify timers
Router(config-router)# timers basic <update> <invalid> <hold> <flush>
Configuration des interfaces avec RIPv2 :
! Configure manual route summarization
Router(config-if)# ip summary-address rip <network mask>
! Enable MD5 authentication (RIPv2 only)
Router(config-if)# ip rip authentication mode md5
Router(config-if)# ip rip authentication key-chain <key-chain>
Configuration de RIPng :
! Enable IPv6 routing
Router(config)# ipv6 unicast-routing
! Enable RIPng IPv6 routing
Router(config)# ipv6 router rip <name>
! Toggle split-horizon and poison-reverse
Router(config-router)# [no] split-horizon
Router(config-router)# [no] poison-reverse
! Modify timers
Router(config-router)# timers basic <update> <invalid> <hold> <flush>
Configuration des interfaces avec RIPng :
! Enable RIPng on the interface
Router(config-if)# ipv6 rip <name> enable
! Configure manual route summarization
Router(config-if)# ipv6 rip <name> summary-address <prefix>
Debug :
Router#
Router#
Router#
Router#
Router#
1.3
show ip[v6] protocols
show ip[v6] rip database
show ip[v6] route rip
debug ip rip { database | events }
debug ipv6 rip [<interface>]
EGP (Exterior Gateway Protocol)
Utilisation du seul protocole de routage inter-domaine BGP (Border Gateway Protocol).
Type
eBGP Admin Distance
iBGP Admin Distance
Standards
Protocoles
Protocole Transport
Authentification
40
Vecteur de chemins
20
200
RFC 4271
IP
TCP/179
MD5
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
Description
Well-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 voisin
Well-known Discretionary : doit être supporté, propagation optionnelle
5
Local preference
Métrique utile aux voisins locaux pour atteindre les destinations externes (par défaut : 100)
6
Atomic Aggregate
Inclut les AS qui ont été jetés à cause d’une agrégation de routes
Optional Transitive : marqué comme partiel if non supporté par le voisin
7
Aggregator
ID et AS de la route résumée
8
Community
Label de la route
Optional Nontransitive : supprimé si non supporté par le voisin
4
Multiple Exit Discrimina- Métrique utile aux voisins externes pour atteindre l’AS local (par
tor (MED)
défaut : 0)
9
Originator ID
Identifiant du noeud à l’origine de la route reflector
10 Cluster List
Liste des identifiants des clusters
13 Cluster ID
Cluster source
–
Weight
Attribut propriétaire (Cisco) non communiqué aux pairs
Sélection de la route :
1
2
3
4
5
Attribut
Weight
Local Preference
Self-Originated
AS Path
Origin
6
7
8
9
10
MED
External
IGP Cost
eBGP Peering
Rouer ID
Description
Préférence administrative
Communiquée entre les pairs d’un même AS
Préférer les chemins d’origine locale
Minimiser les sauts entre AS
Préférer les routes apprises avec IGP plutôt que EGP, et EGP
plutôt qu’inconnu
Utilisé par les pairs externes pour entrer dans un AS
Préférer les routes eBGP plutôt que les routes iBGP
Considérer mes métriques IGP
Favoriser les routes stables
Tie Breaker
Etats de voisins :
– Idle : voisin ne répond pas
– Active : tentative de connexion
– Connect : connexion TCP établie
Préférence
Plus élevée
Plus élevée
Vrai
Plus court
IGP
Plus petit
eBGP
Plus petit
Plus vielle
Plus petit
– 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 entre
plusieurs 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 adresses
IP 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 lo0
set unit 0 family inet address 10.255.<AS number>.<router number>/32
Editer les options de routage :
edit routing-options
set router-id <router loopback address>
autonomous-system <AS number>
Editer les paramètres du protocole BGP :
edit protocols bgp group internal-peers
set type internal
set local-address <router loopback address>
export next-hop-self
neighbor <neighbor router loopback address>
Créer la règle next-hop-self :
edit policy-options policy-statement next-hop-self
edit term bgp
# annonce des routes apprises avec BGP
set 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èmes
autonomes qui utilisent BGP également.
Juniper JunOS
set 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-BGP
set export TO-EXTERNAL # utilisation de la règle TO-EXTERNAL
set peer-as <neighbor AS number>
set neighbor <neighbor IP address>
42
Créer la règle TO-EXTERNAL :
edit policy-options policy-statement TO-EXTERNAL
edit term 1 # premier amendement
# annoncer une route configurée statiquement
set from protocol static
# annonce des routes statiques concernant le préfixe de l'AS
set from route-filter <network address>/<network prefix>
set then accept
up
edit term 2 # second amendement
set 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 2
set from protocol bgp
set then accept
up
edit term 3
set then reject
Cisco IOS Configuration de eBGP pour les routeurs Cisco
Router(config)# router
Router(config-router)#
Router(config-router)#
Router(config-router)#
number>
bgp <AS number>
bgp dampening # description
network <network address> <network mask>
neighbor <neighbor IP address> remote-as <neighbor AS
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#
Router#
Router#
Router#
Router#
show ip bgp [summary]
show ip bgp neighbors
show ip route [bgp]
clear ip bgp * [soft]
debug ip bgp [...]
Influencer la sélection de chemins :
Router(config-router)#
Router(config-router)#
Router(config-router)#
Router(config-router)#
Router(config-router)#
neighbor 172.16.0.1 weight 200 ! weight
bgp default local-preference 100 ! local preference
default-metric 400 ! MED
neighbor 172.16.0.1 route-map Foo ! route map
bgp bestpath as-path ignore ! ignore AS path
Installer un attribut local-pref :
Router(config)# route-map LOCALPREF permit 10
Router(config-route-map)# set local-preference 500
Router(config-route-map)# router bgp <AS BGP number>
Router(config-router)# neighbor <BGP peer> route-map LOCALPREF in
43
2
MPLS (MultiProtocol Label Switching)
8
16
Label
24
TC
L2
32
S
TTL
IP
Label stack
F IGURE 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 ressources 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 labelswitched 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ême
systè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 est
implé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 MPLS
edit protocols mpls
set interface all # activer MPLS sur toutes les interfaces
set interface <interface> disable # désactiver MPLS sur l'interface
# Activer RSVP
edit protocols rsvp
set interface all # activer RSVP sur toutes les interfaces
set interface <interface> disable # désactiver RSVP sur l'interface
44
PSEUDOL
MEDIAL
L2
IP
Ingress Router
LER
LSP
Egress Router
LER
AS 2
AS 4
J2
J1
Transit Router
LSR
L2
J4
IP
F IGURE 3.3 – MPLS dans l’AS 3, dans le sens J2 → J4
Activer MPLS sur toutes les interfaces mises en jeu dans la topologie :
set interfaces <interface> family mpls
Configurer un LSP (Label-Switched Path)
edit protocol mpls
set 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 LSP
soit 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 ospf
set traffic-engineering shortcuts lsp-metric-into-summary
up
edit protocols mpls
traffic-engineering bgp-igp
Debug MPLS/RSVP :
show
show
show
show
show
route table inet.3
rsvp neighbor
rsvp interface
rsvp session detail
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 CEF
Router(config)# ip cef
! Selctionner un protocole de distibution de labels
Router(config)# mpls label protocol ldp
! Activer MPLS sur les interfaces
Router(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)#
Router(config)#
Router(config)#
Router(config)#
Router(config)#
Router(config)#
show mpls interfaces
show mpls ldp bindings [detail] ! (LIB)
show ip cef [detail] ! (FIB)
show mpls ldp neighbors
show mpls forwarding-table [detail] ! (LFIB)
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.255
Router(config)#
Router(config)# ip cef [distributed]
Router(config)# mpls traffic-engineering tunnel
! Activer MPLS/RSVP sur les interfaces concernées
Router(config)# interface <interface name>
Router(config-it)# bandwidth <bandwidth>
Router(config-it)# ip address <IP address> <mask>
Router(config-it)# mpls traffic-engineering tunnel
Router(config-it)# ip rsvp bandwidth <bandwidth>
! Configuration d'un tunnel
Router(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 routage
Router(config-it)# tunnel mpls traffic-eng autoroute announce
46
CHAPITRE
Implé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.
serveur1.core1
Serveurs AS 1
MEDIAL
Serveurs AS 4
requête NTP
serveur3.ent1
serveur2.core1
PSEUDOL
serveur3.ent2
F IGURE 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 que
serveur 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 NANO
00 12 * * * /usr/sbin/ntpdate <NTP server IP>
47
4
Redémarrer cron : /etc/init.d/cron restart
Utilisation de crontab :
export EDITOR=vi
crontab -e
crontab -l
crontab -r
# Minute
# (0-59)
0
Hour
(0-23)
2
Spécifier un éditeur pour le fichier crontab
Editer un fichier crontab, créé si besoin
Afficher le fichier crontab
Supprimer le fichier crontab
Day of Month
Month
(1-31)
(1-12 or Jan-Dec)
12
*
Day of Week
(0-6 or Sun-Sat)
0,6
Command
<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/Berlin
set date 201001251115.00 # January 25, 2010 and 11:15:00 a.m
set date ntp <ntp server IP>
Configuration de NTP :
set system ntp server <ntp server IP> version 4 prefer
set system ntp server <ntp server 2 IP> version 4
Cisco IOS Configuration de NTP en mode client :
! Configurer l'adresse IP du serveur NTP
set ntp server <ntp server IP>
! Activer le mode NTP client
set ntp client enable
! Vérifier la configuration NTP
show 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 LAN
où 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 :
top
edit 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>
! Facultatif
Router(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écifique
au mapping.
Durée du bail :
Router(dhcp-config)# lease inifinte # bail inifini
Router(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 le
transfert 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 Debian
pour 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 adminftp
DenyAll
</Limit>
</Directory>
5
DNS (Domain Name Service)
DNS est un protocole permettant de mettre en correspondance des adresses physiques et des adresses logiques. 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, bind
multi on
Editer le fichier /etc/hosts (ce fichier permet de bypasser la résolution de nom classique par serveur
DNS) :
127.0.0.1 localhost.<domain>.<tld> localhost
23.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
; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; 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
; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; 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 les
adaptant :
. 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 Network
Management 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 Network
Management 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/nagios3
restart
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 une
source apt dans le fichier /etc/apt/sources.list :
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb-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.5
iso.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)#
Router(config)#
Router(config)#
Router(config)#
Router(config)#
Router(config)#
snmp-server community public RO ! Read-Only
snmp-server community private RW ! Read-write
snmp-server location Paris
snmp-server contact Olivier Fourmaux
snmp-server enable traps
snmp host <snmp server> traps SNMPv2
Juniper :
[edit snmp]
community public {
authorization read-only;
client {
4.11.100.32/28; # seule autorisation
0.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ées
ayant 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 gestionnaire
de 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 est
simple, 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 tout
en 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 dans
la 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 plus
lisible 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. Une
extrémité est désignée comme serveur (ici le serveur 1 de l’AS 4) et l’autre comme client (le serveur 2 de
l’AS 1).
Installation d’OpenVPN (sur le serveur et le client) : apt-get install openvpn.
server.crt server.key
client.crt
client.key
Internet
serveur1.ent2
Serveur OpenVPN
ca.crt
serveur1.ent1
Client OpenVPN
dh1024.pem
F IGURE 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ération
de 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
export
export
export
export
KEY_COUNTRY=FR
KEY_PROVINCE=ileDeFrance
KEY_CITY=paris
KEY_ORG=pfres
[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 et
ca.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, le
certificat et la clé privée sont créés à l’aide de la commande : ./build-key-server server. Laisser les
paramè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 le
gunzipper de la façon suivante :
cd /usr/share/doc/openvpn/examples/sample-config-files
sudo 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 client
client1 à 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 pointer
vers les fichiers générés précédemment (du client cette fois). Dans notre cas il faut renommer client.ca
en 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 le
dossier /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.crt
Pour simplifier la recherche de problèmes (troubleshooting), il est préférable de démarrer le serveur OpenVPN
depuis 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 :
# Serveur
cd /etc/openvpn && sudo openvpn server.conf
# Client
cd /etc/openvpn && sudo openvpn client.conf
Si le VPN fonctionne, alors de nouvelles interfaces auront être activées sur le serveur et le client (commande
ifconfig). Par ailleurs, la nouvelle interface doit avoir une adresse IP dans le pool d’adresses indiqué sur
le fichier configuration du serveur.
Si les nouvelles interfaces sont activées, il est possible de pinger le client à partir du serveur ou réciproquement : 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 pour
rester 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 deux
parties :
– 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. hmacmd5),
– Avec l’option -E (encryption) et deux autres clés différentes et un algorithme de chiffrement (eg. 3descbc, 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 ipsec
esp/{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
CHAPITRE
VoIP 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émente
les 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 serveur
Asterisk.
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 VLANs
switchport access vlan <VLAN> switchport voice vlan <VLAN>
! Trust ingress QoS markings
mls qos trust cos
! Optionally pre-allocate power for the port
power 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
5
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 respectivement 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 des
utilisateurs.
Editer le fichier /etc/asterisk/sip.conf :
[general]
context=local ; context par defaut pour les utilisateurs
bindport=5060 ; port UDP du protocole SIP
bindaddr=0.0.0.0 ; trafic 0.0.0.0 pour toutes les interfaces
language=fr
; messages vocaux en français
register => trunk_AS4_vers_AS1:[email protected] ; enregistrement auprès du
serveur Asterisk Ent2 (AS 4).
[Bob]
; obligatoire ; login SIP
secret=pfres ; obligatoire ; mot de passe SIP
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire ; adresse IP du client
callerid="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 (AS
4) auprès du serveur Ent1 (AS 1).
context=local
secret=pfres
type=friend
host=dynamic
insecure=port,invite
Afin de vérifier que l’enregistrement est bien effectif, exécuter la commande sip show registery dans
rasterisk.
La colonne State du trunk doit être à l’état Registered (cela n’est possible que si le serveur de l’AS 4
est 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 Bob
pendant 10 secondes.
exten => _2XX, 1 ,Dial(SIP/trunk_AS1_vers_AS4/${EXTEN}) ; les appels arrivant
sur 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 menu
du 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
2.1
QoS (Quality of Service)
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
Ethernet
Frame Relay
ATPM
MPLS
Nom
Class of Service (CoS)
Discard Eligibility (DE)
Cell Loss Priority (CLP)
Traffic Class (TC)
Type
3-bit 802.1p field in 802.1Q header
1-bit drop eligibility flag
1-bit drop eligibility flag
3-bit field compatible with 802.1p
Precedence
Ver
HL
TOS
Len
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.
56
48
46
32
34
36
38
24
26
28
30
16
18
20
22
8
10
12
14
0
Binary
111000
110000
101110
100000
100010
100100
100110
011000
011010
011100
011110
010000
010010
010100
010110
001000
001010
001100
001110
000000
DSCP
NC2/CS7
NC1/CS6
EF
CS4
AF41
AF42
AF43
CS3
AF31
AF32
AF33
CS2
AF21
AF22
AF23
CS1
AF11
AF12
AF13
BE
Forwarding Class
Network-control
Internetwork-control
Expedited-forwarding (Critical)
Flash Override
Assured-forwarding
Assured-forwarding
Assured-forwarding
Flash
Assured-forwarding
Assured-forwarding
Assured-forwarding
Immediate
Assured-forwarding
Assured-forwarding
Assured-forwarding
Priority
Assured-forwarding
Assured-forwarding
Assured-forwarding
Best-effort
62
Packet Loss Priority (PLP)
Low
Low
Low
Low
Low
Medium
High
Low
Low
Medium
High
Low
Low
Medium
High
Low
Low
Medium
High
N/A
Prec.
7
6
5
4
3
2
1
0
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 bon
paramétrage.
– Weighted RED (WRED) : RED avec la capacité de distinguer le trafic prioritaire en se basant sur son
marquage QoS.
– Class-Based WRED (CBWRED) : WRED utilisé à l’intérieur d’une file d’attente class-based WFQ
(CBWFQ).
No
Yes
Queuing
Decision
Software Queue
Scheduler
Software Queue
HW
Queue
Full?
Hardware
Queue
Software Queue
F IGURE 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.
Ingress
Node
Interior Node
TCA
PHB
PHB
Egress
Node
TCA
PHB
(a) Architecture DiffServ (Differentiated Services)
Classification / Marking / Policing / Shaping
Classification / Marquage / Contrôle / Mise en forme
Queuing / Dropping
File d'attente / Rejet
(b) Traffic Conditioning Agreement (TCA)
(c) Per-Hop Behavior (PHB)
63
Priority Queuing (PQ)
First In First Out (FIFO)
High
Tx
Ring
Medium
Normal
Hardware Queue
Low
– 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 à hautdébit (> 2 Mbit/s).
– 4 files d’attente statiques non re-configurables.
– Les files d’attente de plus hautes priorités sont toujours 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).
Weighted Fair Queuing (WFQ)
Custom Queuing (CQ)
Queue A
500 B/cycle
Queue B
4500 B/cycle
Queue C
Hardware
Queue
Flow 1
Flow 2
Hardware
Queue
1500 B/cycle
...
Flow n
Hardware
Queue
– Rotation des files d’attente en utilisant Weighted
Round Robin (WRR).
– Traite un nombre configurable d’octets de chaque
file d’attente par tour.
– Evite la famine au niveau de chaque file d’attente, mais aucun délai de bout-en-bout garanti (pas
adapté pour le trafic sensible au temps).
– Les files d’attente sont créées dynamiquement pour
chaque 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)
Low Latency Queuing (LLQ)
Queue A
512 kbps Min
Queue B
1024 kbps Min
Default
Priority
Hardware
Queue
Remainder
2.2
Queue A
512 kbps Min
Queue B
1024 kbps Min
Default
– WFQ avec des files d’attente configurées par un administrateur.
– Une quantité/pourcentage de bande passante est allouée à chaque file d’attente.
– Aucun support pour le trafic sensible au temps.
512 kbps Max
Remainder
– CBWFQ avec une politique de priorité stricte pour
la file d’attente.
– Très configurable, tout en assurant le support pour
le trafic sensible au temps.
Implémentation dans Juniper JunOS
Ingress
BA
Classifier
Policing
(Ingress)
Multifield
Classifier
Forwarding
Policy
Forwarding Class
Fabric
Loss Priority
Egress
Rewrite
Marker
Scheduler
Shaper RED
Multifield
Classifier
Policing
(Egress)
F IGURE 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
Hardware
Queue
Multifield Classifier Associer les code-points DSCP ou EXP et les PLP (Packet Loss Priority) à une classe
de 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 la
couche transport, . . .)
[edit firewall filter <filter name>]
Debug/Troubleshooting :
show
show
show
show
class-of-service
class-of-service
class-of-service
class-of-service
<interface>
classifier name <classifier name>
code-point-aliases dscp
rewrite-rule
MPLS et QoS
Les routeurs Juniper de l’AS 3 doivent pouvoir à la fois supporter la QoS tout en utilisant MPLS. De ce
fait, il est nécessaire de les rendre compatibles avec le Traffic Class implémenté au niveau de MPLS (avec
le champ EXP).
Utilisation du champ EXP de MPLS (EXPerimental) qui correspond à la classe de service pour le protocole
MPLS. Il s’agit de E-LSP (EXP-inferred Label Switched Path) qui peuvent porter des paquets avec 8 PerHop Behavior distincts pour un seul LSP.
Code Point
Forwarding Class
Loss Priority
000
001
010
011
100
101
110
111
Best effort
Best effort
Expedited forwarding
Expedited forwarding
Assured forwarding
Assured forwarding
Network control
Network control
Low
High
Low
High
Low
High
Low
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
loss-priority
loss-priority
}
forwarding-class
loss-priority
}
assured-forwarding {
low code-point 001;
high code-point 010;
expedited-forwarding {
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. Cela
peut 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 optionnelles
Router(config-cmap)# match any ! successful for all packets
Router(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 DSCP
Router(config-cmap)# match field <protocol> <protocol field> {eq [mask] | neq
[mask] | gt | lt | range <range> | regex <string>} <value> [next <nextprotocol>]
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 optionnelles
Router(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>] conformaction <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 DWRED
Router(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 commande :
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 VoIP
Router(config)# access-list 101 remark RTP Traffic
Router(config)# access-list 101 permit udp any any range 16384 32767
Router(config)# access-list 101 permit ip host 23.7.100.51 host 4.11.100.67
Router(config)# access-list 102 remark SIP Traffic
Router(config)# access-list 102 permit tcp any any eq 5060
Router(config)# access-list 102 permit udp any any eq 5060
! Classer les paquets entrant selon leur valeur de ToS
Router(config)# class-map match-all expedited-forwarding
Router(config-cmap)# match access-group 101
Router(config)# class-map match-all assured-forwarding
Router(config-cmap)# match access-group 102
67
! Définition d'une policy-map
Router(config)# policy-map QOS-policy
Router(config-pmap)# class expedited-forwarding
Router(config-pmap-c)# priority 512
Router(config-pmap)# class assured-forwarding
Router(config-pmap-c)# priority 256
Router(config-pmap)# class class-default
Router(config-pmap-c)# fair-queue
Router(config-pmap-c)# random-detect
! Attacher les policies aux interfaces
Router(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 0
Router(config-if)# rate-limit input access-group 101 5120000 65536 65536
conform-action set-dscp-transmit 46 exceed-action set-dscp-continue 0
Router(config-if)# rate-limit input 1408000 8000 8000 conform-action transmit
exceed-action drop
Router(config-if)# service-policy output QOS-policy
Configuration des transit routers
! Classer les paquets entrant selon leur valeur de ToS
Router(config)# class-map match-all expedited-forwarding
Router(config-cmap)# match dscp 46
Router(config)# class-map match-all assured-forwarding
Router(config-cmap)# match dscp 34
! Définition d'une policy-map
Router(config)# policy-map QOS-policy
Router(config-pmap)# class expedited-forwarding
Router(config-pmap-c)# priority 512
Router(config-pmap)# class assured-forwarding
Router(config-pmap-c)# priority 256
Router(config-pmap)# class class-default
Router(config-pmap-c)# fair-queue
Router(config-pmap-c)# random-detect
! Attacher les policies aux interfaces
Router(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
Serveur Asterisk
Téléphone IP
AS 1
AS 4
23.7.100.50
23.7.100.51
4.11.100.66
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
local-pref 100
Juniper1
ISS
AS 4
MIR
AS 1
AS 2
Routeur AS 1
J2
J1
Serveur1.Ent2
Asterisk
Juniper2
Serveur1.Ent1
Asterisk
J4
AS 3
local-pref 200
F IGURE 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 vers
l’AS 4 et y revenir. Il y a au total 9 sauts. Nous avons choisi de procéder de cette manière pour pourvoir
mettre 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) en
considé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 tableau
suivant :
Type de trafic
Classe de service
DSCP
EXP (TC)
PLP
RTP (Voix)
SIP (Signalisation)
Reste
Expedited-Forwarding
Assured-Forwarding
Best-Effort
EF (46 / 101110)
AF41 (34 / 100010)
BE (0 / 000000)
EF (000)
AF (100)
BE (000)
Low
Low
Low
Remarque. Les routeurs Juniper comportent quatre classes de service par défaut qui sont celles présentées
dans 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 :
Trafic RTP
Expedited
Forwarding
Trafic SIP
Best
Effort
Toutes les classes
Assured
Forwarding
F IGURE 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 -s
Client# 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érer
les champs qui nous sont utiles pour l’analyse (notamment l’instant d’arrivée de la trame sur l’interface
d’é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_traffic
tshark -e frame.time_relative -e ip.len -Tfields -R sip -r capture.pcap >
sip_traffic
tshark -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 (discrets) en classes (continu). Nous avons choisit d’avoir une précision au dixième de seconde, afin d’avoir un
nombre 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 :
reset
unset key
set xlabel 'Temps'
set ylabel 'Octets'
set term postscript.pdf enhanced color "Times-Roman" 22
set 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.pcap
awk -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 de
tracer 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 pour
fixer 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 :
1e+06
Octets
100000
iperf
10000
RTP
1000
SIP
100
10
0
20
40
60
80
Temps
100
120
140
160
F IGURE 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) restent
constants, même quand il y a du trafic transversal (avec iperf, en beu). De ce fait, l’implémentation de
qualité de service est fonctionnelle au cœur de la plateforme.
71
CHAPITRE
Troubleshooting
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 (initial
configuration 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 0x2142
Dans notre exemple, le router ignore la configuration de démarrage stockée dans la NVRAM
pendant sa boot sequence.
Solution Le registre de configuration n’a pas été configuré proprement. Pour changer le registre de configuration, taper les commandes suivantes :
Router# configure terminal
Router(config)# config-register 0x2102
Router(config)# end
! Vérification
Router# show version
...
Configuration register is 0x2142 (will be 0x2102 at next reload)
! Router reload
Router#reload
System configuration has been modified. Save? [yes/no]: n
Proceed 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
6
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 ne
peut s’effectuer.
Solution Les routeurs CISCO 3825 possèdent des interfaces fonctionnant par défaut au niveau 2, il conviendra 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 commande
est 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 est
bien 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 une
route 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 de
console 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 host
error 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ément
sur 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 les
routes 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 unique
ré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 corrompu. De ce fait, il faudrait le remplacer avec une version non corrompue. Cependant, la version que nous
avons trouvée (junos-jsr-10.3R2.11-export-cf1024) est faite pour une carte compact flash de
1024 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
CHAPITRE
Bibliographie
[1] Site web packetLife.net. Accès : http://packetlife.net. Accédé pour la dernière fois le 7 juin
2012.
[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 Networks 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. Juniper 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. Extreme Networks, Inc.
[19] Hewlett-Packard Company (2006). ProCurve Series 2900 Switches Installation and Getting Started
Guide. 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. Juniper
Networks, Inc.
[22] Juniper Networks, Inc (2011). JUNOS Software MPLS. Juniper Networks, Inc.
Merci pour votre attention :)
75
7