ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ื‘ืžืืžืจ ื–ื”, ืื ื™ ืืจืื” ืœืš ื›ื™ืฆื“ ืœื”ื’ื“ื™ืจ 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: ืงืฆืช ืชื™ืื•ืจื™ื”

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

  • ืคืœื˜ืคื•ืจืžืช SDN ืคืชื•ื—ื” ืœื ื™ื”ื•ืœ ื•ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื›ืœ ืžื™ื ื™ ืจืฉืชื•ืช, ื ืชืžื›ืช ืขืœ ื™ื“ื™ ืงืจืŸ ืœื™ื ื•ืงืก
  • ื’'ืื•ื•ื” ื‘ืคื ื™ื
  • ืžื‘ื•ืกืก ืขืœ ืจืžืช ื”ืคืฉื˜ื” ืฉืœ โ€‹โ€‹ืฉื™ืจื•ืช ืžื•ื ืข ืžื•ื“ืœื™ื (MD-SAL)
  • ืžืฉืชืžืฉ ื‘ืžื•ื“ืœื™ื ืฉืœ YANG ื›ื“ื™ ืœื™ืฆื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ืžืžืฉืงื™ API ืฉืœ RESTCONF ืขื‘ื•ืจ ื”ืชืงื ื™ ืจืฉืช

ื”ืžื•ื“ื•ืœ ื”ืจืืฉื™ ืœื ื™ื”ื•ืœ ืจืฉืช. ื‘ืืžืฆืขื•ืชื• ื ืชืงืฉืจ ืขื ืžื›ืฉื™ืจื™ื ืžื—ื•ื‘ืจื™ื. ืžื ื•ื”ืœ ื‘ืืžืฆืขื•ืช API ืžืฉืœื•.

ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ OpenDaylight ื›ืืŸ.

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

  • ื›ืœื™ ื‘ื“ื™ืงืช API
  • ืžืžืฉืง ืคืฉื•ื˜ ื•ืงืœ ืœืฉื™ืžื•ืฉ

ื‘ืžืงืจื” ืฉืœื ื•, ืื ื• ืžืขื•ื ื™ื™ื ื™ื ื‘ื›ืš ื›ืืžืฆืขื™ ืœืฉืœื™ื—ืช ื‘ืงืฉื•ืช REST ืœ- OpenDaylight API. ืืคืฉืจ ื›ืžื•ื‘ืŸ ืœืฉืœื•ื— ื‘ืงืฉื•ืช ื‘ืื•ืคืŸ ื™ื“ื ื™, ืื‘ืœ ื‘-Postman ื”ื›ืœ ื ืจืื” ืžืื•ื“ ื‘ืจื•ืจ ื•ืžืชืื™ื ืœืžื˜ืจื•ืช ืฉืœื ื• ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช.

ืœืžื™ ืฉืจื•ืฆื” ืœื—ืคื•ืจ: ื ื›ืชื‘ื• ืขืœื™ื• ื”ืจื‘ื” ื—ื•ืžืจื™ ื”ื“ืจื›ื” (ืœื“ื•ื’ืžื”).

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

  • ื›ืœื™ ืœืคืจื™ืกืช ื ืชื‘ื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื ื‘-Docker
  • ืชื•ืžืš: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR ื•ื›ื•'.
  • ืงื•ื“ ืคืชื•ื—

ื›ืœื™ ืžืื•ื“ ืžืขื ื™ื™ืŸ ืืš ืžืขื˜ ื™ื“ื•ืข. ื‘ืžืงืจื” ืฉืœื ื•, ื ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช Juniper vMX ื•-Cisco xRV9000 ืขืœ ืื•ื‘ื•ื ื˜ื• 20.04 LTS ืจื’ื™ืœ.

ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขื•ื“ ืขืœ ื–ื” ื‘ ืขืžื•ื“ ื”ืคืจื•ื™ืงื˜.

ื—ืœืง 2: ืžืขื‘ื“ื”

