แแ แกแขแแขแแแจแ แแ แแแฉแแแแแแ แ แแแแ แแแแงแแแแ แฆแแ แแฆแแก แกแแแแแแ แฅแกแแแฃแ แแแฌแงแแแแแแแแแแแ แแฃแจแแแแ แแ แแกแแแ แแฉแแแแแ แ แแแแ แแแแแแงแแแแ แคแแกแขแแแแแแ แแ แแแ แขแแแ RESTCONF แแแฎแแแก, แแ แแฆแญแฃแ แแแแแแแก แแแแขแ แแแ แจแแกแแซแแแแแแแ. แฉแแแ แแ แแแแฃแจแแแแแ แแแแ แแขแฃแ แแกแแแ, แกแแแแแแแ แแ แแแแแแแแแกแแแ แแแขแแ แ แแแ แขแฃแแแฃแ แแแแแ แแขแแ แแแแก แแ แแ แ แแฃแขแแ แแก แแแแแงแแแแแแ แแ แแแขแแแแ แแแขแ 20.04 Ubuntu LTS.
แแ แแแฉแแแแแแ แแแขแแแฃแ แแแ แแแแขแ แแแก แฏแแ แ แแฃแขแแ แแก แแแแแแแแแก แแแแแงแแแแแแ Juniper vMX 20.1R1.11, แแ แจแแแแแ แฉแแแ แจแแแแแแ แแแ แแแก แแแ แแแแขแ แก Cisco xRV9000 7.0.2.
แแแคแแ แแแชแแแก
- แกแแญแแ แ แชแแแแ
- ะงะฐััั 1: แแแแแแ แแแแแฎแแแแ OpenDaylight (แจแแแแแแแจแ ODL), แคแแกแขแแแแแแ ะธ แแ แแแขแแแแ แแ แ แแขแแ แแแญแแ แแแแ แแกแแแ
- ะงะฐััั 2: แแแ แขแฃแแแฃแ แ แแแแแ แแขแแ แแแก แแฆแฌแแ แ
- ะงะฐััั 3: แแแ แแแแ แฆแแ แแฆแแก แกแแแแแแ
- ะงะฐััั 4: แแแ แแแแ แแ แแแขแแแแ
- ะงะฐััั 5: แแแแแงแแแแแแ แคแแกแขแแแแแแ แแแแแแแจแแ แแ แแแ แขแฃแแแฃแ แ แ แแฃแขแแ แ (Juniper vMX) แ แแแ ODL
- ะงะฐััั 6: แแแแฆแแ แแ แจแแชแแแแแ แ แแฃแขแแ แแก แแแแคแแแฃแ แแชแแ แแแแแงแแแแแแ แคแแกแขแแแแแแ ะธ ODL
- ะงะฐััั 7: แแแแแแขแแ Cisco xRV9000
- แแแกแแแแ
- PS
- แแแแแแแแ แแคแแ
แกแแญแแ แ แชแแแแ
แแแแกแแแแแก, แ แแ แกแขแแขแแ แคแฃแ แชแแแ แแ แแแแแฅแชแแฃแแแงแ, แแแแแแขแแแ แ แแแแแแแแ แขแแฅแแแแฃแ แ แแแขแแแ (แแแขแแ แแขแฃแ แแก แแแแแแแแ, แกแแแแช แจแแแแซแแแแ แฌแแแแแแฎแแ แแแ แจแแกแแฎแแ).
แแแแกแแแ แแแแแแจแแ แแแแ แจแแแแแแแแแแแแ แแแแแแก, แ แแแแแแแช แฌแแแแแฎแแแแแ แแแ แแ แแฅแแแแ (แแฃแแชแ แแ แ แแฃแชแแแแแแแ) แแแชแแแแ:
แแแฌแแแ 1: แแแแแแ แแ แแแแ แแ
- แฆแแ SDN แแแแขแคแแ แแ แงแแแแ แกแแฎแแก แฅแกแแแแก แแแ แแแแกแ แแ แแแขแแแแขแแแแชแแแกแแแแก, แแฎแแ แแแญแแ แแแ Linux แคแแแแ
- แฏแแแ แจแแแแแ
- แแแแแแแ แแ แแแแขแแ แแแฃแแ แกแแ แแแกแแก แแแกแขแ แแฅแชแแแก แแแแแแ (MD-SAL) แกแแคแฃแซแแแแแ
- แแงแแแแแก YANG แแแแแแแแก แฅแกแแแฃแ แ แแแฌแงแแแแแแแแแแกแแแแก RESTCONF API-แแแแก แแแขแแแแขแฃแ แแ แแแแแ แแ แแแแกแแแแก
แฅแกแแแแก แแแ แแแแก แแแแแแ แ แแแแฃแแ. แกแฌแแ แแ แแแกแ แกแแจแฃแแแแแแ แแแแแฎแแแแ แแแแฃแแแแแชแแแก แแแแแแจแแ แแแฃแ แแแฌแงแแแแแแแแแแแ. แแแแ แแแแ แกแแแฃแแแ แ API-แก แแแจแแแแแแ.
แจแแแแซแแแแ แแแขแ แฌแแแแแแฎแแ OpenDaylight-แแก แจแแกแแฎแแ
- API แขแแกแขแแ แแแแก แแแกแขแ แฃแแแแขแ
- แแแ แขแแแ แแ แแแแแแแ แแแแแกแแงแแแแแแแ แแแขแแ แคแแแกแ
แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แแแแแแขแแ แแกแแแก แแก, แ แแแแ แช แกแแจแฃแแแแแ REST แแแแฎแแแแแแแก OpenDaylight API-แแ แแแแแแแแแกแแแแก. แแฅแแแ แจแแแแซแแแแ, แ แ แแฅแแ แฃแแแ, แแแแแแแแแ แแแแฎแแแแแแ แฎแแแแ, แแแแ แแ Postman-แจแ แงแแแแแคแแ แ แซแแแแแ แแแแแแ แแแแแแงแฃแ แแแ แแ แกแ แฃแแงแแคแแแแ แจแแแกแแแแแแแ แฉแแแแก แแแแแแแก.
แแแแแแแก, แแแกแแช แแแแฎแ แ แกแฃแ แก: แแแกแแ แแแแ แ แกแแกแฌแแแแ แแแกแแแแ แแแฌแแ แแแ (
- แแแกแขแ แฃแแแแขแ แแแ แขแฃแแแฃแ แ แแแ แจแ แฃแขแแแแขแแ แแแแก แแแแแแแแแแกแแแแก Docker-แจแ
- แแฎแแ แแแญแแ แ: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR แแ แ.แจ.
- แฆแแ
แซแแแแแ แกแแแแขแแ แแกแ, แแแแ แแ แแแแแแแแ แชแแแแแแ แแแกแขแ แฃแแแแขแ. แฉแแแแก แจแแแแฎแแแแแจแ, แฉแแแ แแแก แแแแแแแงแแแแแ Juniper vMX-แแกแ แแ Cisco xRV9000-แแก แแแกแแจแแแแแ แฉแแแฃแแแแ แแ Ubuntu 20.04 LTS-แแ.
แแแแก แจแแกแแฎแแ แแแขแ แจแแแแซแแแแ แฌแแแแแแฎแแ แแฅ
แแแฌแแแ 2: แแแแแ แแขแแ แแ
แแ แกแแฎแแแแซแฆแแแแแแแจแ แฉแแแ แแแแแงแแแแแ แจแแแแแ แกแแกแขแแแแก:
แ แแแแ แแแแแแแก แแแแก แแฃแจแแแแ
- Juniper vMX แแแแแแก docker แแแแขแแแแแ แ ( แกแแจแฃแแแแแแ แแ แแแขแแแแ) แแ แคแฃแแฅแชแแแแแ แแแก แ แแแแ แช แงแแแแแแ แแแแ แชแแแแแฃแแ แแแ แขแฃแแแฃแ แ แ แแฃแขแแ แ.
- ODL แแแแแแจแแ แแแฃแแแ แ แแฃแขแแ แแแ แแ แแแซแแแแ แกแแจแฃแแแแแแก แแแแแขแ แแแแ แแแ.
- แคแแกแขแแแแแแ แแแจแแแแฃแแแ แชแแแแ แแแแฅแแแแแ แแ แแแกแ แแแจแแแแแแ แแแแแแแแแ แแ แซแแแแแแแก ODL: แ แแฃแขแแ แแก แแแกแแแแแจแแ แแแแแ / แแแแกแแฆแแแแ, แแแแคแแแฃแ แแชแแแก แจแแชแแแ แแ แ.แจ.
แแแแแแขแแ แ แกแแกแขแแแแก แแแฌแงแแแแแแแแแ
Juniper vMX ะธ ODL แแแแแฎแแแก แกแแแแแแ แแแ แ แแกแฃแ แกแก แแแแ แกแขแแแแแฃแ แ แแฃแจแแแแแกแแแแก. แฒแฎแแแแ แแ แแ vMX แแแฎแแแก 6 แแ แแแแ แแขแแฃแแ แแแฎแกแแแ แแแ แแ 4 แแแ แแแ. แแแแขแแ, แแแแแฌแงแแ, แ แแ แงแแแแ "แแซแแแ แฌแแแ" แชแแแแ แแแแฅแแแแจแ แแแแแแขแแแ (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). แ แแฃแขแแ แ, แ แ แแฅแแ แฃแแแ, แแ "แแแคแ แแแแแก" แแแกแแ, แแแแ แแ แจแแกแ แฃแแแแ แกแแแแแ แแกแแ แแชแแ แ แแฅแกแแแ แแแแแขแแแแกแแแแก.
แแแฌแแแ 3: แแแแงแแแแ OpenDaylight
ODL-แแก แแแแแแแแแแแ แแแ แกแแ แแ แฌแแ แแก แแ แแก แแ แแก แแแแแแฃแแ SR1
1) แแแแแแกแขแแแแ แแ Java Open JDK 11 (แฃแคแ แ แแแขแแแฃแ แ แแแกแขแแแแชแแแกแแแแก
ubuntu:~$ sudo apt install default-jdk
2) แแแแแแ แแ แฉแแแแขแแแ แแแ แฃแแฎแแแกแ build ODL
3) แฉแแแแขแแแ แแแ แแ แฅแแแ
4) แแแแแแแ แแแฆแแแฃแ แแแ แแฅแขแแ แแแจแ
5) แแแจแแแแ ./bin/karaf
แแ แกแแคแแฎแฃแ แแ ODL แฃแแแ แแแแฌแงแแก แแ แฉแแแ แแฆแแแแฉแแแแแแ แแแแกแแแจแ (แแแ แขแ 8181 แแแแแแงแแแแแ แแแ แแแแ แฌแแแแแแกแแแแก, แ แแแแแกแแช แแแแแแแแแแแ แแแแแแแงแแแแแ).
แจแแแแแแ, แแแแแแกแขแแแแ แแ ODL แแแฎแแกแแแแแแแแแแจแแฅแแแแแแ แแ แแขแแแแแแแแแ แแฃแจแแแแแกแแแแก NETCONF ะธ RESTCONF. แแแแก แแแแแแแแ แแแแกแแแจแ ODL แฉแแแ แแแกแ แฃแแแแ:
opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all
แแก แแ แแก แฃแแแ แขแแแแกแ แแแงแแแแแ. ODL แแแกแ แฃแแแ. (แแแแแขแแแแแ แแแคแแ แแแชแแแกแแแแก แแฎ
แแแฌแแแ 4: 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-แแก แแแกแขแแแแชแแ
แแแงแแแแแ แแ แแแขแแแแ แแแแแแ แแแ แจแแกแแแแแแกแ แกแแชแแแ 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
แจแแฅแแแแแ แ แแฃแขแแ แแก แกแฃแ แแแ
แแแแแแฃแแ แ แแฃแขแแ แ, แ แแแแแแช แแฎแแ แแแญแแ แแแแ แแ แแแขแแแแ, แแฅแแก แกแแแฃแแแ แ แฃแแแแแแฃแ แ แแแงแแแแแแก แแ แแชแแแฃแ แ. แฒ แแแแกแแช Juniper vMX แฉแแแ แฃแแ แแแแ แฃแแแ แแแขแแแ แแแ .tgz แแ แฅแแแ แ แแฃแขแแ แแแ (แจแแแแซแแแแ แแแแแแฌแแ แแ make
:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ะะพะฟะธััะตะผ ะฒ ััั ะดะธัะตะบัะพัะธั .tgz ะฐัั
ะธะฒ ั ัะพััะตัะพะผ
ubuntu:~$ sudo make
แกแฃแ แแแแก แแแแแ vMX แแแแฎแแแแแแ 10-20 แฌแฃแแ แแแกแญแแ แแแแ. แแ แแ แฌแแฎแแแแ แงแแแแก แแแกแแแแแแ!
แ แแขแแ แแแแแ แฎแแแก, แแแแแแฎแแแแ?
แแแ แแแแแ
"แแก แแแแขแแ, แ แแ แแแ แแแแแ แแแแฅแแแแแ VCP (แกแแแแแขแ แแแ แแแแแแคแ แแแแแ), แแก แแแแฎแฃแแแแก แแแแคแแแฃแ แแชแแแก แคแแแแก, แ แแแแแแช แแแแกแแแฆแแ แแแก, แแแฃแจแแแแแก แแฃ แแ แ แ แแแแ แช VRR VCP vMX-แจแ. แงแแแแแแแแก แแ แแฎแแ แแงแ แแแแแขแแแ แแฃแแ, แกแแแแ แแแ แขแฃแแแฃแ แ แ แแฃแขแแ แ แฎแแแแแกแแฌแแแแแ แแแฎแแแแแแ, แ แแก แจแแแแแแแแช แฉแแขแแแ แแแแก แแแแ แแ แ (แแแแฎแแแแแแ 5 แฌแฃแแ) แแฎแแ VCP-แแก แแแ แแแแ แแแจแแแแ แแแแแแแ Docker แแแแแกแแฎแฃแแแแแก แแแแแแก แแ แแก, แแ แ แแแแแแแช Docker build-แแก แแแจแแแแ แจแแฃแซแแแแแแแ - -แแ แแแแแแแแ แแแฃแแ แแแ แแแแขแ, แแก แแแจแแแแก, แ แแ 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
แ แแฃแขแแ แแแ แแแแแแจแแ แแแ
แ แแฃแขแแ แแก แฅแกแแแฃแ แ แแแขแแ แคแแแกแแก IP แแแกแแแแ แแแก แแแฆแแแ แจแแกแแซแแแแแแแ แจแแแแแแ แแ แซแแแแแแ:
ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2
แแแแฃแแแกแฎแแแแ, แแ แแแขแแแแ แฅแแแแก แแแแฎแแแ แแแแแก แ แแฃแขแแ แแ 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
แแ แจแแกแแแ/แแแ แแแ: admin/admin. แแก แกแแญแแ แแ ODL-แแ แฌแแแแแแกแแแแก:
- แกแแแแฃแ แแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแแแขแแ แแ แ แกแแแแฃแ แ:
- แแแแแชแฎแแแแก/xml แแแฆแแแ
- Content-Type แแแแแแแชแแ/xml
แฉแแแแ แแแแฎแแแแ แจแแกแ แฃแแแแฃแแแ. แฒฉแแแ แแแแแแแแแแ. แแฃ แงแแแแแคแแ แ แกแฌแแ แแ แแงแ แแแแคแแแฃแ แแ แแแฃแแ, แแแจแแ แฃแแแ แแแแแแ แฃแแแ แกแขแแขแฃแกแ "201 แจแแฅแแแแแแ":
แ แแก แแแแแแแก แแก แแแแฎแแแแ?
แฉแแแ แแฅแแแแ แแแแแซแก แจแแแแแ ODL แ แแแแฃแ แ แ แแฃแขแแ แแก แแแ แแแแขแ แแแแ, แ แแแแแก แฌแแแแแแช แแแแแแ.
xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"
แแก แแ แแก แจแแแ แกแแฎแแแแแแก แกแแแ แชแแแแ XML (XML แกแแฎแแแแ แกแแแ แชแ) ODL แ แแแแแก แแแฎแแแแแแแช แฅแแแแก แแแแแซแก.
แแแ แแ แแแแกแ, แจแแกแแแแแแกแแ, แ แแฃแขแแ แแก แกแแฎแแแแ node-idแ แแฃแขแแ แแก แแแกแแแแ แแ - แแแกแแแแซแแแ แแ แแกแ แจแแแแแ.
แงแแแแแแ แกแแแแขแแ แแกแ แฎแแแ แแแแแ. แกแฅแแแ-แฅแแจแ-แชแแแแแ แ แฅแแแแก แแแ แแฅแขแแ แแแก, แกแแแแช แงแแแแ แคแแแแ แฉแแแแแขแแแ แแแแ YANG แกแฅแแแ แแแแแแจแแ แแแฃแแ แ แแฃแขแแ แ. แแฅแแแ แจแแแแซแแแแ แแแแแแ แแกแแแ $ODL_ROOT/cache/jun01_cache
.
แ แแฃแขแแ แแก แแแแจแแ แแก แจแแแแฌแแแแ
แจแแแฅแแแแ แแแแแแ แ แแแแฎแแแแ:
- แจแแแแแฎแแแก แกแขแ แแฅแแแ:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
- แแแขแแ แแแแชแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแงแแแแ แแแ แแแแขแ แ
Basic Auth
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แฒฉแแแ แแแแแแแแแแ. แฃแแแ แแแแฆแแก แกแขแแขแฃแกแ "200 OK" แแ แงแแแแ แแฎแแ แแแญแแ แแแ แแแฌแงแแแแแแแแก แกแแ YANG แกแฅแแแ:
แแแแแแขแแ แแแ: แแ แฃแแแแแกแแแแแแก แกแแแแฎแแแแ, แฉแแแก แจแแแแฎแแแแแจแ, แแแกแฏแแก แจแแแแแ แแแแฎแแแแแแ 10 แฌแฃแแแก แแแแแแ แแงแ แกแแญแแ แ PUTแกแแแแ แงแแแแ YANG แกแฅแแแ แแแแขแแแ แแแแแ ODL. แแ แแแแแแขแแแแ, แแแแก แจแแกแ แฃแแแแแกแแก แแแแแแ แ แจแแแแแฎแแ แแฉแแแแแแก แจแแแแแแก:
แฌแแจแแแแ แ แแฃแขแแ แ
แจแแแฅแแแแ แฌแแจแแ แแแแฎแแแแ:
- แจแแแแแฎแแแก แกแขแ แแฅแแแ:
DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
- แแแขแแ แแแแชแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแงแแแแ แแแ แแแแขแ แ
Basic Auth
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แแแฌแแแ 6: แจแแชแแแแแ แ แแฃแขแแ แแก แแแแคแแแฃแ แแชแแ
แแแแคแแแฃแ แแชแแแก แแแฆแแแ
แจแแแฅแแแแ แแแแแแ แ แแแแฎแแแแ:
- แจแแแแแฎแแแก แกแขแ แแฅแแแ:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
- แแแขแแ แแแแชแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแงแแแแ แแแ แแแแขแ แ
Basic Auth
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แฒฉแแแ แแแแแแแแแแ. แฃแแแ แแแแฆแแ แกแขแแขแฃแกแ "200 OK" แแ แ แแฃแขแแ แแก แแแแคแแแฃแ แแชแแ:
แจแแฅแแแแแ แแแแคแแแฃแ แแชแแ
แแแแแแแแแ, แแแแแ แจแแแฅแแแแ แจแแแแแแ แแแแคแแแฃแ แแชแแ แแ แจแแแชแแแแแ แแแ:
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
แแ แจแแกแแแ/แแแ แแแ: admin/admin. - แกแแแแฃแ แแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแแแขแแ แแ แ แกแแแแฃแ แ:
- แแแแแชแฎแแแแก/xml แแแฆแแแ
- Content-Type แแแแแแแชแแ/xml
แแแแแแแแแก แจแแแแแ แแแ แฃแแแ แแแแฆแแ แกแขแแขแฃแกแ "204 No Content"
แแแแก แจแแกแแแแฌแแแแแแ, แ แแ แแแแคแแแฃแ แแชแแ แจแแแชแแแแ, แจแแแแซแแแแ แแแแแแงแแแแ แฌแแแ แแแแฎแแแแ. แแแแ แแ แแแแแแแแแ, แฉแแแ แจแแแฅแแแแ แกแฎแแแก, แ แแแแแแช แแฉแแแแแแก แแแคแแ แแแชแแแก แแฎแแแแ แ แแฃแขแแ แแ แแแแคแแแฃแ แแ แแแฃแแ แแ แแขแแแแแแแแก แจแแกแแฎแแ.
แจแแแฅแแแแ แแแแแแ แ แแแแฎแแแแ:
- แจแแแแแฎแแแก แกแขแ แแฅแแแ:
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
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แแแแฎแแแแแก แจแแกแ แฃแแแแแก แจแแแแแ แฉแแแ แแแแฎแแแ แจแแแแแแก:
แจแแชแแแแแ แแแแคแแแฃแ แแชแแ
แแแแแ แจแแแชแแแแแ แแแคแแ แแแชแแ 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
แแ แจแแกแแแ/แแแ แแแ: admin/admin. - แกแแแแฃแ แแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแแแขแแ แแ แ แกแแแแฃแ แ:
- แแแแแชแฎแแแแก/xml แแแฆแแแ
- Content-Type แแแแแแแชแแ/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
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แแแ แแแแแกแแก แแแแแแ แ แแแแแฎแแแแ แแแคแแ แแแชแแ แแ แแขแแแแแแแแก แจแแกแแฎแแ, แฉแแแ แแแแฎแแแ แจแแแแแแก:
แแแแแ แแ:
แแแแคแแแฃแ แแชแแแก แจแแกแแชแแแแแแ แแ แแ แแก แกแแญแแ แ แแแแฎแแแแแก แแ แแแแแก แคแแ แแแขแจแ แแแแแแแแ XML. แแก แแกแแแ แจแแแซแแแแ แแแแแแแแก แคแแ แแแขแจแ JSON.
แแแแก แแแแแแแแ, แแแแแแแแแ, แจแแแแแฎแแแจแ PUT แแแแคแแแฃแ แแชแแแก แจแแกแแชแแแแแแ, แจแแชแแแแแ แแแแฎแแแแแก แกแฎแแฃแแ:
{
"junos-conf-protocols:protocols": {
"bgp": {
"description" : "Changed in postman"
}
}
}
แแ แแแแแแแฌแงแแแ แกแแแแฃแ แแแแก แจแแชแแแ แฉแแแแ แแแ:
- แแแแแชแฎแแแแก แแแฆแแแ/json
- Content-Type แแแแแแแชแแ/json
แแแแแแแแแก แจแแแแแ แแแแแฆแแแ แจแแแแแ แจแแแแแก (แแแกแฃแฎแก แแฃแงแฃแ แแแ แแแแแงแแแแแแ แแแแแแ แ แแแแฎแแแแ):
แแแฌแแแ 7: Cisco xRV9000-แแก แแแแแขแแแ
แ แ แแแ แ แฉแแแ แงแแแแ แฏแฃแแแแแ แแ, แแแแฎ Juniper? แแแแแ แแแกแแฃแแ แแ Cisco-แแ!
แแแแแแ xRV9000 แแแ แกแแ 7.0.2 (แแฎแแชแ, แ แแแแแกแแช แกแญแแ แแแแ 8 แแ แแแแ แแขแแฃแแ แแแฎแกแแแ แแแ แแ 4 แแแ แแแ. แแแแแกแฃแคแแแ แแ แแ แแก แฎแแแแแกแแฌแแแแแ, แแแแขแแ แแแฃแแแแจแแ แแแ
แแแแขแแแแแ แแก แแแจแแแแ
Docker แแแแขแแแแแ แแก แจแแฅแแแแก แแ แแชแแกแ แแ แแฅแขแแแฃแแแ แแ แแคแ แแ แแแแกแฎแแแแแแแ 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-แแแ
แแแแแขแแแ แฎแแแแ แกแ แฃแแแแ แแแแแแแแฃแ แแ vMX-แแ. แฉแแแ แฃแแ แแแแ แฃแแแ แจแแแชแแแแแ แกแแฎแแแแแ.
PUT แแแแฎแแแแ:
แแแ แแแแ แชแแขแ แฎแแแก แจแแแแแ แแแแแแ แ แจแแแแแฎแแ, แ แแแ แจแแแแแฌแแแก, แ แแ แงแแแแแคแแ แ แแแแแแจแแ แแแฃแแแ:
แจแแชแแแแแ แแแแคแแแฃแ แแชแแ
แแแแแ แแแแแงแแแแ แจแแแแแแ แแแแคแแแฃแ แแชแแ:
!
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
แแ แจแแกแแแ/แแแ แแแ: admin/admin. - แกแแแแฃแ แแแแก แฉแแแแ แแแ, แแฅแแแ แฃแแแ แแแแแแขแแ แแ แ แกแแแแฃแ แ:
- แแแแแชแฎแแแแก แแแฆแแแ/json
- Content-Type แแแแแแแชแแ/json
แแแกแ แจแแกแ แฃแแแแแก แจแแแแแ แแแ แฃแแแ แแแแฆแแ แกแขแแขแฃแกแ โ204 No Contentโ.
แแแแแ แจแแแแแแฌแแแ แ แ แแแแแฆแแ.
แแแแกแแแแแก แฉแแแ แจแแแฅแแแแ แแแแแแ แ แแแแฎแแแแ:
- แจแแแแแฎแแแก แกแขแ แแฅแแแ:
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
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แจแแกแ แฃแแแแแก แจแแแแแ, แแฅแแแ แฃแแแ แแแฎแแ แจแแแแแแ:
แแแแคแแแฃแ แแชแแแก แแแกแแจแแ แแแแแ แแแแแแงแแแแ แฌแแจแแ:
- แจแแแแแฎแแแก แกแขแ แแฅแแแ:
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
แแ แจแแกแแแ/แแแ แแแ: admin/admin.
แแแกแแแแ
แแแแแแแแแแจแ, แ แแแแ แช แแฅแแแ แจแแแแจแแแ, Cisco-แกแ แแ Juniper-แแก OpenDaylight-แแแ แแแแแแจแแ แแแแก แแ แแชแแแฃแ แแแ แแ แแแแกแฎแแแแแแแ - แแก แฎแกแแแก แแ แแแขแแฃแแแแแก แกแแแแแแ แคแแ แแ แจแแกแแซแแแแแแแแแก. แแแฌแงแแแฃแแ แฅแกแแแแก แงแแแแ แแแแแแแแแขแแก แแแแคแแแฃแ แแชแแแก แแแแแฏแแแแขแแแแ แแ แแแแแแแ แแแฃแแ แกแแแฃแแแ แ แฅแกแแแแก แแแแแขแแแแก แจแแฅแแแแ.
แแ แแแแแแแแแจแ แแ แแแแแชแ แฃแแแ แขแแแแกแ แแแแแแแแแแ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แจแแแแซแแแแ แฃแ แแแแ แแฅแแแแแแ แฅแกแแแฃแ แแแฌแงแแแแแแแแแแแ OpenDaylight-แแก แแแแแงแแแแแแ. แแญแแแแ แแจแแ, แ แแ แแแแแ แแแงแแแแแแ แแแแแแแแแแแแแ แจแแแแแฎแแแแ แจแแแซแแแแ แแแแ แแ แฃแคแ แ แ แแฃแแ แแงแแก แแ แแแแงแแแแ แแแแแ แกแแ แแแกแแแ แแแฃแกแแก แแ แแ แแแฌแแแแฃแแแแแ - แงแแแแแคแแ แ แจแแแแแคแแ แแแแแ แแฎแแแแ แแฅแแแแ แคแแแขแแแแแ *
แแแแ แซแแแแแ แแฅแแแแ ...
PS
แแฃ แแฅแแแ แแแฃแแแแแแแแ แฃแแแ แแชแแ แแก แงแแแแแคแแ แ แแ, แแแ แแฅแแ, แแแแแ แแ แแ แฉแแแซแแ แแ ODL-แแก แกแฃแแจแ, แแแจแแ แแแ แฉแแแ แแแแแ แแแ ODL แแแแขแ แแแแ แแ แแแแแแแชแแแแแก แจแแแฃแจแแแแแแก. แจแแแแซแแแแ แแแแฌแงแแ
แฌแแ แแแขแแแฃแแ แแฅแกแแแ แแแแแขแแแ!
แแแขแแ แแขแฃแ แ
Vrnetlab: แฅแกแแแแแแก แแแฃแแแชแแ KVM-แแกแ แแ Docker-แแก แแแแแงแแแแแแ / แแ แแแแ แแแแแแขแแ แ- OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
- แฅแกแแแแก แแ แแแ แแแแ แแแแแแแ YANG / Benoรฎt Claise, Loe Clarke, Jan Lindblad-แแแ แแ แแแ
- แกแฌแแแแ XML, แแแแ แ แแแแแชแแแ / Erik T. Ray
- แแคแแฅแขแฃแ แ DevOps / แฏแแแแคแแ แแแแแกแ, แ แแ แแแแแแแกแ
แฌแงแแ แ: www.habr.com