De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft hoe u NETCONF/YANG kunt configureren op basis van Cisco IOS® XE 16.x-platforms.
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.
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.
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 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 standaarden zijn die op dezelfde procedure zijn gebaseerd en ook kunnen worden gebruikt om gegevens te configureren of te verzamelen van apparaten die niet tot Cisco behoren, zijn deze modellen ideaal 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).
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.
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.
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 er wereldwijd geen nieuw model is geconfigureerd (de standaardinstelling). Als het gewenst is om AAA (verificatie, autorisatie en accounting) in te schakelen door een nieuw 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
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.
Opmerking: Hoewel deze het minimum zijn dat vereist is, kunnen er ook extra SNMP-server-vermeldingen 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 Config het Gecentraliseerd beheerplatform (Laptop)).
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, gebruik deze CLI, geen 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
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
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
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.
Start de Yang Explorer Application - vanaf een terminal-prompt op de laptop voer de ./start.sh en opdracht 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 bij de Yang Explorer-applicatie GUI als gast/gast in de rechterbovenhoek van het hoofdmenu van de applicatie GUI (zie de screenshot).
Haal de mogelijkheden uit Catalyst 3850. Voer de Catalyst 3850-gegevens in (IP-adres, gebruikersnaam/wachtwoord, TCP-poort 830 voor ssh-netconf) en klik op Capabilities om de operationele YANG-functielijst op te halen uit 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 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:
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.
Nu Catalyst 3850 en het gecentraliseerde beheerplatform zijn geconfigureerd en zijn begonnen met communiceren, laten we eens kijken naar een aantal fundamentele operationele voorbeelden.
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.
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 te worden verzonden naar Catalyst 3850. 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).
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. Config (voor configuratie) is dus 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 reageert dat de interface Gigabit Ethernet 1/0/16 configuratie = vals nu heeft ingeschakeld wat betekent dat de interface was afgesloten.
Tip: In het algemeen, wanneer het niet duidelijk is welke indeling de waarden kunnen zijn in de Explorer sectie van de Yang Explorer-toepassing, is het dumpen van de YANG geformatteerde Catalyst 3850-configuratie, zoals getoond, een goede manier om te bepalen wat ze zijn voordat een poging wordt gedaan om ze te wijzigen. De rechterkant van de volgende schermen geeft een aantal 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.
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 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.
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
!
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 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.
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 is teruggestuurd naar aanleiding van een SSH-verbinding via 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&revision=2007-04-27</capability>
<capability>urn:ietf:params:xml:ns:yang:smiv2:CISCO-CONTEXT-MAPPING-MIB?module=CISCO-CONTEXT-MAPPING-MIB&revision=2008-11-22</capability>
<capability>urn:ietf:params:xml:ns:yang:smiv2:CISCO-DATA-COLLECTION-MIB?module=CISCO-DATA-COLLECTION-MIB&revision=2002-10-30</capability>
--snip--
</capabilities>
<session-id>2870</session-id></ hello >]]>]]>
Use < ^C > to exit
Deze link bevat extra YANG data model bestanden. 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.
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.
GitHub Yang Modellen Tree Master Standard
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.
GitHub Yang Modellen Yang Tree Master Vendor
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.
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).
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.
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 de 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 wordt uitgebreid in de Explorer-sectie links van de YANG Explorer-applicatie GUI, worden de verschillende operationele opties weergegeven. Als een voorbeeld, om één van de beschikbare cisco-ia.yang gegevensmodelopties te gebruiken, wordt de sparen-config verrichting geselecteerd en bijbehorende RPC wordt geproduceerd 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-vanaf - Met deze RPC wordt de NETCONF-interface op Catalyst 3850 belast met het synchroniseren van de NETCONF datastore representatie van de configuratie van het apparaat in werking stellen 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 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 naar niet-vluchtige opslag met behulp van de ingebouwde configuratie-archieffunctie van Cisco IOSd.
<?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>
Terugdraaiing - Deze RPC zorgt ervoor dat de NETCONF-interface de actieve configuratie van het apparaat terugdraait naar een actieve configuratie die is opgeslagen bij het controlepunt RPC of een andere geldige actieve configuratie die is opgeslagen op het apparaat.
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 - Deze RPC zorgt ervoor dat de NETCONF interface de revert-timer van de rollback RPC wijzigt. Dit annuleert het getimed terugdraaien en activeert het terugdraaien onmiddellijk, of stelt parameters voor het getimed terugdraaien terug.
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 worden opgestart 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 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="https://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>
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 screencaptures 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-applicatie te bladeren, toont GUI een lange lijst van configureerbare Catalyst 3850-functies in het end.yang datamodel.
Als voorbeeld, deze screencaptures tonen hoe te om de OSPF routeringsconfiguratie van Catalyst 3850 na het eerst scrollen onderaan de lijst van beschikbare end.yang gegevens model configuratieopties in de Verkenner sectie op de linkerkant van de YANG Explorer toepassing GUI te tonen. De ospf-suboptie 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 get-config RPC-handeling.
<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-toepassing GUI aan de linkerkant (OSPF-router-ID 100 is ook ingevoerd, maar is niet zichtbaar 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 opslagconfiguratiebewerking die in de vorige sectie cisco-ia.yang Data Model wordt genoemd voor informatie over het opslaan van de in bedrijf zijnde configuratie in de opstartconfiguratie op Catalyst 3850 via NETCONF/YANG.
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 opslagconfiguratie geselecteerd in het venster Explorer 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 op zijn beurt kan worden geplakt in een bestand dat kan worden opgeslagen op het gecentraliseerde beheerplatform (laptop) met een extensie van Python .py. Dit bestand heeft bijvoorbeeld de naam example.py (niet weergegeven).
Opmerking: in het volgende voorbeeld dat gebruik maakt van Platform type andere in de GUI resulteerde in een fout bij het uitvoeren van het Python script. Hierdoor is het "Platformtype" gewijzigd in csr omdat de Cisco CSR-router ook Cisco IOS XE-software uitvoert 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 uit te voeren. De payload omvat de NETCONF/YANG operatie die het script kan uitvoeren. In dit voorbeeld is het een sparen-configuratieverrichting.
"""
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))
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 running-config 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
!
Deze sectie bevat informatie waarmee u problemen met de configuratie kunt oplossen.
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 het formaat 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.
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-message>
<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.
1. "In-use" (configuratie-vergrendeld) RPC fout antwoord bericht
Dit is een NETCONF foutreactie op een verzoek van <edit-config>. De <error-tag> geeft "in-use" aan. De respons geeft aan dat het serverapparaat (Catalyst 3850) dat met 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 sync-van-apparaat interne 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 is een RPC met <edit-config> naar Catalyst 3850 verzonden voor een loopback-interface die niet is 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. "Missing Data 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>
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
3.0 |
21-Dec-2023 |
Bijgewerkte branding vereisten, spelling en opmaak. |
2.0 |
01-Dec-2022 |
Verwijderd PII.
Toegevoegd Alt Text.
Gecorrigeerde informatie over Revert RPC.
Bijgewerkte Titel, Inleiding, machinevertaling, diploma's, stijlvereisten en opmaak. |
1.0 |
17-Sep-2021 |
Eerste vrijgave |