ื‘ืžื“ืจื™ืš ื–ื”, ื ื’ื“ื™ืจ ืืช ื”ืžืขืจื›ืช ื”ื‘ืื”:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืึตื™ืš ืžึทืคืขึดื™ืœึดื™ื ืึถืช ื–ึถื”

  • ื’'ื•ื ื™ืคืจ vMX ืขื•ืœื” ืคื ื™ืžื” ืกึทื•ึธืจ ืžื™ื›ืœ (ื‘ืืžืฆืขื•ืช Vnetlab) ื•ืžืชืคืงื“ ื›ื ืชื‘ ื”ื•ื™ืจื˜ื•ืืœื™ ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ.
  • ODL ืžื—ื•ื‘ืจ ืœื ืชื‘ ื•ืžืืคืฉืจ ืœืฉืœื•ื˜ ื‘ื•.
  • ื“ื•ื•ืจ ืžื•ืคืขืœ ื‘ืžื›ื•ื ื” ื ืคืจื“ืช ื•ื“ืจื›ื” ืื ื• ืฉื•ืœื—ื™ื ืคืงื•ื“ื•ืช ODL: ื›ื“ื™ ืœื—ื‘ืจ/ืœื”ืกื™ืจ ืืช ื”ื ืชื‘, ืœืฉื ื•ืช ืืช ื”ืชืฆื•ืจื” ื•ื›ื•'.

ืคืจืฉื ื•ืช ืขืœ ืžื›ืฉื™ืจ ื”ืžืขืจื›ืช

ื’'ื•ื ื™ืคืจ vMX ะธ ODL ื“ื•ืจืฉื™ื ื“ื™ ื”ืจื‘ื” ืžืฉืื‘ื™ื ืœืคืขื™ืœื•ืชื ื”ื™ืฆื™ื‘ื”. ืื—ื“ ื‘ืœื‘ื“ vMX ืžื‘ืงืฉ 6 ื’'ื™ื’ื”-ื‘ื™ื™ื˜ ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื•-4 ืœื™ื‘ื•ืช. ืœื›ืŸ, ื”ื•ื—ืœื˜ ืœื”ืขื‘ื™ืจ ืืช ื›ืœ "ื”ืžืฉืงืœื™ื ื”ื›ื‘ื“ื™ื" ืœืžื›ื•ื ื” ื ืคืจื“ืช (Heulett Packard Enterprise MicroServer ProLiant Gen8, ืื•ื‘ื•ื ื˜ื• 20.04 LTS). ื”ื ืชื‘, ื›ืžื•ื‘ืŸ, ืœื "ืขืฃ" ืขืœื™ื•, ืื‘ืœ ื”ื‘ื™ืฆื•ืขื™ื ืžืกืคื™ืงื™ื ืœื ื™ืกื•ื™ื™ื ืงื˜ื ื™ื.

ื—ืœืง 3: ื”ื’ื“ืจ ืืช OpenDaylight

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ื”ื’ืจืกื” ื”ื ื•ื›ื—ื™ืช ืฉืœ 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

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ื”ื›ื ืช ื”ืžืขืจื›ืช

ืœืคื ื™ ื”ื”ืชืงื ื” Vnetlab ืขืœื™ืš ืœื”ืชืงื™ืŸ ืืช ื”ื—ื‘ื™ืœื•ืช ื”ื ื“ืจืฉื•ืช ืœื”ืคืขืœืชื•. ื›ืžื• ืกึทื•ึธืจ, ืกื™ืœื•ืŸ, sshpass:

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 ืขื ื”ื ืชื‘ (ืชื•ื›ืœ ืœื”ื•ืจื™ื“ ืื•ืชื• ืž ืืชืจ ืจืฉืžื™) ืœืกืคืจื™ื™ืช vmx ื•ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” 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

ื–ื” ืžืฉืœื™ื ืืช ื”ื’ื“ืจืช ื”ื ืชื‘.

ื”ืžืœืฆื•ืช ื”ืชืงื ื” ืœื ืชื‘ื™ื ืฉืœ ืกืคืงื™ื ืฉื•ื ื™ื ื ื™ืชืŸ ืœืžืฆื•ื ื‘ื›ืชื•ื‘ืช ืคืจื•ื™ืงื˜ github ื‘ืกืคืจื™ื•ืช ื”ืžืชืื™ืžื•ืช.

