diff --git a/core/core-model-csr.yml b/core/core-model-csr.yml new file mode 100644 index 0000000..e41c7f7 --- /dev/null +++ b/core/core-model-csr.yml @@ -0,0 +1,90 @@ +--- + +common: + bgp_asn: 65000 + +nodes: + - name: ansible-csr1 + mgmt: 10.0.0.51 + rid: 1.1.1.1 + sid: 10 + iso: 49.0001.0010.0100.1001.00 + + - name: ansible-csr2 + mgmt: 10.0.0.52 + rid: 2.2.2.2 + sid: 20 + iso: 49.0001.0010.0100.1002.00 + + - name: ansible-csr3 + mgmt: 10.0.0.53 + rid: 3.3.3.3 + sid: 30 + iso: 49.0001.0010.0100.1003.00 + + - name: ansible-csr4 + mgmt: 10.0.0.54 + rid: 4.4.4.4 + sid: 40 + iso: 49.0001.0010.0100.1004.00 + + - name: ansible-csr5 + mgmt: 10.0.0.55 + rid: 5.5.5.5 + sid: 50 + iso: 49.0001.0010.0100.1005.00 +# lu: 163.253.39.165 + + - name: ansible-csr6 + mgmt: 10.0.0.56 + rid: 6.6.6.6 + sid: 60 + iso: 49.0001.0010.0100.1006.00 +# lu: 163.253.39.165 + +links: + - {left: ansible-csr1, left_port: GigabitEthernet4, left_ip: 172.10.12.1, + right: ansible-csr2, right_port: GigabitEthernet4, right_ip: 172.10.12.2, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr1, left_port: GigabitEthernet2, left_ip: 172.10.13.1, + right: ansible-csr3, right_port: GigabitEthernet2, right_ip: 172.10.13.3, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr1, left_port: GigabitEthernet3, left_ip: 172.10.14.1, + right: ansible-csr4, right_port: GigabitEthernet3, right_ip: 172.10.14.4, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr2, left_port: GigabitEthernet3, left_ip: 172.10.23.2, + right: ansible-csr3, right_port: GigabitEthernet3, right_ip: 172.10.23.3, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr2, left_port: GigabitEthernet2, left_ip: 172.10.25.2, + right: ansible-csr5, right_port: GigabitEthernet2, right_ip: 172.10.25.5, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr4, left_port: GigabitEthernet4, left_ip: 172.10.45.4, + right: ansible-csr5, right_port: GigabitEthernet4, right_ip: 172.10.45.5, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr4, left_port: GigabitEthernet2, left_ip: 172.10.46.4, + right: ansible-csr6, right_port: GigabitEthernet2, right_ip: 172.10.46.6, + cost: 10, mpls: True, iso: True } + + - {left: ansible-csr5, left_port: GigabitEthernet3, left_ip: 172.10.56.5, + right: ansible-csr6, right_port: GigabitEthernet3, right_ip: 172.10.56.6, + cost: 10, mpls: True, iso: True } + +bgp: + rr: [10.0.0.51] + clients: [10.0.0.52, 100.0.53, 10.0.0.54, 10.0.0.55, 10.0.0.56] + af: + - inet + - inet-vpn + +#ospf: +# area: 0 +# network: p2p + +#isis: +# network: p2p diff --git a/core/core-model-veos.yml b/core/core-model-veos.yml index fbe9a7d..2035cad 100644 --- a/core/core-model-veos.yml +++ b/core/core-model-veos.yml @@ -33,7 +33,7 @@ nodes: rid: 10.39.8.55 sid: 50 iso: 49.0001.0010.0100.1005.00 - lu: 163.253.39.165 +# lu: 163.253.39.165 - name: ansible-veos55 mgmt: 10.39.0.155 @@ -44,7 +44,7 @@ nodes: rid: 10.39.8.56 sid: 60 iso: 49.0001.0010.0100.1006.00 - lu: 163.253.39.165 +# lu: 163.253.39.165 - name: ansible-veos66 mgmt: 10.39.0.156 diff --git a/core_config/ansible-veos5-config.txt b/core_config/ansible-veos5-config.txt index e78cf3a..3d6b4e0 100644 --- a/core_config/ansible-veos5-config.txt +++ b/core_config/ansible-veos5-config.txt @@ -58,14 +58,6 @@ router bgp 65000 neighbor 10.39.8.41 remote-as 65000 neighbor 10.39.8.41 update-source Management1 ! - address-family ipv4 labeled-unicast - neighbor 10.39.8.41 activate - ! - neighbor 163.253.39.165 remote-as 65000 - neighbor 163.253.39.165 update-source Management1 - ! - address-family ipv4 labeled-unicast - neighbor 163.253.39.165 activate ! ! ! diff --git a/core_config/ansible-veos6-config.txt b/core_config/ansible-veos6-config.txt index c160405..2481142 100644 --- a/core_config/ansible-veos6-config.txt +++ b/core_config/ansible-veos6-config.txt @@ -58,14 +58,6 @@ router bgp 65000 neighbor 10.39.8.41 remote-as 65000 neighbor 10.39.8.41 update-source Management1 ! - address-family ipv4 labeled-unicast - neighbor 10.39.8.41 activate - ! - neighbor 163.253.39.165 remote-as 65000 - neighbor 163.253.39.165 update-source Management1 - ! - address-family ipv4 labeled-unicast - neighbor 163.253.39.165 activate ! ! ! diff --git a/etc/bash_completion.d/pyang b/etc/bash_completion.d/pyang new file mode 100644 index 0000000..5a67670 --- /dev/null +++ b/etc/bash_completion.d/pyang @@ -0,0 +1,292 @@ +# pyang(1) completion -*- shell-script -*- + +have pyang && +_pyang() +{ + local cur prev words cword plugin hello pl_opts wind=1 + + local formats="hypertree dsdl depend sample-xml-skeleton omni yin + tree jstree capability yang xsd uml jtox jsonxsl xmi name" + + local opts_global=" + -h --help + -v --version + -V --verbose + -e --list-errors + --print-error-code + -W -E + --ignore-error + --ignore-errors + --canonical + --max-line-length + --max-identifier-length + -f --format + -o --output + -F --features + --deviation-module + -p --path + --plugindir + --strict + --lax-xpath-checks + --trim-yin + -L --hello + --keep-comments + --check-update-from + -P --check-update-from-path + --ietf + --lint + --lint-ensure-hyphenated-names" + + local opts_capability="--capability-entity" + + local opts_depend=" + --depend-target + --depend-no-submodules + --depend-from-submodules + --depend-recurse + --depend-extension + --depend-include-path + --depend-ignore-module" + + local opts_dsdl=" + --dsdl-no-documentation + --dsdl-no-dublin-core + --dsdl-record-defs" + + local opts_hypertree=" + --hypertree-help + --hypertree-path" + + local opts_jstree="--jstree-no-path" + + local opts_omni="--omni-path" + + local opts_sample_xml_skeleton=" + --sample-xml-skeleton-doctype + --sample-xml-skeleton-defaults + --sample-xml-skeleton-annotations + --sample-xml-skeleton-path" + + local opts_tree=" + --tree-help + --tree-depth + --tree-line-length + --tree-path" + + local opts_uml=" + --uml-classes-only + --uml-split-pages + --uml-output-directory + --uml-title + --uml-header + --uml-footer + --uml-long-identifiers + --uml-inline-groupings + --uml-inline-augments + --uml-description + --uml-no + --uml-truncate + --uml-max-enums + --uml-filter + --uml-filter-file" + + local opts_xmi="--xmi-path --xmi-no-assoc-name" + + local opts_yang=" + --yang-canonical + --yang-remove-unused-imports" + + local opts_yin=" + --yin-canonical + --yin-pretty-strings" + + COMPREPLY=() + _get_comp_words_by_ref cur prev cword words + + while [[ $wind -lt $cword ]]; do + case ${words[$wind]} in + -f|--format) + plugin=${words[$wind+1]} + ;; + -L|--hello) + hello=yes + ;; + esac + ((wind++)) + done + + case $prev in + -o|--output) + case $plugin in + dsdl) + _filedir 'dsdl' + ;; + jsonxsl) + _filedir '@(xsl|xslt)' + ;; + jstree) + _filedir 'js' + ;; + jtox) + _filedir 'jtox' + ;; + sample-xml-skeleton|hypertree) + _filedir 'xml' + ;; + omni) + _filedir 'graffle' + ;; + uml) + _filedir 'uml' + ;; + xmi) + _filedir 'xmi' + ;; + yang) + _filedir 'yang' + ;; + yin) + _filedir 'yin' + ;; + *) + _filedir + ;; + esac + return 0 + ;; + -W) + COMPREPLY=($(compgen -W '$(pyang --list-errors 2>&1 | sed -nEe \ + "s/^(Warning|Minor Error):[[:space:]]*([A-Za-z0-9_]*).*/\2/p") \ + error none' -- "$cur")) + return 0 + ;; + -E) + COMPREPLY=($(compgen -W '$(pyang --list-errors 2>&1 | \ + sed -nEe "s/^Warning:[[:space:]]*([A-Za-z0-9_]*).*/\1/p")' \ + -- "$cur")) + return 0 + ;; + -f|--format) + COMPREPLY=($(compgen -W '$formats' -- "$cur")) + return 0 + ;; + esac + + if [[ $cur == -* ]]; then + pl_opts="opts_${plugin//-/_}" + COMPREPLY=($(compgen -W '$opts_global ${!pl_opts}' -- "$cur")) + return 0 + fi + + if [[ -z $hello ]]; then + _filedir '@(yang|yin)' + else + _filedir 'xml' + fi +} && +complete -F _pyang pyang + +have yang2dsdl && +_yang2dsdl() +{ + local cur prev words cword mode opts wind=1 + + local targets=" + data config get-reply get-config-reply edit-config + rpc rpc-reply notification" + + COMPREPLY=() + _get_comp_words_by_ref cur prev cword words + + case $prev in + -t) + COMPREPLY=($(compgen -W '$targets' -- "$cur")) + return 0 + ;; + -v) + _filedir 'xml' + return 0 + ;; + -d) + _filedir -d + return 0 + ;; + esac + + while [[ $wind -lt $cword ]]; do + case ${words[$wind]} in + -s) + mode=schemas # use pre-generated schemas + break + ;; + -L) + mode=hello + ;; + esac + ((wind++)) + done + + if [[ $cur == -* ]]; then + opts=(-t -d -b -j -v) + [[ -z $mode ]] && opts+=(-L) + [[ $prev == "yang2dsdl" ]] && opts+=(-h) + COMPREPLY=($(compgen -W '${opts[*]}' -- "$cur")) + return 0 + fi + + case $mode in + hello) + _filedir 'xml' + ;; + schemas) + ;; + *) + _filedir '@(yang|yin)' + ;; + esac +} && +complete -F _yang2dsdl yang2dsdl + +have json2xml && +_json2xml() +{ + local cur prev words cword opts jtox wind=1 + + local targets="data config" + + COMPREPLY=() + _get_comp_words_by_ref cur prev cword words + + case $prev in + -t|--target) + COMPREPLY=($(compgen -W '$targets' -- "$cur")) + return 0 + ;; + -o|--output) + _filedir 'xml' + return 0 + ;; + esac + + while [[ $wind -lt $cword ]]; do + if [[ ${words[$wind]} =~ .*\.jtox$ ]]; then + jtox=yes + break + fi + ((wind++)) + done + + if [[ $cur == -* ]]; then + opts=(-t --target -o --output) + [[ $prev == "json2xml" ]] && opts+=(-h --help) + COMPREPLY=($(compgen -W '${opts[*]}' -- "$cur")) + return 0 + fi + + if [[ -z $jtox ]]; then + _filedir 'jtox' + else + _filedir 'json' + fi +} && +complete -F _json2xml json2xml diff --git a/hosts_csr b/hosts_csr new file mode 100644 index 0000000..367c0a5 --- /dev/null +++ b/hosts_csr @@ -0,0 +1,21 @@ +--- +all: + children: + cisco: + children: + csr: + hosts: + ansible-csr1: + ansible_host: 10.0.0.51 + ansible-csr2: + ansible_host: 10.0.0.52 + ansible-csr3: + ansible_host: 10.0.0.53 + ansible-csr4: + ansible_host: 10.0.0.54 + ansible-csr5: + ansible_host: 10.0.0.55 + ansible-csr6: + ansible_host: 10.0.0.56 + vars: + model: core-model-csr.yml diff --git a/nodes.yml b/nodes.yml index ae0fb44..62b5912 100644 --- a/nodes.yml +++ b/nodes.yml @@ -9,137 +9,102 @@ common: nodes: - ansible-veos1: - mgmt: 10.39.0.41 - rid: 10.39.8.41 + ansible-csr1: + mgmt: 10.0.0.51 + rid: 1.1.1.1 sid: 10 iso: 49.0001.0010.0100.1001.00 links: - Ethernet1.0: { ip: 172.10.12.1, remote: ansible-veos2 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet2.0: { ip: 172.10.13.1, remote: ansible-veos3 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet4.0: { ip: 172.10.15.1, remote: ansible-veos5 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet4.0: { ip: 172.10.12.1, remote: ansible-csr2 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet2.0: { ip: 172.10.13.1, remote: ansible-csr3 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet3.0: { ip: 172.10.14.1, remote: ansible-csr4 , cost: 10 , vlan: 0 , mpls: True , iso: True} bgp: ibgp: - rr: true peers: - - 10.39.8.42 - - 10.39.8.43 - - 10.39.8.44 + - 10.0.0.51 af: - inet - inet-vpn - ansible-veos2: - mgmt: 10.39.0.42 - rid: 10.39.8.42 + ansible-csr2: + mgmt: 10.0.0.52 + rid: 2.2.2.2 sid: 20 iso: 49.0001.0010.0100.1002.00 links: - Ethernet1.0: { ip: 172.10.12.2, remote: ansible-veos1 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet3.0: { ip: 172.10.24.2, remote: ansible-veos4 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet4.0: { ip: 172.10.25.2, remote: ansible-veos5 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet4.0: { ip: 172.10.12.2, remote: ansible-csr1 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet3.0: { ip: 172.10.23.2, remote: ansible-csr3 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet2.0: { ip: 172.10.25.2, remote: ansible-csr5 , cost: 10 , vlan: 0 , mpls: True , iso: True} bgp: ibgp: peers: - - 10.39.8.41 + - 10.0.0.51 af: - inet - inet-vpn - ansible-veos3: - mgmt: 10.39.0.43 - rid: 10.39.8.43 + ansible-csr3: + mgmt: 10.0.0.53 + rid: 3.3.3.3 sid: 30 iso: 49.0001.0010.0100.1003.00 links: - Ethernet1.0: { ip: 172.10.13.3, remote: ansible-veos1 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet3.0: { ip: 172.10.34.3, remote: ansible-veos4 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet4.0: { ip: 172.10.36.3, remote: ansible-veos6 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet2.0: { ip: 172.10.13.3, remote: ansible-csr1 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet3.0: { ip: 172.10.23.3, remote: ansible-csr2 , cost: 10 , vlan: 0 , mpls: True , iso: True} bgp: ibgp: peers: - - 10.39.8.41 + - 10.0.0.51 af: - inet - inet-vpn - ansible-veos4: - mgmt: 10.39.0.44 - rid: 10.39.8.44 + ansible-csr4: + mgmt: 10.0.0.54 + rid: 4.4.4.4 sid: 40 iso: 49.0001.0010.0100.1004.00 links: - Ethernet2.0: { ip: 172.10.24.4, remote: ansible-veos2 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet3.0: { ip: 172.10.34.4, remote: ansible-veos3 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet4.0: { ip: 172.10.46.4, remote: ansible-veos6 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet3.0: { ip: 172.10.14.4, remote: ansible-csr1 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet4.0: { ip: 172.10.45.4, remote: ansible-csr5 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet2.0: { ip: 172.10.46.4, remote: ansible-csr6 , cost: 10 , vlan: 0 , mpls: True , iso: True} bgp: ibgp: peers: - - 10.39.8.41 + - 10.0.0.51 af: - inet - inet-vpn - ansible-veos5: - mgmt: 10.39.0.55 - rid: 10.39.8.55 + ansible-csr5: + mgmt: 10.0.0.55 + rid: 5.5.5.5 sid: 50 iso: 49.0001.0010.0100.1005.00 links: - Ethernet1.0: { ip: 172.10.15.5, remote: ansible-veos1 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet2.0: { ip: 172.10.25.5, remote: ansible-veos2 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet3.0: { ip: 172.10.55.5, remote: ansible-veos55 , vlan: 0 } + GigabitEthernet2.0: { ip: 172.10.25.5, remote: ansible-csr2 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet4.0: { ip: 172.10.45.5, remote: ansible-csr4 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet3.0: { ip: 172.10.56.5, remote: ansible-csr6 , cost: 10 , vlan: 0 , mpls: True , iso: True} bgp: ibgp: peers: - - 10.39.8.41 - - 163.253.39.165 + - 10.0.0.51 af: - inet - inet-vpn - - inet-lu - ansible-veos55: - mgmt: 10.39.0.155 - rid: 10.39.8.155 - links: - Ethernet1.0: { ip: 172.10.55.55, remote: ansible-veos5 , vlan: 0 } - bgp: - ibgp: - peers: - - 10.39.8.41 - af: - - inet - - inet-vpn - - ansible-veos6: - mgmt: 10.39.0.56 - rid: 10.39.8.56 + ansible-csr6: + mgmt: 10.0.0.56 + rid: 6.6.6.6 sid: 60 iso: 49.0001.0010.0100.1006.00 links: - Ethernet1.0: { ip: 172.10.36.6, remote: ansible-veos3 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet2.0: { ip: 172.10.46.6, remote: ansible-veos4 , cost: 10 , vlan: 0 , mpls: True , iso: True} - Ethernet3.0: { ip: 172.10.66.6, remote: ansible-veos66 , vlan: 0 } - bgp: - ibgp: - peers: - - 10.39.8.41 - - 163.253.39.165 - af: - - inet - - inet-vpn - - inet-lu - - ansible-veos66: - mgmt: 10.39.0.156 - rid: 10.39.8.156 - links: - Ethernet1.0: { ip: 172.10.66.66, remote: ansible-veos6 , vlan: 0 } + GigabitEthernet2.0: { ip: 172.10.46.6, remote: ansible-csr4 , cost: 10 , vlan: 0 , mpls: True , iso: True} + GigabitEthernet3.0: { ip: 172.10.56.6, remote: ansible-csr5 , cost: 10 , vlan: 0 , mpls: True , iso: True} bgp: ibgp: peers: - - 10.39.8.41 + - 10.0.0.51 af: - inet - inet-vpn diff --git a/ntc.config b/ntc.config new file mode 100644 index 0000000..dd7ddf6 --- /dev/null +++ b/ntc.config @@ -0,0 +1,212 @@ +csr1#show running-config +Building configuration... + +Current configuration : 3940 bytes +! +! Last configuration change at 19:33:17 UTC Thu Sep 27 2018 +! +version 16.3 +service timestamps debug datetime msec +service timestamps log datetime msec +no platform punt-keepalive disable-kernel-core +platform console auto +! +hostname csr1 +! +boot-start-marker +boot-end-marker +! +! +vrf definition MANAGEMENT + ! + address-family ipv4 + exit-address-family + ! + address-family ipv6 + exit-address-family +! +! +no aaa new-model +! +! +! +! +! +! +! +! +! + + + +no ip domain lookup +ip domain name ntc.com +! +! +! +! +! +! +! +! +! +! +subscriber templating +! +! +! +multilink bundle-name authenticated +! +! +! +! +! +crypto pki trustpoint TP-self-signed-1692872229 + enrollment selfsigned + subject-name cn=IOS-Self-Signed-Certificate-1692872229 + revocation-check none + rsakeypair TP-self-signed-1692872229 +! +! +crypto pki certificate chain TP-self-signed-1692872229 + certificate self-signed 01 + 30820330 30820218 A0030201 02020101 300D0609 2A864886 F70D0101 05050030 + 31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274 + 69666963 6174652D 31363932 38373232 3239301E 170D3136 30393137 31343532 + 31355A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649 + 4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D31 36393238 + 37323232 39308201 22300D06 092A8648 86F70D01 01010500 0382010F 00308201 + 0A028201 01008C3F 8CC4110A 46D229F4 6CC98F4B B91EC0E7 14653DF4 929EFAE2 + 735FBFB9 944BBB69 76183782 C7580776 A63E0B59 1FC59096 46083864 3BCBA45B + DBBE4446 19E096CD 218C27B6 053F9ADA 3A9A442C 43028EA0 65751E97 E9AEA5AA + 79421470 4515CB08 B09A1546 0F2A547E 1BD79437 82000464 8675A977 0C46721B + 96EB64DD E69C1F5A BE21D8AE 9283BE65 F0D36816 360C71CB 266DDAF4 8E862D2F + 7665A0A9 1955CD7A 95B31F67 D24C4BB8 CF30E3CB 0ACA3698 0BEE3323 A2C3AF16 + B322FB52 BEDA9AB6 DE7B4D1A 6C89E060 0F971CC9 2192A88A E01D6B00 A7A4CBEC + 4EA3E233 AC213B27 6CFE403C 4ED6AF88 C48F0106 9DCB9B34 CE775B88 E22ED282 + 98112FF5 A07B0203 010001A3 53305130 0F060355 1D130101 FF040530 030101FF + 301F0603 551D2304 18301680 142A6961 60B9636B 6AB03227 74EF7A25 CCEC0FCE + 81301D06 03551D0E 04160414 2A696160 B9636B6A B0322774 EF7A25CC EC0FCE81 + 300D0609 2A864886 F70D0101 05050003 82010100 17DC579F D400261B 6E725759 + A99EE2D9 BE51F87C 00205EF4 7C647E18 C736108A E86E4C1C 5494FFA8 358D1D89 + B0919DBA 0C5F72DB 831C67E7 0EE7C2EB 961E0355 5FAAECC7 A946D7A0 1C401D0D + FD4D1F63 C0BBCF43 DEAB63B5 11051773 172AA75D 389813A8 6080DFB6 C704A199 + EC8546B7 BA3C53C8 8B69DF64 5305FDEB 3A7ACA2A 1992AF6C C9D74A91 2601666D + FE0AD3F3 81015D87 9721ED5B 7CAC12EC 3AB40C1C 8C51A871 C8EEB611 29B16D10 + A7AE1C00 4B71940E AD42D20C FD9B958D 7D353DDC 195CC910 1DDC2BE7 E971B2EA + 209F3F96 FBE167D6 E0E4E11F E58834D8 7FE78CB5 039297CD 113CB419 6C5F9733 + AF749425 129B78B2 D6BBEFA0 34F4CB8E FF9B43A7 + quit + + +! +! +! +! +! +! +! +license udi pid CSR1000V sn 9KXI0D7TVFI +diagnostic bootup level minimal +archive + path bootflash:archive +! +spanning-tree extend system-id +netconf-yang cisco-odm on-demand-enable +netconf-yang cisco-odm polling-enable +netconf-yang +restconf +! +username ntc privilege 15 password 0 ntc123 +! +redundancy +! +! +! +! +! +lldp run +cdp run +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +! +interface GigabitEthernet1 + vrf forwarding MANAGEMENT + ip address 10.0.0.51 255.255.255.0 + negotiation auto +! +interface GigabitEthernet2 + no ip address + negotiation auto +! +interface GigabitEthernet3 + no ip address + negotiation auto +! +interface GigabitEthernet4 + no ip address + negotiation auto +! +! +virtual-service csr_mgmt +! +ip forward-protocol nd +ip http server +ip http authentication local +ip http secure-server +! +ip route vrf MANAGEMENT 0.0.0.0 0.0.0.0 10.0.0.2 +ip scp server enable +! +! +! +! +! +control-plane +! + ! + ! + ! + ! +! +! +! +! +alias exec ntcclear clear platform software vnic-if nv +! +line con 0 + stopbits 1 +line vty 0 4 + privilege level 15 + login local + transport preferred ssh +line vty 5 30 + privilege level 15 + login local + transport preferred ssh +! +! +! +! +! +! +end