fil d'ariane

Pages personnelles de Franck GILLET > Tutoriels > Configurations Cisco

Configurations Cisco

Configuration de base

On présente ici la configuration de base d'un Cisco IOS.

#configure terminal
! nom du système
hostname xxx
! configuration d’une interface
interface xxx
 ip address 157.159.x.x 255.255.255.0
 no shutdown
!
! adresse du serveur DNS
ip name-server 157.159.x.x
! route statique (par défaut)
ip route 0.0.0.0 0.0.0.0 157.159.x.x
!
enable secret xxx
username yyy secret xxx

Configuration d’un accès SSH

Pour configurer un accès SSH sur un système IOS, il faut générer une clé de cryptage et configurer l'accès SSH. Après avoir tapé la commande "crypto key generate rsa", on initialise la taille du module de clé à 2048.

! Génération d’une clé de cryptage RSA (de module 2048)
! qui définit une clé publique et un certificat auto-signé
crypto key generate rsa

!!
! Configure SSH access
!!
aaa new-model
aaa authentication login default local-case
ip domain-name int-evry.fr
line vty 0 4
 transport input ssh

Configuration statique MPLS

Le code qui suit présente une configuration de base MPLS où les labels sont distribués manuellement. On a deux noeuds avec pour adresse réseau 192.168.1.1 et 192.168.1.2 et respectivement pour adresse loopback 1.1.1.1 et 2.2.2.2. On donne ici la configuration du noeud 2.2.2.2.

# conf t
! Cisco Express Forwarding
ip cef
!
! definition des intervalles pour les labels
mpls label range 200 299 static 300 399
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Ethernet3/2
 ip address 192.168.1.2 255.255.255.0
 full-duplex
 mpls ip
!
ip route 1.1.1.1 255.255.255.255 192.168.1.1
!
mpls static binding ipv4 1.1.1.1 255.255.255.255 output 192.168.1.1 300
mpls static binding ipv4 2.2.2.2 255.255.255.255 301

Le "Cisco Express Forwarding" est une technologie avancée de commutation de niveau 3. Elle optimise les performances CPU et réseau et donne la capacité au système à évoluer dans un grand réseau. Tous les paquets à destination du noeud 1.1.1.1 sont envoyés à l'adresse 192.168.1.1 avec le label 300. Les paquets à destination de la loopback 2.2.2.2 doivent avoir un label 301 qui est retiré.

Acces#sh mpls label range
Downstream Generic label region: Min/Max label: 200/299
Range for static labels: Min/Max Number: 300/399
Acces#sh mpls static binding ipv4
1.1.1.1/32: Incoming label: none;
 Outgoing labels:
 192.168.1.1  300
2.2.2.2/32: Incoming label: 301
 Outgoing labels: None
Acces#sh mpls forwarding-table
Local
tag
Outgoing
tag or VC
Prefix or
Tunnel ID
Bytes tag
switched
Outgoing
interface
Next Hop
200 300 1.1.1.1/32 0 Et3/2 192.168.1.1

Pour une distribution dynamique des labels, il suffit de rajouter la ligne suivante: "mpls label protocol ldp". La distribution des labels sera effectuée à partir des informations de routage.


Agrégation de liens

Le test a été effectué sur deux switchs (T0 et T1) Cisco Catalyst 3550. Les configurations des switchs sont données ci-dessous.

T0#show run
vlan 215
interface GigabitEthernet0/1
 switchport mode dynamic desirable
!
interface GigabitEthernet0/2
 switchport mode dynamic desirable
!
interface GigabitEthernet0/3
 switchport access vlan 215
 switchport mode access
exit

T1#show run
interface GigabitEthernet0/4
 description T0
 switchport trunk encapsulation dot1q
 switchport mode trunk
!
interface GigabitEthernet0/5
 description T0
 switchport trunk encapsulation dot1q
 switchport mode trunk

On configure les switchs de telle sorte que les liaisons GigabitEthernet soient regroupées virtuellement en un canal de 2 Gb/s. On utilise le protocole LACP ("Link Aggregation Control Protocol") qui fait partie du standard 802.3ad (pour négocier le partage des liens physiques pour écouler le trafic). Pour imposer l'utilisation de LACP, on utilise la commande "channel-group 1 mode active".

T0#conf t
interface GigabitEthernet0/1
 channel-group 1 mode active
exit
interface GigabitEthernet0/2
 channel-group 1 mode active
exit

T1#conf t
interface GigabitEthernet0/4
 channel-group 1 mode active