ื—ืœืง 5: Postman - ื—ื‘ืจ ืืช ื”ื ืชื‘ ืœ-OpenDaylight

ื”ืชืงื ืช ื“ื•ื•ืจ

ื›ื“ื™ ืœื”ืชืงื™ืŸ, ืคืฉื•ื˜ ื”ื•ืจื“ ืืช ื”ืืคืœื™ืงืฆื™ื” ืžื›ืืŸ.

ื—ื™ื‘ื•ืจ ื ืชื‘ ืœ-ODL

ื‘ื•ืื• ืœื™ืฆื•ืจ PUT ื‘ึผึทืงึธืฉืึธื”:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. ื’ื•ืฃ ื”ื‘ืงืฉื” (ื›ืจื˜ื™ืกื™ื™ืช ื’ื•ืฃ):
    <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>
  3. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin. ื–ื” ื ื“ืจืฉ ื›ื“ื™ ืœื’ืฉืช ืœ-ODL:
    ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab
  4. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื›ื•ืชืจื•ืช, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืฉืชื™ ื›ื•ืชืจื•ืช:
    • ืงื‘ืœ ื™ื™ืฉื•ื/xml
    • ืืคืœื™ืงืฆื™ื™ืช Content-Type/xml

ื‘ืงืฉืชื ื• ื”ื•ื’ืฉื”. ืื ื—ื ื• ืฉื•ืœื—ื™ื. ืื ื”ื›ืœ ื”ื•ื’ื“ืจ ื›ื”ืœื›ื”, ืขืœื™ื ื• ืœื”ื—ื–ื™ืจ ืืช ื”ืกื˜ื˜ื•ืก "201 ื ื•ืฆืจ":

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืžื” ื”ื‘ืงืฉื” ื”ื–ื• ืขื•ืฉื”?

ืื ื—ื ื• ื™ื•ืฆืจื™ื ืฆื•ืžืช ื‘ืคื ื™ื 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.

ื‘ื“ื™ืงืช ื—ื™ื‘ื•ืจ ื”ื ืชื‘

ื‘ื•ืื• ืœื™ืฆื•ืจ ืœืงื‘ืœ ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ืื ื—ื ื• ืฉื•ืœื—ื™ื. ืืžื•ืจ ืœืงื‘ืœ ืกื˜ื˜ื•ืก ืฉืœ "200 ื‘ืกื“ืจ" ื•ืจืฉื™ืžื” ืฉืœ ื›ืœ ื”ื ืชืžื›ื™ื ืขืœ ื™ื“ื™ ื”ืžื›ืฉื™ืจ ืกื›ื™ืžืช YANG:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ื”ืขืจื”: ื›ื“ื™ ืœืจืื•ืช ืืช ื”ืื—ืจื•ืŸ, ื‘ืžืงืจื” ืฉืœื™ ื”ื™ื” ืฆื•ืจืš ืœื”ืžืชื™ืŸ ื›-10 ื“ืงื•ืช ืœืื—ืจ ื”ื‘ื™ืฆื•ืข PUTืขื“ ื›ื•ืœื ืกื›ื™ืžืช YANG ืœืคืจื•ืง ืขืœ ODL. ืขื“ ืœื ืงื•ื“ื” ื–ื•, ื›ืืฉืจ ืžื‘ืฆืขื™ื ื–ืืช ืœืงื‘ืœ ื”ืฉืื™ืœืชื” ืชืฆื™ื’ ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืžื—ืง ืืช ื”ื ืชื‘

ื‘ื•ืื• ืœื™ืฆื•ืจ ืœืžื—ื•ืง ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ื—ืœืง 6: ืฉื ื” ืืช ืชืฆื•ืจืช ื”ื ืชื‘

ืžืงื‘ืœ ืืช ื”ืชืฆื•ืจื”

