ืืื ืืขื ืึทืจืืืงื, ืืื ืืืขื ืืืืึทืื ืืืจ ืืื ืฆื ืื ืกืืึทืืืจื ืึธืคึผืขื ืืืืืืื ืฆื ืึทืจืืขืื ืืื ื ืขืฅ ืืืกืจืืื, ืืื ืืืื ืืืืึทืื ืืื ืฆื ื ืืฆื ืคึผืึธืกืืืึทื ืืื ืคึผืฉืื RESTCONF ืจืืงืืืขืก, ืืขื ืขืงืืืืคึผืืขื ื ืงืขื ืขื ืืืื ืงืึทื ืืจืึธืืื. ืืืจ ืืืขืื ื ืืฉื ืึทืจืืขืื ืืื ืืึทืื ืืืึทืจื, ืึธืืขืจ ืึทื ืฉืืึธื ืืืจ ืืืขืื ืฆืขืืืืงืืขื ืงืืืื ืืืืจืืืึทื ืืึทืืึธืจืึทืืึธืจืืขืก ืืื ืึท ืืืื ืจืึทืืืขืจ Vrnetlab ืึทืจืืืขืจ ืืืื ืื ืงืกื ืืืงืก ืืฅ.
ืืื ืืืขื ืืืืึทืื ืื ืืืืืืื ืกืขืืืื ืืก ืขืจืฉืืขืจ ื ืืฆื ืืขื ืืืึทืฉืคึผืื ืคืื ืึท ืจืึทืืืขืจ ืืืฉืื ืืคึผืขืจ ืืืืงืก 20.1ืจ1.11, ืืื ืืขืืึธืื ืืืจ ืคืึทืจืืืืึทืื ืขืก ืืื ืื ืืึทืฉืืขืืืงื ืกืืกืงืึธ ืงืกืจืื9000 7.0.2.
ืฆืืคืจืืื
- ืคืืจืืื ืื ืืืืกื
- ะงะฐััั ืงืกื ืืืงืก: ืืืกืงืืืืจื ืืขืงืืฆืขืจ OpenDaylight (ืืขืจื ืึธื ืึธืื), ืคึผืึธืกืืืึทื ะธ Vrnetlab ืืื ืืืึธืก ืืึธื ืืืจ ืืึทืจืคึฟื ืืื
- ะงะฐััั ืงืกื ืืืงืก: ืืึทืฉืจืืึทืืื ื ืคืื ืื ืืืืจืืืึทื ืืึทืืึธืจืึทืืึธืจืืข
- ะงะฐััั ืงืกื ืืืงืก: ืงืึทืกืืึทืืืื ืึธืคึผืขื ืืืืืืื
- ะงะฐััั ืงืกื ืืืงืก: ืงืึทืกืืึทืืืื Vrnetlab
- ะงะฐััั ืงืกื ืืืงืก: ืืืจื ื ืืฆื ืคึผืึธืกืืืึทื ืคืึทืจืืื ืื ืืืืจืืืึทื ืจืึทืืืขืจ (ืืืฉืื ืืคึผืขืจ ืืืืงืก) ืฆื ืึธืื
- ะงะฐััั ืงืกื ืืืงืก: ืืึทืงืืืขื ืืื ืืืืฉื ืื ืจืึทืืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืฆื ืคึผืึธืกืืืึทื ะธ ืึธืื
- ะงะฐััั ืงืกื ืืืงืก: ืืืืื Cisco xRV9000
- ืกืึธืฃ
- ืคึผืก
- ืืืืืืืืจืืคืืข
ืคืืจืืื ืื ืืืืกื
ืึผืื ืืขืจ ืึทืจืืืงื ืืึธื ื ืืฉื ืคึฟืึทืจืืืึทื ืืืขื ืืื ืึท ืืืืื, ืืึธื ืืื ืืืืขืจืืขืืึธืื ืขืืืขืืข ืืขืื ืืฉืข ืคึผืจืืื (ืืื ืคึฟืึทืจืืื ืืื ืืขื ืฆื ืืืืขืจืึทืืืจ ืืืึผ ืืขื ืงืขื ืืืืขื ืขื ืืืขืื ืืื).
ืืื ืืขื ืงืฉืจ, ืืื ืคืึธืจืฉืืึธืื ืืืจ ืืขืืขืก ืืืึธืก ืขืก ืืืึธืื ืืืื ืืื (ืึธืืขืจ ืึผืืขื ื ืื ื ืืืืืง) ืฆื ืืืืกื ืืืืืขืจ ืืืืขื ืขื:
NETCONF ,RESTCONF ืงืกืื /ืืืฉืกืึธื ืืึทื ื ืืงืขืจืืืง ืคืืจืฉืืื ื ืคืื Docker
ืืืื 1: ืขืืืขืืข ืืขืึธืจืืข
- ืึทื ืึธืคึฟื SDN ืคึผืืึทืืคืึธืจืืข ืคึฟืึทืจ ืึธื ืคืืจืื ื ืืื ืึธืืึทืืืืืื ื ืึทืืข ืืื ืื ืคืื ื ืขืืืืึธืจืงืก, ืืขืฉืืืฆื ืืืจื ืืื ืืงืก ืืืืงืืคึผืขืืืข
- Java ืื
- ืืึทืืืจื ืืืืฃ ืืึธืืขื-ืืขืืจืืื ืกืขืจืืืืก ืึทืืกืืจืึทืงืืืึธื ืืืจืื (MD-SAL)
- ื ืืฆื YANG ืืึธืืขืืก ืฆื ืืืืืึธืืึทืืืฉ ืืืฉืขื ืขืจืืื RESTCONF API ืคึฟืึทืจ ื ืขืฅ ืืขืืืืกืขืก
ืื ืืืืคึผื ืืึธืืืืข ืคึฟืึทืจ ื ืขืฅ ืคืึทืจืืืึทืืืื ื. ืขืก ืืื ืืืจื ืขืก ืึทื ืืืจ ืืืขืื ืืืขืจืืขืื ืืื ืคืืจืืื ืื ืืขืืืืกืขืก. ืืขืจืืื ืืืจื ืืืื ืืืืืขื ืข API.
ืืืจ ืงืขื ื ืืืืขื ืขื ืืขืจ ืืืขืื OpenDaylight
- ืึทืคึผื ืืขืกืืื ื ืืขืฆืืึทื
- ืคึผืฉืื ืืื ืืจืื ื ืฆื ื ืืฆื ืฆืืืื ื
ืืื ืืื ืืืขืจ ืคืึทื, ืืืจ ืืขื ืขื ืืื ืืขืจืขืกืืจื ืืื ืขืก ืืื ืึท ืืืื ืฆื ืฉืืงื REST ืจืืงืืืขืก ืฆื ืื OpenDaylight API. ืืืจ ืงืขื ืขื, ืคืื ืงืืจืก, ืฉืืงื ืจืืงืืืขืก ืืึทื ืืืึทืื, ืึธืืขืจ ืืื ืคึผืึธืกืืืึทื ืึทืืฅ ืงืืงื ืืืืขืจ ืงืืึธืจ ืืื ืคึผืึทืกืืง ืืื ืืืขืจ ืฆืืื ืืืฉืืืืืขืก.
ืคึฟืึทืจ ืื ืืืืก ืืืืื ืฆื ืืจืึธืื: ืึท ืคึผืืึทืฅ ืคืื ืืจืืื ืื ื ืืึทืืขืจืืึทืืก ืืขื ืขื ืืขืฉืจืืื ืืืืฃ ืขืก (
- ืืขืฆืืึทื ืคึฟืึทืจ ืืืคึผืืืืื ื ืืืืจืืืึทื ืจืึธืืืขืจืก ืืื ืืึธืงืงืขืจ
- ืฉืืืฆื: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ืขืืง.
- ืขืคืขื ืขื ืืงืืจ
ื ืืืืขืจ ืืฉืืงืึทืืืข ืึธืืขืจ ืงืืืื ืืืงืื ื ืงืืืืข. ืืื ืืื ืืืขืจ ืคืึทื, ืืืจ ืืืขืื ื ืืฆื ืขืก ืฆื ืืืืคื Juniper vMX ืืื Cisco xRV9000 ืืืืฃ ืึท ืจืขืืืืขืจ Ubuntu 20.04 LTS.
ืืืจ ืงืขื ืขื ืืืืขื ืขื ืืขืจ ืืืขืื ืืื ืืื
ืืืื 2: ืืึทื
ืืื ืืขื ืืืืึธืจืืึทื, ืืืจ ืฉืืขืื ืื ืคืืืืขื ืืข ืกืืกืืขื:
ืืื ืขืก ืืืึธืจืงืก
- ืืืฉืื ืืคึผืขืจ ืืืืงืก ืฉืืืืื ืืื ืืึธืงืงืขืจ ืงืึทื ืืืื ืขืจ (ืืืจื ืืืื Vrnetlab) ืืื ืคืึทื ืืงืฉืึทื ื ืืื ืื ืืขืจืกื ืคึผืจืึธืกื ืืืืจืืืึทื ืจืึทืืืขืจ.
- ืึธืื ืงืึธื ื ืขืงืืขื ืฆื ืื ืจืึทืืืขืจ ืืื ืึทืืึทืื ืืืจ ืฆื ืงืึธื ืืจืึธืืืจื ืขืก.
- ืคึผืึธืกืืืึทื ืืึธื ืืฉื ืืืืฃ ืึท ืืึทืืื ืืขืจ ืืึทืฉืื ืืื ืืืจื ืขืก ืืืจ ืฉืืงื ืงืึทืืึทื ืื ืึธืื: ืฆื ืคืึทืจืืื ืื / ืึทืจืึธืคึผื ืขืืขื ืื ืจืึทืืืขืจ, ืืืืฉื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืขืืง.
ืงืึธืืขื ืืึทืจ ืืืืฃ ืื ืืืื ืคืื ืื ืกืืกืืขื
ืืืฉืื ืืคึผืขืจ ืืืืงืก ะธ ืึธืื ืืึทืจืคื ืืึทื ืฅ ืึท ืคึผืืึทืฅ ืคืื ืจืขืกืืจืกื ืคึฟืึทืจ ืืืืขืจ ืกืืึทืืื ืึธืคึผืขืจืึทืฆืืข. ื ืึธืจ ืืืื ืขืจ vMX ืคืืจืืื ืื 6 ืืืืืืืื ืคืื ืืึทืจืึทื ืืื 4 ืงืึธืจืขืก. ืืขืจืืืขืจ, ืขืก ืืื ืืึทืฉืืึธืกื ืฆื ืึทืจืืืขืจืคืืจื ืึทืืข ืื "ืฉืืืขืจืืืืืฅ" ืฆื ืึท ืืึทืืื ืืขืจ ืืึทืฉืื (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). ืืขืจ ืจืึทืืืขืจ, ืคืื ืงืืจืก, ืืื ื ืืฉื "ืคืืืขื" ืืืืฃ ืขืก, ืึธืืขืจ ืื ืคืึธืจืฉืืขืืื ื ืืื ืืขื ืื ืคึฟืึทืจ ืงืืืื ืืงืกืคึผืขืจืึทืืึทื ืฅ.
ืืืื 3: ืืึทืฉืืขืืืง OpenDaylight
ืื ืงืจืึทื ื ืืืขืจืกืืข ืคืื โโโโODL ืืื ืืขืจ ืฆืืื ืคืื ืืขื ืฉืจืืืื ืืื Magnesium SR1
1) ืื ืกืืึทืืืจื Java ืขืคึฟื 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 ืงืืึธืื ืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืจืืคึผืึทืืึทืืึธืจื ืคึฟืื ืืืืืื:
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, ืืื ืืืึทื ืืืืืขื ืข ืืื ืฆืืง ืกืขืืึทืคึผ ืคึผืจืึธืฆืขืืืจ. ืืืขื ืืืฉืื ืืคึผืขืจ ืืืืงืก ืืืจ ื ืึธืจ ืืึทืจืคึฟื ืฆื ืฆืืคึฟืขืืืงืขืจ ืื .ืืื ืึทืจืงืืืื ืืื ืื ืจืึทืืืขืจ (ืืืจ ืงืขื ืขื ืืจืืคืงืืคืืข ืขืก ืคึฟืื make
:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ะะพะฟะธััะตะผ ะฒ ััั ะดะธัะตะบัะพัะธั .tgz ะฐัั
ะธะฒ ั ัะพััะตัะพะผ
ubuntu:~$ sudo make
ืืืืืื ื ืึท ืืืื vMX ืืืขื ื ืขืืขื ืืืขืื 10-20 ืืื ืื. ืขืก ืืื ืฆืืื ืฆื ืืืื ืงืืืคื ืงืึทืืืข!
ืคืืจืืืืก ืึทืืื ืืึทื ื, ืืืจ ืคืจืขืื?
ืืืืขืจืืขืฆืื ื
"ืืืก ืืื ืืืืึทื ืื ืขืจืฉืืขืจ ืืึธื ืื VCP (ืงืึธื ืืจืึธื ืคึผืืึทื ืข) ืืื ืกืืึทืจืืขื, ืขืก ืืืืขื ื ืึท ืงืึธื ืคืื ืืขืงืข ืืืึธืก ืืืืขืจืืึทื ื ืฆื ืขืก ืืืขื ืืืืคื ืืื ืึท VRR VCP ืืื ืืืืงืก. ืืื ืึทืืขืจ, ืืขื ืงืึทืืขืจ ืืื ืืขืฉืขื ืืขืฉืึทืก Docker ืกืืึทืจืืึทืคึผ, ืึธืืขืจ ืืึธืก ืืขื ื ืึทื ืื VCP ืืื ืฉืืขื ืืืง ืจืืกืืึทืจืืื ืึทืืึธื ืืืืืขืจ ืื ืืืืจืืืึทื ืจืึทืืืขืจ ืืื ืื ืืืฆื, ืจืืืึทืืืื ื ืืื ืึท ืืึทื ื ืฉืืืืื ืฆืืื (ืืืขืื 5 ืืื ืื) ืืืฆื ืืขืจ ืขืจืฉืืขืจ ืืืืคื ืคืื ืื VCP ืืื ืืืจืืืขืงืึธืื ืืขืฉืึทืก ืื ืืืืขื ืคืื ืื ืืึธืงืงืขืจ ืืืื, ืืื ืืื ื ืื ืืึธืงืงืขืจ ืืืืขื ืงืขื ืขื ื ืื ืืืื ืืืืคื ืืื ืื - -ืคึผืจืืืืืืขืืืฉื ืึธืคึผืฆืืข, ืืึธืก ืืืื ืึทื ืงืขืื ืึทืจืืขื ืึธื ืงืืื ืืึทืื ืืืึทืจื ืึทืงืกืขืืขืจืืืฉืึทื ืืื ืึทืืื ืื ืืืืขื ื ืขืื ืึท ืืืืขืจ ืืึทื ื ืฆืืื. ืืขืฉืึทืก ืืขื ืคึผืจืึธืฆืขืก, ืึท ืคึผืืึทืฅ ืคืื ืืึธืืก ืืขื ืขื ืจืขืืืืืึทื, ืึทืืื ืืืจ ืงืขื ืขื ืืขื ืืืึธืก ืืื ืืขืืื ืืขื ืืืืฃ. ืืื ื ืืฉื ืึทืืื ืกืงืขืจื ืืืืึทื ืืืจ ืืึทืื ืึท ืืืื ืึทืืึธื, ืึธืืขืจ ืืืจ ืงืึทืืขืจ ืคืืืข."
ื ืึธื ืืืจ ืงืขื ืขื ืืขื ืื ืืืื ืคืื ืืื ืืืขืจ ืจืึทืืืขืจ ืืื ืืึธืงืงืขืจ:
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
ืงืึทื ืขืงืืื ื ืฆื ืื ืจืึทืืืขืจ
ืื IP ืึทืืจืขืก ืคืื ืื ืจืึทืืืขืจ ื ืขืฅ ืฆืืืื ื ืงืขื ืขื ืืืื ืืืงืืืขื ืืื ืื ืคืืืืขื ืืข ืืึทืคึฟืขื:
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
ืคึผืึธืกืืืึทื ืื ืกืืึทืืืจืื ื
ืฆื ืื ืกืืึทืืืจื, ื ืึธืจ ืืจืืคืงืืคืืข ืื ืึทืคึผืืึทืงืืืฉืึทื
ืงืึทื ืขืงืืื ื ืึท ืจืึทืืืขืจ ืฆื ODL
ืืึธืืืจ ืืึทืื PUT ืืขืื:
- ืึธื ืคึฟืจืขื ืฉืืจืืงื:
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
- ืืื ืืึทืื-ืืืคึผ ืึทืคึผืืึทืงืืืฉืึทื/ืงืกืื
ืืื ืืืขืจ ืืงืฉื ืืื ืืขืืืื. ืืืจ ืฉืืงื. ืืืื ืึทืืฅ ืืื ืงืึทื ืคืืืืขืจื ืจืืืืืง, ืืืจ ืืึธื ืฆืืจืืงืงืืืขื ืื ืกืืึทืืืก "201 Created":
ืืืึธืก ืืื ืืขื ืืงืฉื ืืึธื?
ืืืจ ืืึทืื ื ืึธืืข ืื ืึธืื ืืื ืื ืคึผืึทืจืึทืืขืืขืจืก ืคืื ืื ืคืึทืงืืืฉ ืจืึทืืืขืจ ืืืจ ืืืืื ืฆื ืึทืงืกืขืก.
xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"
ืืืก ืืขื ืขื ืื ืขืจืืขื ื ืึธืืขื ืกืคึผืืืกืึทื ืงืกืื (ืงืกืื ื ืึทืืขืกืคึผืึทืกืข) ืคึฟืึทืจ ืึธืื ืืืื ืืืึธืก ืขืก ืงืจืืืืฅ ื ืึธืืข.
ืืืืึทืืขืจ, ืจืืกืคึผืขืงืืืืืื, ืื ื ืึธืืขื ืคืื ืื ืจืึทืืืขืจ ืืื ื ืึธืืข-ืื, ืจืึทืืืขืจ ืึทืืจืขืก - ืืึทืืขืืึธืก ืืื ืึทืืื ืืืืฃ.
ืื ืืขืจืกื ืืฉืืงืึทืืืข ืฉืืจื ืืื ืื ืืขืฆืืข. ืกืืฉืขืืึท-ืงืึทืฉ-ืืขืจืืืืึทื ืงืจืืืืฅ ืึท ืืืขืืืืืึทืืขืจ ืืื ืึทืืข ืืขืงืขืก ืืขื ืขื ืืึทืื ืืึธืืืื ืืึทื ื ืกืืขืืข ืงืึธื ื ืขืงืืขื ืจืึทืืืขืจ. ืืืจ ืงืขื ืขื ืืขืคึฟืื ืขื ืืื ืืื $ODL_ROOT/cache/jun01_cache
.
ืงืึธื ืืจืึธืืืจื ืื ืงืฉืจ ืคืื ืื ืจืึทืืืขืจ
ืืึธืืืจ ืืึทืื ืืึทืงืืืขื ืืขืื:
- ืึธื ืคึฟืจืขื ืฉืืจืืงื:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
- ืืืืฃ ืื ืึทืืืืึธืจืืืึทืืืึธื ืงืืืืื, ืืืจ ืืืื ืฉืืขืื ืืขื ืคึผืึทืจืึทืืขืืขืจ
Basic Auth
ืืื ืืึธืืื / ืคึผืึทืจืึธื: ืึทืืืื / ืึทืืืื.
ืืืจ ืฉืืงื. ืืึธื ืืึทืงืืืขื ืึท ืกืืึทืืืก ืคืื "200 ืืื" ืืื ืึท ืจืฉืืื ืคืื ืึทืืข ืืขืฉืืืฆื ืืืจื ืื ืืืื ืืึทื ื ืกืืขืืข:
ืืึทืืขืจืงืื ื: ืฆื ืืขื ืื ืืขืฆืืข, ืืื ืืืื ืคืึทื ืขืก ืืื ื ืืืืืง ืฆื ืืืึทืจืื ืืืขืื 10 ืืื ืื ื ืึธื ืืขืจ ืืืจืืคืืจืื ื PUTืืื ืึทืืข ืืึทื ื ืกืืขืืข ืึทื ืืึธืื ืืืืฃ ืึธืื. ืึทืจืืืฃ ืฆื ืืขื ืคืื ื, ืืืขื ืคึผืขืจืคืึธืจืืื ื ืืขื ืืึทืงืืืขื ืึธื ืคึฟืจืขื ืืืขื ืืืืึทืื ืื ืคืืืืขื ืืข:
ืืืกืืขืงื ืื ืจืึทืืืขืจ
ืืึธืืืจ ืืึทืื ืืืกืืขืงื ืืขืื:
- ืึธื ืคึฟืจืขื ืฉืืจืืงื:
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 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
- ืืื ืืึทืื-ืืืคึผ ืึทืคึผืืึทืงืืืฉืึทื/ืงืกืื
ื ืึธื ืฉืืงื, ืืื ืืึธื ืืึทืงืืืขื ืื ืกืืึทืืืก "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 ืืขืื:
- ืึธื ืคึฟืจืขื ืฉืืจืืงื:
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
- ืืื ืืึทืื-ืืืคึผ ืึทืคึผืืึทืงืืืฉืึทื/ืงืกืื
ื ืืฆื ืื ืคืจืืขืจืืืงืข ืืึทืงืืืขื ืืขืื, ืืืจ ืืขื ืื ืขื ืืขืจืื ืืขื:
ืืืกืืขืงื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื
ืืึธืืืจ ืืึทืื ืืืกืืขืงื ืืขืื:
- ืึธื ืคึฟืจืขื ืฉืืจืืงื:
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
ืืื ืืึธืืื / ืคึผืึทืจืึธื: ืึทืืืื / ืึทืืืื.
ืืืขื ืืขืจืืคื ืืึทืงืืืขื ืืขืื ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืคึผืจืึธืืึธืงืึธืืก, ืืืจ ืืืขืื ืืขื ืื ืคืืืืขื ืืข:
ืืขืจืฆื:
ืืื ืกืืจ ืฆื ืืืืฉื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืขืก ืืื ื ืื ื ืืืืืง ืฆื ืฉืืงื ืื ืืขืื ืืืฃ ืืื ืืขื ืคึฟืึธืจืืึทื ืงืกืื. ืืึธืก ืงืขื ืืืื ืืืื ืืขืืื ืืื ืืขื ืคึฟืึธืจืืึทื ืืืฉืกืึธื.
ืฆื ืืึธื ืืึธืก, ืืืฉื, ืืื ืื ืึธื ืคึฟืจืขื PUT ืฆื ืืืืฉื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืคืึทืจืืืึทืื ืื ืืขืื ืืืฃ ืืื:
{
"junos-conf-protocols:protocols": {
"bgp": {
"description" : "Changed in postman"
}
}
}
ืื ืืืืกื ื ืืฉื ืคืึทืจืืขืกื ืฆื ืืืืฉื ืื ืืขืืขืจื ืืืืฃ ืื ืืขืืขืจื ืงืืืืื ืฆื:
- ืึธื ื ืขืืขื ืึทืคึผืืึทืงืืืฉืึทื / json
- ืืื ืืึทืื-ืืืคึผ ืึทืคึผืืึทืงืืืฉืึทื / ืืืฉืกืึธื
ื ืึธื ืฉืืงื, ืืืจ ืืืขืื ืืึทืงืืืขื ืื ืคืืืืขื ืืข ืจืขืืืืืึทื (ืืืจ ืงืืงื ืืื ืื ืขื ืืคืขืจ ื ืืฆื ืืึทืงืืืขื ืืงืฉื):
ืืืื 7: ืึทืืื ื ืื Cisco xRV9000
ืืืึธืก ืืขื ืขื ืืืจ ืึทืืข ืืืขืื ืืืฉืื ืืคึผืขืจ, ืืึธ ืืืฉืื ืืคึผืขืจ? ืืึธืืืจ ืจืขืื ืืืขืื ืกืืกืงืึธ!
ืืื ืืขืคึฟืื ืขื XRV9000 ืืืขืจืกืืข 7.0.2 (ืึท ืืื ืืืึธืก ืืึทืจืฃ 8 ืื ืืึทืจืึทื ืืื 4 ืงืึธืจืขืก. ืขืก ืืื ื ืืฉื ืคืจืืื ืื ืืืฆื, ืึทืืื ืงืึธื ืืึทืงื
ืคืืืกื ืืืง ืึท ืงืึทื ืืืื ืขืจ
ืืขืจ ืคึผืจืึธืฆืขืก ืคืื ืงืจืืืืืื ื ืึท ืืึธืงืงืขืจ ืงืึทื ืืืื ืขืจ ืืื ืคึผืจืึทืงืืึทืงืื ื ืื ืึทื ืืขืจืฉ ืคืื Juniper. ืกืืืืืึทืจืื, ืืืจ ืคืึทืื ืื .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
ืึทืืื ื ืึทืงืขืจื ืืื ืึท ืืึธืจ ืขื ืืขื ืืืขื ืืื ืืืืงืก. ืืืจ ืืึทืจืคึฟื ื ืึธืจ ืืืืฉื ืื ื ืขืืขื.
PUT ืืขืื:
ืจืืคื ื ืึธื ืึท ืืฉืขืช ืืึทืงืืืขื ืึธื ืคึฟืจืขื ืฆื ืงืึธื ืืจืึธืืืจื ืึทื ืึทืืฅ ืืื ืงืึธื ื ืขืงืืขื:
ืืืืฉื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื
ืืึธืืืจ ืฉืืขืื ืื ืคืืืืขื ืืข ืงืึทื ืคืืืืขืจืืืฉืึทื:
!
router ospf LAB
mpls ldp auto-config
!
ืืึธืืืจ ืืึทืื ืคึผืึธืกืื ืืขืื:
- ืึธื ืคึฟืจืขื ืฉืืจืืงื:
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
- ืืื ืืึทืื-ืืืคึผ ืึทืคึผืืึทืงืืืฉืึทื / ืืืฉืกืึธื
ื ืึธื ืืืึทื ืืืจืืคืืจืื ื, ืืื ืืึธื ืืึทืงืืืขื ืื ืกืืึทืืืก "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. ืึธื ืึท ืฆืืืืืคื, ืื ืคึฟืจืืื ืคืื ืื ืืืืื ืืืืฉืคืืื ืงืขื ืขื ืืืื ืคืื ืืขืจ ืงืึธืืคึผืืืฆืืจื ืืื ืฉืืขืื ืึทืจืืืฃ ืืึทื ืฅ ืืึทืืื ืื ืืก ืืื ืืืื ืืื ืคืื ืื ืืืื - ืึทืืฅ ืืื ืืืืืืขื ืืืืื ืืืจื ืืืื ืคืึทื ืืึทืืืข *
ืฆื ืคืึธืจืืขืฆื ...
ืคึผืก
ืืืื ืืืจ ืคึผืืืฆืืื ื ืฉืืื ืืืืกื ืึทืืข ืืขื ืึธืืขืจ, ืืืืฃ ืื ืคืึทืจืงืขืจื, ืืึธืื ืืืจืืืขืืื ืืขื ืืื ืกืึทื ืืง ืืื ืื ื ืฉืื ืคืื ODL, ืืื ืจืขืงืึธืืขื ืืืจื ืฆื ืงืืงื ืฆื ืึทื ืืืืืงืืขื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืืฃ ืื ODL ืงืึธื ืืจืึธืืืขืจ. ืืืจ ืงืขื ืขื ืึธื ืืืืื
ืืฆืืื ืืงืกืคึผืขืจืึทืืึทื ืฅ!
ืืึทืืืืึทืื
Vrnetlab: ืขืืืืืจื ื ืขืืืืึธืจืงืก ืืื KVM ืืื Docker / ืืจืืืึทื ืืื ืงืืขืืืขืจ- OpenDaylight ืงืืงืืืง / Mathieu Lemay, Alexis de Talhouet, ืขื ืขื
- ื ืขืฅ ืคึผืจืึธืืจืึทืืืึทืืืืืื ืืื YANG / Benoรฎt Claise, Loe Clarke, Jan Lindblad
- ืืขืจื ืขื ืงืกืื, ืฆืืืืืืข ืึทืืืฉืึทื / Erik T. Ray
- ืขืคืขืงืืืื ืืขืืืึธืคึผืก / Jennifer Davis, Ryn Daniels
ืืงืืจ: www.habr.com