Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Achtergrondinformatie

Gegevensmodellen - op programmatische en op standaarden gebaseerde configuratie en bewaking

Weer een andere gegevensmodelleertaal van de volgende generatie (YANG) (RFC 6020)

Network Configuration (NETCONF) Protocol (RFC 6241)

Configureren

1. Basis Configuration van een Catalyst 3850 Running Cisco-XE 16.3.3-software ter ondersteuning van NETCONF/YANG Data Modeling

2. Aanvullende (optionele) configuratie om NETCONF/YANG Syslog en SNMP Event Monitoring mogelijk te maken

3. Configuratie van netwerkconnectiviteit van Catalyst 3850 die in dit voorbeeld wordt gebruikt

Controleer NETCONF/YANG op Catalyst 3850

Het gecentraliseerde beheerplatform (notebook) configureren

1. Installeer de Yang Explorer-toepassing op een laptop

2. Gebruik de Yang Explorer-toepassing

3. Abonneren op NETCONF-meldingen (optioneel)

Basisvoorbeelden van NETCONF/YANG

1. Voorbeeld van gegevensherstel

Vraag een lijst met interfacenamen aan bij Catalyst 3850

2. Configuratievoorbeeld

Sluit een Ethernet-interface op Catalyst 3850 af

Catalyst 3850 CLI-weergave van de interfaceconfiguratie zowel voor als na de vorige NETCONF/YANG-configuratiewijziging

De configuratie op een Catalyst 3850 opslaan

Catalyst 3850 CLI-weergave van de opgeslagen opstartconfiguratie na de vorige Opslagbewerking voor NETCONF/YANG Configuration

Catalyst 3850 vanuit de CLI configureren

3. Controleer welke SNMP MIB Operationele gegevens beschikbaar zijn via GET request Operations

Aanvullende YANG Data-modellen laden

1. De verschillende YANG Data Model Files afzonderlijk laden

2. bulklading van alle YANG Data Model Files in één keer

Opmerkelijke YANG Data modellen

cisco-ia.yang data-model

end.yang data model

Python-scripts

Een Python-script genereren vanuit de Yang Explorer Application GUI

Python Script uitvoeren vanaf het gecentraliseerde beheerplatform (notebook)

Problemen oplossen

NETCONF-foutmeldingen

RPC-foutenvoorbeeld

Andere voorbeelden van RPC-fouttypen

Inleiding

Dit document beschrijft hoe u NETCONF/YANG kunt configureren op Cisco IOS XE 16.x-gebaseerde platforms.

Voorwaarden

Vereisten

NETCONF/YANG wordt ondersteund vanaf Cisco IOS XE 16.3.1-software.

Opmerking: voor het gebruik van dit document is geen voorafgaande ervaring met NETCONF, YANG of Python-scripting vereist.

Gebruikte componenten

De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:

In dit voorbeeld wordt een zelfstandige WS-C3850-12X48U switch met Cisco IOS-XE 16.3.3 gebruikt als de NETCONF-server. Dit is het apparaat dat is geconfigureerd en waaruit gegevens (tonen opdrachtoutput) worden verzameld via NETCONF/YANG.

Een laptop (Apple MacBook Pro met macOS Sierra 10.12.2 en Google Chrome-browser) wordt gebruikt als de NETCONF-client. Het fungeert als het gecentraliseerde beheerplatform en gebruikt de Yang Explorer applicatie. Het is het apparaat dat de YANG geformatteerde verzoeken die naar Catalyst 3850 via NETCONF RPC (Remote Procedure Call) berichten worden verzonden om gegevens van Catalyst 3850 te vormen en te verzamelen maakt.

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

Achtergrondinformatie

Het voorbeeld dat in dit document wordt gegeven, richt zich op laboratoriumtests met Catalyst 3850. De verstrekte informatie is echter ook van toepassing op andere Cisco IOS XE 16.x-platforms zoals de Cisco ASR 1000 Series-routers.

Gegevensmodellen - op programmatische en op standaarden gebaseerde configuratie en bewaking

Gegevensmodellen bieden een alternatieve en gecentraliseerde manier om Cisco-apparaten te configureren (in plaats van de Cisco Command Line Interface (CLI) of Simple Network Management Protocol (SNMP) te gebruiken) en operationele gegevens (opdrachten weergeven) te verzamelen op Cisco-apparaten. Aangezien de gegevensmodellen op standaarden zijn gebaseerd, kan dezelfde procedure worden gebruikt om gegevens te configureren of te verzamelen van apparaten die niet tot Cisco behoren, wat ze ideaal maakt voor klanten die meerdere leveranciers ondersteunen. Een gecentraliseerd beheerplatform (bijvoorbeeld een laptop) kan worden gebruikt om gegevens van meerdere Cisco-apparaten te configureren of te verzamelen en de architectuur van het gegevensmodel maakt het mogelijk deze procedures te automatiseren via Python-scripting (twee aanvullende belangrijke voordelen).

Weer een andere gegevensmodelleertaal van de volgende generatie (YANG) (RFC 6020)

YANG is een op standaarden gebaseerde data modeling taal die gebruikt wordt om apparaatconfiguratieverzoeken of de verzoeken om operationele (show commando) gegevens te maken. Het heeft een gestructureerd formaat gelijkend op een computerprogramma dat door mensen kan worden gelezen. Er zijn verschillende toepassingen beschikbaar die kunnen worden uitgevoerd op een gecentraliseerd beheerplatform (bijvoorbeeld een laptop) om deze configuratie en operationele gegevensverzoeken te creëren.

Er zijn beide standaard (algemene) YANG datamodellen die van toepassing zijn op alle leveranciers (een verzoek om een Ethernet-interface uit te schakelen of uit te schakelen kan bijvoorbeeld identiek zijn voor zowel Cisco- als niet-Cisco-apparaten) en gegevensmodellen voor apparaten (native, leverancierspecifieke) die het configureren of verzamelen van operationele gegevens die gekoppeld zijn aan bedrijfseigen verkoopfuncties vergemakkelijken.

Network Configuration (NETCONF) Protocol (RFC 6241)

NETCONF is een op standaarden gebaseerd en Extensible Markup Language (XML) gecodeerd protocol dat het transport biedt om de YANG-geformatteerde configuratie of operationele gegevensaanvraag te communiceren van een toepassing die wordt uitgevoerd op een gecentraliseerd beheerplatform (bijvoorbeeld een laptop) naar het Cisco-apparaat waarvan een gebruiker operationele (show commando) gegevens wil configureren of aanvragen. Het biedt op transacties gebaseerde services zoals het afbreken van het gehele configuratieverzoek wanneer een deel van dat configuratieverzoek mislukt. NETCONF maakt gebruik van een eenvoudig op Remote Procedure Call (RPF) gebaseerd mechanisme om de communicatie tussen een client (gecentraliseerd managementplatform script of applicatie) en een server (Cisco switch of router) te vergemakkelijken. Het gebruikt Secure Shell (SSH) als transportlaag over netwerkapparaten. Sommige NETCONF-bewerkingen omvatten get, get-config, edit-config en rpc.

Configureren

1. Basis Configuration van een Catalyst 3850 Running Cisco-XE 16.3.3-software ter ondersteuning van NETCONF/YANG Data Modeling

3850-1# show running-config

netconf-yang -------------------------------------> Enable NETCONF/YANG globally. It may take up to 90 seconds to initialize

username cisco1 privilege 15 password 0 cisco1 ---> Username/password used for NETCONF-SSH access

Opmerking: dit is de volledige configuratie die op Catalyst 3850 vereist is om NETCONF/YANG Data Modeling te ondersteunen, maar hierbij wordt ervan uitgegaan dat "geen nieuw model" wereldwijd wordt geconfigureerd (de standaardinstelling). Als het gewenst is om AAA (verificatie, autorisatie en accounting) mogelijk te maken door "aaa new-model" te configureren, dan is deze configuratie minimaal ook vereist. U kunt dit ook uitbreiden om AAA met een TACACS+ of RADIUS-configuratie te gebruiken, maar dit valt buiten het bereik van dit voorbeeld.

aaa new-model

aaa authorization exec default local -------------> Required for NETCONF-SSH connectivity and edit-config operations

2. Aanvullende (optionele) configuratie om NETCONF/YANG Syslog en SNMP Event Monitoring mogelijk te maken

Deze SNMP-serverconfiguraties moeten aanwezig zijn om het genereren van NETCONF-meldingen (RFC 5277 - Tools 5277) voor Syslog-berichten en voor elke geconfigureerde SNMP-traps mogelijk te maken om ook NETCONF-meldingen te genereren.