ื‘ื•ืื• ืœื™ืฆื•ืจ ืœืงื‘ืœ ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ืื ื—ื ื• ืฉื•ืœื—ื™ื. ืืžื•ืจ ืœืงื‘ืœ ืืช ื”ืกื˜ื˜ื•ืก "200 ื‘ืกื“ืจ" ื•ืืช ืชืฆื•ืจืช ื”ื ืชื‘:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืฆื•ืจ ืชืฆื•ืจื”

ื›ื“ื•ื’ืžื”, ื‘ื•ืื• ื ื™ืฆื•ืจ ืืช ื”ืชืฆื•ืจื” ื”ื‘ืื” ื•ื ืฉื ื” ืื•ืชื”:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

ื‘ื•ืื• ืœื™ืฆื•ืจ POST ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื’ื•ืฃ ื”ื‘ืงืฉื” (ื›ืจื˜ื™ืกื™ื™ืช ื’ื•ืฃ):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.
  4. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื›ื•ืชืจื•ืช, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืฉืชื™ ื›ื•ืชืจื•ืช:
    • ืงื‘ืœ ื™ื™ืฉื•ื/xml
    • ืืคืœื™ืงืฆื™ื™ืช Content-Type/xml

ืœืื—ืจ ื”ืฉืœื™ื—ื”, ื”ื ืืžื•ืจื™ื ืœืงื‘ืœ ืืช ื”ืกื˜ื˜ื•ืก "204 ืœืœื ืชื•ื›ืŸ"

ื›ื“ื™ ืœื‘ื“ื•ืง ืฉื”ืชืฆื•ืจื” ื”ืฉืชื ืชื”, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืฉืื™ืœืชื” ื”ืงื•ื“ืžืช. ืื‘ืœ ืœืžืฉืœ, ื ื™ืฆื•ืจ ืขื•ื“ ืื—ื“ ืฉื™ืฆื™ื’ ืžื™ื“ืข ืจืง ืขืœ ื”ืคืจื•ื˜ื•ืงื•ืœื™ื ื”ืžื•ื’ื“ืจื™ื ื‘ื ืชื‘.

ื‘ื•ืื• ืœื™ืฆื•ืจ ืœืงื‘ืœ ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ืœืื—ืจ ื‘ื™ืฆื•ืข ื”ื‘ืงืฉื”, ื ืจืื” ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืฉื ื” ืืช ื”ืชืฆื•ืจื”

ื‘ื•ืื• ื ืฉื ื” ืืช ื”ืžื™ื“ืข ืขืœ ืคืจื•ื˜ื•ืงื•ืœ BGP. ืœืื—ืจ ื”ืคืขื•ืœื•ืช ืฉืœื ื•, ื–ื” ื™ื™ืจืื” ื›ืš:

protocols {
    bgp {
        disable;
    }
}

ื‘ื•ืื• ืœื™ืฆื•ืจ PUT ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื’ื•ืฃ ื”ื‘ืงืฉื” (ื›ืจื˜ื™ืกื™ื™ืช ื’ื•ืฃ):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.
  4. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื›ื•ืชืจื•ืช, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืฉืชื™ ื›ื•ืชืจื•ืช:
    • ืงื‘ืœ ื™ื™ืฉื•ื/xml
    • ืืคืœื™ืงืฆื™ื™ืช Content-Type/xml

ื‘ืืžืฆืขื•ืช ื”ืงื•ื“ื ืœืงื‘ืœ ื‘ืงืฉื”, ืื ื• ืจื•ืื™ื ืืช ื”ืฉื™ื ื•ื™ื™ื:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืžื—ืง ืืช ื”ืชืฆื•ืจื”

ื‘ื•ืื• ืœื™ืฆื•ืจ ืœืžื—ื•ืง ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ื›ืฉืžืชืงืฉืจื™ื ืœืงื‘ืœ ื‘ืงืฉื” ืขื ืžื™ื“ืข ืขืœ ื”ืคืจื•ื˜ื•ืงื•ืœื™ื, ื ืจืื” ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืชื•ืกืคืช:

ืขืœ ืžื ืช ืœืฉื ื•ืช ืืช ื”ืชืฆื•ืจื”, ืื™ืŸ ืฆื•ืจืš ืœืฉืœื•ื— ืืช ื’ื•ืฃ ื”ื‘ืงืฉื” ื‘ืคื•ืจืžื˜ XML. ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช ื’ื ื‘ืคื•ืจืžื˜ JSON.

ืœืฉื ื›ืš, ืœืžืฉืœ, ื‘ืฉืื™ืœืชื” PUT ื›ื“ื™ ืœืฉื ื•ืช ืืช ื”ืชืฆื•ืจื”, ื”ื—ืœืฃ ืืช ื’ื•ืฃ ื”ื‘ืงืฉื” ื‘:

{
    "junos-conf-protocols:protocols": {
        "bgp": {
            "description" : "Changed in postman" 
        }
    }
}

ืืœ ืชืฉื›ื— ืœืฉื ื•ืช ืืช ื”ื›ื•ืชืจื•ืช ื‘ื›ืจื˜ื™ืกื™ื™ื” ื›ื•ืชืจื•ืช ืœ:

  • ืงื‘ืœ ืืช ื”ืืคืœื™ืงืฆื™ื”/json
  • ืืคืœื™ืงืฆื™ื™ืช Content-Type/json

ืœืื—ืจ ื”ืฉืœื™ื—ื”, ื ืงื‘ืœ ืืช ื”ืชื•ืฆืื” ื”ื‘ืื” (ืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ื”ืชืฉื•ื‘ื” ื‘ืืžืฆืขื•ืช ืœืงื‘ืœ ื‘ึผึทืงึธืฉืึธื”):

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ื—ืœืง 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 ื‘ึผึทืงึธืฉืึธื”:
ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืชืชืงืฉืจ ืื—ืจื™ ื–ืžืŸ ืžื” ืœืงื‘ืœ ืฉืื™ืœืชื” ื›ื“ื™ ืœื‘ื“ื•ืง ืฉื”ื›ืœ ืžื—ื•ื‘ืจ:
ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ืฉื ื” ืืช ื”ืชืฆื•ืจื”

ื‘ื•ืื• ื ื’ื“ื™ืจ ืืช ื”ืชืฆื•ืจื” ื”ื‘ืื”:

!
router ospf LAB
 mpls ldp auto-config
!

ื‘ื•ืื• ืœื™ืฆื•ืจ POST ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื’ื•ืฃ ื”ื‘ืงืฉื” (ื›ืจื˜ื™ืกื™ื™ืช ื’ื•ืฃ):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.
  4. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื›ื•ืชืจื•ืช, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืฉืชื™ ื›ื•ืชืจื•ืช:
    • ืงื‘ืœ ืืช ื”ืืคืœื™ืงืฆื™ื”/json
    • ืืคืœื™ืงืฆื™ื™ืช Content-Type/json

ืœืื—ืจ ื‘ื™ืฆื•ืขื•, ื”ื ืืžื•ืจื™ื ืœืงื‘ืœ ืืช ื”ืกื˜ื˜ื•ืก "204 ืœืœื ืชื•ื›ืŸ".

ื‘ื•ื ื ื‘ื“ื•ืง ืžื” ื™ืฉ ืœื ื•.
ืœืฉื ื›ืš, ื ื™ืฆื•ืจ ืœืงื‘ืœ ื‘ึผึทืงึธืฉืึธื”:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ืœืื—ืจ ื”ื‘ื™ืฆื•ืข, ืืชื” ืืžื•ืจ ืœืจืื•ืช ืืช ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื:

ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ืจืฉืช ืื• ืื™ืš ืœื‘ื ื•ืช ืžืขื‘ื“ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช OpenDaylight, Postman ื•-Vrnetlab