!
interface GigabitEthernet0/5
 channel-group 1 mode active

On peut vérifier le bon fonctionnement du canal sur T1 avec les commandes suivantes.

T1#sh interfaces port-channel 1
Port-channel1 is up, line protocol is up (connected)
 Hardware is EtherChannel, address is 0009.4493.9804 (bia 0009.4493.9804)
 MTU 1500 bytes, BW 2000000 Kbit, DLY 10 usec,
  reliability 255/255, txload 1/255, rxload 1/255
 Encapsulation ARPA, loopback not set
 Full-duplex, 1000Mb/s, media type is 10/100/1000BaseTX
 input flow-control is off, output flow-control is off
 Members in this channel: Gi0/4 Gi0/5
 ARP type: ARPA, ARP Timeout 04:00:00
 Last input never, output 00:00:00, output hang never
 Last clearing of "show interface" counters never
 Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
 Queueing strategy: fifo
 Output queue: 0/40 (size/max)
 5 minute input rate 0 bits/sec, 0 packets/sec
 5 minute output rate 4000 bits/sec, 6 packets/sec
  52 packets input, 8258 bytes, 0 no buffer
  Received 30 broadcasts (0 multicast)
  0 runts, 0 giants, 0 throttles
  0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
  0 watchdog, 28 multicast, 0 pause input
  0 input packets with dribble condition detected
  604 packets output, 46149 bytes, 0 underruns
  0 output errors, 0 collisions, 3 interface resets
  0 babbles, 0 late collision, 0 deferred
  0 lost carrier, 0 no carrier, 0 PAUSE output
  0 output buffer failures, 0 output buffers swapped out

T1#show etherchannel summary
Flags: D - down
I - stand-alone
H - Hot-standby (LACP only)
R - Layer3
U - in use
u - unsuitable for bundling
w - waiting to be aggregated
d - default port
P - in port-channel
s - suspended
S - Layer2
f - failed to allocate aggregator
Number of channel-groups in use: 1
Number of aggregators: 1

Group Port-channel Protocol Ports
1 Po1(SU) LACP Gi0/4(P) Gi0/5(P)

Configuration NAT

On présente ici la configuration du NAT ("Network Address Translation") sur un Cisco IOS. Les commandes "ip nat" permettent de gérer le NAT. La commande "terminal length 0" permet de spécifier une longueur de terminal infinie. Il n'y a plus de pause lors d'une sortie terminale de plus d'une page (24 lignes et 80 colonnes, par défaut).

L'interface FastEthernet2/0 est l'interface côté Internet, configurée avec une adresse publique. Ici l'adresse publique est obtenue par DHCP. Les interfaces FastEthernet1/0 et FastEthernet1/1 sont les interfaces internes, configurées avec des adresses privées (RFC1918).

NATgateway#terminal length 0
NATgateway#sh run
hostname NATgateway
!
ip name-server 157.159.x.x
!
interface FastEthernet1/0
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
 duplex auto
 speed auto
!
interface FastEthernet1/1
 ip address 192.168.2.1 255.255.255.0
 ip nat inside
 duplex auto
 speed auto
!
interface FastEthernet2/0
 ip address dhcp
 ip nat outside
 duplex auto
 speed auto
!
ip nat inside source list 2 interface FastEthernet2/0 overload
!
access-list 2 permit 192.168.1.0 0.0.0.31
access-list 2 permit 192.168.2.0 0.0.0.31
!
end

Configuration d'un client PPPoE vers Orange

Je donne ici la configuration d'un routeur Cisco 3725 sur lequel un client PPPoE et un serveur NAT doit être installés. Le projet nécessite d'avoir un accès vers Internet et de pouvoir accèder à un serveur SIP Asterisk depuis l'extérieur. Pour cela, on a besoin d'une adresse IP fixe publique et d'une passerelle NAT (avec SIP Application Layer Gateway implémenté). Le Cisco 3725 possède le système "Advanced IP Services version 12.4(7)" (c3725-advipservicesk9-mz.124-7) qui possède un SIP ALG.

L'accès à Internet est effectué par un lien ADSL Orange Pro. Un modem est connecté à la ligne et configuré en mode bridge (ADSL/ATM - Ethernet). Le routeur 3725 est brancdhé derrière le mode bridge. La configuration qui suit donne un exemple de configuration du client PPPoE et du serveur NAT.

Projet RATP
SIP#show running-config
!
!
ip name-server 208.67.**.**
vpdn enable !!
!
!
!
bba-group pppoe global !!
 virtual-template 1