Merk op dat terwijl deze het minimum vereist zijn, kunnen de extra "snmp-server enable" ingangen ook aanwezig zijn. Een client (gecentraliseerd beheerplatform) registreert de NETCONF-meldingsstroom van een server (Catalyst 3850) en stuurt een specifiek abonnement op RPC (zie paragraaf 3 van "Het gecentraliseerde beheerplatform configureren (notebook)").

3850-1# show running-config

snmp-server community <string> RW ------------------------------> SNMP gateway in DMI requires community public prior to 16.5.1. A configurable community is supported on 16.5.1 and later.

netconf-yang cisco-ia snmp-community-string <string> -----------> Configure the same community string to enable SNMP MIB access for both NETCONF and RESTCONF.

snmp-server trap link ietf -------------------------------------> enable traps for IETF link up/down

snmp-server enable traps snmp authentication linkdown linkup ---> enable traps for link up/down

snmp-server enable traps syslog --------------------------------> enable traps for Syslog so notifications can be generated

snmp-server manager --------------------------------------------> enable snmp-server

Voor Syslog moet deze configuratie aanwezig zijn voor de Data Model Interface (DMI) op Catalyst 3850 om NETCONF-meldingen te kunnen genereren die in RFC 5277 zijn gedefinieerd wanneer Syslog-berichten worden gegenereerd door Cisco op Catalyst 3850.

logging history debugging -------> required for the generation of any NETCONF notification messages for Syslog

logging snmp-trap emergencies ---> configure 1 or more of the following to control which levels of Syslog messages are returned as notifications

logging snmp-trap alerts

logging snmp-trap critical

logging snmp-trap errors

logging snmp-trap warnings

logging snmp-trap notifications

logging snmp-trap informational

logging snmp-trap debugging

Voor SNMP-traps is deze configuratie vereist om NETCONF-meldingen te genereren. In Cisco-XE 16.3.1-software kunnen maximaal 10 SNMP-traps worden geconfigureerd om NETCONF-meldingen te genereren, maar deze beperking kan in een toekomstige release worden verwijderd. Het genereren van meldingen voor SNMP-traps is standaard ingeschakeld. Om het genereren van SNMP-trap meldingen uit te schakelen, gebruikt u deze CLI "no netconf-yang cisco-ia snmp-trap-control global-forward".

netconf-yang cisco-ia snmp-trap-control trap-list 10.3.6.1.6.3.1.1.5.3 --------> LinkDown trap

netconf-yang cisco-ia snmp-trap-control trap-list 10.3.6.1.6.3.1.1.5.4 --------> LinkUp trap

netconf-yang cisco-ia snmp-trap-control trap-list 10.3.6.1.4.1.9.9.41.2.0.1 ---> Syslog generated notification trap

3. Configuratie van netwerkconnectiviteit van Catalyst 3850 die in dit voorbeeld wordt gebruikt

De Catalyst 3850 beheerinterface Gigabit Ethernet0/0 wordt gebruikt om verbinding te maken met het netwerk en met het gecentraliseerde beheerplatform (een laptop kan worden gebruikt) in dit voorbeeld. Dynamic Host Configuration Protocol (DHCP) is gebruikt om IP-adres 172.16.167.175 aan deze interface toe te wijzen. Er kunnen alternatieve configuraties worden gebruikt op Catalyst 3850 zolang de laptop Catalyst 3850 op het netwerk kan bereiken.

3850-1# show running-config

vrf definition Mgmt-vrf

!

address-family ipv4

exit-address-family

!

address-family ipv6

exit-address-family

interface GigabitEthernet0/0

vrf forwarding Mgmt-vrf

ip address dhcp

negotiation auto

ip route vrf Mgmt-vrf 0.0.0.0 0.0.0.0 172.16.167.161

3850-1# show ip interface brief

Interface              IP-Address      OK? Method Status Protocol

Vlan1                  10.1.1.1         YES NVRAM  up     up

Vlan10                 10.10.10.1      YES NVRAM  up     up

Vlan20                 10.20.20.1      YES NVRAM  up     up

GigabitEthernet0/0     172.16.167.175  YES DHCP   up     up

Fo1/1/1                unassigned      YES unset  down   down

Fo1/1/2                unassigned      YES unset  down   down

GigabitEthernet1/0/1   unassigned      YES manual up     up

GigabitEthernet1/0/2   unassigned      YES unset  up     up

GigabitEthernet1/0/3   unassigned      YES unset  down   down

GigabitEthernet1/0/4   unassigned      YES unset  down   down

GigabitEthernet1/0/5   unassigned      YES unset  down   down

Controleer NETCONF/YANG op Catalyst 3850

1. Vanaf de Command Line Interface (CLI) van Catalyst 3850 kan deze opdracht worden gebruikt om ervoor te zorgen dat de softwareprocessen die nodig zijn om de Data Model Interface (DMI) op Catalyst 3850 te ondersteunen, worden uitgevoerd zodra netconf-yang is geconfigureerd.

3850-1# show platform software yang-management process

confd : Running

nesd : Running

syncfd : Running

ncsshd : Running

dmiauthd : Running

vtyserverutild : Running

opdatamgrd : Running

ngnix : Running

De volgende stappen worden uitgevoerd vanaf het gecentraliseerde beheerplatform. In dit voorbeeld wordt een laptop (Apple MacBook Pro met macOS Sierra 10.12.2) gebruikt die netwerktoegang heeft tot Catalyst 3850. De opdrachten worden gegeven vanaf een terminal-prompt op de laptop. Er is op dit moment geen speciale applicatie geladen op de laptop.

2. Zorg ervoor dat het gecentraliseerde beheerplatform (laptop) Catalyst 3850 (172.16.167.175) op het netwerk kan bereiken.

USER1-M-902T:~ USER1$ ping 172.16.167.175

PING 172.16.167.175 (172.16.167.175): 56 data bytes

64 bytes from 172.16.167.175: icmp_seq=0 ttl=247 time=3.912 ms

64 bytes from 172.16.167.175: icmp_seq=1 ttl=247 time=6.917 ms

64 bytes from 172.16.167.175: icmp_seq=2 ttl=247 time=4.063 ms

64 bytes from 172.16.167.175: icmp_seq=3 ttl=247 time=4.371 ms

^C

3. Controleer de SSH-connectiviteit met Catalyst 3850 (172.16.167.175 in dit voorbeeld) van het gecentraliseerde beheerplatform (laptop) met de gebruikersnaam en het wachtwoord (cisco1/cisco1) van deze Catalyst 3850-configuratie. Het antwoord kan een lange lijst van mogelijkheden NETCONF van Catalyst 3850 zijn gevolgd door een hello bericht. TCP-poort 830 = netconf-sh.

Tip: Als deze SSH-test niet werkt, zorg ervoor dat een firewall tussen de laptop en Catalyst 3850 TCP-poort 830 toestaat (referentie RFC 4742: Tools 4742).

USER1-M-902T:~ USER1$ ssh -s cisco1@172.16.167.175 -p 830 netconf

cisco1@172.16.167.175’s password: cisco1

<?xml version="1.0" encoding="UTF-8"?>

<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

<capabilities>

<capability>urn:ietf:params:netconf:base:1.0</capability>

<capability>urn:ietf:params:netconf:base:1.1</capability>

<capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability>

<capability>urn:ietf:params:netconf:capability:xpath:1.0</capability>

<capability>urn:ietf:params:netconf:capability:validate:1.0</capability>

<capability>urn:ietf:params:netconf:capability:validate:1.1</capability>

<capability>urn:ietf:params:netconf:capability:rollback-on-error:1.0</capability

--snip--

</capabilities>

<session-id>2870</session-id></ hello>]]>]]>

Use < ^C > to exit

Het gecentraliseerde beheerplatform (notebook) configureren

1. Installeer de Yang Explorer-toepassing op een laptop

In dit voorbeeld wordt de Yang Explorer-toepassing gebruikt op een laptop (Apple MacBook Pro met macOS Sierra 10.12.2, Google Chrome-browser) om te fungeren als het gecentraliseerde beheerplatform. Yang Explorer staat de gebruiker toe dit te doen:

· Upload / compileer YANG datamodellen van gebruikersinterface of opdrachtregel

· NETCONF RPC's bouwen (Remote Procedure Call)

· RPC uitvoeren tegen een echte NETCONF-server (Catalyst 3850)

· Opslaan gemaakte RPC's naar collecties voor later gebruik

· Blader door datamodelbomen en inspecteer YANG eigenschappen

Opmerking: De YANG Explore-toepassing wordt ook ondersteund op Linux-systemen.

