ืืืืืจ ืื, ืื ื ืืจืื ืื ืืืฆื ืืืืืืจ OpenDaylight ืืขืืื ืขื ืฆืืื ืจืฉืช, ืืื ืืืจืืืช ืืื ืืืฉืชืืฉ ืืืืจ ืืคืฉืื RESTCONF ืืงืฉืืช, ื ืืชื ืืฉืืื ืืฆืืื ืื. ืื ื ืขืืื ืขื ืืืืจื, ืืื ืืืงืื ืืืช ื ืคืจืืก ืืขืืืืช ืืืจืืืืืืืช ืงืื ืืช ืขื ื ืชื ืืืื ืืืืฆืขืืช Vnetlab ืืขื ืืืืื ืื LTS 20.04.
ืืจืื ืชืืืื ืืช ืืืืืจืืช ืืืคืืจืืืช ืืืืฆืขืืช ืืืืืื ืฉื ื ืชื Juniper vMX 20.1R1.11, ืืืืืจ ืืื ื ืฉืืื ืืช ืื ืขื ืืืืืจื Cisco xRV9000 7.0.2.
ืชืืื
- ืืืข ื ืืจืฉ
- ืืืง ื- 1: ืืืื ืืงืฆืจื OpenDaylight (ืืืื ODL), ืืืืจ ะธ Vnetlab ืืืื ืื ืื ื ืฆืจืืืื ืืืชื
- ืืืง ื- 2: ืชืืืืจ ืืืขืืื ืืืืจืืืืืืช
- ืืืง ื- 3: ืืชืืื ืืืฉืืช OpenDaylight
- ืืืง ื- 4: ืืชืืื ืืืฉืืช Vnetlab
- ืืืง ื- 5: ืขื ืืื ืฉืืืืฉ ื ืืืืจ ืืืจ ื ืชื ืืืจืืืืื (ื'ืื ืืคืจ vMX) ื ODL
- ืืืง ื- 6: ืงืื ืืฉื ื ืืช ืชืฆืืจืช ืื ืชื ืืืืฆืขืืช ืืืืจ ะธ ODL
- ืืืง ื- 7: ืืืกืฃ ืืช Cisco xRV9000
- ืืกืงื ื
- ื .ื.
- ืึผึดืืึผืึดืืึนืึฐืจึธืคึดืึธื
ืืืข ื ืืจืฉ
ืืื ืฉืืืืืจ ืื ืืืคืื ืืืืืืื, ืืฉืืืชื ืืื ืคืจืืื ืืื ืืื (ืขื ืงืืฉืืจืื ืืกืคืจืืช ืฉืื ื ืืชื ืืงืจืื ืขืืืื).
ืืืงืฉืจ ืื, ืื ื ืืฆืืข ืืื ื ืืฉืืื ืฉืืืื (ืื ืืืขื ืื ืืืจืื) ืืืขืช ืืคื ื ืืงืจืืื:
ืืืง 1: ืงืฆืช ืชืืืืจืื
- ืคืืืคืืจืืช SDN ืคืชืืื ืื ืืืื ืืืืืืืฆืื ืฉื ืื ืืื ื ืจืฉืชืืช, ื ืชืืืช ืขื ืืื ืงืจื ืืื ืืงืก
- ื'ืืืื ืืคื ืื
- ืืืืกืก ืขื ืจืืช ืืคืฉืื ืฉื โโืฉืืจืืช ืืื ืข ืืืืืื (MD-SAL)
- ืืฉืชืืฉ ืืืืืืื ืฉื YANG ืืื ืืืฆืืจ ืืืืืืืืช ืืืฉืงื API ืฉื RESTCONF ืขืืืจ ืืชืงื ื ืจืฉืช
ืืืืืื ืืจืืฉื ืื ืืืื ืจืฉืช. ืืืืฆืขืืชื ื ืชืงืฉืจ ืขื ืืืฉืืจืื ืืืืืจืื. ืื ืืื ืืืืฆืขืืช API ืืฉืื.
ืืชื ืืืื ืืงืจืื ืขืื ืขื OpenDaylight
- ืืื ืืืืงืช API
- ืืืฉืง ืคืฉืื ืืงื ืืฉืืืืฉ
ืืืงืจื ืฉืื ื, ืื ื ืืขืื ืืื ืื ืืื ืืืืฆืขื ืืฉืืืืช ืืงืฉืืช REST ื- OpenDaylight API. ืืคืฉืจ ืืืืื ืืฉืืื ืืงืฉืืช ืืืืคื ืืื ื, ืืื ื-Postman ืืื ื ืจืื ืืืื ืืจืืจ ืืืชืืื ืืืืจืืช ืฉืื ื ืืฆืืจื ืืืฉืืืช.
ืืื ืฉืจืืฆื ืืืคืืจ: ื ืืชืื ืขืืื ืืจืื ืืืืจื ืืืจืื (
- ืืื ืืคืจืืกืช ื ืชืืื ืืืจืืืืืืื ื-Docker
- ืชืืื: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR ืืื'.
- ืงืื ืคืชืื
ืืื ืืืื ืืขื ืืื ืื ืืขื ืืืืข. ืืืงืจื ืฉืื ื, ื ืฉืชืืฉ ืื ืืื ืืืคืขืื ืืช Juniper vMX ื-Cisco xRV9000 ืขื ืืืืื ืื 20.04 LTS ืจืืื.
ืืชื ืืืื ืืงืจืื ืขืื ืขื ืื ื
ืืืง 2: ืืขืืื
ืืืืจืื ืื, ื ืืืืจ ืืช ืืืขืจืืช ืืืื:
ืึตืื ืึทืคืขึดืืึดืื ืึถืช ืึถื
- ื'ืื ืืคืจ vMX ืขืืื ืคื ืืื ืกึทืึธืจ ืืืื (ืืืืฆืขืืช Vnetlab) ืืืชืคืงื ืื ืชื ืืืืจืืืืื ืื ืคืืฅ ืืืืชืจ.
- ODL ืืืืืจ ืื ืชื ืืืืคืฉืจ ืืฉืืื ืื.
- ืืืืจ ืืืคืขื ืืืืื ื ื ืคืจืืช ืืืจืื ืื ื ืฉืืืืื ืคืงืืืืช ODL: ืืื ืืืืจ/ืืืกืืจ ืืช ืื ืชื, ืืฉื ืืช ืืช ืืชืฆืืจื ืืื'.
ืคืจืฉื ืืช ืขื ืืืฉืืจ ืืืขืจืืช
ื'ืื ืืคืจ vMX ะธ ODL ืืืจืฉืื ืื ืืจืื ืืฉืืืื ืืคืขืืืืชื ืืืฆืืื. ืืื ืืืื vMX ืืืงืฉ 6 ื'ืืื-ืืืื ืฉื ืืืืจืื RAM ื-4 ืืืืืช. ืืื, ืืืืื ืืืขืืืจ ืืช ืื "ืืืฉืงืืื ืืืืืื" ืืืืื ื ื ืคืจืืช (Heulett Packard Enterprise MicroServer ProLiant Gen8, ืืืืื ืื 20.04 LTS). ืื ืชื, ืืืืื, ืื "ืขืฃ" ืขืืื, ืืื ืืืืฆืืขืื ืืกืคืืงืื ืื ืืกืืืื ืงืื ืื.
ืืืง 3: ืืืืจ ืืช OpenDaylight
ืืืจืกื ืื ืืืืืช ืฉื ODL ืืืื ืืชืืืช ืฉืืจืืช ืืื ืืื ืืื ืืืื SR1
1) ืืชืงื Java Open JDK 11 (ืืืชืงื ื ืืคืืจืืช ืืืชืจ
ubuntu:~$ sudo apt install default-jdk
2) ืืฆื ืืืืจื ืืช ืืืืจืกื ืืืืจืื ื 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
ืืื ืช ืืืขืจืืช
ืืคื ื ืืืชืงื ื Vnetlab ืขืืื ืืืชืงืื ืืช ืืืืืืืช ืื ืืจืฉืืช ืืืคืขืืชื. ืืื
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
ืืืชืงื ื Vnetlab ืืฉืืคื ืืช ืืืืืจ ืืืชืืื ื-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
ืฆืืจ ืชืืื ื ืฉื ืื ืชื
ืื ื ืชื ืฉื ืชืื Vnetlab, ืืฉ ืืืื ืืืืจื ืืืืืื ืืฉืื. ืืชื ื'ืื ืืคืจ vMX ืื ืื ื ืจืง ืฆืจืืืื ืืืขืืืช ืืช ืืจืืืื tgz ืขื ืื ืชื (ืชืืื ืืืืจืื ืืืชื ื make
:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ะะพะฟะธััะตะผ ะฒ ััั ะดะธัะตะบัะพัะธั .tgz ะฐัั
ะธะฒ ั ัะพััะตัะพะผ
ubuntu:~$ sudo make
ืื ืืืช ืชืืื ื vMX ืืืงื ืืขืจื 10-20 ืืงืืช. ืืืืข ืืืื ืืืืช ืืฉืชืืช ืงืคื!
ืืื ืื ืื ืืจืื ืืื, ืืชื ืฉืืืืื?
ืชืจืืื
ืืกืืื ืืื ืืื ืฉืืคืขื ืืจืืฉืื ื ืฉื-VCP (Control Plane) ืืืคืขื, ืืื ืงืืจื ืงืืืฅ ืชืฆืืจื ืฉืงืืืข ืื ืืื ืืคืขื ื-VRR VCP ื-vMX. ืชืืื ืืืคืขื ืืืืฉ ืคืขื ืืืช ืืคื ื ืฉืื ืชื ืืืืจืืืืื ืืคื ืืืืื, ืืืชืืฆืื ืืื ืืื ืืชืืื ืืจืื (ื-5 ืืงืืช) ืืขืช ืืืคืขืื ืืจืืฉืื ื ืฉื ื-VCP ืืชืืฆืขืช ืืืืื ืื ืืืช ืชืืื ืช Docker, ืืืืืืื ืฉืื ื ืืชื ืืืคืขืื ืืช ื-Docker build ืขื - -ืืคืฉืจืืช ืืืขืืคืช, ืื ืืืืจ ืฉ-qemu ืขืืื ืืื ืืืฆืช ืืืืจื ืฉื KVM ืืืื ืืื ืืื ืืืงืืช ืืจืื ืืืื ืืื. ืืืืื ืืชืืืื ืืื ืืืฆืืื ืืจืื ืืืื ืื, ืื ืืคืืืช ืืชื ืืืื ืืจืืืช ืื ืงืืจื. ืื ื ืืืฉื ืฉืื ืืื ืืจืืื ืืื ืื ืื ืื ืืคืืื ืื ืื ืื ื ืืืฆืจืื ืชืืื ื ืคืขื ืืืช, ืืื ืื ืื ื ืืฉืืงืื ืืจืื."
ืืืืจ ืฉืชืืื ืืจืืืช ืืช ืืชืืื ื ืฉื ืื ืชื ืฉืื ื ื ืกึทืึธืจ:
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
ืึผึฐืจึดืืจึทืช ืึถืืึธื, Vnetlab ืืืฆืจ ืืฉืชืืฉ ืื ืชื 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: Postman - ืืืจ ืืช ืื ืชื ื-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, ืืชืืืช ืื ืชื - ืืืืจื ืืื ืืืื.
ืืฉืืจื ืืืขื ืืื ืช ืืืืชืจ ืืื ืืืืจืื ื. Schema-cache-directory ืืืฆืจ ืกืคืจืืื ืฉืื ืื ืืงืืฆืื ืืืจืืื ืกืืืืช 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 ืืกืืจ" ืืจืฉืืื ืฉื ืื ืื ืชืืืื ืขื ืืื ืืืืฉืืจ ืกืืืืช 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 ืืกืืจ" ืืืช ืชืฆืืจืช ืื ืชื:
ืฆืืจ ืชืฆืืจื
ืืืืืื, ืืืื ื ืืฆืืจ ืืช ืืชืฆืืจื ืืืื ืื ืฉื ื ืืืชื:
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 ืืื ืชืืื"
ืืื ืืืืืง ืฉืืชืฆืืจื ืืฉืชื ืชื, ืืชื ืืืื ืืืฉืชืืฉ ืืฉืืืืชื ืืงืืืืช. ืืื ืืืฉื, ื ืืฆืืจ ืขืื ืืื ืฉืืฆืื ืืืืข ืจืง ืขื ืืคืจืืืืงืืืื ืืืืืืจืื ืื ืชื.
ืืืื ืืืฆืืจ ืืงืื ืึผึทืงึธืฉืึธื:
- ืืืจืืืช ืฉืืืืชื:
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
ืื ืืืื ื ืืืื ื'ืื ืืคืจ, ืื ื'ืื ืืคืจ? ืืืื ื ืืืจ ืขื ืกืืกืงื!
ืืฆืืชื ืืช xRV9000 ืืจืกื 7.0.2 (ืืื ืฉืฆืจืืื 8Gb RAM ื-4 ืืืืืช. ืื ืื ืืืื ืืืืคื ืืืคืฉื, ืื ืฆืืจ ืงืฉืจ
ืืคืขืืช ืืืื
ืชืืืื ืืฆืืจืช ืงืื ืืืื ืจ Docker ืืืขื ืืืื ื ืฉืื ื ืื'ืื ืืคืจ. ืืืืคื ืืืื, ื ืฉืืจืจ ืืช ืงืืืฅ 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 ืืื ืชืืื".
ืืื ื ืืืืง ืื ืืฉ ืื ื.
ืืฉื ืื, ื ืืฆืืจ ืืงืื ืึผึทืงึธืฉืึธื:
- ืืืจืืืช ืฉืืืืชื:
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. ืืื ืกืคืง, ื ืืชื ืืืคืื ืืช ืืฉืืืืชืืช ืืืืืืืืืช ืืขืื ืืืจืื ืืืชืจ ืืืจืืืืช ืืืืืืืจ ืฉืืจืืชืื ืฉืืืื ืืืืืฆืช ืขืืืจ ืืืช - ืืื ืืืืื ืจืง ืขื ืืื ืืืืืื ืฉืื *
ืืืืฉื ...
ื .ื.
ืื ืคืชืืื ืืชื ืืืจ ืืืืขืื ืืช ืื ืื ืื ืืืืคื, ืขืืจืชื ืืฉืงืขืชื ืื ืฉืืช ื-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