Netflow-IPv6
Plan Qu est-ce qu un flux principes de Netflow Rappels sur Netflow v1 v8 Netflow v9 Collecteur UTC «IPFlow» Cisco IOS : Implémentation de Netflow IPv6 2
Qu est-ce qu un flux principes de Netflow (1/2) La technologie Netflow de Cisco s appuie sur la notion de flux, un flux étant défini par les critères suivants: Adresses source et destination, Protocole (TCP, UDP, ICMP, ), ToS (Type of Service), Ports applicatifs, Interfaces d entrée et de sortie du routeur. Un routeur utilisant Netflow maintient en mémoire une table des flux actifs à un instant donné, et compte le nombre de paquets et d octets reçus pour chaque flux. Cette table est appelée «cache Netflow». A chaque paquet reçu, le routeur met à jour ce cache, soit en créant une nouvelle entrée, soit en incrémentant les compteurs d une entrée déjà existante. 3
Qu est-ce qu un flux principes de Netflow (2/2) Un flux est expiré du cache par le routeur lorsque : Il a été inactif pendant un certain temps (par défaut 15 sec) Il a été actif depuis trop longtemps (par défaut 30 min) Il s agit d un flux TCP et les flags FIN ou RST ont été détectés par le routeur. Lorsqu un flux a expiré et est supprimé du cache, il peut être exporté vers une machine de collecte qui reçoit ainsi des trames Netflow suivant un protocole défini par Cisco (il en existe plusieurs versions). Pour des raisons d efficacité et d économie en bande passante, le routeur groupe plusieurs flux dans le même paquet. 4
Rappels sur Netflow v1 à v8 De nombreuses versions de Netflow existent: 1, 5, 6, 7, 8 La version 5 est la plus couramment utilisée, et permet d exporter er une grande quantité d information vers un collecteur. La version 7 sert pour les switches Catalyst et diffère peu de la version 5. La version 8 introduit les schémas d agrégation (environ une quinzaine actuellement). => Chaque version apporte son lot de changements et demande une modification des collecteurs. => Pas de support d IPv4 Multicast,, IPv6, MPLS, 5
Netflow v9 : Principes Netflow v9 règle les problèmes des versions précédentes en introduisant la notion de template. Une template définit la liste des champs qui seront utilisés dans les records Netflow associés. La template donne donc la structure binaire d un record Netflow. Les templates sont identifiées au moyen d un identifiant sur 16 bits fixé par le routeur. Les «Option Templates» sont des templates particulières fournissant des informations spécifiques (par ex. process Netflow) 6
Netflow v9 : Format des trames (1/2) Une trame v9 est composée d une entête de taille fixe, et de «Template FlowSets» et/ou «Data FlowSets». Un Template Flowset contient une succession de Template Records (chaque record définit une template). Un Data Flowset contient une succession de Data Records attachés à une template particulière. Pour pouvoir décoder un Data Record, il est nécessaire d avoir préalablement reçu la template associée. 7
Netflow v9 : Format des trames (2/2) Une trame v9 se présente donc sous cette forme: Packet header Template FlowSet Template FlowSet Data FlowSet Template FlowSet Data FlowSet Le routeur peut placer les Template FlowSets et Data FlowSets de manière complètement libre dans le paquet. Chaque FlowSet contient un Template ID (0 si c est un Template FlowSet) ) et sa longueur pour pouvoir délimiter les FlowSets. 8
Netflow v9: Format des templates Organisation d un Template FlowSet : FlowSet Header Template Record 1 Template Record 2 Template Record N FlowSet ID = 0 FlowSet Length FlowSet Header Template ID Field Count Field 1 Type Field 1 Length Template Record Field N Type Field N Length [ ] 9
Netflow v9: Champs Chaque type de champ est identifié par un entier 16-bits. La liste exhaustive des champs est donnée sur le site de Cisco et dans le draft Netflow-v9 (auteur B.Claise). Il existe déjà une liste de champs suffisamment complète reprenant nt ce qui existait avec les versions précédentes de Netflow (plus quelques nouveautés): IPV4_SRC_ADDR, IPV4_DST_ADDR, PROT, TCP_FLAGS, Au niveau IPv6, les champs suivants ont été définis: IPV6_SRC_ADDR, IPV6_DST_ADDR, FLOW_LABEL, IPV6_SRC_MASK, IPV6_DST_MASK, IPV6_OPTIONS_HEADERS, IPV6_NEXTHOP, IPV6_BGP_NEXTHOP, Actuellement, les implémentations «officielles» Netflow-v9 d IOS supportent IPv4 Unicast,, IPv4 Multicast et MPLS. IPv6 est en beta. 10
Netflow v9: Avantages et Inconvénients Avantages: Les templates permettent de définir des data records de manière complètement libre, Possibilité de définir de nouveaux schémas d agrégation plus facilement, La définition de nouveaux champs est simple (peu de modifications à réaliser sur les collecteurs), V9 permet une gestion simultanée de IPv4 et IPv6. V9 supporte MPLS. Inconvénients: Le format des trames plus complexe induit une plus grande charge pour les routeurs et les collecteurs, Les collecteurs doivent mémoriser les templates et pouvoir analyser rapidement les data records en fonction des champs qu ils contiennent. 11
Collecteur IPFlow Collecteur Netflow développé à l UTC, et utilisé pour la gestion du Réseau Régional de Télécommunications de Picardie. Conçu essentiellement pour aider à la résolution de problèmes comme la congestion de liens, l analyse de trafic «parasite», A l origine, développé pour des besoins internes, mais disponible gratuitement pour les personnes intéressées. 12
IPFlow: : Fonctionnalités (1/2) Le but d IPFlow est de fournir le maximum de possibilités de traitement dès la collecte: Gestion de «sites» (liste de préfixes IPv4/IPv6) Matrices de trafic de sites ACL pour identification précise du trafic Agrégation (suivant n importe quels critères) Détection de scans de ports (temps réel) + trackers Sortie dans fichiers textes ou binaires Remplissage de bases RRDTool «à la volée» «Colorisation» de flux à l écran pour analyse temps réel Gestion des versions 1, 5, 6, 7, 8 et 9 de Netflow 13
IPFlow: : Fonctionnalités (2/2) Système de «dispatching», permettant de ré-émettre les datagrammes Netflow vers d autres collecteurs (IPv4/IPv6) Fichier de configuration à la BIND 9 (avec support des «includes») Rotation des fichiers de logs Après collecte, il est possible d exploiter les fichiers binaires avec ces utilitaires: «Grep» : Recherche multi-critères (adresses, ports, etc.) «Top» : agrégation et Top-N «Sdraw» : Remplissage de bases RRDTool suivant les critères spécifiés 14
IPFlow: Netflow Simulator (1/2) IPFlow est capable depuis Décembre 2003 d exporter du Netflow (comportement similaire à un routeur Cisco). Principe: Il suffit de «mirrorer» le trafic du port d un switch vers un autre port, connecté à un serveur Unix faisant tourner le «netflow simulator» (utilisation de la librairie PCAP). Le «netflow simulator» maintient des caches Netflow en mémoire et exporte les flux vers les machines indiquées dans la configuration. Cette fonctionnalité est utile lorsque l on ne souhaite pas activer Netflow sur un routeur pour des raisons de performance ou autre. 15
IPFlow: Netflow Simulator (2/2) Le «netflow simulator» supporte les versions 1, 5 et 9 pour l export (l export multiple vers un nombre quelconque de machines et avec des versions différentes de Netflow est possible). Les protocoles IPv4 et IPv6 sont gérés: il est donc possible de simuler le comportement d un routeur tournant une version IOS avec Netflow-IPv6. Il est possible de configurer des schémas d agrégations (comme pour p Netflow-v8 mais seul le v9 est supporté actuellement pour l export). A venir prochainement: enregistrement du contenu des flux suivant certains critères (type ACL) dans des fichiers type tcpdump. 16
IPFlow: : Conclusion Fonctionnement souple mais nécessite de «mettre les mains dans le cambouis» (pour créer les configurations ou exploiter les données). Supporte complètement IPv6 depuis Juin 2002: Permet de recevoir des trames Netflow émises en IPv6 Support de Netflow v9 et des champs IPv6 associés Traitements (collecte et exploitation) gèrent IPv6 (par ex. agrégation, access-lists ou détection de scans) IPFlow a servi comme collecteur de test lors du développement de Netflow-IPv6 dans IOS et pour la version IPv6 EFT actuelle. 17
IOS avec Netflow IPv6 (1/2) Prototypes fournis directement par les développeurs Netflow-IPv6 puis utilisation de la version EFT «officielle». Caractéristiques principales de la version actuelle: Support de Netflow v9 (avec schémas d agrégation v4) Quelques schémas d agrégation IPv6 Export en IPv4 seulement Plateformes: Cisco 7200, 7500 (12000?) Plateforme de tests dédiée (prêt de NextiraOne): Cisco 7206 (non VXR) avec NPE-150 (128 Mo de DRAM) Cartes ATM OC3, Série X.21 (PA-8T), FastEthernet Version EFT déployée sur le backbone du RRTP (basée sur le train 12.3T) 18
IOS avec Netflow IPv6 (2/2) Interfaces supportées / testées : Ethernet («standard», 802.1q, ISL) HDLC ATM Tunnels 6-to-4 Tests réalisés: Netflow-IPv6 + Policy-Based Routing (PBR) Netflow-IPv6 + ACL Load-Balancing Caches d agrégations IPv6 Options Headers (repérage des entêtes optionnelles v6) Stress tests : remplissage «agressif» des caches Netflow 19
Configuration IOS Configuration pour l export avec Netflow v9 (v4 + v6): ip flow-export version 9 ip flow-export destination 10.0.0.1 9002 ipv6 flow-export version 9 ipv6 flow-export destination 10.0.0.1 9002 Configuration d une interface : interface FastEthernet1/0.1 description Vers Auriga encapsulation dot1q 130 no ip redirects ipv6 address FEC0:C000::1/64 ipv6 flow ingress! 20
Configuration du collecteur (1/2) router 7200_IPv6 { ip-address 193.51.1.109; snmp-community rrt; netflow { version 9; receiver-port 9002; /* Affiche les templates reçues par le collecteur */ show-templates yes; template-model model ipv4 { mandatory-fields { ipv4-src src-addr; ; ipv4-dst dst-addr; }; }; rule r1; template-model model ipv6 { mandatory-fields { ipv6-src src-addr; ; ipv6-dst dst-addr; }; }; }; }; rule r2; 21
Configuration du collecteur (2/2) Les Template ID sont affectés aléatoirement par le routeur et ne sont pas identiques entre les reboots il faut donc indiquer au collecteur quels sont les champs présents ou non pour identifier les templates. Si on connaît le Template ID, il est possible de le spécifier dans la configuration. Le collecteur permet d utiliser des règles d analyse spécifiques à chaque Template. Les templates reçues par le collecteur peuvent être affichées à l écran pour faciliter le déboguage. 22
Templates IPv4 et IPv6 (1/2) Template IPv4: - Uptime at last packet (Type 21, Length 4) - Uptime at first packet (Type 22, Length 4) - Bytes (32-bit) (Type 1, Length 4) - Packets (32-bit) (Type 2, Length 4) - Input interface index (Type 10, Length 2) - Output interface index (Type 14, Length 2) - IPv4 Source Address (Type 8, Length 4) - IPv4 Destination Address (Type 12, Length 4) - IP Protocol (Type 4, Length 1) - IP TOS (Type 5, Length 1) - L4 Source Port (Type 7, Length 2) - L4 Destination Port (Type 11, Length 2) - Flow Sampler ID (Type 48, Length 1) - *** undef. (type 51) *** (Type 51, Length 1) - IPv4 Next-Hop (Type 15, Length 4) - IPv4 Destination Mask (Type 13, Length 1) - IPv4 Source Mask (Type 9, Length 1) - TCP Flags (Type 6, Length 1) - Destination BGP AS (Type 17, Length 2) - Source BGP AS (Type 16, Length 2) 23
Templates IPv4 et IPv6 (2/2) Template IPv6: - IP Protocol Type (v4/v6) (Type 60, Length 1) - Flow Direction (Type 61, Length 1) - IPv6 Source Address (Type 27, Length 16) - IPv6 Source Mask (Type 29, Length 1) - Input interface index (Type 10, Length 2) - IPv6 Destination Address (Type 28, Length 16) - IPv6 Destination Mask (Type 30, Length 1) - Output interface index (Type 14, Length 2) - IPv6 Next-Hop (Type 62, Length 16) - IP Protocol (Type 4, Length 1) - TCP Flags (Type 6, Length 1) - IP TOS (Type 5, Length 1) - L4 Source Port (Type 7, Length 2) - L4 Destination Port (Type 11, Length 2) - IPv6 Flow Label (Type 31, Length 4) - IPv6 Option Headers (Type 64, Length 4) - Uptime at last packet (Type 21, Length 4) - Uptime at first packet (Type 22, Length 4) - Bytes (32-bit) (Type 1, Length 4) - Packets (32-bit) (Type 2, Length 4) 24
Déboguage de Netflow IPv6 Comme pour IPv4 il est possible de connaître le contenu des caches Netflow directement sur le routeur: 7500_UTC#sh ipv6 flow cache IP packet size distribution (1965383 total packets): 1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480.000.221.389.053.020.009.008.006.001.001.000.000.000.000.000 512 544 576 1024 1536 2048 2560 3072 3584 4096 4608.000.000.000.015.269.000.000.000.000.000.000 IP Flow Switching Cache, 475168 bytes 5 active, 4091 inactive, 595814 added 10305806 ager polls, 0 flow alloc failures Active flows timeout in 5 minutes Inactive flows timeout in 15 seconds IP Sub Flow Cache, 33480 bytes 0 active, 1024 inactive, 0 added, 0 added to flow 0 alloc failures, 0 force free 1 chunk, 1 chunk added SrcAddress InpIf DstAddress OutIf Prot SrcPrt DstPrt Packets 2001:660:4200:1001:0:61:0:2200 Gi4/0/0 2001:660:4200:1001:61::1936 Local 0x06 0x96B8 0x00B3 4 FE80::209:E9FF:FECB:DF00 Gi4/0/0 FE80::202:7EFF:FEA2:3080 Local 0x3A 0x0000 0x8800 1 2001:660:4200:1001:0:61:0:2200 Gi4/0/0 FE80::202:7EFF:FEA2:3080 Local 0x3A 0x0000 0x8800 1 FE80::209:E9FF:FECB:DF00 Gi4/0/0 FE80::202:7EFF:FEA2:3080 Local 0x3A 0x0000 0x8700 1 FE80::209:E9FF:FECB:DF00 Gi4/0/0 2001:660:4200:1001:61::1936 Local 0x3A 0x0000 0x8700 1 25
Exemple de capture Auriga 7200_IPv6 7500_UTC Fa1/0.1 Fa2/0.1 Fa4/0/0.700 fec0:c000::1 fec0:a000::2 fec0:a000::1 fec0:c000::2 195.83.155.143 195.83.155.255 UDP 137 137 FastEthernet1/0.2 -> *local* fec0:c000::2 fec0:a000::1 TCP 32813 23 FastEthernet1/0.1 -> *local* fec0:a000::1 fec0:c000::2 TCP 23 32813 FastEthernet2/0.1 -> *local* 193.49.251.82 193.51.1.109 TCP 51288 23 FastEthernet2/0.1 -> *local* 26
Questions?