8 3 6-Lab
8 3 6-Lab
campus LEÓN
Administración de Redes
© - 十十十十 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 1 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS
XE.
Objetivos
Parte 1: Armar la red y verificar la conectividad.
Parte 2: Utilizar una sesión de NETCONF para recopilar información.
Parte 3: Usar ncclient para conectarse a NETCONF.
Parte 4: Usar ncclient para recuperar la configuración.
Parte 5: Usar ncclient para configurar un dispositivo.
Parte 6: Desafío: Modificar el programa utilizado en este laboratorio.
Aspectos básicos/Situación
El Protocolo de configuración de red (NETCONF), definido en RFC 4741 y 6241, utiliza modelos de datos
YANG para comunicarse con varios dispositivos de la red.
YANG es un lenguaje de modelado de datos. Este lenguaje define los datos que se envían a través de
protocolos de administración de red, como NETCONF. Cuando se utiliza NETCONF para acceder a un
dispositivo IOS XE, los datos se devuelven en formato XML.
En este laboratorio, utilizará un cliente NETCONF, ncclient, que es un módulo de Python para secuencias de
comandos del lado del cliente. Usará ncclient para verificar que NETCONF está configurado, recuperar una
configuración de dispositivo y modificar una configuración de dispositivo.
Recursos necesarios.
• Una computadora con el sistema operativo de su elección.
• Virtual Box o VMWare.
• Máquina virtual DEVASC.
• CSR1kv Máquina Virtual.
Instrucciones.
© - 十十十十 Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 1 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 2 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
Nota: La primera vez que SSH a CSR1kV, su máquina virtual DEVASC le advierte sobre la autenticidad
del CSR1kV. Debido a que confía en CSR1kV, responda sí al prompt.
No se puede establecer la autenticidad del host '192.168.56.101
(192.168.56.101)'.
La huella digital de la clave RSA es
Sha256:Hyv9K5Biw7PFixeocdo/LTQS3EFZKBujDipo34VXduy.
¿Está seguro de que desea continuar con la conexión (yes/no/[fingerprint])?
si
Warning: Permanently added '192.168.56.101' (RSA) to the list of known hosts.
b. ¡Entra en cisco123! como contraseña y ahora debería estar en el símbolo del sistema EXEC privilegiado
para CSR1kV.
Contraseña:
CSR1kv#
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 3 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
CSR1kv#
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 4 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
Número de sesiones: 1
CSR1kv#
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 6 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
Operación Descripción
Operación Descripción
a. Copie y pegue el siguiente código XML de obtener mensaje RPC en la sesión SSH de terminal para
recuperar información acerca de las interfaces en R1.
<rpc message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get>
<filter>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"/>
</filter>
</get>
</rpc>
]]>]]>
b. Recuerde que XML no requiere sangría o espacio en blanco. Por lo tanto, el CSR1kv devolverá una
cadena larga de datos XML.
<?xml version="1.0" encoding="UTF-8"?>
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 7 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-
id="103"><data><interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-
interfaces"><interface><name>GigabitEthernet1</name><description>VBox</description><ty
pe xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-
type">ianaift:ethernetCsmacd</type><enabled>true</enabled><ipv4
xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"></ipv4><ipv6
xmlns="urn:ietf:params:xml:ns:yang:ietf-
ip"></ipv6></interface></interfaces></data></rpc-reply>]]>]]>
c. Copie el XML devuelto, pero no incluya los caracteres finales «]]>]]>». Estos caracteres no forman parte
del XML devuelto por el router.
d. Busque en Internet “prettify XML”. Encuentre un sitio adecuado y utilice su herramienta para transformar
su XML en un formato más legible, como el siguiente:
<?xml version="1.0"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="103">
<data>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>Gigabitethernet1 </name>
<description>vBox </description>
<type xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type">IANAIFT:
EtherNetCSMACD </type>
<enabled>true</enabled>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/>
<ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"/>
</interface>
</interfaces>
</data>
</rpc-reply>
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 8 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
b. Después de unos segundos, volverá al símbolo del terminal. Vuelva al símbolo del sistema CSR1kv y
muestre las sesiones netconf abiertas. Verá que la sesión ha sido cerrada.
CSR1kv# show netconf-yang sesiones
No hay sesiones activas
CSR1kv#
ansible 2.9.6
apache-libcloud 2.8.0
appdirs 1.4.3
argcomplete 1.8.1
astroide 2.3.3
(output omitted)
ncclient 0.6.7
netaddr 0.7.19
netifaces 0.10.4
netmiko 3.1.0
ntlm-auth 1.1.0
oauthlib 3.1.0
(output omitted)
xmltodict 0.12.0
zipp 1.0.0
devasc @labvm: ~$
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 10 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
Paso 2: Cree un script para usar ncclient para conectarse al servicio NETCONF.
El módulo ncclient proporciona una clase de administrador con un método connect () para configurar las
conexiones NETCONF remotas. Después de una conexión correcta, el objeto devuelto representa la
conexión NETCONF con el dispositivo remoto.
a. En el código VS, haga clic en Archivo > Abrir carpeta... y navegue al directorio devnet-src. Haga clic
en Aceptar.
b. Abra una ventana de terminal en VS Code: Terminal> Nueva Terminal.
c. Cree un subdirectorio llamado netconf en el directorio /devnet-src.
devasc @labvm: ~/labs/devnet-src$ mkdir netconf
devasc@labvm:~/labs/devnet-src$
d. En el panel EXPLORER en DEVNET-SRC, haga clic con el botón derecho en el directorio netconf y elija
Nuevo archivo.
e. Asigne un nombre al archivo ncclient-netconf.py.
f. En su archivo de script, importe la clase de administrador desde el módulo ncclient. A continuación, cree
una variable m para representar el método connect (). El método connect () incluye toda la información
necesaria para conectarse al servicio NETCONF que se ejecuta en CSR1kV. Tenga en cuenta que el
puerto es 830 para NETCONF.
desde el administrador de importación ncclient
m = manager.connect (
host="192.168.56.101",
port=830,
username="cisco»,
password="cisco123!",
hostKey_verify=false
).
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 11 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
Si hostkey_verify se establece en True, CSR1kV le pedirá que verifique la huella digital SSH. En un
entorno de laboratorio, es seguro establecer este valor en False, como hemos hecho aquí.
g. Guarde y ejecute el programa para verificar que no haya errores. Aún no verá ninguna salida.
devasc @labvm: ~/labs/devnet-src$ cd netconf/
devasc @labvm: ~/labs/devnet-src/netconf$ python3 ncclient-netconf.py
devasc @labvm: ~/labs/devnet-src/netconf$
h. Puede verificar que el CSR1kV aceptó la solicitud de una sesión NETCONF. Debe haber un
mensaje%DMI-5-auth_passed syslog en la máquina virtual CSR1kv. Si la pantalla es negra, presione
Entrar para activar el router. El mensaje syslog se puede ver encima del banner.
Paso 3: Agregar una función de impresión al script para que aparezcan las capacidades de
NETCONF para CSR1kV.
El objeto m devuelto por la función manager.connect () representa la sesión remota NETCONF. Como ha
visto anteriormente, en cada sesión de NETCONF, el servidor envía primero sus capacidades, que es una
lista, en formato XML, de los modelos YANG soportados. Con el módulo ncclient, la lista de capacidades
recibida se almacena en la lista m.server_capabilities.
a. Utilice un bucle for y una función de impresión para mostrar las capacidades del dispositivo:
print (» #Supported Capacidades (modelos YANG):»)
para la capacidad en m.server_capabilities:
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 12 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
imprimir (capacidad)
b. Guarde y ejecute el programa. La salida es la misma salida que obtuvo al enviar el mensaje de saludo
complejo anteriormente, pero sin la <capability> etiqueta XML de apertura y cierre en cada línea.
devasc @labvm: ~/labs/devnet-src/netconf$ python3 ncclient-netconf.py
Capacidades #Supported (modelos YANG):
urn:ietf:params:netconf:base:1.0
urn:ietf:params:netconf:base:1.1
urn:ietf:params:netconf:capability:writable-running:1.0
urn:ietf:params:netconf:capability:xpath:1.0
<output omitted>
urn:ietf:params:xml:ns:netconf:base:1.0?module=ietf-netconf&revision=2011-06-01
urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults?module=ietf-netconf-with-
defaults&revision=2011-06-01
urn:ietf:params:netconf:capability:notification:1.1
Paso 1: Utilice la función get_config () para recuperar la configuración en ejecución para R1.
a. Si desea omitir la salida de las capacidades de visualización (más de 400 líneas), comente el bloque de
instrucciones que imprimen las capacidades, como se muestra en el siguiente ejemplo:
'''
print (» #Supported Capacidades (modelos YANG):»)
para la capacidad en m.server_capabilities:
print(capability)
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 13 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
'''
b. Puede utilizar el método get_config () del objeto de sesión m NETCONF para recuperar la configuración
del CSR1kV. El método get_config () espera un parámetro de cadena de origen que especifique el
almacén de datos NETCONF de origen. Utilice una función de impresión para mostrar los resultados. El
único almacén de datos NETCONF actualmente en CSR1kV es el almacén de datos en ejecución.
Puede verificar esto con el comando show netconf-yang datastores.
netconf_reply = m.get_config(source="running»)
print(netconf_reply)
c. Guarde y ejecute su programa. La salida será más de 100 líneas, por lo que IDLE puede comprimirlas.
Haga doble click en el mensaje de texto Exprimido en la ventana del shell IDLE para expandir la salida.
devasc@labvm:~/labs/devnet-src/netconf$ python3 ncclient-netconf.py
<?xml version="1.0" encoding="UTF-8"?>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-
id="urn:uuid:3f31bedc-5671-47ca-9781-4d3d7aadae24"
xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"> <data> <native
xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native"> <version>16.9 </version><boot-
start-marker/> <boot-end-marker/> <banner> <motd> <banner>
(output omitted)
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 14 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
<boot-start-marker/>
<boot-end-marker/>
<banner>
<motd>
<banner>^C </banner>
</motd>
</banner>
<service>
<timestamps>
<debug>
<datetime>
<msec/>
</datetime>
</debug>
<log>
<datetime>
<msec/>
</datetime>
</log>
</timestamps>
</service>
<platform>
<console xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-platform">
<output>Virtual</output>
</console>
</platform>
<hostname>CSR1kV </hostname>
(output omitted)
b. Reemplace la impresión simple de la función de impresión (netconf_reply) por una versión que imprima
la salida XML prettified.
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 15 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 16 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
Paso 3: Utilizar un filtro con get_config () para recuperar solo un modelo específico de YANG.
Es posible que un administrador de red solo desee recuperar una parte de la configuración en ejecución en
un dispositivo. NETCONF admite devolver solo datos definidos en un parámetro de filtro de la función
get_conf ().
a. Cree una variable llamada netconf_filter que solo recupere los datos definidos por el modelo YANG
nativo de Cisco IOS XE.
netconf_filter = «"»
<filter>
<native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native" />
</filter>
"""
netconf_reply = m.get_config (source="running», filter=netconf_filter)
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
b. Guarde y ejecute su programa. El inicio de la salida es el mismo, como se muestra a continuación. Sin
embargo, <native> esta vez solo se muestra el elemento XML. Anteriormente, se mostraban todos los
modelos YANG disponibles en el CSR1kV.
Filtrar los datos recuperados para mostrar solo el módulo nativo de YANG reduce significativamente la
salida. Esto se debe a que el módulo YANG nativo solo incluye un subconjunto de todos los modelos IOX
XE YANG de Cisco.
devasc@labvm:~/labs/devnet-src/netconf$ python3 ncclient-netconf.py
<?xml version="1.0"?>
<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:4da5b736-1d33-
47c3-8e3c-349414be0958">
<data>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<version>16.9 </version>
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 17 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
<boot-start-marker/>
<boot-end-marker/>
<banner>
<motd>
<banner>^C </banner>
</motd>
</banner>
<service>
<timestamps>
<debug>
<datetime>
<msec/>
</datetime>
</debug>
<log>
<datetime>
<msec/>
</datetime>
</log>
</timestamps>
</service>
<platform>
<console xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-
platform">
<output>Virtual</output>
</console>
</platform>
<hostname>CSR1kV </hostname>
(output omitted)
</native>
</data>
</rpc-reply>
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 18 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
<data>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
(output omitted)
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 20 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
<hostname>CSR1kV </hostname>
(output omitted)
a. Anteriormente, definía una <gilter> variable. Para modificar la configuración de un dispositivo, definirá
una <config> variable. Agregue la siguiente variable a la secuencia de comandos ncclient_netconf.py.
Puede usar NEWHOSTNAME o cualquier nombre de host que desee.
netconf_hostname = «"»
<config>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<hostname>NOMBRE NOMBRE </hostname>
</native>
</config>
"""
b. Utilice la función edit_config () del objeto de sesión m NETCONF para enviar la configuración y
almacenar los resultados en la variable netconf_reply para que puedan imprimirse. Los parámetros para
la función edit_config () son los siguientes:
• target : El almacén de datos NETCONF objetivo que se actualizará.
• config: La modificación de configuración que se va a enviar.
netconf_reply = m.edit_config (target="running», config=netconf_hostname)
c. La función edit_config () devuelve un mensaje de respuesta XML RPC que <ok/> indica que el cambio
se ha aplicado correctamente. Repita la instrucción de impresión anterior para mostrar los resultados.
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
d. Guarde y ejecute su programa. Debe obtener una salida similar a la salida que se muestra a
continuación. También puede verificar que el nombre de host ha cambiado cambiando a la máquina
virtual CSR1kV.
devasc@labvm:~/labs/devnet-src/netconf$ python3 ncclient-netconf.py
(output omitted)
<?xml version="1.0"?>
<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:e304b225-7951-
4029-afd5-59e8e7edbaa0">
<ok/>
</rpc-reply>
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 21 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
e. Edite su script para cambiar el nombre de host de nuevo a CSR1kV. Guarde y ejecute su programa.
También puede comentar el código del paso anterior si desea evitar cambiar el nombre de host
nuevamente.
Paso 2: Utilizar ncclient para crear una nueva interfaz de bucle invertido en R1.
a. Cree una nueva variable <config> para contener la configuración de una nueva interfaz de bucle
invertido. Agregue lo siguiente a su script ncclient_netconf.py.
Nota: Puede usar la descripción que desee. Sin embargo, solo use caracteres alfanuméricos o tendrá
que separarlos con la barra invertida (\).
netconf_loopback = «"»
<config>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<interface>
<Loopback>
<name>1 </name>
<description>My first NETCONF loopback</description>
<ip>
<address>
<primary>
<address>10.1.1.1</address>
<mask>255.255.255.0 </mask>
</primary>
</address>
</ip>
</Loopback>
</interface>
</native>
</config>
"""
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 22 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 23 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
CSR1kv>es
CSR1kv# show ip interface brief
¿Interface IP-Address OK? Método de protocolo de estado
GigabitEthernet1 192.168.56.101 YES DHCP up up
Loopback1 10.1.1.1 SÍ otras arriba
Paso 3: Intente crear una nueva interfaz de bucle invertido con la misma dirección IPv4.
a. Cree una nueva variable llamada netconf_newloop. Mantendrá una configuración que crea una nueva
interfaz de loopback 2 pero con la misma dirección IPv4 que en el bucle de retorno 1:10.1.1.1 /24. En la
CLI del router, esto crearía un error debido al intento de asignar una dirección IP duplicada a una
interfaz.
netconf_newloop = «"»
<config>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<interface>
<Loopback>
<name>2 </name>
<description>My second NETCONF loopback</description>
<ip>
<address>
<primary>
<address>10.1.1.1</address>
<mask>255.255.255.0 </mask>
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 24 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
</primary>
</address>
</ip>
</Loopback>
</interface>
</native>
</config>
"""
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 25 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
return cls(self._session,
File "/home/devasc/.local/lib/python3.8/site-packages/ncclient/operations/edit.py",
line 69, in request
return self._request(node)
File "/home/devasc/.local/lib/python3.8/site-packages/ncclient/operations/rpc.py",
line 348, in _request
raise self._reply.error
ncclient.operations.rpc.RPCError: inconsistent value: Device refused one or more
commands
devasc @labvm: ~/labs/devnet-src/netconf$
d. NETCONF no aplicará ninguna de las configuraciones que se envíen si se rechazan uno o más
comandos. Para verificar esto, ingrese el comando show ip interface brief en el R1. Observe que la
nueva interfaz no se ha creado.
m = manager.connect (
host="192.168.56.101",
port=830,
username="cisco»,
password="cisco123!",
hostKey_verify=false
).
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 26 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
print (» #Supported Capacidades (modelos YANG):»)
para la capacidad en m.server_capabilities:
print(capability)
netconf_reply = m.get_config(source="running»)
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
netconf_filter = «"»
<filter>
<native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native" />
</filter>
"""
netconf_reply = m.get_config (source="running», filter=netconf_filter)
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
netconf_hostname = «"»
<config>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<hostname>CSR1kV </hostname>
</native>
</config>
"""
netconf_reply = m.edit_config (target="running», config=netconf_hostname)
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
netconf_loopback = «"»
<config>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<interface>
<Loopback>
<name>1 </name>
<description>Mi bucle invertido NETCONF </description>
<ip>
<address>
<primary
<address>10.1.1.1</address>
<mask>255.255.255.0 </mask>
</primary>
</address>
</ip>
</Loopback>
</interface>
</native>
</config>
"""
netconf_reply = m.edit_config (target="running», config=netconf_loopback)
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 27 de
17 www.netacad.com
Laboratorio - Utilice NETCONF para acceder a un dispositivo IOS XE.
print (Xml.dom.minidom.parseString (netconf_reply.xml) .toprettyxml ())
netconf_newloop = «"»
<config>
<nativo xmlns=» http://cisco.com/ns/yang/Cisco-IOS-XE-native «
<interface>
<Loopback>
<name>2 </name>
<description>My second NETCONF loopback</description>
<ip>
<address>
<primary
<address>10.1.1.1</address>
<mask>255.255.255.0 </mask>
</primary>
</address>
</ip>
</Loopback>
</interface>
</native>
</config>
"""
netconf_reply = m.edit_config (target="running», config=netconf_newloop)
© - aa Cisco y/o sus filiales. Todos los derechos reservados. Información pública de Cisco Página 28 de
17 www.netacad.com