La reconnaissance applicative est un sport! Les applications évoluent toujours plus rapidement, sont quasiment systématiquement chiffrées, et reconnaître une application n’a jamais été aussi complexe.
NBAR2 permet via une approfondie des flux (DPI – Deep Packet Inspection) de reconnaître environ 1500 applications. On va analyser les flux dans le détail, regarder les certificats échangés, extraire des url spécifiques etc… le tout pouvant être bien sûr customisé en fonction des besoin de chacun. Malheureusement le chiffrement quasi systématique des flux nécessite toujours plus de ressources. Comment concilier le besoin de chiffrement avec la capacité de faire la distinction entre les applications? Comment donner le traitement adapté de bout en bout(QoS, routage intelligent…) à chaque application quand ces dernières sont toutes chiffrées? Et si on utilisait simplement le DNS pour cela? C’est bien l’objectif de DNS-AS: tirer profit du DNS pour mieux gérer les applications sur le réseau.
Comment ça marche?
Le concept est très simple. L’équipement réseau va effectuer un snooping des requêtes DNS puis demander au serveur DNS des informations quant à la nature de l’application et la classification désirée. Cette demande se fait simplement via une requête DNS vers le hostname en question. Il suffit de configurer le DNS avec des records spécifiques (AVC – ou TXT) qui donneront des détails sur l’application correspondant au hostname interrogé. Le routeur garde en mémoire les informations retournées par le serveur DNS et sait comment gérer l’application concernée par la requête.
Metadata
Un record spécifique AVC ou TXT permet de décrire une application dans le DNS (le champ TXT a été initialement utilisé pour cela mais le record dédié “AVC” est maintenant adopté pour la suite). Ce record doit suivre une syntaxe précise en listant des séquentiellement pour décrire l’application en question. On suit ici la nomenclature documentée dans le RFC6759 “Metadata Components for Application Visibility”.
Je pourrais par exemple pour www.reseauxblog.fr rajouter le record
AVC "app-name:jeromedurand|app-class:BE|business=yes"
ou avec le record TXT
TXT "CISCO-CLS=app-name:jeromedurand|app-class:BE|business=yes"
Ainsi le trafic vers le blog pourra être considéré par l’équipement traversé comme associé à l’application “jeromedurand”. Ce flux sera associé à la classe “Best Effort”, et il sera considéré comme étant un usage professionnel. Ces metadata viendront décrire le flux dans la table de flux du routeur. Ces metadata seront bien sûr ensuite exportées par le routeur vers la NMS via Netflow ou IPFIX pour afficher des statistiques détaillées sur les flux en question. Ci-dessous un exemple simple de rapport dans Prime qui affiche des infos pour des flux reconnus avec DNS-AS.
Si créer vos Metadata vous semble trop compliqué vous pouvez utilisé un generateur disponible ici.
Un premier test pour être sur de bien comprendre…
Vous pouvez faire ce petit test sur le hostname www.dns-as.org, site référence pour DNS-AS que je recommande:
dig -t TXT +short www.dns-as.org "CISCO-CLS=app-name:dns-as-www|app-class:TD|business:YES|app-id:CU/28202"
Ici le le trafic vers le site sera reconnu comme application professionelle “dns-as-www”, associé à un identifiant 28202, et placé dans la classe de service TD (Transactional Data)
Pourquoi DNS-AS?
L’avantage de DNS-AS est que c’est une méthode simple qui n’analyse pas le contenu des paquets: elle nécessite donc peu de ressources. On a ainsi pu implémenter DNS-AS non seulement sur nos routeurs ASR1000, ISR 4000 et CSR, mais aussi sur les commutateurs catalyst 4500 (et d’ici peu sur les catalyst 3650/3850). Si l’on ne va pas aussi loin dans le détail qu’avec NBAR2 et l’analyse complète des paquets, on dispose d’un premier niveau d’analyse directement contrôlable par un serveur centralisé. Ce contrôle centralisé, très en vogue avec la mouvance SDN, permet de très simplement modifier les caractéristique d’une application sur l’ensemble du réseau via un simple changement sur le DNS. NBAR2 continue bien sûr de travailler en parallèle pour les applications non gérées par DNS-AS.
Envie d’essayer?
Configurez simplement votre équipement, avec vos serveurs DNS, activez DNS-AS, et listez les domaines pour lesquels vous souhaitez obtenir des metadata. Par exemple:
ip name-server 10.100.10.100 ! avc dns-as client enable ! avc dns-as client trusted-domains domain *.reseauxblog.fr domain *.dns-as.org
Les bindings entre hosts, IP et metadata peuvent être vus ensuite sur l’équipement:
stealth-odd#show avc dns-as client binding-table
Plus d’infos:
- Très didactique, permet de mettre en oeuvre simplement – Guide de configuration sur 4500
- Tout savoir sur DNS-AS: http://www.dns-as.org
- Générateur de metadata
- Excellente présentation Cisco Live BRKRST-3004 de Wolfgang Riedel