2009-07-27 7 views
1

est-il soit:Cisco IOS "show conf" en XML?

Un programme gratuit permettant de convertir la sortie d'une forme de bloc « Afficher le ConF » une certaine XML raisonnable de Cisco, comme celui-ci (probablement pas très sensible):

<aaa> 
    <new-model/> 
    <authentication> 
    <login> 
     <default> 
     <group id="tacacs+">enable</group> 
     </defult> 
    </login> 

    <!-- ...etc... --> 

    </authentication> 
</aaa> 

. ..ou, sinon, à un schéma XML que je pourrais chercher à implémenter? Sans une compréhension profonde de la syntaxe IOS, la construction du schéma s'avère difficile.

Répondre

2

Cisco ne fournit aucun schéma pour les configurations IOS. Toutefois, vous pouvez avoir deux options:

  • L'IOS XR de Cisco a un support XML intégré. Selon le modèle de votre routeur, vous pourrez peut-être effectuer une mise à niveau. Vous devrez activer la fonctionnalité "xml-agent" pour que cela fonctionne. Sachez que cette fonctionnalité n'est pas toujours jugée fiable (nous avons vérifié qu'il y avait quelques bogues qui nous empêchaient de l'utiliser), mais cela devrait être suffisant pour beaucoup de gens.

  • Si la mise à niveau ne sont pas une option, il y a cette horrible bidouille horrible (c'est ma faute):

http://code.google.com/p/text2xml/

Il est livré avec une syntaxe pour IOS (syntaxe/ios.def dans le référentiel) qui supporte la traduction d'un nombre significatif de commandes en XML, mais n'est en aucun cas complet. Pourtant, cela fonctionne pour un grand nombre de configurations très complexes ici, et l'étendre pour supporter les nouvelles commandes IOS ne devrait être qu'une question d'ajout des nouvelles commandes à la définition syntaxique (douloureusement illisible et difficile à comprendre).

Vous aurez toujours envie de convertir le XML résultant en quelque chose de plus stable, mais les transformations XML sont beaucoup plus faciles que l'analyse de l'IOS (qui est un PITA royal).

[modifier] La réponse ci-dessus est maintenant largement obsolète: Je l'ai écrit Gelatin, ce qui vous permet de convertir IOS et IOS XR configurations en XML, JSON ou YAML - celui que vous préférez. Ceci est essentiellement un remplacement pour le hack laid mentionné ci-dessus, avec les différences suivantes:

  • Je ne l'appelle plus un hack laid. Je suis vraiment très fier de cela, alors ne me désillusionnez pas! Plus sérieusement, si vous trouvez un problème avec cela, s'il vous plaît faites le moi savoir et je vais le réparer.
  • Ecrit en pur Python, et il ne se compile plus en C, ce qui le rend beaucoup plus facile à utiliser et à installer. (De plus, le gain de performance généré par la génération du code C n'était pas essentiel de toute façon.)
  • La syntaxe est façon plus facile à comprendre. Il y a aussi de la documentation.
  • L'analyseur est beaucoup plus stable.

Une courte how-to:

  • Téléchargez et installez Gélatine:

    git clone git://github.com/knipknap/Gelatin.git 
    cd Gelatin 
    sudo python setup.py install 
    
  • Le paquet contient une syntaxe pour IOS (syntaxe/ios/show_running_config/syntax.gel) et un autre pour IOS XR (syntaxe/ios_xr/show_running_config/syntax.gel).

  • transformer une configuration en XML en utilisant la commande suivante:

    gel -s syntax.gel config.txt 
    

Si cela échoue, s'il vous plaît file a bug avec la configuration qui ne fonctionne pas. (Ou mieux encore, attacher un patch pour la syntaxe.) Je m'attends à ce que beaucoup de commandes IOS soient toujours manquantes, alors ne soyez pas timide. La gélatine peut être utilisée pour transformer à peu près n'importe quoi en XML, et s'il vous arrive de créer vos propres fichiers de syntaxe (d'autres instructions sont here), merci de les envoyer. J'accepte volontiers tout commentaire.

1

Je suis tombé sur XML-PI sur 12,4 (20) T, 12,2 (33) SRE, 12,2 (54) SG et plus récent qui traite d'un tel problème.