2. Gebruik de Yang Explorer-toepassing

Start de Yang Explorer Application - vanaf een terminal-prompt op de laptop voer de ./start.sh & commando uit de yang-explorer directory.

Opmerking: Houd deze terminalsessie open, anders kan de Yang Explorer-toepassing afsluiten en moet deze opnieuw worden gestart. Het kan ook dienen als een consolelogboek van toepassingsactiviteit.

USER1-M-902T:~ USER1$ cd yang-explorer

USER1-M-902T:yang-explorer USER1$ ./start.sh &

Starting YangExplorer server ..

Use http://localhost:8088/static/YangExplorer.html

Performing system checks...

System check identified no issues (0 silenced).

January 19, 2017 - 23:12:20

Django version 1.8.3, using settings 'server.settings'

Starting development server at http://localhost:8088/

Quit the server with CONTROL-C.

Start de Yang Explorer GUI - Start de Yang Explorer applicatie GUI en log in op de Yang Explorer applicatie GUI als gast/gast in de rechterbovenhoek van de applicatie GUI hoofdmenu (zie de screenshot).

Ophaalmogelijkheden van Catalyst 3850 - voer de Catalyst 3850-gegevens in (IP-adres, gebruikersnaam/wachtwoord, TCP-poort 830 voor sh-netconf) en klik op Capabilities om de YANG-lijst met operationele functies op te halen van de Catalyst 3850-software.

Tip: Dit is ook een goede test om te bevestigen dat NETCONF-communicatie werkt tussen de Yang Explorer-toepassing op het gecentraliseerde beheerplatform (laptop) en Catalyst 3850.

Laad Yang Data Modellen - Verschillende YANG data modellen kunnen worden geabonneerd op onder Beheer Modellen. Nadat u zich hebt geabonneerd, worden ze weergegeven in het vak Verkenner links. Deze YANG-modellen maken het mogelijk dat de Yang Explorer-toepassing berichten maakt die zijn opgemaakt door YANG NETCONF Remote Procedure Calls (RPC) (die naar Catalyst 3850 worden verzonden om deze te configureren of er gegevens uit op te halen) zonder dat er diepgaande YANG-expertise nodig is. Voorbeelden van hoe dit te doen worden behandeld in de volgende sectie Basic NETCONF/YANG Operationeel

Voorbeelden:

3. Abonneren op NETCONF-meldingen (optioneel)

Een client (gecentraliseerd beheerplatform) registreert netconf-meldingsstromen van een server (Catalyst 3850) door het verzenden van dit netconf RPC-bericht dat door YANG is geformatteerd. Catalyst 3850 verstuurt NETCONF-meldingen asynchroon naar elke client die zich abonneert. Zorg voordat u deze taak voltooit dat de juiste configuratie is geïnstalleerd op Catalyst 3850 om NETCONF-meldingen (zie sectie 2) te ondersteunen van het configureren van NETCONF/YANG op Catalyst 3850. De NETCONF-server (Catalyst 3850) begint de meldingen van gebeurtenissen naar de NETCONF-client (gecentraliseerd beheerplatform) te verzenden naarmate de gebeurtenissen zich in het systeem voordoen. Deze gebeurtenismeldingen kunnen worden doorgestuurd tot of de NETCONF-sessie wordt beëindigd of het abonnement wordt beëindigd om een andere reden. Zie RFC 5277 voor meer informatie over abonnementsopties Tools 5277.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<create-subscription xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">

<stream>snmpevents</stream>

</create-subscription>

</rpc>

Om dit te doen, moet u dit knippen en plakken in de Yang Explorer applicatie GUI als een aangepaste RPC

Vervolgens is Run geselecteerd om het aangepaste RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. Catalyst 3850 reageert terug met een ok bericht om de gebruiker te laten weten dat de bewerking succesvol was.

Opmerking: de huidige versie van Yang Explorer die in dit voorbeeld wordt gebruikt, biedt geen optie om de ontvangen NETCONF-meldingen te bekijken. Ze worden meestal opgeslagen in een aanklikbare Notification log in het hoofdmenu van de toepassing.

Basisvoorbeelden van NETCONF/YANG

Nu Catalyst 3850 en het gecentraliseerde beheerplatform zijn geconfigureerd en zijn gaan communiceren, kunt u een aantal operationele basisvoorbeelden bekijken.

De voorbeelden kunnen aantonen dat de geformatteerde NETCONF RPC-berichten die via NETCONF van de toepassing Yang Explorer van het Centralized Management Platform (Laptop) naar Catalyst 3850 worden verzonden, door het confd-softwareproces op Catalyst 3850 worden geconverteerd naar de standaard Cisco IOS CLI. Cisco IOS CLI-gegevens (toon opdrachtgegevens) worden door het confd-softwareproces op Catalyst 3850 geconverteerd naar YANG-geformatteerde gegevens voordat ze als NETCONF RPC-bericht naar de toepassing Centralized Management Platform (Laptop) Yang Explorer worden verzonden. Dit betekent dat de reguliere CLI nog steeds op Catalyst 3850 kan worden gebruikt om de switch te configureren en gegevens over de opdracht te verzamelen, naast het gebruik van NETCONF/YANG om hetzelfde te doen.

1. Voorbeeld van gegevensherstel

Vraag een lijst met interfacenamen aan bij Catalyst 3850

De gewenste bewerking kan worden geselecteerd in de linkerkant Verkenner sectie van de Yang Explorer applicatie GUI. In dit geval moeten de gegevens van de interfacenaam uit Catalyst 3850 worden gehaald en wordt Oper (voor werking) geselecteerd gevolgd door get-config onder de vervolgkeuzelijst met interfacenaam. RPC wordt vervolgens geselecteerd om de geformatteerde YANG (human readable) NETCONF RPC te genereren die via NETCONF naar Catalyst 3850 moet worden verzonden om deze gegevens van Catalyst 3850 op te halen.

Nadat het door YANG geformatteerde NETCONF RPC-bericht is gegenereerd, wordt Run geselecteerd om naar Catalyst 3850 te kunnen worden verzonden. Catalyst 3850 reageert met een door YANG geformatteerde (door mensen leesbare) lijst van Catalyst 3850 interfacenamen (Gigabit Ethernet1/1/1, Gigabit Ethernet1/1/2, enzovoort).

2. Configuratievoorbeeld

Sluit een Ethernet-interface op Catalyst 3850 af

De gewenste bewerking wordt geselecteerd aan de linkerkant van het Verkenner-gedeelte van de Yang Explorer-applicatie GUI. In dit geval is de configuratie van een interface (het afsluiten van een interface) vereist op Catalyst 3850, zodat Config (voor configuratie) wordt geselecteerd, gevolgd door de vereiste operationele parameters onder de menu's van de interfacedaling. RPC wordt vervolgens geselecteerd om de geformatteerde YANG (human readable) NETCONF RPC te genereren die via NETCONF naar Catalyst 3850 moet worden verzonden om de configuratietaak uit te voeren.

Nadat het door YANG geformatteerde NETCONF RPC-bericht is gegenereerd, wordt Run geselecteerd om te worden verzonden naar Catalyst 3850. De Catalyst 3850 reageert met een YANG geformatteerd (human readable) bericht dat aangeeft dat de configuratie operatie succesvol was (ok).

Om te bevestigen dat de wijziging heeft plaatsgevonden, kan de configuratie worden gecontroleerd. Een get-config operatie (Oper) kan worden gebruikt waar Catalyst 3850 antwoordt dat de interface Gigabit Ethernet 1/0/16 configuratie ‘enabled = false’ nu betekent dat de interface was uitgeschakeld.

Tip: In het algemeen wanneer het niet duidelijk is in welke indeling de waarden kunnen zijn in de Explorer-sectie van de Yang Explorer-toepassing, is het dumpen van de YANG-opgemaakte Catalyst 3850-configuratie zoals getoond een goede manier om te bepalen wat ze zijn voordat er een poging wordt gedaan om ze te wijzigen. De rechterkant van de volgende schermen geeft enkele beschrijvingen en afhankelijkheden voor deze waarden en ook in de kolommen Eigendom en Waarde.

Nadat het door YANG geformatteerde NETCONF RPC-bericht is gegenereerd, wordt Run geselecteerd om te worden verzonden naar Catalyst 3850. De Catalyst 3850 reageert met een YANG geformatteerd bericht dat stelt dat de interface Gigabit Ethernet 1/0/16 configuratie heeft ingeschakeld = fout nu wat betekent dat de interface was uitgeschakeld.

Catalyst 3850 CLI-weergave van de interfaceconfiguratie zowel voor als na de vorige NETCONF/YANG-configuratiewijziging

