á áá á˝áá ááľáĽ, áĽáá´áľ áááá áĽááłááĽá áĽáááááłáá OpenDaylight á¨á ááłá¨ áá¨áĽ ááłáŞáŤáá˝ áá áááľáŤáľ áĽá áĽáá˛áá áĽáá´áľ áĽáá°áá áá áŤáłáŠ ááľáľáá áĽá ááá RESTCONF áĽáŤááá˝, áá ááłáŞáŤ ááĽáĽá áá°á¨áá áľ áá˝áá. á¨áááľáá áá á áá°áŤá ᣠáá á ááľáŠ á ááľ áŤáá°á á áá áá áľááá˝ áááŁá ááŚáŤáśáŞáá˝á áĽáá°ááŤááᢠVrnetlab á á á áĄáĄááą 20.04 LTS.
á¨áŤáá°áá ááłá á áá áá á ááááŞáŤ áááá á áá áśá˝á á áłáŤáá Juniper vMX 20.1R1.11, á¨ááŤá á¨á ááĽáŠ áá áĽáááá áŤáá Cisco xRV9000 7.0.2.
áááśá˝
- á°ááá áĽáááľ
- ᨠ1 ááá: áŁáአá°ááŤáŠ áááľ á¨áá áĽááá (á¨áá á áá áŚ.á¤á.á¤á.), ááľáľáá и Vrnetlab áĽá ááá áŤáľááááá
- ᨠ2 áááá¨á¨áášáá ááĽáŤáśáŞ ááááŤ
- ᨠ3 ááá: áá ááľ OpenDaylight
- ᨠ4 ááá: áá ááľ Vrnetlab
- ᨠ5 ááá: á áá áá ááľáľáá áááŁá áŤáá°á áŤááá (Juniper vMX) áá° áŚ.á¤á.á¤á.
- ᨠ6 ááá: á áá áĽá áŤáá°á áá á á áá áá ááá ááľáľáá и áŚ.á¤á.á¤á.
- ᨠ7 ááá: Cisco xRV9000 á áá
- áá°áá°ááŤ
- PS
- áá˝áá á áąáľ
á°ááá áĽáááľ
á˝áá áá° áá áĽááłááá¨á á ááłááľ á´áááŤá ááááŽá˝á (áľá áľá-á˝áá á áááá˝ áľááĽááą ááá ἠáá˝áá) á áľáááťááá˘
á¨áá áá á á°áŤáŤáᣠá¨ááá áĽá á ááľ ááá áĽáŠ (ááá áá á áľááá á áá°áá) áááśá˝á á áááŁááá˘
ááá 1: á ááłááľ á˝áá°-ááłáĽ
- áááá á áááľ á ááłá¨ áá¨áŚá˝á áááľá°áłá°á áĽá á áŤáľ á°á á¨áá°áŤ áááľ á¨á¤áľá˛á¤á ááľá¨áᣠá¨áá°áá Linux Foundation
- ááľáĽ ááŤ
- á áá´á á¨áá፠á¨á áááááľ áá áá፠á°á¨á (MD-SAL) áá á¨á°áá á¨á°
- RESTCONF á¤áá ááá˝á áá ááłá¨ áá¨áĽ ááłáŞáŤáá˝ á áŤáľ-á°á ááááá¨áľ YANG áá´áá˝á áá ááá
áá ááłá¨ áá¨áĽ á áľá°áłá°á ááá ááá. á¨á°ááá ááłáŞáŤáá˝ áá á¨áááááá á áĽáą á áŠá áá. á áŤáą á¤áá á á¨áá°áłá°áá˘
áľá Opendaylight á¨á áá ááá ἠáľá˝ááá
- á¨á¤áá á áá¨áŤ ááŁáŞáŤ
- á áááá˝ ááá áá ááá áĽá ááá
á áĽá áááłáŁ á¨REST áĽáŤááá˝á áá° OpenDaylight API áááá áĽáá° ááááľ áĽáááááááᢠá áĽááἠáĽáŤááá˝á áĽáŤáľá ááá áá˝áá ᣠáá á ááľáł á¤áľ ááľáĽ ááá ááá á áŁá ááá áĽá á¨áááá˝á áá á¨ááľáá ááá˘
áááá ááááá: áĽá á¨áľáá á ááłááśá˝ á áአáá á°á˝ááá (
- á Docker ááľáĽ áááŁá áŤáá°áŽá˝á ááá°ááŤáľ ááłáŞáŤ
- áá°ááá: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ááá°.
- áááľ ááá
á áŁá á¨ááľáĽ ááá áá áĽáá á¨áááłáá ááłáŞáŤ. á áĽá áááł, á áá°á á áĄáĄááą 9000 LTS áá Juniper vMX áĽá Cisco xRV20.04 á áááľáŹáľ áĽáá áááá.
áľá áĽáą á¨á áá á áá ááá ἠáá˝ááá˘
ááá 2ᥠá¤á° áá¨áŤ
á áá áááŞáŤ ááľáĽ á¨áá¨á°ááá áľáááľ áĽáááááááĄ
áá á áĽáŤ á¨ááŤá°ááá áĽáá´áľ áá?
- Juniper vMX ááľáĽ áááłá Docker ááŤáŁ (á áááľ Vrnetlab) áĽá áĽáá° á áŁá á¨á°ááá°á áááŁá áŤáá°á áá°áŤá.
- áŚ.á¤á.á¤á. ᨠáŤáá°á áá á¨á°ááá áĽá áĽáá˛ááŁá áŠáľ ááá áľáááłá.
- ááľáľáá á á°áᨠáá˝á áá á°ááł áĽá á áĽáą á áŠá áľáááá˝á áĽáááŤááᢠáŚ.á¤á.á¤á.áŤáá°áá ááááááľ / áááľáááľ, á ááááŠá áááááĽ, ááá°.
á áľáááą ááŁáŞáŤ áá á áľá°áŤá¨áľ
Juniper vMX и áŚ.á¤á.á¤á. áá°á¨áá áĽáŤá¸á áĽá ááĽáśá˝á ááááá ᢠá ááľ áĽáť vMX 6 áᣠáŤá áĽá 4 áŽáŽá˝ áá áááᢠáľááá áááá "á¨áŁáľ ááĽá°áśá˝" áá° á¨á°áᨠáá˝á áááááłááľ á°ááľáá (ááááľ ááŤááľ á˘áá°áááŤáá ááááŽá°áá¨á ááŽáá¨ááľ Gen8ᣠáĄáĄááą 20.04 LTS). áŤáá°á, á áĽáááĽ, á áĽáą áá "á áá áá", ááá áá á áááá áá ááľá°á áá¨áŤáá˝ á á áá.
ááá 3ᥠáááľ á¨áá áĽáááá áŤáá áŠ
áá á ááťáá áľ áá á¨á áá á¨áŚá˛á¤á áĽáľá ááááĽá¨á SR1 ááá˘
1) áŤá á፠áááľ JDK 11 (áá áá áááá áááľ
ubuntu:~$ sudo apt install default-jdk
2) á¨á
áἠáááá áááŁáł áááá áĽá áŤáááą áŚ.á¤á.á¤á.
3) á¨áá¨á°áá áá
á°á ááááą
4) áá° áá¤áą áá፠áááą
5) ááľááá ./bin/karaf
á áá á°á¨á áŚ.á¤á.á¤á. áááá á áá áľ áĽá áĽáŤáłá˝áá á áŽááśá ááľáĽ áĽááááá (áááľ 8181 á¨áá áááľá¨áľ áĽá á áá áááá, áá á á áá áĽáá áááá).
á ááá á áŤá ODL áŁá áŞáá˝á¨ááŽáśáŽáá˝ áá áááľáŤáľ á¨á°áá°á NETCONF и RESTCONF. áá áá á áŽááśá ááľáĽ áááľá¨á áŚ.á¤á.á¤á. áĽá áĽááá˝ááá:
opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all
áá
á áŁá ááá áááá ááᢠáŚ.á¤á.á¤á. á°á áááᢠ(áá°á¨á᪠ááááŽá˝áŁ áááá¨áą
ááá 4ᥠVrnetlabá á áááááľ áá
á¨áľáááľ ááá áľ
á¨ááŤáá á ááľ Vrnetlab ááĽáŤá á¨ááŤáľááááľá ááŹáá˝ ááŤá áŤáľáááááłá. áĽáá°
ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt -y install python3-bs4 sshpass make
ubuntu:~$ sudo apt -y install git
ubuntu:~$ sudo apt install -y
apt-transport-https ca-certificates
curl gnupg-agent software-properties-common
ubuntu:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
ubuntu:~$ sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"
ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt install -y docker-ce docker-ce-cli containerd.io
Vrnetlabá á ááŤá áá
áááŤá Vrnetlab á°ááá áá¨ááťáá á¨github ááááĄ
ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git
áá° áá፠áááą vrnetlab:
ubuntu:~$ cd ~/vrnetlab
áĽáá ááááľ á¨ááŤáľááááľá áááá áľááŞááśá˝ áá¨áľ áá˝ááᢠáĽáŁáá ááĽáŤááłááą á¨áŤáá°á á áááľ á°ááłá áá፠áá°áŤáąá áἠáá ááĄ-
ubuntu:~/vrnetlab$ ls
CODE_OF_CONDUCT.md config-engine-lite openwrt vr-bgp
CONTRIBUTING.md csr routeros vr-xcon
LICENSE git-lfs-repo.sh sros vrnetlab.sh
Makefile makefile-install.include topology-machine vrp
README.md makefile-sanity.include veos vsr1000
ci-builder-image makefile.include vmx xrv
common nxos vqfx xrv9k
á¨áŤáá°áŠá ááľá ááá áŠ
á¨áá°áá áĽáŤááłááą áŤáá°á Vrnetlabᣠá¨áŤáą á¨áá áአá¨áááá áá°áľ á ááᢠááź Juniper vMX ᨠ.tgz áá
á°áŠá á áŤáá°á ááľáá áĽáť áŤáľááááá (á¨áá
ááá¨áľ áá˝ááᢠmake
:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ĐОпиŃŃоП в ŃŃŃ Đ´Đ¸ŃокŃĐžŃĐ¸Ń .tgz Đ°ŃŃ
ив Ń ŃĐžŃŃĐľŃОП
ubuntu:~$ sudo make
ááľá ááááŁáľ vMX á¨10-20 á°áááá˝ áááľáłá. áĄá áááá°áľ ááá á áá áá!
ááá á¨á á áá áľá áááá ?
áľááá
"áá á¨ááá áľ ááááŤáľ áŞá˛á (á¨ááĽáĽá á ááŽááá) áááááŞáŤ áá á˛ááá áĽáá° VRR VCP á vMX ááľáĽ áĽáá°áá ፠á¨áááľá á¨ááááŞáŤ ááá áŤááŁáᢠá¨áá áá°á áá á áá á¨á°á°á¨áá á Docker á áá áá áľ áá á ᣠáá áá áááľ áŞá˛á áááľ áá ᢠá¨áášáá áŤáá°á á¨ááááą á ááľ á ááľ áá áĽáá°áá ááááŤá ᣠáá á á¨á á á¨ááľááłáľ áá (5 á°áááá˝ áŤá á) á áá á¨áŞá˛á á¨ááááŞáŤ áŠáŤ á¨áá¨áááá á Docker ááľá áááŁáł áá áá ᣠáĽá ᨠDocker áááŁáł á - -privileged á ááŤá áá áááľ qemu áŤá KVM áááľáá ááŁá°á áá°áŤá áĽá áááŁáłá á áŁá á¨á á áá áááľáłá á áá áá°áľ ááľáĽ áĽá áááἠááľáłááťáá˝ áááŁá, áľááá á˘áŤááľ áá áĽá¨á°á¨ááá áĽááłá áá¨áľ áá˝áá.á¨á á áááŁáł áááľááá. áŤá áŤá á á áľá᪠á áá°áá ááááŤáąá á ááľ áá ááľá áľáááááĽá áĽááá˝á áĽááľááłááá˘
á¨áá áŤáá°á ááľá á¨á°ááá¨áą á áá Docker:
ubuntu:~$ sudo docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
vrnetlab/vr-vmx 20.1R1.11 b1b2369b453c 3 weeks ago 4.43GB
debian stretch 614bb74b620e 7 weeks ago 101MB
á¨vr-vmx ááŤáŁá áŤáľáááŠ
á áľáĽáá áĽááááŤáá-
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
á ááá á áľá áá ááŤáŁáá˝ áá¨á áá¨áľ áĽáá˝ááááĄ-
ubuntu:~$ sudo docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
120f882c8712 b1b2369b453c "/launch.py" 2 minutes ago Up 2 minutes (unhealthy) 22/tcp, 830/tcp, 5000/tcp, 10000-10099/tcp, 161/udp jun01
áá° áŤáá°á á áááááľ áá
á¨áŤáá°áŠ á¨á ááłá¨ áá¨áĽ á áááá˝ á áá á áľáŤáť á áá¨á°áá áľááá ááá áá˝áá-
ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2
ááŁáŞ áŁ Vrnetlab á áŤáá°á áá á°á áá áááĽáŤá vrnetlab/VR-netlab9.
áá á áááááľ áá ssh
:
ubuntu:~$ ssh [email protected]
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
ECDSA key fingerprint is SHA256:g9Sfg/k5qGBTOX96WiCWyoJJO9FxjzXYspRoDPv+C0Y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
Password:
--- JUNOS 20.1R1.11 Kernel 64-bit JNPR-11.0-20200219.fb120e7_buil
vrnetlab> show version
Model: vmx
Junos: 20.1R1.11
áá á¨áŤáá°á ááááŠá áŤá áá ááá˘
áá°ááŤáŠ á á
áŤá˘áá˝ áŤáá°áŽá˝ á¨ááŤá áááŽá˝ á áá áááá
ááá 5ᥠááľáľáá - áŤáá°áá á¨OpenDaylight áá áŤááááľá˘
á¨ááľáł á°á ááŤá
áááŤáᣠáá°áá áŞáŤáá áĽáť áŤáááą
áŤáá°áá á¨áŚá˛á¤á áá á áááááľ áá
áĽááá á á áľááá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
- á¨áĽáŤá á áŤá (á¨á°áááľ áľá)
<node xmlns="urn:TBD:params:xml:ns:yang:network-topology"> <node-id>jun01</node-id> <host xmlns="urn:opendaylight:netconf-node-topology">172.17.0.2</host> <port xmlns="urn:opendaylight:netconf-node-topology">22</port> <username xmlns="urn:opendaylight:netconf-node-topology">vrnetlab</username> <password xmlns="urn:opendaylight:netconf-node-topology">VR-netlab9</password> <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only> <schema-cache-directory xmlns="urn:opendaylight:netconf-node-topology">jun01_cache</schema-cache-directory> </node>
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘ ODLá áááľá¨áľ áá áŤáľáááááĄ-
- áŤáľááá˝ áľá áá áááľ áŤáľááá˝á áá¨á á ááĽá
áĄ
- áá°áá áŞáŤ/xml á°áá á
- á¨áááľ á áááľ áá°áá áŞáŤ/xml
áĽáŤááŤá˝á ááá§áᢠáĽáááŤááᢠááá ááá á áľááá á¨á°ááᨠ"201 á°áá á¨" á¨áááá áááł ááááľ á ááĽá.
áá áĽáŤá áá áŤá°ááá?
á ááľáĄ á áá áĽáááĽáŤáá áŚ.á¤á.á¤á. ááá°ááľá áľ á¨áááááá á¨áĽááá°áá áŤáá°á áááŞáŤáá˝ áá.
xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"
áĽááá á¨ááľáĽ áľáá˝ áá¸áᢠXML (á¨á¤ááľá¤áá¤á áľá áŚáł) á áŚ.á¤á.á¤á. á áá áá á¨áľ ááľááá ááááľá áááĽáŤá.
á á°á¨ááŞ, á á á°á á°á¨á°á, á¨áŤáá°áŠ áľá áá ááľááá-ááłáááŤ, áŤáá°á á áľáŤáť - á áľá°ááá áĽá á¨ááłá°ááľ.
á áŁá á¨ááŤáľá°áľáľ ááľáá á¨áá¨á¨áťá áá. áźá-áá¸ááŤ-áá፠ááá áááá˝ á¨ááááąá áľ áá፠áááĽáŤá YANG áĽá
áľ á¨á°ááá áŤáá°á. ááľáĽ ááłááá¸á áľá˝ááá
$ODL_ROOT/cache/jun01_cache
.
á¨áŤáá°áŠá áááááľ á ááá°á˝ áá
áĽááá á á áá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
áĽáááŤááᢠá¨"200 áĽáş" áááł áĽá á ááłáŞáŤá á¨áá°áá áááá áááá ááááľ á áá áľá˘ YANG áĽá áľ:
á áľá°áŤá¨áľ: á¨ááááá ááá¨áľ á áĽá áááł ááľáŤá á¨á°áá¸á á áá 10 á°áá áŤá á áá á á á áľááá áá á á áľááá áĽáľá¨ ááá áľá¨áľ YANG ááľá ááŤáá áá áŚ.á¤á.á¤á.. áĽáľá¨áá ááĽáĽ áľá¨áľ, áá áá á˛áŤá°áá á áá áá áá á¨áá¨á°ááľá áŤáłáŤá
áŤáá°áá á°áá
áĽááá á á°áá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
ááá 6: á¨áŤáá°á áá á áááĽ
á ááááŠá á ááááľ áá
áĽááá á á áá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
áĽáááŤááᢠᨠ"200 áĽáş" áááł áĽá á¨áŤáá°á áá á ááá á á áá áľ:
áá á ááá áŠ
áĽáá° ááłáᣠá¨áá¨á°ááá áá á áĽááá á áĽá áĽááľá°áŤááááĄ-
protocols {
bgp {
disable;
shutdown;
}
}
áĽááá á POST áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
- á¨áĽáŤá á áŤá (á¨á°áááľ áľá)
<bgp xmlns="http://yang.juniper.net/junos/conf/protocols"> <disable/> <shutdown> </shutdown> </bgp>
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘ - áŤáľááá˝ áľá áá áááľ áŤáľááá˝á áá¨á á ááĽá
áĄ
- áá°áá áŞáŤ/xml á°áá á
- á¨áááľ á áááľ áá°áá áŞáŤ/xml
á¨áአá ááᣠâ204 ááá áááľ á¨ááâ á¨áááá áááł ááá á á ááŁá¸áá˘
á áááአááá¨áŠá ááá¨ááἠá¨áá°ááá áá áá áá áá áá˝ááᢠáá áááłá á áŤáá°á áá áľáá°ááአááŽáśáŽáá˝ áĽáť áá¨áá á¨ááŤáłá áá áĽáááĽáŤááá˘
áĽááá á á áá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
áĽáŤááá á¨áá¸áá á áá á¨áá¨á°ááá áĽáááá¨áłááá˘
á ááááŠá ááááŠ
áľá BGP ááŽáśáŽá áá¨ááá áĽááááĽá˘ á¨áľáááłá˝á á áá á¨áá¨á°ááá áááľááá˘
protocols {
bgp {
disable;
}
}
áĽááá á á áľááá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
- á¨áĽáŤá á áŤá (á¨á°áááľ áľá)
<protocols xmlns="http://yang.juniper.net/junos/conf/protocols"> <bgp> <disable/> </bgp> </protocols>
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘ - áŤáľááá˝ áľá áá áááľ áŤáľááá˝á áá¨á á ááĽá
áĄ
- áá°áá áŞáŤ/xml á°áá á
- á¨áááľ á áááľ áá°áá áŞáŤ/xml
áŤáááá á áá áá á áá áĽáŤáᣠáááŚášá áĽááŤáááĄ-
á ááááŠá á°áá
áĽááá á á°áá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
á˛á°áá á áá áľá ááŽáśáŽáá˝ áá¨á á¨á á¨á á á¨áá¨á°ááľá áĽááŤáááĄ-
áá¨á
á ááááŠá ááááἠá¨áĽáŤááá á áŤá á á áá¸áą ááá á áľááá á áá°áá XML. áá á°áá á á áá¸áą ááľáĽ áá¨ááá áá˝áá JSON.
áá áá áááľá¨á, áááłá, á áá áá ááľáĽ á áľááá á ááááŠá áááá¨á á¨áĽáŤááá á áŤá á
{
"junos-conf-protocols:protocols": {
"bgp": {
"description" : "Changed in postman"
}
}
}
á áŤáľááá˝ áľá áá áŤááľá áŤáľááá˝ áá°áá¨á°áá áááἠáĽááłáľá¨áł:
- áááá¨áť/ json á°áá á
- á¨áááľ á áááľ áá°áá áŞáŤ/json
á¨áአá áá á¨áá¨á°ááá áá¤áľ áĽááááá (áááąá á°á á áá áĽáááá¨áłáá á áá áĽáŤááĄ-
ááá 7: Cisco xRV9000 áá¨áá
ááá˝áá áľá Juniper ᣠá á Juniper áááľáá? áĽáľá˛ áľáá˛áľáŽ áĽááááá!
xRV9000 áľáŞáľ 7.0.2 á ááá (8áᢠáŤá áĽá 4 áŽáŽá˝ á¨ááŤáľáááá á áᏠá ááť á ááááᢠáľááá
á°ááá)
ááŤáŁá ááŤááľ
á¨áśá¨á áŽáá´ááá á¨ááá á áá°áľ á á°ááŁá á¨áááá á¨á°áᨠá áá°áá. á á°ááłáłá ᨠ.qcow2 ááá á¨áŤáá°áŠ áá áá° áľá á áááá°á áá፠ááľáĽ áĽááĽááá (á áá
ááłá áá xrv9k) áĽá áľáááá áĽááá˝ááá make docker-image
.
á¨áĽááľ á°áááá˝ á áá ááľá áĽáá°á°áá ᨠáĽááŤáá-
ubuntu:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vrnetlab/vr-xrv9k 7.0.2 54debc7973fc 4 hours ago 1.7GB
vrnetlab/vr-vmx 20.1R1.11 b1b2369b453c 4 weeks ago 4.43GB
debian stretch 614bb74b620e 7 weeks ago 101MB
ááŤáŁáá áĽááááŤáá-
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
á¨áĽááľ áááł á áá, ááŤáŁá áĽáá°ááᨠáĽáááá¨áłáá.
ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
058c5ecddae3 54debc7973fc "/launch.py" 4 hours ago Up 4 hours (healthy) 22/tcp, 830/tcp, 5000-5003/tcp, 10000-10099/tcp, 161/udp xrv01
á ssh á áŠá áááááĄ
ubuntu@ubuntu:~$ ssh [email protected]
Password:
RP/0/RP0/CPU0:ios#show version
Mon Jul 6 12:19:28.036 UTC
Cisco IOS XR Software, Version 7.0.2
Copyright (c) 2013-2020 by Cisco Systems, Inc.
Build Information:
Built By : ahoang
Built On : Fri Mar 13 22:27:54 PDT 2020
Built Host : iox-ucs-029
Workspace : /auto/srcarchive15/prod/7.0.2/xrv9k/ws
Version : 7.0.2
Location : /opt/cisco/XR/packages/
Label : 7.0.2
cisco IOS-XRv 9000 () processor
System uptime is 3 hours 22 minutes
áŤáá°áá ᨠOpendaylight áá á áááááľ áá
áá°áá ᨠvMX áá áá á áá á°ááłáłá á áá ááááľ áá¨á°áłáᢠáľáášá ááá¨á áĽáť áŤáľááááá.
á áľááá áĽáŤááĄ-
á¨áĽááľ áá á áá áá°áá á áá ááá ááá á¨á°ááá áááá ááá¨ááἠáĽáŤááĄ-
á ááááŠá ááááŠ
á¨áá¨á°ááá áá á áĽááá ááĄ
!
router ospf LAB
mpls ldp auto-config
!
áĽááá á POST áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
- á¨áĽáŤá á áŤá (á¨á°áááľ áľá)
{ "processes": { "process": [ { "process-name": "LAB", "default-vrf": { "process-scope": { "ldp-auto-config": [ null ] } } } ] } }
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘ - áŤáľááá˝ áľá áá áááľ áŤáľááá˝á áá¨á á ááĽá
áĄ
- áááá¨áť/ json á°áá á
- á¨áááľ á áááľ áá°áá áŞáŤ/json
á¨á°ááá á áá "204 ááá áááľ" á¨áááá áááł ááá á á ááŁá¸á.
áŤááááá áĽáááľá˝á˘
áá
áá áááľá¨á, áĽáááĽáŤáá á áá áĽáŤááĄ-
- á¨áá áá
ááĽá¨ááááĄ
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
á¨áľáá ፠á áá á¨áá¨á°ááľá áá¨áľ á ááĽááľ:
á¨áá á¨áľ á á áááá áááľáááľ á°áá:
- á¨áá áá
ááĽá¨ááááĄ
DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
- á áááł áľáŠ áá áááŞáŤáá áááááľ á ááĽááľ
Basic Auth
áĽá ááá˘áŤ/á¨ááá ááᥠá áľá°áłáłáŞ/á áľá°áłáłáŞá˘
áá°áá°ááŤ
á á á ááá ᣠáĽááľá áĽááłáľá°ááᾠᣠCisco áĽá Juniper á ᨠOpenDaylight áá á¨áááááľ áá°áśá˝ á áááŤáŠá - áá
ááá ፠á°á áá°á áá¨ááłáᢠá¨ááá á¨á ááłá¨ áá¨áĽ á áŤááľ áá
á¨áľ á áľá°áłá°á ááᎠáĽá á¨áŤáľáá á¨á ááłá¨ áá¨áĽ ááá˛áá˝ á ááá á áŤá ááá˘
á áá
áá áá¨áŞáŤ áľáá
ááľ Opendaylightá á áá áá á¨á ááłá¨ áá¨áĽ ááłáŞáŤáá˝ áá áĽáá´áľ áĽáá°áááá á áŁá ááá ááłááá˝á á°áĽáťááᢠááá áĽááĽá á¨ááá ᣠá¨áá á¨á°á ááąáľ ááłááá˝ ááľáĽ áŤá áĽáŤááá˝ á¨á áá ááľáĽáľáĽ ááá áĽá áááá á áááááśá˝ á á ááľ ááłááľ á á
áł áááá áá˝áá - ááá ááá á á áááŽá áĽáť á¨á°áá°á áá *
áááĽááâŚ
PS
áá
áá áá á áľáááľ áŤáá ááá á á°ááŤáá áá° ODL áááľ ááľáĽ á¨áᥠáĽá á ODL áááŁá áŞáŤ áá áá°áá áŞáŤáá˝á áĽáá˛ááá¨áą áĽáááŤáá ᢠáááá áľá˝ááá
á¨á°áłáŤ áá¨áŤáá˝!
ááŁááť
VrnetlabᥠKVM áĽá Dockerá á áá áá á ááłá¨ áá¨áŚá˝á á áľááľáá / Brian Linkletter- áááľ á¨áá áĽááá á¨ááĽá°áŤ áá˝áá / Mathieu Lemayᣠá ááá˛áľ á° áłááááľáŁ áĽá ááá˝áá˘
- á¨áŤáá/á¤áááľ áááᣠá ááááᣠáá áááľáĽááľ áá á¨á ááłá¨ áá¨áĽ ááŽááŤá ááťá
- á¤ááľá¤áá¤áá áááᣠááá°á áĽáľá / Erik T. Ray
- áá¤áłá DevOps / áááá á´áŞáľ, Ryn Daniels
ááá: hab.com