á€áá±á¬ááºážáá«ážááœááºá áá«áááºáááºááá¯á·ááᯠsetup áá¯ááºáááºážááá¯ááŒááááá·áºáááºá áá±á·á¡áááºážáá±á¬áẠááœááºáááºá ááºáá á¹á ááºážáá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºáááºá á¡áá¯á¶ážááŒá¯áááºážááá¯áááºáž ááŒááá«á á á¬ááá¯á· ááá¯ážááŸááºážáá«áááºá RESTCONF áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá á€áááááá¬ááá¯ááááºážáá»á¯ááºááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·ááẠáá¬á·ááºáá²ááŒáá·áº áá¯ááºáá±á¬ááºáááºááá¯ááºáá±á¬áºáááºážá áááºážá¡á á¬áž router áá áºáá¯áááºážááŒáá·áº virtual áá¬ááºááœá²áááºážáááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá Vrnetlab áá»á±á¬áºááœáẠUbuntu ááᯠ20.04 LTS.
Router áááá°áá¬ááá¯á¡áá¯á¶ážááŒá¯á á¡áá±ážá áááºáááºáááºáá»á¬ážááᯠá¡áááºááŒáá«áááºá Juniper vMX 20.1R1.11ááá¯á·áá±á¬áẠáááºážááᯠáááºáááºááŸáá·áº ááŸáá¯ááºážááŸááºáá«áááºá Cisco xRV9000 7.0.2.
á¡ááŒá±á¬ááºážá¡áá¬
- ááá¯á¡ááºáá±á¬á¡ááááá¬
- á ááá»á¡ááá¯áá»áž 1: á¡ááá¯áá»á¯á¶áž ááœá±ážááœá±ážáá«á OpenDaylight (áá±á¬áẠODL), á á¬ááá¯á· О Vrnetlab áá«ááá¯á·áá¬ááŒá±á¬áá·áºááá¯á¡ááºáá¬áá²á
- á ááá»á¡ááá¯áá»áž 2: virtual áá¬ááºááœá²áááºážááá±á¬áºááŒáá»ááº
- á ááá»á¡ááá¯áá»áž 3: á áááºááŒáá¯ááºáá¯ááºáá«á áá±á·á¡áááºážáá±á¬ááº
- á ááá»á¡ááá¯áá»áž 4: á áááºááŒáá¯ááºáá¯ááºáá«á Vrnetlab
- á ááá»á¡ááá¯áá»áž 5: ááᯠá¡áá¯á¶ážááŒá¯ á á¬ááá¯á· virtual router ááá¯áá»áááºáááºáá« (Juniper vMX) ááá¯á· ODL
- á ááá»á¡ááá¯áá»áž 6: á¡áá¯á¶ážááŒá¯á router configuration ááá¯ááá°ááŒá®áž ááŒá±á¬ááºážáá²áá«á á á¬ááá¯á· О ODL
- á ááá»á¡ááá¯áá»áž 7: Cisco xRV9000 ááá·áºáá«á
- áá±á¬ááºáá»ááº
- PS
- áá»ááºážááá¯ážá á¬áááºáž
ááá¯á¡ááºáá±á¬á¡ááááá¬
áá±á¬ááºážáá«ážááᯠá á¬ááœááºá¡ááŒá áºáááŒá±á¬ááºážá á±áááºá¡ááœáẠáááºážááá¬ááá¯ááºáá¬á¡áá±ážá áááºá¡áá»ááºá¡áá»áá¯á·ááᯠáá»ááºááŸááºáá¬ážáá«ááẠ(áááºážááá¯á·á¡ááŒá±á¬ááºáž áááºááŸá¯ááá¯ááºááá·áº á á¬áá±ááá·áºááºáá»á¬ážááŸáá·áº)á
á€áááºá ááºááŸá¯ááœááºá ááááºáá® áááá¬ážááẠáá±á¬ááºážáá±á¬ (ááá¯á·áá±á¬áº áááá¯á¡ááºááá±á¬ááº) áá±á¬ááºážáá±á¬ á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá«áá±ážáááº-
á¡ááá¯ááºáž 1: áá®á¡áá¯áá®á¡áá»áá¯á·
- ááœááºáááºá¡áá»áá¯ážá¡á á¬ážá¡á¬ážáá¯á¶ážááᯠá á®áá¶ááá·áºááœá²ááŒááºážááŸáá·áº á¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá±á¬ááºááŒááºážá¡ááœáẠááœáá·áºáá¬ážáá±á¬ SDN ááááºáá±á¬ááºážáá áºáᯠLinux ááá¯áá±á¬ááºáá±ážááŸááºážááŸ
- Java á¡ááœááºáž
- Model-Driven Service Abstraction Level (MD-SAL) ááᯠá¡ááŒá±áá¶á
- ááœááºáááºá ááºáá á¹á ááºážáá»á¬ážá¡ááœáẠRESTCONF APIs á¡ááá¯á¡áá»á±á¬ááºáá¯ááºáá¯ááºááẠYANG áá±á¬áºáááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áááºá
ááœááºáááºá á®áá¶ááá·áºááœá²ááŸá¯á¡ááœáẠá¡ááá module áá áºáá¯á áááºážááŸáá áºááá·áº áá»áœááºá¯ááºááá¯á·ááẠáá»áááºáááºáá¬ážáá±á¬ á ááºáá»á¬ážááŸáá·áº áááºááœááºááá¯ááºáááºááŒá áºáááºá áááºážáááá¯ááºááá¯áẠAPI ááŸáááá·áºá á®áá¶ááá·áºááœá²á
OpenDaylight á¡ááŒá±á¬ááºáž ááá¯ááá¯áááºááŸá¯ááá¯ááºáá«áááºá
- API á ááºážáááºáááááá¬
- ááá¯ážááŸááºážááŒá®ážá¡áá¯á¶ážááŒá¯áááœááºáá°áá±á¬ interface ááá¯
áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá OpenDaylight API ááá¯á· REST áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá±ážááá¯á·áááºá¡ááœáẠáááºážáááºážáá áºáá¯á¡áá±ááŒáá·áº áááºážááᯠá áááºáááºá á¬ážáá«áááºá áááºááá¯ááºááá¯áẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºáááºá ááá¯á·áá±á¬áº Postman ááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááẠá¡ááœááºááŸááºážáááºážááŒá®áž áá»áœááºá¯ááºááá¯á·á áááºááœááºáá»ááºáá»á¬ážááŸáá·áº áá¯á¶ážáááá¯ááºáá®áá«áááºá
áá°ážáá»ááºâáá°áá»á¬ážá¡ááœááºâ âáá±á·áá»áá·áºâáááºâáááºážâááœá± á¡áá»á¬ážááŒá®áž âáá±ážâáá±ážáá¬ážáá«áááºâá
- Docker ááœáẠvirtual router áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯áááºáááááá¬
- áá¶á·ááá¯ážááŸá¯áá»á¬áž- Cisco XRvá Juniper vMXá Arista vEOSá Nokia VSR á áááºááŒáá·áºá
- ááœááºá·áááºážáá²á·á¡áááºážá¡ááŒá áº
á¡ááœááºá áááºáááºá á¬ážá áá¬áá±á¬ááºážáá±á¬áºáááºáž áá°áááááºážáá±á¬ áá°áááá¬áá áºáá¯ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá áá¯á¶ááŸáẠUbuntu 9000 LTS ááœáẠJuniper vMX ááŸáá·áº Cisco xRV20.04 ááá¯áá¯á¶ážááẠáááºážááá¯áá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áá«áááºá
áááºážá¡ááŒá±á¬ááºážááá¯ááá¯áááºááŸá¯ááá¯ááºáááºá
á¡ááá¯ááºáž 2- áá¬ááºááœá²áááºáž
á€áááºáááºážá á¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«á áá áºá¡á¬áž á áá áºááá·áºááœááºážáá«áááº-
áááºááá¯á€áá¯ááºáááºážááá¯áááº
- Juniper vMX áááºáá¬ááẠDocker container (áááºážáááºážá¡á¬ážááŒáá·áº Vrnetlab) ááŸáá·áº á¡áá¯á¶ážá¡áá»á¬ážáá¯á¶áž virtual router á¡ááŒá Ạáá¯ááºáá±á¬ááºáááºá
- ODL Router ááŸáá·áº áá»áááºáááºááŒá®áž áááºážááᯠááááºážáá»á¯ááºááá¯ááºáááºááŒá áºáááºá
- á á¬ááá¯á· áá®ážááŒá¬ážá ááºáá áºáá¯áá±á«áºááœáẠááœáŸáá·áºáááºááŒá®áž áááºážááŸáá áºááá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡áááá·áºáá»á¬ážáá±ážááá¯á·áááºá ODLRouter ááᯠáá»áááºáááºáááº/áááºááŸá¬ážáááºá ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááŒá±á¬ááºážáá²áááºá á áááºááŒáá·áºá
áááááá¬á áá±áááºáá»ááº
Juniper vMX О ODL áááºážááá¯á·á áááºááŒáááºáá±á¬ áááºáááºááŸá¯á¡ááœáẠá¡áááºážá¡ááŒá áºáá»á¬ážá áœá¬ ááá¯á¡ááºáááºá áá áºáá¯áááºáž vMX RAM 6 Gb áá²á· 4 cores áá±á¬ááºážáááºá ááá¯á·ááŒá±á¬áá·áºá "áá²áá®ážááááº" á¡á¬ážáá¯á¶ážááᯠáá®ážááŒá¬ážá ááºáá áºáá¯ááá¯á· ááœáŸá±á·ááẠáá¯á¶ážááŒááºáá²á·ááẠ(Heulett Packard Enterprise MicroServer ProLiant Gen8á Ubuntu 20.04 LTS) Router ááẠáááºážá¡áá±á«áº "áá»á¶áááºáž" ááŒááºážáááŸááá±á¬áºáááºáž áá±ážáááºáá±á¬á ááºážáááºááŸá¯áá»á¬ážá¡ááœáẠáá¯á¶áá±á¬ááºáá±á¬á áœááºážáá±á¬ááºáááºááŸááááºá
á¡ááá¯ááºáž 3- OpenDaylight ááᯠá áá áºááá·áºááœááºážáá«á
á€áá±ážáá¬ážáá»áááºááœáẠODL á áááºááŸááá¬ážááŸááºážááŸá¬ Magnesium SR1 ááŒá áºáááºá
1) Install áá¯ááºáá«á Java OpenJDK á (á¡áá±ážá
áááºááá·áºááœááºážááŸá¯á¡ááœááº
ubuntu:~$ sudo apt install default-jdk
2) áá±á¬ááºáá¯á¶ážáá±á«áºáááºáá±á¬ááºááŸá¯ááá¯ááŸá¬ááŒá®ážáá±á«ááºážáá¯ááºáá¯ááºáá«á ODL
3) áá±á«ááºážáá¯ááºáá¯ááºáá¬ážáá±á¬ archive ááᯠáá
áºááœáá·áºáá«á
4) ááá¬áá²á· directory ááá¯ááœá¬ážáá«á
5) áá
áºááœáŸááºáá«á ./bin/karaf
áá®á¡ááá·áºááŸá¬ ODL á áááºááá·áºáááºááŸáá·áº áá»áœááºá¯ááºááá¯á·ááẠconsole ááœáẠáá»áœááºá¯ááºááá¯á·ááá¯ááºááá¯ááºááœá±á·áááá·áºááẠ(Port 8181 ááᯠááŒááºáááŸáááºáá±á¬ááºáááºá¡ááœááºá¡áá¯á¶ážááŒá¯áááºá áá±á¬ááºááá¯ááºážááœááºáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯ááá·áº)á
ááá¯á·áá±á¬áẠinstall áá¯ááºáá«á ODL á¡ááºá¹áá«áááºáá»á¬ážáááá¯ááá¯áá±á¬áá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá NETCONF О RESTCONF. áá«ááá¯áá¯ááºááá¯á· console ááŸá¬ ODL áá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºáááº-
opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all
áá«á á¡ááá¯ážááŸááºážáá¯á¶áž áááºáááºááŸá¯áá«á ODL ááŒá®ážáá«ááŒá®á (á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááŒáá·áºááŸá¯áá«á
á¡ááá¯ááºáž 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 á០áááºááá¯ááºáᬠrepository ááᯠclone áá¯ááºáá«á
ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git
áááºážááœáŸááºááá¯á·ááœá¬ážáá«á vrnetlab:
ubuntu:~$ cd ~/vrnetlab
á€áá±áá¬ááœáẠáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáá±á¬ script á¡á¬ážáá¯á¶ážááᯠáááºááœá±á·ááá¯ááºáá«áááºá Router á¡áá»áá¯ážá¡á á¬ážáá áºáá¯á á®á¡ááœáẠáááºááá¯ááºáᬠáááºážááœáŸááºáá áºáá¯ááᯠááŒá¯áá¯ááºáá¬ážááŒá±á¬ááºáž áááááŒá¯áá«á
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
Router ááá¯á¶áá áºáá¯áááºáá®ážáá«á
Router áá
áºáá¯á
á®ááᯠáá¶á·ááá¯ážáá¬ážáááºá Vrnetlabá áááºážáááá¯ááºááá¯ááºáá°ážááŒá¬ážáá±á¬ setup áá¯ááºáá¯á¶ážáá¯ááºáááºážááŸááááºá áááºáá±á¬á·áá² Juniper vMX Router ááŒáá·áº .tgz archive ááᯠá¡ááºáá¯ááºáá¯ááºáááºáᬠááá¯á¡ááºáá«ááẠ(áááºážááᯠáááºáá±á«ááºážáá¯ááºáá¯ááºááá¯ááºáá«áááºá make
:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ÐПпОÑÑеЌ в ÑÑÑ ÐŽÐžÑекÑПÑÐžÑ .tgz аÑÑ
Ов Ñ ÑПÑÑеÑПЌ
ubuntu:~$ sudo make
áá¯á¶áá áºáá¯áááºáá±á¬ááºááŒááºážá vMX 10-20 áááá áºááá·áºááŒá¬áááá·áºáááºá áá±á¬áºáá®ááœá¬ážáá±á¬ááºááá¯á·á¡áá»áááºáá±á¬ááºááŒá®á
áá¬ááá¯á· áá®áá±á¬ááºááŒá¬áá±áá¬áá²ááá¯á· áá±ážáááºá
áá¬áá¬ááŒááºááá¯ááŒááºáž
"áá«á VCP (Control Plane) ááᯠááááá¯á¶ážá¡ááŒááẠá áááºááá¯ááºáá¬ááŒá áºááá¯á·á vMX ááŸá¬ VRR VCP á¡ááŒá Ạá¡áá¯ááºáá¯ááºááŸá¬áá¬ážááá¯áá¬ááᯠáá¯á¶ážááŒááºáá²á· config ááá¯ááºááᯠáááºáá«áááºá á¡áááºá Docker á áááºáá»áááºááŸá¬ áá® launch ááᯠáá¯ááºáá±á¬ááºáá²á·áá±ááá·áº VCP ááᯠââááá¯ááá¯áá¬áá«á virtual router ááá¯ááááŸáááá¯ááºáá®áá áºááŒáááºááœááºá¡ááŒá²áááºážááŒááºáááºá áááºáá²á·áááºá ááŒá¬ááŒáá·áºá áœá¬á áááºáá»ááẠ(5 áááá áºááá·áº) ááŒá±á¬áá·áºááᯠDocker image ááá¯áááºáá±á¬ááºá ááºá¡ááœááºáž VCP áááááá¯á¶áž run ááŒááºážááá¯áá¯ááºáá±á¬ááºáá²á·ááŒá®áž Docker build ááᯠrun ááááá±á¬ááŒá±á¬áá·áº - -privileged optioná ááá¯ááá¯áááºááŸá¬ qemu ááẠKVM áá¬á·ááºáá²á¡ááŸáááºááŒáŸáá·áºááŒááºážáááŸááá² á¡áá¯ááºáá¯ááºááá·áºá¡ááœááºááŒá±á¬áá·áº áááºáá±á¬ááºááŸá¯ááẠá¡áá»áááºá¡ááœááºááŒá¬áá«áááºá á€áá¯ááºáááºážá ááºá¡ááœááºážá ááŸááºáááºážá¡áá»á¬ážá¡ááŒá¬áž ááœááºááŸááá±áá±á¬ááŒá±á¬áá·áº á¡áááºážáá¯á¶áž áááºáá¬ááŒá áºáá±áááºááᯠáááºááŒááºááá¯ááºáá«áááºá áááºáá±á¬ááºááŸá¯ááẠááŸááºáá»á¬ážáááºáᯠáááºáá«áááºá áá¯á¶áá áºáá¯á¶ááᯠáá áºááŒáááºáááºáá®ážáá¬ážáá¬ááŒá±á¬áá·áº ááááºááŒá±á¬ááºá áá¬ááá¯ááºáá±ááá·áº áá±á¬áºáá±á¬áºáá»á¬ážáá»á¬ážááᯠááœáŸáá·áºáááºáá¬ážáá«áááºá"
ááŒá®ážáá±á¬áẠáá»áœááºá¯ááºááá¯á·á Router á áá¯á¶ááᯠááŒááºááœá±á·ááá¯ááºáá«áááºá 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 ááœááºááááºáá¬ááᯠááœáá·áºáá«á
áá»áœááºá¯ááºááá¯á·ááẠcommand ááŒáá·áºá áááºáááº-
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
Router ááá¯á· áá»áááºáááºáá±áááºá
router á network interface á IP ááááºá á¬ááᯠá¡á±á¬ááºáá« command ááŒáá·áº ááá°ááá¯ááºáá«áááºá
ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2
áá¯á¶ááŸáẠVrnetlab Router ááœááºá¡áá¯á¶ážááŒá¯áá°áááºáá®ážáááºá 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
áááºážááẠrouter á áá áºááá·áºááœááºážááŒááºážááᯠá¡ááŒá®ážáááºáááºá
á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá±á¬ááºážáá»áá°áá»á¬ážá routers á¡ááœáẠáááºáááºááŒááºážááá¯ááºáᬠá¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááᯠááœáẠááœá±á·ááá¯ááºáá«áááºá
á¡ááá¯ááºáž 5- á á¬ááá¯á·ááá¬áž - router ááᯠOpenDaylight ááá¯á· áá»áááºáááºáá«á
á á¬ááá¯á·ááá¬áž áááºáááºááŒááºážá
ááá·áºááœááºážáááºá á¡ááá®áá±ážááŸááºážááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«á
Router ááᯠODL ááá¯á· áá»áááºáááºááŒááºážá
áááºáá®ážááŒáá¡á±á¬áẠáá¬áž áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
- áá±á¬ááºážááá¯áá»ááºááá¯ááºááẠ(Body áááºááº)-
<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
ááŸáá·áº login/password- admin/adminá ODL ááá¯áááºáá±á¬ááºááẠá€á¡áá¬ááẠááá¯á¡ááºáááº-
- Headers áááºááºááœááºá áá±á«ááºážá
á®ážááŸá
áºáá¯ááá·áºááẠááá¯á¡ááºáááº-
- á¡ááá®áá±ážááŸááºáž/xml ááᯠáááºáá¶áá«á
- á¡ááŒá±á¬ááºážá¡áá¬-á¡ááá®áá±ážááŸááºážá¡áá»áá¯ážá¡á á¬áž/xml
áá»áœááºá¯ááºááá¯á·ááá±á¬ááºážááá¯ááŸá¯ááᯠááŒá¯áá¯ááºááŒá®ážáá«ááŒá®á ááá¯á·áá±ážáá«áááºá á¡áá¬á¡á¬ážáá¯á¶ážááᯠááŸááºáááºá áœá¬ á á®á ááºáááºááŸááºáá¬ážáá«áá áá»áœááºá¯ááºááá¯á·ááẠ"201 Created" á¡ááŒá±á¡áá±ááᯠááŒááºáá±ážááá·áºáááº-
áá®áá±á¬ááºážááá¯áá»ááºá áá¬áá²á
áá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºážááœáẠnode ááá¯áááºáá®ážáááºá ODL áá»áœááºá¯ááºááá¯á·áááºáá±á¬ááºááá¯áá±á¬ real router á parameters áá»á¬ážá
xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"
áááºážááá¯á·ááẠá¡ááœááºážááá¯ááºážá¡áááºááœááºáá»á¬ážááŒá áºáááºá XML ááᯠ(XML namespace) á¡ááá¯á· ODL áááºážááẠnode ááá¯áááºáá®ážáááºááŸáá·áºá¡áá®á
ááá¯á·á¡ááŒáẠrouter áá¡áááºááẠá¡áá®ážáá®ážááŒá áºáááºá node-idrouter ááááºá ᬠ- á¡áááºááŸáẠáá«áá±á«áºááŸá¬á
á
áááºáááºá
á¬ážá
áá¬á¡áá±á¬ááºážáá¯á¶ážá
á¬ááŒá±á¬ááºážá áá±á¬ááºáá¯á¶ážáá
áºáá¯áá«á Schema-cache-directory ááá¯ááºá¡á¬ážáá¯á¶ážááᯠáá±á«ááºážáá¯ááºáá¯ááºáá¬ážááá·áº áááºážááœáŸááºáá
áºáᯠáááºáá®ážáá±ážáááºá YANG Schema áá»áááºáááºáá¬ážáá±á¬ router áááºážááá¯á·ááá¯áááºááŸá¬ááœá±ááá¯ááºáááºá $ODL_ROOT/cache/jun01_cache
.
router ááá»áááºáááºááŸá¯ááá¯á á áºáá±ážááŒááºážá
áááºáá®ážááŒáá¡á±á¬áẠGET áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
- ááœáá·áºááŒá¯áá»ááºáááºááºááœááºá áááºááẠáááºááŸááºáá»ááºááᯠáááºááŸááºááá«áááºá
Basic Auth
ááŸáá·áº login/password- admin/adminá
áá»áœááºáá±á¬áºááá¯á· ááá¯á·áá±ážáá«áááºá "200 OK" á á¡ááŒá±á¡áá±ááŸáá·áº á ááºáá á¹á ááºážá០áá¶á·ááá¯ážáá±ážáá¬ážááá·áº á á¬áááºážáá áºáᯠáááŸáááá·áºáááºá YANG Schema:
ááŸááºáá»ááº: áá±á¬ááºáá¯á¶ážááá¯ááŒáá·áºáááºá áá»áœááºá¯ááºáááá á¹á ááœáẠááœááºáá»ááºááŒá®ážáá±á¬áẠ10 áááá áºááá·áº á á±á¬áá·áºááẠááá¯á¡ááºáá«áááºá áá¬ážá¡á¬ážáá¯á¶ážá¡áá YANG á¡á á®á¡á áẠunload on ODL. áá®á¡áá áá»á±á¬áºááŒá±ááá¯ááºáᬠGET query áááºá¡á±á¬ááºáá«á¡ááá¯ááºážááŒááááá·áºáááºá
Router ááá¯áá»ááºáá«á
áááºáá®ážááŒáá¡á±á¬áẠáá»ááºááẠáá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
- ááœáá·áºááŒá¯áá»ááºáááºááºááœááºá áááºááẠáááºááŸááºáá»ááºááᯠáááºááŸááºááá«áááºá
Basic Auth
ááŸáá·áº login/password- admin/adminá
á¡ááá¯ááºáž 6- router configuration ááá¯ááŒá±á¬ááºážáá«á
ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááá°ááŒááºážá
áááºáá®ážááŒáá¡á±á¬áẠGET áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
- ááœáá·áºááŒá¯áá»ááºáááºááºááœááºá áááºááẠáááºááŸááºáá»ááºááᯠáááºááŸááºááá«áááºá
Basic Auth
ááŸáá·áº login/password- admin/adminá
ááá¯á·áá±ážáá«áááºá á¡ááŒá±á¡áá± "200 OK" ááŸáá·áº router configuration ááᯠáááºáá¶ááá·áºáááº-
ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá áºáᯠáááºáá®ážáá«á
á¥ááá¬á¡áá±ááŒáá·áºá á¡á±á¬ááºáá«ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááá¯áááºáá®ážááŒá®áž áááºážááá¯ááœááºážáá¶ááŒáá«á áá¯á·á
protocols {
bgp {
disable;
shutdown;
}
}
áááºáá®ážááŒáá¡á±á¬áẠPOST áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
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
- áá±á¬ááºážááá¯áá»ááºááá¯ááºááẠ(Body áááºááº)-
<bgp xmlns="http://yang.juniper.net/junos/conf/protocols"> <disable/> <shutdown> </shutdown> </bgp>
- ááœáá·áºááŒá¯áá»ááºáááºááºááœááºá áááºááẠáááºááŸááºáá»ááºááᯠáááºááŸááºááá«áááºá
Basic Auth
ááŸáá·áº login/password- admin/adminá - Headers áááºááºááœááºá áá±á«ááºážá
á®ážááŸá
áºáá¯ááá·áºááẠááá¯á¡ááºáááº-
- á¡ááá®áá±ážááŸááºáž/xml ááᯠáááºáá¶áá«á
- á¡ááŒá±á¬ááºážá¡áá¬-á¡ááá®áá±ážááŸááºážá¡áá»áá¯ážá¡á á¬áž/xml
áá±ážááá¯á·ááŒá®ážáá±á¬ááºá áááºážááá¯á·ááẠ"204 á¡ááŒá±á¬ááºážá¡áá¬áááŸááá±á¬ á¡ááŒá±á¡áá±" ááᯠáááŸáááá·áºáááºá
ááœá²á·á ááºážááŸá¯áá¯á¶á ᶠááŒá±á¬ááºážááœá¬ážááŒá±á¬ááºáž á á áºáá±ážáááºá áááºááẠááááºáá±ážááŒááºážáá»ááºááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááá¯á·áá±á¬áº á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠrouter ááœáẠconfigure áá¯ááºáá¬ážáá±á¬ protocols áá»á¬ážá¡ááŒá±á¬ááºážáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠááŒáááá·áº áá±á¬ááºáááºáá áºáá¯ááᯠáááºáá®ážáá«áááºá
áááºáá®ážááŒáá¡á±á¬áẠGET áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
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
ááŸáá·áº login/password- admin/adminá
áá±á¬ááºážááá¯áá»ááºááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«ááá¯á·ááᯠááœá±á·ááááá·áºáááº-
ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááŒá±á¬ááºážáá²áá«á
BGP áááá¯ááá¯áá±á¬á¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºááᯠááŒá±á¬ááºážááŒáá·áºáá¡á±á¬ááºá áá»áœááºá¯ááºááá¯á·ááá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŒá®ážáá±á¬ááºá áááºážááẠá€áá²á·ááá¯á·ááŒá áºáááá·áºáááº-
protocols {
bgp {
disable;
}
}
áááºáá®ážááŒáá¡á±á¬áẠáá¬áž áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
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
- áá±á¬ááºážááá¯áá»ááºááá¯ááºááẠ(Body áááºááº)-
<protocols xmlns="http://yang.juniper.net/junos/conf/protocols"> <bgp> <disable/> </bgp> </protocols>
- ááœáá·áºááŒá¯áá»ááºáááºááºááœááºá áááºááẠáááºááŸááºáá»ááºááᯠáááºááŸááºááá«áááºá
Basic Auth
ááŸáá·áº login/password- admin/adminá - Headers áááºááºááœááºá áá±á«ááºážá
á®ážááŸá
áºáá¯ááá·áºááẠááá¯á¡ááºáááº-
- á¡ááá®áá±ážááŸááºáž/xml ááᯠáááºáá¶áá«á
- á¡ááŒá±á¬ááºážá¡áá¬-á¡ááá®áá±ážááŸááºážá¡áá»áá¯ážá¡á á¬áž/xml
ááááºá¡áá¯á¶ážááŒá¯ááŒááºážá GET áá±á¬ááºážááá¯áá»ááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááœá±á·ááááº-
ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠáá»ááºáá«á
áááºáá®ážááŒáá¡á±á¬áẠáá»ááºááẠáá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
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
ááŸáá·áº login/password- admin/adminá
áá±á«áºáá²á·á¡áá« GET áááá¯ááá¯áá±á¬áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááŒáá·áº áá±á¬ááºážááá¯áá«á á¡á±á¬ááºáá«ááá¯á·ááᯠááœá±á·ááá«áááº-
ááŒááºá·á áœááº:
ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááŒá±á¬ááºážáá²áááºá¡ááœáẠáá±á¬ááºážááá¯áá»ááºááá¯ááºáááºááᯠáá±á¬áºáááºááá¯á· áá±ážááá¯á·ááẠáááá¯á¡ááºáá«á XML ááá¯. áááºážááᯠformat ááŒáá·áºáááºážáá¯ááºáá±á¬ááºááá¯ááºáááºá JSON.
áá®ááá¯áá¯ááºááá¯á·á á¥ááá¬á áá±ážááŒááºážááŸá¯ááŸá¬ áá¬áž ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááŒá±á¬ááºážáá²ááẠáá±á¬ááºážááá¯áá»ááºááá¯ááºáááºááᯠá¡á á¬ážááá¯ážáá«-
{
"junos-conf-protocols:protocols": {
"bgp": {
"description" : "Changed in postman"
}
}
}
Headers áááºááºááŸá áá±á«ááºážá á®ážáá»á¬ážááᯠá¡á±á¬ááºáá«á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááẠááá±á·áá«ááŸáá·áºá
- áá»áŸá±á¬ááºááœáŸá¬ / json ááá¯áááºáá¶áá«á
- á¡ááŒá±á¬ááºážá¡áá¬-á¡ááá®áá±ážááŸááºáž/json á¡áá»áá¯ážá¡á á¬áž
áá±ážááá¯á·ááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«ááááºááᯠáááŸááááá·áºááẠ(áá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯á á¡ááŒá±ááᯠááŒáá·áºáá«á GET áá±á¬ááºážááá¯áá»ááºááá¯):
á¡ááá¯ááºáž 7- Cisco xRV9000 ááá¯ááá·áºááŒááºážá
áá«ááá¯á·á¡á¬ážáá¯á¶áž Juniper á¡ááŒá±á¬ááºážá áá¯ááºááẠJuniper? Cisco á¡ááŒá±á¬ááºáž ááŒá±á¬ááŒáá¡á±á¬ááºá
xRV9000 áá¬ážááŸááºáž 7.0.2 (8Gb RAM ááŸáá·áº 4 cores ááá¯á¡ááºááá·áº áá¬ážáá²áá
áºáá±á¬ááºááᯠááœá±á·ááŸááá²á·áááºá áááºážááᯠááœááºááœááºáááºááẠááááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºááœááºáá«á
ááœááºááááºáá¬ááᯠááŒá±ážáááºá
Docker container ááá¯áááºáá®ážááŒááºážáá¯ááºáááºážá
ááºááẠJuniper ááŸáá·áºáááºááœá±á·á¡á¬ážááŒáá·áºááá°áá«á á¡áá¬ážáá°á áá»áœááºá¯ááºááá¯á·ááẠRouter ááŸáá·áºá¡áá° .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
Router ááᯠOpenDaylight ááá¯á· áá»áááºáááºááŒááºážá
áá±á«ááºážááá·áºááŒááºážááẠvMX ááŸáá·áº áá¯á¶ážáá¡áá¬ážáá°ááŒá
áºáááºá áá¬áááºááœá±ááŒá±á¬ááºážááá¯á·áá²ááá¯áááºá
áá¬áž áá±á¬ááºážááá¯áá»ááºááá¯:
ááááŒá¬ááŒá®ážá០áá¯ááºážáááºáá«á GET á¡áá¬á¡á¬ážáá¯á¶ážáá»áááºáááºááŸá¯ááŸááááŸáá
á
áºáá±ážááẠquery-
ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááŒá±á¬ááºážáá²áá«á
á¡á±á¬ááºáá«ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠá ááœáá·áºááŒáá«á áá¯á·á
!
router ospf LAB
mpls ldp auto-config
!
áááºáá®ážááŒáá¡á±á¬áẠPOST áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
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
- áá±á¬ááºážááá¯áá»ááºááá¯ááºááẠ(Body áááºááº)-
{ "processes": { "process": [ { "process-name": "LAB", "default-vrf": { "process-scope": { "ldp-auto-config": [ null ] } } } ] } }
- ááœáá·áºááŒá¯áá»ááºáááºááºááœááºá áááºááẠáááºááŸááºáá»ááºááᯠáááºááŸááºááá«áááºá
Basic Auth
ááŸáá·áº login/password- admin/adminá - Headers áááºááºááœááºá áá±á«ááºážá
á®ážááŸá
áºáá¯ááá·áºááẠááá¯á¡ááºáááº-
- áá»áŸá±á¬ááºááœáŸá¬ / json ááá¯áááºáá¶áá«á
- á¡ááŒá±á¬ááºážá¡áá¬-á¡ááá®áá±ážááŸááºáž/json á¡áá»áá¯ážá¡á á¬áž
ááœááºáá»ááºááŒá®ážáá±á¬ááºá áááºážááá¯á·ááẠ"204 á¡ááŒá±á¬ááºážá¡áá¬áááŸá" áá°áá±á¬ á¡áá±á¡áá¬ážááᯠáááŸáááá·áºáááºá
áá«ááá¯á·áá¬ááœá±ááá² áááºážá
á
áºááŒáá·áºáá¡á±á¬ááºá
áá«ááá¯áá¯ááºááá¯á· áá»áœááºáá±á¬áºááá¯á· áááºáá®ážáááºá GET áá±á¬ááºážááá¯áá»ááºááá¯:
- Query string-
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
ááŸáá·áº login/password- admin/adminá
ááœááºáá»ááºááŒá®ážáá±á¬ááºá áááºáááºá¡á±á¬ááºáá«á¡ááá¯ááºážááŒááºááá«áááº:
configuration ááá¯áááºááŸá¬ážáááºá¡áá¯á¶ážááŒá¯áá«á áá»ááºáááº:
- Query string-
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
ááŸáá·áº login/password- admin/adminá
áá±á¬ááºáá»ááº
á
á¯á
á¯áá±á«ááºážá áááºáááááŒá¯áááá²á·ááá·áºá¡ááá¯ááºážá Cisco ááŸáá·áº Juniper ááᯠOpenDaylight ááá¯á· áá»áááºáááºááŒááºážá¡ááœáẠáá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬áž ááœá²ááŒá¬ážááŒááºážáááŸááá« - áááºážááẠáá®ááœááºáááºáá®ážááá¯ááºááŸá¯á¡ááœáẠáá»ááºááŒáá·áºáá±á¬áááºáááºááᯠááœáá·áºáá±ážáá«áááºá ááœááºáááºá¡á
áááºá¡ááá¯ááºážá¡á¬ážáá¯á¶ážá ááœá²á·á
ááºážááŸá¯áá¯á¶á
á¶á
á®áá¶ááá·áºááœá²ááŸá¯ááŸá
áááºááŒá®áž ááá·áºááá¯ááºááá¯ááºááœááºáááºáá°áá«ááá»á¬ážááᯠáááºáá®ážááŒááºážááŒáá·áº á¡áá¯á¶ážáááºáá«áááºá
á€áááºáááºážá
á¬ááœáẠOpenDaylight ááᯠá¡áá¯á¶ážááŒá¯á ááœááºáááºá
ááºáá
á¹á
ááºážáá»á¬ážááŸáá·áº ááẠá¡ááŒááºá¡ááŸáẠáá¯á¶á·ááŒááºááá¯ááºáá¯á¶á á¡ááá¯ážááŸááºážáá¯á¶áž á¥ááá¬áá»á¬ážááᯠáá»áœááºá¯ááºáá±ážáá¬ážáá«áááºá áá¶áááááŸááá²á á¡áááºáá±á¬áºááŒáá« á¥ááá¬áá»á¬ážá០áá±ážááŒááºážáá»ááºáá»á¬ážááᯠááá¯ááá¯ááŸá¯ááºááœá±ážá
á±ááŒá®áž áá±á¬ááºá
áºáá
áºáá»ááºááŸáááºáá¯á¶ááŒáá·áº áááºáá±á¬ááºááŸá¯áá
áºáá¯áá¯á¶ážááᯠá
áá
áºááá·áºááœááºážááá¯ááºááẠ- á¡áá¬á¡á¬ážáá¯á¶ážááẠááá·áºá
áááºáá°ážááŒáá·áºáᬠá¡ááá·áºá¡áááºááŸáááẠ*
áááºáááºâŠ
PS
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá¯ááºááááºááááŒá®ážááŒá
áºááẠááá¯á·ááá¯áẠááá·áºáá»ááºáááºá¡áá±ááŸáá·áº ODL áá
áááºáááá¬ááºáá²ááá¯á· áá
áºááŒá¯ááºááœá¬ážáá«áá ááá¯á·áá±á¬áẠODL controller áá±á«áºááŸá applications áá»á¬ážáááºáá®ážááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá áááºá
áááºááá¯ááºáá«áááºá
á¡á±á¬ááºááŒááºáá±á¬ á ááºážáááºááŸá¯áá»á¬ážá
ááá¯ážáá¬áž
Vrnetlab- KVM ááŸáá·áº Docker ááᯠá¡áá¯á¶ážááŒá¯á ááœááºáááºáá»á¬ážááᯠá¡áá¯áá°áá«á /Brian Linkletter- OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, Et al
- YANG / Benoît Claiseá Loe Clarkeá Jan Lindblad ááá¯á·ááŸáá·áºá¡áá° ááœááºáááºá¡á á®á¡á ááºáá¯ááºáá±á¬ááºááá¯ááºááŸá¯
- XML ááᯠáááºáá°ááŒááºážá áá¯ááááá¯ááºáá±ááŒááºáž / Erik T. Ray
- áááá±á¬ááºáá±á¬ DevOps / Jennifer Davisá Ryn Daniels
source: www.habr.com