Ten tijde van de vorige configuratiewijziging van Yang Explorer is dit uitvoer van de CLI van Catalyst 3850. De interface Gigabit Ethernet 1/0/16 was standaard geen sluitstatus tot het NETCONF RPC-bericht wordt ontvangen zoals in het logbericht op Catalyst 3850 wordt gezien. Nadat het NETCONF RPC-bericht wordt ontvangen dat het YANG-opmaakverzoek bevat om de interface af te sluiten, wordt de bewerking voltooid, wordt de interface afgesloten en wordt de actieve configuratie aangepast om dit weer te geven. Dit toont ook aan hoe het confd-softwareproces op Catalyst 3850 het ontvangen YANG-geformatteerde NETCONF RPC-bericht converteert naar een standaard Cisco IOS CLI-bestand. Dit betekent dat een gebruiker nog steeds de reguliere Cisco IOS CLI kan gebruiken om de configuratie aan te passen en de showopdrachten uit te voeren, naast het gebruik van NETCONF/YANG om hetzelfde te doen.

3850-1# show running-config interface gigabitEthernet 1/0/16

Building configuration...

Current configuration : 39 bytes

!

interface GigabitEthernet1/0/16

end

3850-1# show startup-config | begin 1/0/16

interface GigabitEthernet1/0/16

!

*Jan 5 17:05:55.345: %DMI-5-CONFIG_I:Switch 1 R0/0: nesd: Configured from NETCONF/RESTCONF by cisco1, transaction-id 31332

*Jan 5 17:05:57.335: %LINK-5-CHANGED: Interface GigabitEthernet1/0/16, changed state to administratively down

3850-1# show running-config interface gigabitEthernet 1/0/16

Building configuration...

Current configuration : 49 bytes

!

interface GigabitEthernet1/0/16

shutdown -------------------------> the interface is shutdown now

end

3850-1#

Opmerking: de configuratie is nog niet opgeslagen (van de actieve configuratie naar de opstartconfiguratie gekopieerd) op Catalyst 3850.

3850-1# show startup-config | begin 1/0/16

interface GigabitEthernet1/0/16

!

De configuratie op een Catalyst 3850 opslaan

De actieve configuratie kan worden opgeslagen in de opstartconfiguratie op de Catalyst 3850 door dit YANG geformatteerde NETCONF RPC bericht te verzenden naar Catalyst 3850 via NETCONF.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:save-config xmlns:cisco-ia="cisco/yang/cisco-ia"

</rpc>

Dit gebeurt wanneer u dit knipt en plakt in de Yang Explorer-toepassing als een aangepaste RPC.

Run is geselecteerd om het aangepaste RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. De Catalyst 3850 reageert met een succesvol bericht.

Catalyst 3850 CLI-weergave van de opgeslagen opstartconfiguratie na de vorige Opslagbewerking voor NETCONF/YANG Configuration

De opstartconfiguratie komt nu overeen met de actieve configuratie:

3850-1# show running-config interface gigabitEthernet 1/0/16

Building configuration...

Current configuration : 49 bytes

!

interface GigabitEthernet1/0/16

shutdown

end

3850-1# show startup-config | begin 1/0/16

interface GigabitEthernet1/0/16

shutdown

!

Catalyst 3850 vanuit de CLI configureren

Zoals eerder vermeld, kan de reguliere Catalyst 3850 CLI nog steeds worden gebruikt om de switch te configureren en gegevens over de opdracht te verzamelen, naast het gebruik van NETCONF/YANG om hetzelfde te doen. Wanneer de Catalyst 3850 CLI wordt gebruikt in plaats van NETCONF/YANG om de switch te configureren, wordt de nieuwe in werking stelt-configuratie gesynchroniseerd met de Data Model Interface (DMI) op Catalyst 3850 via het syncfd-softwareproces.

3850-1# show running-config interface gigabitEthernet 1/0/16

Building configuration...

Current configuration : 49 bytes

!

interface GigabitEthernet1/0/16

shutdown

end

3850-1# config t

Enter configuration commands, one per line.  End with CNTL/Z.

3850-1(config)# interface gigabitEthernet 1/0/16

3850-1(config-if)#no shutdown

3850-1(config-if)# exit

3850-1(config)# exit

3850-1#

*Jan 24 16:39:09.968: %LINK-3-UPDOWN: Interface GigabitEthernet1/0/16, changed state to down

*Jan 24 16:39:13.479: %SYS-5-CONFIG_I: Configured from console by console

*Jan 24 16:39:15.208: %DMI-5-SYNC_START:Switch 1 R0/0: syncfd:  External change to running configuration detected. The running configuration can be synchronized to the DMI data store.

*Jan 24 16:39:43.290: %DMI-5-SYNC_COMPLETE:Switch 1 R0/0: syncfd:  The running configuration has been synchronized to the DMI data store.

3850-1#

De volgende keer dat de Yang Explorer-toepassing na de CLI-wijziging een kopie van de interfaceconfiguratie aanvraagt, wordt de wijziging correct weergegeven in de YANG-uitvoer.

Run is geselecteerd om het RPC get-config-bericht voor Gigabit Ethernet1/0/16 via NETCONF naar Catalyst 3850 te verzenden. Catalyst 3850 reageert terug met de Gigabit Ethernet1/0/16 interfaceconfiguratie die laat zien dat ingeschakeld = waar is.

3. Controleer welke SNMP MIB Operationele gegevens beschikbaar zijn via GET request Operations

De SNMP MIB-gegevens die kunnen worden geretourneerd met NETCONF GET-bewerkingen zijn niet door de gebruiker configureerbaar. Alle ondersteunde SNMP MIB's die worden geconverteerd in gestructureerde gegevens die zijn gedefinieerd door YANG-gegevensmodellen maken deel uit van de Cisco-XE-software op de Catalyst 3850. Om te ontdekken welke MIB gegevens beschikbaar zijn in GET verzoeken zijn er drie opties vermeld. Alle ondersteunde MIBs kunnen smiv2 in de mogelijkheid respons.

Optie 1. De knop Capabilities kan worden geselecteerd in de Yang Explorer applicatie GUI. De Catalyst 3850 reageert terug met de lijst met functies die smiv2 MIB-vermeldingen bevat.

Optie 2. Dit YANG geformatteerde NETCONF RPC bericht kan naar Catalyst 3850 via NETCONF worden verzonden om de lijst met mogelijkheden op te halen die beschikbare smiv2 MIB modellen bevat.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<get>

<filter type="subtree">

<ncm:netconf-state xmlns:ncm="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring">

<ncm:capabilities/>

</ncm:netconf-state>

</filter>

</get>

</rpc>

Dit gebeurt wanneer u knipt en plakt in de Yang Explorer-toepassing als een aangepaste RPC.

Run is geselecteerd om het aangepaste RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. De Catalyst 3850 reageert terug met een functielijst die de ondersteunde smiv2 MIBs bevat.

Optie 3.  Een lijst van beschikbare MIB-modellen kan worden bekeken in de NETCONF-mogelijkheden en het Hello-bericht dat door Catalyst 3850 wordt teruggestuurd als reactie op een SSH-verbinding van het gecentraliseerde beheerplatform (laptop).

USER1-M-902T:~ USER1$ ssh -s cisco1@172.16.167.175 -p 830 netconf

cisco1@172.16.167.175’s password: cisco1

<?xml version="1.0" encoding="UTF-8"?>

<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

<capabilities>

<capability>urn:ietf:params:netconf:base:1.0</capability>

<capability>urn:ietf:params:netconf:base:1.1</capability>

<capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability>

<capability>urn:ietf:params:netconf:capability:xpath:1.0</capability>

<capability>urn:ietf:params:netconf:capability:validate:1.0</capability>

<capability>urn:ietf:params:netconf:capability:validate:1.1</capability>

<capability>urn:ietf:params:netconf:capability:rollback-on-error:1.0</capability

--snip--

<capability>urn:ietf:params:xml:ns:yang:smiv2:CISCO-CONFIG-MAN-MIB?module=CISCO-CONFIG-MAN-MIB&amp;revision=2007-04-27</capability>

<capability>urn:ietf:params:xml:ns:yang:smiv2:CISCO-CONTEXT-MAPPING-MIB?module=CISCO-CONTEXT-MAPPING-MIB&amp;revision=2008-11-22</capability>

<capability>urn:ietf:params:xml:ns:yang:smiv2:CISCO-DATA-COLLECTION-MIB?module=CISCO-DATA-COLLECTION-MIB&amp;revision=2002-10-30</capability>

--snip--