ื›ื“ื™ ืœื”ืกื™ืจ ืืช ื”ืชืฆื•ืจื” ื”ืฉืชืžืฉ ืœืžื—ื•ืง:

  1. ืžื—ืจื•ื–ืช ืฉืื™ืœืชื”:
    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
  2. ื‘ื›ืจื˜ื™ืกื™ื™ื” ื”ืจืฉืื”, ืขืœื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ Basic Auth ื•ื›ื ื™ืกื”/ืกื™ืกืžื”: admin/admin.

ืžืกืงื ื”

ื‘ืกืš ื”ื›ืœ, ื›ืคื™ ืฉืื•ืœื™ ืฉืžืชื ืœื‘, ื”ื”ืœื™ื›ื™ื ืœื—ื™ื‘ื•ืจ Cisco ื•-Juniper ืœ-OpenDaylight ืื™ื ื ืฉื•ื ื™ื - ื–ื” ืคื•ืชื— ืžืจื—ื‘ ื“ื™ ืจื—ื‘ ืœื™ืฆื™ืจืชื™ื•ืช. ื”ื—ืœ ืžื ื™ื”ื•ืœ ืชืฆื•ืจื” ืฉืœ ื›ืœ ืจื›ื™ื‘ื™ ื”ืจืฉืช ื•ื›ืœื” ื‘ื™ืฆื™ืจืช ืžื“ื™ื ื™ื•ืช ืจืฉืช ืžืฉืœืš.
ื‘ืžื“ืจื™ืš ื–ื”, ื ืชืชื™ ืืช ื”ื“ื•ื’ืžืื•ืช ื”ืคืฉื•ื˜ื•ืช ื‘ื™ื•ืชืจ ื›ื™ืฆื“ ื ื™ืชืŸ ืœื™ืฆื•ืจ ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืฆื™ื•ื“ ืจืฉืช ื‘ืืžืฆืขื•ืช OpenDaylight. ืœืœื ืกืคืง, ื ื™ืชืŸ ืœื”ืคื•ืš ืืช ื”ืฉืื™ืœืชื•ืช ืžื”ื“ื•ื’ืžืื•ืช ืœืขื™ืœ ืœื”ืจื‘ื” ื™ื•ืชืจ ืžื•ืจื›ื‘ื•ืช ื•ืœื”ื’ื“ื™ืจ ืฉื™ืจื•ืชื™ื ืฉืœืžื™ื ื‘ืœื—ื™ืฆืช ืขื›ื‘ืจ ืื—ืช - ื”ื›ืœ ืžื•ื’ื‘ืœ ืจืง ืขืœ ื™ื“ื™ ื”ื“ืžื™ื•ืŸ ืฉืœืš *

ืœื”ืžืฉืš ...

ื .ื‘.

ืื ืคืชืื•ื ืืชื ื›ื‘ืจ ื™ื•ื“ืขื™ื ืืช ื›ืœ ื–ื” ืื• ืœื”ื™ืคืš, ืขื‘ืจืชื ื•ืฉืงืขืชื ื‘ื ืฉืžืช ื”-ODL, ืื– ืื ื™ ืžืžืœื™ืฅ ืœื”ืกืชื›ืœ ืœืงืจืืช ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ืขืœ ื‘ืงืจ ื”-ODL. ืืชื” ื™ื›ื•ืœ ืœื”ืชื—ื™ืœ ืžื›ืืŸ.

ื ื™ืกื•ื™ื™ื ืžื•ืฆืœื—ื™ื!

ื”ืคื ื™ื•ืช

  1. Vrnetlab: ื”ื“ืžื™ื™ืช ืจืฉืชื•ืช ื‘ืืžืฆืขื•ืช KVM ื•- Docker / ื‘ืจื™ืืŸ ืœื™ื ืงื˜ืจ
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. ืชื›ื ื•ืช ืจืฉืช ืขื YANG / Benoรฎt Claise, Loe Clarke, Jan Lindblad
  4. ืœื™ืžื•ื“ XML, ืžื”ื“ื•ืจื” ืฉื ื™ื™ื” / Erik T. Ray
  5. DevOps ื™ืขื™ืœ / ื’'ื ื™ืคืจ ื“ื™ื™ื•ื™ืก, ืจืŸ ื“ื ื™ืืœืก

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”