!
!
interface FastEthernet0/0
 ip address 10.0.0.1 255.255.255.240
 ip nat inside
!
interface FastEthernet0/1
 no ip address
 pppoe enable group global !!
 pppoe-client dial-pool-number 1
!
interface Dialer1
 ip address negotiated
 ip mtu 1492
 ip nat outside
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 ppp authentication chap callin !!
 ppp chap hostname fti/***
 ppp chap password 0 ***
!
ip route 0.0.0.0 0.0.0.0 Dialer1
!
!
ip nat inside source list 1 interface Dialer1 overload
ip nat inside source static tcp 10.0.0.2 5060 82.127.**.** 5060 extendable
ip nat inside source static udp 10.0.0.2 5060 82.127.**.** 5060 extendable
!
access-list 1 permit 10.0.0.0 0.0.0.15
dialer-list 1 protocol ip permit
!
!
end

Un profil PPPoE est défini pour configurer les paramètres PPPoE. Les paramètres PPPoE sont configurés au sein d’un groupe "Virtual Private Dialup Networks" (VPDN). Les VPDN utilisent le protocole "Layer 2 Forwarding" (RFC2341). Ce protocole permet le passage de trames au travers un tunnel virtuel. Il est alors possible d’étendre la connexion réseau d’un utilisateur distant depuis un réseau fournisseur vers un réseau privé.

Le profil PPPoE peut être défini dans un groupe d'accès distant (Broadband Access ou BBA) dans lequel on peut spécifier le nombre de sessions autorisées, le nom du routeur d’accès… Le mot-clé "global" spécifie la création d'un profil par défaut pour tous les ports d'accès (ici FastEthernet) qui ne sont pas assignés à un profil particulier. Il apparaît que la configuration "bba-group pppoe xx" soit inutile pour un client PPPoE (ainsi que le paramétrage "pppoe enable group xx" sur l'interface) et qu'elle est nécessaire sur une configuration serveur. "virtual-template" permet de cloner automatiquement des interfaces virtuelles (configuration IP, authentification PPP) pour chaque type de sessions PPP (PPPoE ou PPPoA). Dans le cas d'un serveur PPPoE, une interface virtual-template1 peut-être créée avec une addresse IP, un accès client DHCP ("peer default ip address pool xx") et les paramètres d'authentification "ppp authentication chap callin". Il apparaît que ce dernier paramètre soit inutile dans une configuration client. Côté serveur, un username est créé avec le password CHAP.

Les sessions PPPoE sont permises sur l’interface FastEthernet0/1 qui est assignée sur le groupe BBA global ("pppoe enable group global"). La commande "pppoe enable" aurait suffit. Un client PPPoE est initié sur l’ensemble d’interface numéro 1.
L’interface dialer1 est ensuite définie. On configure le MTU (Maximum Transmission Unit) à 1492 puisque Ethernet a une taille utile de 1500 octets, l’en-tête PPPoE fait 6 octets et l’identifiant PPP est de 2 octets. Cette interface fait partie des interfaces communes numéro 1. Cette interface correspond à l’interface NAT extérieure et l’adresse IP est négociée par DHCP. Le moyen d’authentification PPP doit être spécifié à ce niveau.

L’interface FastEthernet0/0 correspond à l’intérieur du NAT et possède une adresse IP fixe (ici 10.0.0.1). Sur cette interface, on peut poser le MSS (Maximum Segment Size) égal à 1452 (20 octets IP et 20 octets TCP) : "ip tcp mss-adjust 1452".
La route par défaut est initialisée sur l’interface Dialer. Les adresses internes NAT peuvent surchargées l’adresse obtenue sur l’interface Dialer1. La translation du serveur SIP doit être spécifiée de manière statique. Sur le dialer-group 1, le protocole IP est permis.


Configuration IPv6

L'exemple ci-dessous montre une configuration IPv6.

ipv6 unicast-routing ipv6 cef ! interface FastEthernet0/0 ipv6 address 2001:660:3203:110::/64 eui-64 ipv6 enable exit interface FastEthernet0/1.300 ipv6 address 2001:660:3203:2241::1/64 ipv6 enable ipv6 nd prefix 2001:660:3203:2241::/64 2592000 604800 exit ipv6 route 2000::/3 2001:660:3203:110::1

ACL réflectives

Les ACL réflectives permettent de filtrer des paquets sur des informations provenant des couches hautes. Elles sont notamment utilisées pour autoriser un trafic spécifique dont l’origine est le réseau interne mais interdire le même trafic initié de l’extérieur. Elles constituent une protection contre l’usurpation et certaines attaques de déni de service.

Tous les paquets IP sont autorisés à sortir et une nouvelle ACL "mirror" est créée temporairement. Les paquets entrants sont évalués suivant cette liste d’accès.

BR# ip access-list extended DMZ_out remark packets to DMZ permit ip any any reflect mirror exit ip access-list extended DMZ_in remark packets from DMZ evaluate mirror deny ip any any log exit ! interface FastEthernet0/0 ip access-group DMZ_in in ip access-group DMZ_out out exit

Serveur SNMP

access-list 1 permit 157.159.226.x snmp-server community test RO 1 snmp-server enable traps snmp authentication linkdown linkup coldstart snmp-server enable traps tty snmp-server host 157.159.226.x version 2c test

La configuration du client SNMP sous Linux est donnée.

[root@WRITER gillet]# yum install net-snmp
Installed: net-snmp.i386 1:5.4.1-8.fc8
Dependency Updated: net-snmp-libs.i386 1:5.4.1-8.fc8
[root@WRITER snmp]# yum install net-snmp-utils
Installed: net-snmp-utils.i386 1:5.4.1-8.fc8

[root@WRITER snmp]# snmpget -v1 -c test 157.159.225.3 system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C3550 Software (C3550-IPSERVICESK9-M), Version 12.2(25)SEE1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2006 by Cisco Systems, Inc.
Compiled Mon 22-May-06 08:08 by yenanh
[root@WRITER snmp]# snmpget -v1 -c test 157.159.225.3 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (331045786) 38 days, 7:34:17.86
[gillet@WRITER ~]$ snmpwalk -v2c -c test 157.159.225.3 system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C3550 Software (C3550-IPSERVICESK9-M), Version 12.2(25)SEE1, RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2006 by Cisco Systems, Inc.
Compiled Mon 22-May-06 08:08 by yenanh
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.368
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (898789944) 104 days, 0:38:19.44
SNMPv2-MIB::sysContact.0 = STRING:
SNMPv2-MIB::sysName.0 = STRING: TEST.int-evry.fr
SNMPv2-MIB::sysLocation.0 = STRING:
SNMPv2-MIB::sysServices.0 = INTEGER: 6
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00

Multicast

La configuration qui suit donne un exemple de réseau multicast avec 3 routeur PIM dont R2 est le "Rendez-vous Point".

hostname R1 ! ip multicast-routing ! interface Ethernet0/1 ip address 192.168.10.2 255.255.255.0 ip pim sparse-mode ip igmp version 2 ! interface Ethernet0/2 ip address 192.168.20.1 255.255.255.0 ip pim sparse-mode ! interface Ethernet0/3 ip address 192.168.40.2 255.255.255.0 ip pim sparse-mode ! router rip version 2 network 192.168.10.0 network 192.168.20.0 network 192.168.40.0 ! ip pim rp-address 192.168.40.1 override

hostname R2 ! ip multicast-routing ! interface Ethernet0/1 ip address 192.168.50.2 255.255.255.0 ip pim sparse-mode ! interface Ethernet0/2 ip address 192.168.40.1 255.255.255.0 ip pim sparse-mode ! interface Ethernet0/3 ip address 192.168.60.2 255.255.255.0 ip pim sparse-mode ! router rip version 2 network 192.168.40.0 network 192.168.50.0 network 192.168.60.0 ! ip pim rp-address 192.168.40.1 override

hostname R3 ! ip multicast-routing ! interface Ethernet3/1 ip address 192.168.30.2 255.255.255.0 ip pim sparse-mode ip igmp version 2 ! interface Ethernet3/2 ip address 192.168.20.2 255.255.255.0 ip pim sparse-mode ! interface Ethernet3/3 ip address 192.168.60.1 255.255.255.0 ip pim sparse-mode ! router rip version 2 network 192.168.20.0 network 192.168.30.0 network 192.168.60.0 ! ip pim rp-address 192.168.40.1 override

On peut configurer un client multicast avec un Cisco, même si le client est un PC dans cette plate-forme.

hostname client ! interface FastEthernet0/0 ip address 192.168.10.1 255.255.255.0 ip igmp join-group 239.0.10.1 ip igmp version 2 ! ip route 0.0.0.0 0.0.0.0 FastEthernet0/1 client# debug ip igmp *Feb 25 11:17:20.199: IGMP(0): Received v2 Query on FastEthernet0/0 from 192.168.10.2 *Feb 25 11:17:20.199: IGMP(0): Set report delay time to 1.8 seconds for 239.0.10.1 on FastEthernet0/0 *Feb 25 11:17:22.003: IGMP(0): Send v2 Report for 239.0.10.1 on FastEthernet0/0

Outil Netflow

Sur une machine Cisco:

interface FastEthernet0/0.2 description To_PE2 ip flow ingress ! interface FastEthernet0/0.3 description To_PE3 ip flow ingress ! interface FastEthernet0/1.300 description To_DMZ ip flow ingress ! interface FastEthernet0/1.315 description To_B103 ip flow ingress ! ip flow-export source Loopback0 ip flow-export version 5 ip flow-export destination 157.159.x.x 2055

Le poste 157.159.x.x écoute sur le port 2055. Ci-dessous, sa configuration:

[root@WRITER ~]# yum install flow-tools [root@WRITER netflow]# flow-capture -w ./netflow -E16M 0/1.1.1.1/2055 [root@WRITER netflow]# vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2055 -j ACCEPT [root@WRITER netflow]# service iptables restart [root@WRITER 2009-06]# flow-cat -p ./netflow/2009/2009-06/2009-06-30/tmp-v05.2009-06-30.114849+0200 | flow-stat -f0 -P -p -S3 # --- ---- ---- Report Information --- --- --- # # Fields: Percent Total # Symbols: Disabled # Sorting: Descending Field 3 # Name: Overall Summary # # Args: flow-stat -f0 -P -p -S3 # # # mode: streaming # capture start: Tue, 30 Jun 2009 11:48:49 +0200 # capture end: Thu, 01 Jan 1970 01:00:00 +0100 # capture period: 3048611967 seconds # compress: off # byte order: little # stream version: 3 # export version: 5 # lost flows: 0 # corrupt packets: 29 # sequencer resets: 0 # capture flows: 0 # flow-cat: Warning, partial inflated record before EOF Total Flows : 11119 Total Octets : 7325435 Total Packets : 60193 Total Time (1/1000 secs) (flows): 179370920 Duration of data (realtime) : 578 Duration of data (1/1000 secs) : 1903292 Average flow time (1/1000 secs) : 16131.9284 Average packet size (octets) : 121.6991 Average flow size (octets) : 658.8214 Average packets per flow : 5.4135 Average flows / second (flow) : 5.8429 Average flows / second (real) : 19.2370 Average Kbits / second (flow) : 30.7953 Average Kbits / second (real) : 101.3901 IP packet size distribution: 1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480 .003 .569 .161 .085 .034 .030 .018 .016 .023 .014 .011 .014 .005 .002 .001 512 544 576 1024 1536 2048 2560 3072 3584 4096 4608 .003 .002 .003 .006 .001 .000 .000 .000 .000 .000 .000 Packets per flow distribution: 1 2 4 8 12 16 20 24 28 32 36 40 44 48 52 .359 .144 .185 .192 .049 .022 .015 .008 .005 .003 .002 .002 .002 .002 .001 60 100 200 300 400 500 600 700 800 900 >900 .002 .004 .002 .000 .000 .000 .000 .000 .000 .000 .000 Octets per flow distribution: 32 64 128 256 512 1280 2048 2816 3584 4352 5120 5888 6656 7424 8192 .000 .200 .220 .150 .227 .095 .039 .035 .011 .008 .003 .002 .001 .001 .001 8960 9728 10496 11264 12032 12800 13568 14336 15104 15872 >15872 .001 .001 .001 .000 .000 .000 .000 .000 .000 .000 .003 Flow time distribution: 10 50 100 200 500 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 .448 .035 .020 .066 .017 .008 .009 .007 .005 .009 .009 .004 .004 .005 .007 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000 >30000 .013 .016 .154 .005 .004 .007 .003 .003 .002 .002 .137 [root@WRITER 2009-06]# flow-cat -p ./netflow/2009/2009-06/2009-06-30/ft-v05.2009-06-30.114849+0200 | flow-stat -f10 -P -p -S3 # src IPaddr dst IPaddr flows octets packets # 157.159.*.71 157.159.*.185 1.724 5.547 2.426 138.96.*.199 157.159.*.73 0.222 5.413 0.696 138.96.*.199 157.159.*.74 0.222 4.514 0.616

On obtient les résultats suivants (source PERCEVALE):


mis à jour le 20/07/2009

Raccourcis