</capabilities>

<session-id>2870</session-id></ hello >]]>]]>

Use < ^C > to exit

Aanvullende YANG Data-modellen laden

Deze link bevat extra YANG-gegevensmodelbestanden.Deze bestanden maken het mogelijk om extra bewerkingen uit te voeren via NETCONF/YANG die betrekking heeft op andere Catalyst 3850-functies, zoals het configureren van IPv4 unicast routing, QoS, enzovoort.

https://github.com/YangModels/yang

De standaard (standaard, Internet Engineering Task Force (IETF)) modellen die van toepassing zijn op alle leveranciers kunnen gevonden worden door te kiezen voor standaard, ietf, rfc. Dit biedt de op standaarden gebaseerde YANG-datamodellen die door de IETF-standaardisatie zijn overgenomen van RFC-publicaties.

https://github.com/YangModels/yang/tree/primary/standard/ietf/RFC

De native (apparaat, leverancierspecifieke) modellen van Cisco kunnen worden gevonden door leverancier, cisco, ex, 1632 te selecteren. Dit biedt de bedrijfseigen YANG-gegevensmodellen voor Cisco IOS XE-softwareversie 16.3.2 voor Catalyst 3850.

https://github.com/YangModels/yang/tree/primary/vendor/cisco/xe/1632

Deze bestanden kunnen worden gedownload naar het Centralized Management Platform (Laptop) en vervolgens worden geladen in de Yang Explorer-applicatie. Er zijn twee manieren om dit te doen. De eerste is om in de verschillende YANG data model bestanden afzonderlijk te laden, de tweede is een bulk laden van alle bestanden.

1. De verschillende YANG Data Model Files afzonderlijk laden

Tip: rawgit kan worden vereist om de bestanden van Github te downloaden. Als u bestanden van github wilt downloaden, selecteert u de knop Raw die aan het YANG-bestand is gekoppeld. Als een URL wordt gegeven in plaats van een bestand downloaden optie, kan de URL worden geplakt in rawgit die op zijn beurt een productie-URL kan leveren. Plakt deze nieuwe productie-URL in een browser en het kan de bestand download optie.

In dit voorbeeld is cisco-eEthernet.yang al gedownload van github naar het Centralized Management Platform (Laptop). Hier volgen de stappen om het bestand in de Yang Explorer-applicatie GUI te laden en er vervolgens een abonnement op te nemen, zodat het wordt geladen in het Verkenner-gedeelte van het gereedschap.

Tip: met de functionaliteit van NETCONF kan worden bepaald welke gegevensmodellen door de Catalyst 3850-software worden ondersteund. Zie deel 2 van het Configureren van het gecentraliseerde beheerplatform (notebook).

2. bulklading van alle YANG Data Model Files in één keer

Deze procedure wordt hier ook in punt 5.2.2 vermeld: github.

Vanuit een terminal-prompt op het gecentraliseerde beheerplatform (laptop - Apple MacBook Pro met macOS Sierra 10.12.2):

USER1-M-902T:~ USER1$ cd yang-explorer

USER1-M-902T:yang-explorer USER1$ cd server

USER1-M-902T:server USER1$ python manage.py bulkupload --user guest --git https://github.com/YangModels/yang.git --dir vendor/cisco/xe/1632

Git upload ..

Cloning into '/Users/USER1/yang-explorer/server/data/session/tmpk7V4O6'...

remote: Counting objects: 5610, done.

remote: Total 5610 (delta 0), reused 0 (delta 0), pack-reused 5610

Receiving objects: 100% (5610/5610), 11.80 MiB | 2.34 MiB/s, done.

Resolving deltas: 100% (3159/3159), done.

Checking out files: 100% (3529/3529), done.

Cleaning up /Users/USER1/yang-explorer/server/data/session/tmpk7V4O6

Compiling : user: guest, file: /Users/USER1/yang-explorer/server/data/session/tmpHTAEP3/cisco-acl-oper.yang

DEBUG:root:Compiling session dependency ...

//anaconda/bin/pyang

DEBUG:root:Rebuilding dependencies for user guest

--snip--

Alle Yang-datamodellen zijn nu te zien in de Yang Explorer-applicatie GUI. De bestanden die aan de betreffende functies zijn gekoppeld, kunnen worden geselecteerd wanneer u op Abonneren klikt, waarna ze worden toegevoegd aan de Verkenner-sectie van het gereedschap.

Tip: De functionaliteit van NETCONF-functies kan worden gebruikt om te bepalen welke gegevensmodellen worden ondersteund door de Catalyst-software. Zie deel 2 van het Configureren van het gecentraliseerde beheerplatform (notebook).

Andere taken kunnen nu worden voltooid, zoals het genereren van de NETCONF/YANG RPC die nodig is om de configuratie op te slaan op Catalyst 3850. Dit gebeurt wanneer u Save-conf RPC selecteert in het gedeelte Explorer aan de linkerkant van de Yang Explorer-toepassing. Vervolgens wordt RPC geselecteerd om de YANG-geformatteerde NETCONF RPC te genereren die naar Catalyst 3850 via NETCONF kan worden verzonden om de configuratie op Catalyst 3850 op te slaan.

Run is geselecteerd om het aangepaste RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. De Catalyst 3850 reageert met een succesvol bericht.

Opmerkelijke YANG Data modellen

cisco-ia.yang data-model

Hier zijn sommige voorbeelden RPC voor het cisco-ia.yang gegevensmodel. Zij zijn opmerkelijk aangezien zij verrichtingen impliceren zoals om de configuratie van Catalyst 3850 op te slaan, Catalyst 3850 in werking stelt -in werking stellen-config aan de lokale de gegevensopslag van de Interface van Gegevens Model (DMI) te synchroniseren, en de interface DMI op Catalyst 3850 terug te stellen.

De eerste stap is het inschrijven op het cisco-ia.yang data model, zodat het wordt weergegeven in de Explorer sectie links van de YANG Explorer applicatie GUI.

Zodra het Cisco-ia datamodel in de Explorer-sectie links van de YANG Explorer-applicatie GUI is uitgebreid, worden de verschillende operationele opties weergegeven. Als voorbeeld voor het gebruik van een van de beschikbare opties voor cisco-ia.yang gegevensmodellen wordt de bewerking opslaan-configureren geselecteerd en wordt de bijbehorende RPC gegenereerd wanneer u de knop RPC selecteert.

Vervolgens is Run geselecteerd om het RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. De Catalyst 3850 reageert met een succesvol bericht om de gebruiker te laten weten dat de bewerking is geslaagd.

Alle verschillende bewerkingen van het cisco-ia.yang datamodel worden hier beschreven:

sync-van - Deze RPC zorgt ervoor dat de NETCONF-interface op Catalyst 3850 de NETCONF datastore representatie van het apparaat waarop de configuratie wordt uitgevoerd, synchroniseert met de actieve configuratie op het apparaat. Beide bestaan op de Catalyst 3850 zelf.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:sync-from xmlns:cisco-ia

</rpc>

Het standaardgedrag van dit RPC is een sync zonder defaults uit te voeren die ervoor zorgt dat de output van een show in werking stellen-config commando verzonden naar het apparaat wordt gesynchroniseerd met de NETCONF datastore. Als sync-defaults aanwezig is, leest de NETCONF interface ook de standaard configuratie informatie die door feature code wordt geleverd. In de meeste gevallen wordt deze optie niet gebruikt. Meestal wordt dit alleen gebruikt als de NETCONF-interfacegebruiker de NETCONF commando's wilde gebruiken om complete secties van de apparaatconfiguratie te vervangen.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:sync-from xmlns:cisco-ia/>

<cisco-ia:sync-defaults/>

</cisco-ia:sync-from>

</rpc>

save-config - Deze RPC voert een schrijfgeheugen (exemplaar in werking stelt -in werking stellen-configuratieopstarten -opstarten-config) bevel uit om de huidige apparaat lopende configuratie op te slaan aan de apparaat opstarten-configuratie.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:save-config xmlns:cisco-ia

</rpc>

controlepunt - Deze RPC zorgt ervoor dat de NETCONF-interface de actieve configuratie opslaat in niet-vluchtige opslag met behulp van de Cisco IOSd ingebouwde configuratie-archieffunctie.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:checkpoint xmlns:cisco-ia

</rpc>

het terugdraaien - Dit RPC veroorzaakt de interface NETCONF om de in werking stellen-configuratie van het apparaat aan een lopende configuratie terug te draaien die met de controlepost RPC of een andere geldige lopende configuratie opgeslagen op het apparaat werd opgeslagen.

target-url              string (name of the saved checkpoint file)

verbose?              Boolean (show detail during rollback process)

nolock?                Boolean (lock configuration)

revert-on-error?   Empty (if error occurs during rollback, leave running unchanged)

revert-timer?        int16 (time in seconds before revets to the original configuration)

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:rollback xmlns:cisco-ia=

<cisco-ia:target-url>saved-config</cisco-ia:target-url>

<cisco-ia:verbose>true</cisco-ia:verbose>

<cisco-ia:nolock>true</cisco-ia:nolock>

<cisco-ia:revert-on-error></cisco-ia:revert-on-error>

<cisco-ia:revert-timer>10</cisco-ia:revert-timer>

</cisco-ia:rollback>

</rpc>

terug te keren - Deze RPC zorgt ervoor dat de NETCONF-interface de revert-timer van de rollback RPC wijzigt, dit annuleert het getimed rollback en activeert de rollback direct of reset parameters voor de getimed rollback.

now?   empty

timer?  int16

idle?    int16

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:revert xmlns:cisco-ia

<cisco-ia:now/>

<cisco-ia:timer>10</cisco-ia:timer>

<cisco-ia:idle>60</cisco-ia:idle>

</cisco-ia:revert>

</rpc>

reset - De NETCONF interface kan opnieuw opgestart worden met deze RPC. Als reinitialize waar is, de NETCONF interface ontruimt alle staatsinformatie die in de programmeerbare lopende datastore bestaat. Als de fout (de standaardinstelling) de NETCONF configuratie datastore staat informatie wordt bewaard.

<?xml version="1.0" encoding="utf-8"?>

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="">

<cisco-ia:reset xmlns:cisco-ia

<cisco-ia:reinitialize>true</cisco-ia:reinitialize>

</cisco-ia:reset>

</rpc>

Opmerking: sommige Cisco-platforms of Cisco IOS-softwareversies kunnen op dit moment niet alle gegeven functionaliteit ondersteunen. Wanneer u bijvoorbeeld de vorige reset naar een Catalyst 3850 met IOS 16.3.3 verstuurt, wordt de "Reset niet-ondersteunde" fout door Catalyst 3850 teruggestuurd naar het Centralized Management Platform (Laptop) als een RPC-antwoord.

<nc:rpc-error xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">

<nc:error-type>application</nc:error-type>

<nc:error-tag>operation-failed</nc:error-tag>

<nc:error-severity>error</nc:error-severity>

<nc:error-path xmlns:cisco-ia

<nc:error-message lang="en" xmlns="http://www.w3.org/XML/1998/namespace">Reset not supported</nc:error-message>

<nc:error-info>

<nc:bad-element>reset</nc:bad-element>

</nc:error-info>

</nc:rpc-error>

end.yang data model

De Network Elements Driver (NED)-gegevensmodellen zoals end.yang bieden de meeste kracht in termen van de Cisco-configuratie van het apparaat (Catalyst 3850). Hier zijn een paar screenshots die dit aantonen.

De eerste stap is het inschrijven op het end.yang datamodel, zodat het wordt weergegeven in de Explorer sectie links van de YANG Explorer applicatie GUI.

Door de beschikbare opties in de Verkenner-sectie aan de linkerkant van de YANG Explorer-toepassing te bladeren, toont GUI een lange lijst van configureerbare Catalyst 3850-functies in het gegevensmodel end.yang.

Bij wijze van voorbeeld tonen deze screenshots aan hoe de OSPF-routerconfiguratie van Catalyst 3850 kan worden weergegeven nadat u eerst de lijst met beschikbare opties voor het configureren van getjanggegevens in de sectie Verkenner aan de linkerkant van de GUI van de YANG Explorer-toepassing hebt gescand. De suboptie ospf bevindt zich binnen de routeroptie. De gekoppelde get-config RPC wordt gegenereerd wanneer u de RPC-toets selecteert.

Vervolgens is Run geselecteerd om het RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. Catalyst 3850 reageert terug met de configuratie van de OSPF-routing.

Hier is een uitbreiding van de OSPF-routerconfiguratie die door Catalyst 3850 is geretourneerd in reactie op de RPC-bewerking in get-config.

<rpc-reply message-id="urn:uuid:0e2c04cf-9119-4e6a-8c05-238ee7f25208" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">

<data>

<native xmlns>

<router>

<ospf>

<id>100</id>

<redistribute>

<connected>

<redist-options>

<subnets/>

</redist-options>

</connected>

</redistribute>

<network>

<ip>10.10.0.0</ip>

<mask>0.0.255.255</mask>

<area>0</area>

</network>

<network>

<ip>10.20.0.0</ip>

<mask>0.0.255.255</mask>

<area>0</area>

</network>

<network>

<ip>10.100.0.0</ip>

<mask>0.0.255.255</mask>

<area>0</area>

</network>

</ospf>

</router>

</native>

</data>

</rpc-reply>

De YANG geformatteerde OSPF-routeringsconfiguratie die via NETCONF van Catalyst 3850 is opgehaald, is menselijk leesbaar en komt overeen met wat wordt gezien wanneer u de Catalyst 3850-configuratie via de Catalyst 3850-CLI bekijkt.

3850-1# show running-config | section ospf

router ospf 100

redistribute connected subnets

network 10.10.0.0 0.0.255.255 area 0

network 10.20.0.0 0.0.255.255 area 0

network 10.100.0.0 0.0.255.255 area 0

3850-1#

Indien gewenst, kan het end.yang gegevensmodel ook worden gebruikt om de OSPF routeringsconfiguratie aan te passen. In dit voorbeeld worden nieuwe netwerkparameters toegevoegd aan de bestaande OSPF-routerconfiguratie op Catalyst 3850 door eerst de gewenste parameters in te voeren in het Verkenner-gedeelte van de Yang Explorer-applicatie GUI aan de linkerkant (let op dat OSPF-router ID 100 ook is ingevoerd, maar niet wordt gezien vanwege Explorer-schermscrollen) en vervolgens de bijbehorende YANG-geformatteerde RPC te genereren en op de RPC-toets te drukken.

Vervolgens is Run geselecteerd om het RPC-bericht via NETCONF naar Catalyst 3850 te verzenden. Catalyst 3850 reageert terug met een ok bericht om de gebruiker te laten weten dat de operatie is geslaagd.

Deze NETCONF/YANG RPC-handeling om de OSPF-routeringsconfiguratie via het end.yang-gegevensmodel aan te passen, wordt weerspiegeld in de Catalyst 3850-configuratie zoals die wordt weergegeven via de CLI van Catalyst 3850. Er is ook een syslogbericht op Catalyst 3850 dat aangeeft dat een configuratiewijziging is gemaakt via NETCONF.

3850-1#

*Jan 30 14:13:41.659: %DMI-5-CONFIG_I:Switch 1 R0/0: nesd: Configured from NETCONF/RESTCONF by cisco1, transaction-id 23143

3850-1# show running-config | section ospf

router ospf 100

redistribute connected subnets

network 10.10.0.0 0.0.255.255 area 0

network 10.20.0.0 0.0.255.255 area 0

network 10.30.0.0 0.0.255.255 area 0 ------> new line added to OSPF configuration

network 10.100.0.0 0.0.255.255 area 0

3850-1#

Raadpleeg de bewerking Save-Config die in de vorige sectie cisco-ia.yang Data Model wordt vermeld voor informatie over het opslaan van de in bedrijf zijnde configuratie op de opstartconfiguratie op Catalyst 3850 via NETCONF/YANG.

Python-scripts

Een Python-script genereren vanuit de Yang Explorer Application GUI

De Yang Explore applicatie GUI kan ook gebruikt worden om een Python script te genereren voor een bepaalde NETCONF/YANG operatie. Een belangrijk voordeel van Python-scripting is dat het de orkestratie en automatisering van NETCONF/YANG-operaties mogelijk maakt.

In dit voorbeeld wordt een bewerking voor opslaan-configureren geselecteerd in het Explorer-venster links van de Yang Explorer-applicatie GUI op het gecentraliseerde beheerplatform (laptop). Vervolgens wordt de knop Script geselecteerd om het Python-script te genereren. De knop Kopiëren kan vervolgens worden geselecteerd om het script te kopiëren, zodat het vervolgens kan worden geplakt in een bestand dat op het gecentraliseerde beheerplatform (laptop) kan worden opgeslagen met een bestandsextensie Python .py. Dit bestand heeft bijvoorbeeld de naam example.py (niet weergegeven).

Opmerking: in het volgende voorbeeld dat "Platform"-type gebruikt andere in de GUI resulteerde in een fout bij het uitvoeren van het Python-script. Hierdoor is het type "Platform" gewijzigd in csr, omdat de Cisco CSR-router ook Cisco IOS-XE-software draait, net zoals Catalyst 3850. Hierdoor werd de fout vermeden.

Hier is een uitbreiding van het Python-script dat werd gegenereerd en vervolgens gekopieerd en geplakt in een bestand met de naam example.py op het gecentraliseerde beheerplatform (laptop).

Opmerking: de opmerkingen aan het begin van het bestand "example.py" dat is gegenereerd door de Yang Explorer-applicatie GUI omvatten de stappen die nodig zijn om het Python-script te kunnen uitvoeren. De "payload" omvat de NETCONF/YANG operatie die het script kan uitvoeren. In dit voorbeeld is het een save-config operatie.

"""

Netconf python example by yang-explorer (https://github.com/CiscoDevNet/yang-explorer)

Installing python dependencies:

> pip install lxml ncclient

Running script: (save as example.py)

> python example.py -a 172.16.167.174 -u cisco1 -p cisco1 --port 830

"""

import lxml.etree as ET

from argparse import ArgumentParser

from ncclient import manager

from ncclient.operations import RPCError

payload = """
<save-config xmlns

"""

if __name__ == '__main__':

parser = ArgumentParser(description='Usage:')

# script arguments

parser.add_argument('-a', '--host', type=str, required=True,

help="Device IP address or Hostname")

parser.add_argument('-u', '--username', type=str, required=True,

help="Device Username (netconf agent username)")

parser.add_argument('-p', '--password', type=str, required=True,

help="Device Password (netconf agent password)")

parser.add_argument('--port', type=int, default=830,

help="Netconf agent port")

args = parser.parse_args()

# connect to netconf agent

with manager.connect(host=args.host,

port=args.port,

username=args.username,

password=args.password,

timeout=90,

hostkey_verify=False,

device_params={'name': 'csr'}) as m:

# execute netconf operation

try:

response = m.dispatch(ET.fromstring(payload)).xml

data = ET.fromstring(response)

except RPCError as e:

data = e._raw

# beautify output

print(ET.tostring(data, pretty_print=True))

Python Script uitvoeren vanaf het gecentraliseerde beheerplatform (notebook)

Hier is de Catalyst 3850 CLI controle voordat u het Python script example.py die kan opslaan het in werking stellen-configuratie op te slaan in de startup-configuratie. Op dit punt is de shutdown opdracht in de lopende configuratie maar niet in de startup-config voor de interface Gigabit Ethernet1/0/10.

3850-1# show running-config interface gigabitEthernet 1/0/10

Building configuration...

Current configuration : 49 bytes

!

interface GigabitEthernet1/0/10

shutdown

end

3850-1# show startup-config | begin 1/0/10

interface GigabitEthernet1/0/10

!

interface GigabitEthernet1/0/11

!

interface GigabitEthernet1/0/12

!

interface GigabitEthernet1/0/13

!

Van een reguliere terminal-prompt op het gecentraliseerde beheerplatform (laptop), het Python-bestand example.py dat werd gegenereerd door de Yang Explorer-applicatie GUI wordt eerst gekopieerd naar de yang-explorer-map op de laptop.

USER1-M-902T:~ USER1$ pwd

/Users/USER1

USER1-M-902T:~ USER1$ cp /Users/USER1/Desktop/example.py /Users/USER1/yang-explorer

USER1-M-902T:~ USER1$ cd yang-explorer

USER1-M-902T:yang-explorer USER1$ ls -l

total 112

-rw-r--r-- 1 USER1 staff 11358 Jan 4 17:59 LICENSE

-rw-r--r-- 1 USER1 staff 13635 Jan 4 17:59 README.md

drwxr-xr-x 12 USER1 staff 408 Jan 4 17:59 YangExplorer

drwxr-xr-x 7 USER1 staff 238 Jan 4 17:59 default-models

drwxr-xr-x 3 USER1 staff 102 Jan 4 17:59 docs

-rw-r--r-- 1 USER1 staff 72 Jan 4 17:59 env.sh

-rw-r--r--@ 1 USER1 staff 1990 Jan 30 17:50 example.py

-rw-r--r-- 1 USER1 staff 207 Jan 4 17:59 requirements.txt

drwxr-xr-x 11 USER1 staff 374 Jan 5 14:37 server

-rwxr-xr-x 1 USER1 staff 4038 Jan 4 17:59 setup.sh

-rwxr-xr-x 1 USER1 staff 640 Jan 4 17:59 start.sh

drwxr-xr-x 5 USER1 staff 170 Jan 4 18:00 v

USER1-M-902T:yang-explorer USER1$

Vervolgens worden deze twee opdrachten uitgevoerd, die in de commentaarsectie aan het begin van het bestand example.py zijn opgenomen en die zijn gegenereerd door de Yang Explorer-applicatie GUI (zie de vorige sectie "Een Python-script genereren vanuit de Yang Explorer Application GUI").

USER1-M-902T:yang-explorer USER1$ pip install lxml ncclient

Collecting lxml

Downloading lxml-3.7.2.tar.gz (3.8MB)

100% |████████████████████████████████| 3.8MB 328kB/s

Collecting ncclient

Downloading ncclient-0.5.3.tar.gz (63kB)

100% |████████████████████████████████| 71kB 3.5MB/s

Requirement already satisfied: setuptools>0.6 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from ncclient)

Collecting paramiko>=1.15.0 (from ncclient)

Downloading paramiko-2.1.1-py2.py3-none-any.whl (172kB)

100% |████████████████████████████████| 174kB 3.1MB/s

Collecting six (from ncclient)

Using cached six-1.10.0-py2.py3-none-any.whl

Collecting cryptography>=1.1 (from paramiko>=1.15.0->ncclient)

Using cached cryptography-1.7.2-cp27-cp27m-macosx_10_6_intel.whl

Collecting pyasn1>=0.1.7 (from paramiko>=1.15.0->ncclient)

Using cached pyasn1-0.1.9-py2.py3-none-any.whl

Collecting cffi>=1.4.1 (from cryptography>=1.1->paramiko>=1.15.0->ncclient)

Using cached cffi-1.9.1-cp27-cp27m-macosx_10_10_intel.whl

Collecting enum34 (from cryptography>=1.1->paramiko>=1.15.0->ncclient)

Using cached enum34-1.1.6-py2-none-any.whl

Collecting ipaddress (from cryptography>=1.1->paramiko>=1.15.0->ncclient)

Using cached ipaddress-1.0.18-py2-none-any.whl

Collecting idna>=2.0 (from cryptography>=1.1->paramiko>=1.15.0->ncclient)

Using cached idna-2.2-py2.py3-none-any.whl

Collecting pycparser (from cffi>=1.4.1->cryptography>=1.1->paramiko>=1.15.0->ncclient)

Downloading pycparser-2.17.tar.gz (231kB)

100% |████████████████████████████████| 235kB 2.6MB/s

Installing collected packages: lxml, six, pycparser, cffi, pyasn1, enum34, ipaddress, idna, cryptography, paramiko, ncclient

Running setup.py install for lxml ... -

done

Running setup.py install for pycparser ... done

Running setup.py install for ncclient ... done

Successfully installed cffi-1.9.1 cryptography-1.7.2 enum34-1.1.6 idna-2.2 ipaddress-1.0.18 lxml-3.7.2 ncclient-0.5.3 paramiko-2.1.1 pyasn1-0.1.9 pycparser-2.17 six-1.10.0

USER1-M-902T:yang-explorer USER1$

De tweede opdracht voert het Python-script example.py uit tegen Catalyst 3850 op IP-adres 172.16.167.174 met de gebruikersnaam/het wachtwoord cisco1/cisco1 via TCP-poort 830 (netconf-sh). Catalyst 3850 stuurt een RPC-antwoord terug naar het gecentraliseerde beheerplatform (laptop) dat de opslagconfiguratie succesvol was.

USER1-M-902T:yang-explorer USER1$ python example.py -a 172.16.167.174 -u cisco1 -p cisco1 --port 830

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:31e0fdee-b72f-4695-9e03-91ec771b37f5"><result xmlns>Save running-config successful

</result>

</rpc-reply>

USER1-M-902T:yang-explorer USER1

Hier is de Catalyst 3850 CLI-controle nadat u het Python-script example.py hebt uitgevoerd dat de actieve configuratie heeft opgeslagen in de opstartconfiguratie. De shutdown opdracht is nu aanwezig in zowel de in werking stellen-configuratie en het opstarten-config voor interface Gigabit Ethernet1/0/10 vanwege de succesvolle save-config-NETCONF/YANG operatie.

3850-1# show running-config interface gigabitEthernet 1/0/10

Building configuration...

Current configuration : 49 bytes

!

interface GigabitEthernet1/0/10

shutdown

end

3850-1# show startup-config | begin 1/0/10

interface GigabitEthernet1/0/10

shutdown

!

interface GigabitEthernet1/0/11

!

interface GigabitEthernet1/0/12

!

interface GigabitEthernet1/0/13

!

Problemen oplossen

Deze sectie bevat informatie waarmee u problemen met de configuratie kunt oplossen.

NETCONF-foutmeldingen

Het NETCONF-protocol definieert een reeks bewerkingen en berichten die worden uitgewisseld tussen de NETCONF-client (gecentraliseerd beheerplatform (laptop)) en de NETCONF-implementatie op het serverapparaat (Catalyst 3850). Vaak gebruikte NETCONF-bewerkingen omvatten:

<get>, <get-config>, <edit-config> en <rpc>

Het formaat en andere beperkingen op de NETCONF berichtinhoud worden bepaald door YANG gegevensmodellen. De NETCONF-client en -server reageren door RPC's te verzenden.

Als er een fout is in de opmaak van NETCONF bericht of de inhoud van het bericht niet overeenkomt met de definities in de YANG data modellen geïmplementeerd door het apparaat, kan de NETCONF server op het apparaat een RPC fout teruggeven.

<error-type>application</error-type>

Deze RPC-fouten wijzen er niet op dat de NETCONF-interface niet werkt, deze fouten wijzen erop dat de client een handeling probeert uit te voeren die niet wordt ondersteund door de YANG-gegevensmodellen die op het serverapparaat zijn geïmplementeerd. Gebruikers moeten de YANG datamodellen die op de server zijn geïmplementeerd, bekijken om de oorzaken van deze fouten te identificeren en op te lossen.

RPC-foutenvoorbeeld

In dit voorbeeld wordt een onjuist interfacetype ianaift:fastEtherFX gebruikt om het geformatteerde <edit-config> NETCONF RPC-bericht te genereren om via NETCONF naar Catalyst 3850 te verzenden.

Zodra Run is geselecteerd om het RPC-bericht naar Catalyst 3850 te verzenden, reageert Catalyst 3850 met een foutbericht.

Hier is de fout die door Catalyst 3850 werd teruggegeven. Bericht dat het een foutenmarkering "verrichting-ontbrak"bevat en verder detail dat de fout betreft zegt "Niet gestaafd - de waarde moet ethernetcsmacd of softwareLoopback zijn"</nc:error-message>".

<nc:rpc-error xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">

<nc:error-type>application</nc:error-type>

<nc:error-tag>operation-failed</nc:error-tag>

<nc:error-severity>error</nc:error-severity>

<nc:error-path xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces">/rpc/edit-config/config/if:interfaces/if:interface[if:name='GigabitEthernet1/0/16']/if:type</nc:error-path>

<nc:error-message lang="en" xmlns="https://www.w3.org/XML/1998/namespace">/interfaces/interface[name='GigabitEthernet1/0/16']/type: "Unsupported - value must be ethernetCsmacd or softwareLoopback"

<nc:error-info>

<nc:bad-element>type</nc:bad-element>

</nc:error-info>

</nc:rpc-error>

Laten we vervolgens de fout oplossen en het juiste interfacetype ianaift specificeren:eEthernetCsmacd in het RPC-bericht verzonden naar Catalyst 3850, zodat Catalyst 3850 antwoordt met een ok bericht in plaats van een fout.

Ditmaal wordt, zodra Run is geselecteerd om het RPC-bericht naar Catalyst 3850 te verzenden, de Catalyst 3850 reageert met een ok bericht om aan te geven dat de bewerking is geslaagd.

Tip: Wanneer u niet zeker weet wat de juiste Explorer Values-indeling kan zijn, kan de bestaande configuratie worden bekeken voordat u probeert de parameters te wijzigen. Dit kan worden gedaan met de get-config operatie (Oper) zoals getoond.

Zodra Run is geselecteerd om het RPC-bericht naar Catalyst 3850 te verzenden, reageert Catalyst 3850 met de door YANG geformatteerde interfaceconfiguratie die laat zien dat het interfacetype ianaift:ethernetcsmacd is.

Andere voorbeelden van RPC-fouttypen

1. "In-use" (configuratie-vergrendeld) RPC fout antwoord bericht

Dit is een NETCONF fout reactie op een verzoek <edit-config>. De <error-tag> geeft aan dat het apparaat in gebruik is." De respons geeft aan dat het serverapparaat (Catalyst 3850) waarop NETCONF datastore draait momenteel is vergrendeld en dat de bewerking NETCONF <edit-config> op dit moment niet kon worden uitgevoerd. Dit wijst niet op een fout in de NETCONF interface-implementatie. Als een NETCONF-client probeert om naar de NETCONF waarop datastore wordt uitgevoerd te schrijven wanneer de datastore in gebruik is, ontvangt de client deze RPC-respons. De NETCONF-client kan het netconf-bewerkings-configuratiebericht opnieuw proberen. Deze reactie kan worden ontvangen wanneer het apparaat een interne "sync-vanaf-apparaat" handeling uitvoert om de NETCONF lopende datastore met de apparaat IOSd configuratie te synchroniseren.

NETCONF-respons van server (Catalyst 3850) naar client (gecentraliseerd beheerplatform (notebook)).

<?xml version="1.0" encoding="utf-8"?>

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">

<rpc-error>

<error-type>application</error-type>

<error-tag>in-use</error-tag>

<error-severity>error</error-severity>

<error-app-tag>config-locked</error-app-tag>

<error-info>

<session-id>0</session-id>

</error-info>

</rpc-error>

</rpc-reply>

2. "Gegevensontbrekende" RPC-foutantwoordbericht

In dit voorbeeld werd een <edit-config> RPC naar Catalyst 3850 verzonden voor een loopback-interface die niet was geconfigureerd. Een fout is teruggegeven omdat u geen interface kunt configureren die niet bestaat op Catalyst 3850.

<?xml version="1.0" encoding="utf-8"?>

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="3">

<rpc-error>

<error-type>application</error-type>

<error-tag>data-missing</error-tag>

<error-severity>error</error-severity>

<error-path xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces">/rpc/edit-config/config/if:interfaces/if:interface[if:name='Loopback1111']/if:type</error-path>

<error-message xml:lang="en">/interfaces/interface[name='Loopback1111']/type is not configured</error-message>

<error-info>

<bad-element>type</bad-element>

</error-info>

</rpc-error>

</rpc-reply>

3. Ontbrekende gegevens model RPC fout antwoord bericht

Als een verzoek wordt ingediend voor een gegevensmodel dat niet op Catalyst 3850 bestaat of als een verzoek wordt ingediend voor een blad dat niet in een gegevensmodel wordt geïmplementeerd, reageert de server (Catalyst 3850) met een lege gegevensrespons. Dit is verwacht gedrag.

Tip: Gebruik de functionaliteit van de NETCONF-functies om te bepalen welke gegevensmodellen worden ondersteund door de Catalyst-software. Zie deel 2 van het Configureren van het gecentraliseerde beheerplatform (notebook).

<?xml version="1.0" encoding="utf-8"?>

<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"/>

4. "Invalid-value" RPC fout antwoord bericht

In sommige gevallen kan een NETCONF-bericht inhoud bevatten die geldig is op basis van de YANG-datamodellen, maar het apparaat (Catalyst 3850) is niet in staat om te implementeren wat wordt gevraagd. Wanneer de NETCONF-interface op Catalyst 3850 configuraties naar IOS verstuurt die IOSd niet met succes kan toepassen, wordt een specifieke RPC-foutrespons teruggestuurd naar de NETCONF-client.

In dit voorbeeld, wordt een ongeldige het registreren als buffer optredende waarde van nevel verzonden in het RPC- bericht naar Catalyst 3850. De fout-markering in het antwoord van Catalyst 3850 wijst op ongeldig-waarde. De foutmelding geeft aan dat de Catalyst 3850 IOS-parser niet in staat was het niveau van de logboekbufferdichtheid te configureren om te verduisteren, omdat dit geen geldige waarde is.

<?xml version="1.0" encoding="utf-8"?>

<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="6">

<rpc-error>

<error-type>application</error-type>

<error-tag>invalid-value</error-tag>

<error-severity>error</error-severity>

<error-message xml:lang="en">inconsistent value: Device refused command "logging buffered bogus" at column 20 </error-message>

</rpc-error>

</rpc-reply>