ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Ma kēia ʻatikala, e hōʻike wau iā ʻoe pehea e hoʻonohonoho ai ka lā wehe e hana me nā lako pūnaewele, a hōʻike pū i ka hoʻohana ʻana Kahuhahu a maʻalahi RESTCONF nā noi, hiki ke hoʻomaluʻia kēia mea hana. ʻAʻole mākou e hana me ka lakohana, akā, e hoʻonohonoho mākou i nā laboratories virtual liʻiliʻi me kahi alaala hoʻokahi e hoʻohana ana Vrnetlab ma luna Ubuntu 20.04 LTS.

E hōʻike mua wau i nā hoʻonohonoho kikoʻī me ka hoʻohana ʻana i ka laʻana o kahi router Juniper vMX 20.1R1.11, a laila hoʻohālikelike mākou me ka hoʻonohonoho Cisco xRV9000 7.0.2.

Nā mea

  • ʻIke pono
  • ʻĀpana 1: kūkākūkā pōkole OpenDaylight (ma hope aku nei ODL), Kahuhahu и Vrnetlab a no ke aha mākou e pono ai iā lākou
  • ʻĀpana 2: ka wehewehe ʻana o ke keʻena hana virtual
  • ʻĀpana 3: hoʻopilikino ka lā wehe
  • ʻĀpana 4: hoʻopilikino Vrnetlab
  • ʻĀpana 5: ma ka hoohana ana Kahuhahu hoʻohui i ka mea hoʻokele virtual (Juniper vMX) Iā ODL
  • ʻĀpana 6: kiʻi a hoʻololi i ka hoʻonohonoho router me ka hoʻohana ʻana Kahuhahu и ODL
  • ʻĀpana 7: hoʻohui iā Cisco xRV9000
  • hopena
  • PS
  • Palapala puke

ʻIke pono

I ʻole e lilo ka ʻatikala i pepa, ua haʻalele wau i kekahi mau kikoʻī loea (me nā loulou i ka palapala kahi e hiki ai iā ʻoe ke heluhelu e pili ana iā lākou).

Ma kēia pili, hāʻawi wau iā ʻoe i nā kumuhana e maikaʻi (akā ʻaʻole pono) e ʻike ma mua o ka heluhelu ʻana:

Mahele 1: kekahi manaʻo

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

  • He kahua SDN wehe no ka hooponopono ana a me ka hoohana ana i na ano a pau, i kākoʻo ʻia e Linux kikowaena
  • Java i loko
  • Ma muli o ke Ana Hoʻohālikelike Hana Hana Hoʻohālike (MD-SAL)
  • Hoʻohana i nā hiʻohiʻona YANG no ka hoʻopuka ʻokoʻa ʻana i nā API RESTCONF no nā polokalamu pūnaewele

ʻO ka module nui no ka hoʻokele pūnaewele. Ma ia mea mākou e kamaʻilio ai me nā mea pili. Mālama ʻia ma kāna API ponoʻī.

Hiki iā ʻoe ke heluhelu hou aku e pili ana i OpenDaylight maanei.

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

  • Mea hana hoʻāʻo API
  • Maʻalahi a maʻalahi hoʻi e hoʻohana

I kā mākou hihia, makemake mākou iā ia i mea e hoʻouna ai i nā noi REST i ka OpenDaylight API. Hiki iā ʻoe, ʻoiaʻiʻo, hoʻouna i nā noi me ka lima, akā ma ka Postman ʻike maopopo loa nā mea āpau a kūpono i kā mākou kumu.

No ka poʻe makemake e ʻeli: ua kākau ʻia ka nui o nā mea aʻo ma luna (Eia kekahi lā).

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

  • Mea hana no ka lawe ʻana i nā mea hoʻokele virtual ma Docker
  • Kākoʻo: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, etc.
  • Open Source

He mea hana hoihoi akā ʻike iki ʻia. I kā mākou hihia, e hoʻohana mākou iā ia e holo iā Juniper vMX a me Cisco xRV9000 ma kahi Ubuntu 20.04 LTS maʻamau.

Hiki iā ʻoe ke heluhelu hou e pili ana iā ia ma ʻaoʻao papahana.

Mahele 2: Lab

Ma kēia kumu aʻo, e hoʻonohonoho mākou i kēia ʻōnaehana:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Pehea hana i keia hana

  • Juniper vMX piʻi i loko Docker ipu (by means Vrnetlab) a me nā hana ma ke ʻano he mea hoʻokele virtual maʻamau.
  • ODL pili i ka router a hiki iā ʻoe ke hoʻomalu iā ia.
  • Kahuhahu hoʻokuʻu ʻia ma kahi mīkini ʻokoʻa a ma o ia mea mākou e hoʻouna ai i nā kauoha ODL: e hoʻohui / wehe i ke alalai, hoʻololi i ka hoʻonohonoho, etc.

Manaʻo manaʻo no ka mea hana o ka ʻōnaehana

Juniper vMX и ODL makemake i nā kumuwaiwai he nui no kā lākou hana paʻa. Hoʻokahi wale nō vMX noi no 6 Gb o RAM a me 4 cores. No laila, ua hoʻoholo ʻia e hoʻoneʻe i nā "kaumaha" āpau i kahi mīkini ʻokoʻa (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). ʻO ka mea alalai, ʻoiaʻiʻo, ʻaʻole "lele" ma luna o ia, akā lawa ka hana no nā hoʻokolohua liʻiliʻi.

Mahele 3: Hoʻonohonoho i ka OpenDaylight

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

ʻO ka mana o kēia manawa o ODL i ka manawa o kēia kākau ʻana ʻo Magnesium SR1

1) Hoʻokomo ʻO Java OpenJDK 11 (no ka hoʻokomo kikoʻī hou aku maanei)

ubuntu:~$ sudo apt install default-jdk

2) E huli a hoʻoiho i ka hana hou loa ODL mai kēia wahi
3) Wehe i ka waihona i hoʻoiho ʻia
4) E hele i ka papa kuhikuhi hopena
5) Hoʻomaka ./bin/karaf

Ma kēia ʻanuʻu ODL pono e hoʻomaka a ʻike mākou iā mākou iho i ka console (Hoʻohana ʻia ʻo Port 8181 no ke komo ʻana mai waho, a mākou e hoʻohana ai ma hope).

A laila, hoʻokomo ODL hiʻonai hoʻolālā ʻia e hana me nā protocols NETCONF и RESTCONF. E hana i kēia ma ka console ODL hana mākou:

opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all

ʻO kēia ka hoʻonohonoho maʻalahi. ODL hoʻopau ʻia. (No nā kikoʻī hou aku, e ʻike maanei).

Mahele 4: Hoʻonohonoho Vrnetlab

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Hoʻomākaukau ʻōnaehana

Ma mua o ke kau ʻana Vrnetlab pono ʻoe e hoʻokomo i nā pūʻolo i koi ʻia no kāna hana. E like me Docker, hele, 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

Ke hoʻokomo nei iā Vrnetlab

E hoʻoulu Vrnetlab clone i ka waihona e pili ana mai github:

ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git

E hele i ka papa kuhikuhi vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Maanei hiki iā ʻoe ke ʻike i nā palapala āpau e pono ai e holo. E ʻoluʻolu e hoʻomaopopo ua hana ʻia kahi papa kuhikuhi pili no kēlā me kēia ʻano mea ala ala:

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

E hana i kiʻi o ka router

ʻO kēlā me kēia router i kākoʻo ʻia Vrnetlab, loaʻa i kāna kaʻina hana hoʻonohonoho kūʻokoʻa. I ka manawa Juniper vMX pono mākou e hoʻouka i ka waihona .tgz me ke alalai (hiki iā ʻoe ke kiʻi iā ia mai kūhelu paena) i ka papa kuhikuhi vmx a holo i ke kauoha make:

ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make

Ke kūkulu ʻana i kiʻi vMX e lawe ma kahi o 10-20 mau minuke. ʻO ka manawa kēia e hele ai e kiʻi i ka kofe!

No ke aha ka lōʻihi, ke nīnau nei ʻoe?

Unuhi ka pane mea kākau i kēia nīnau:

"ʻO kēia no ka mea ʻo ka manawa mua i hoʻomaka ʻia ka VCP (Control Plane), heluhelu ia i kahi faila config e hoʻoholo ai inā e holo ʻo ia ma ke ʻano he VRR VCP ma vMX. Ma mua, ua hana ʻia kēia hoʻomaka ʻana i ka wā hoʻomaka Docker, akā ʻo ia ka manaʻo o ka VCP ua hoʻomaka hou ʻia i hoʻokahi manawa ma mua o ka loaʻa ʻana o ka mea hoʻokele virtual, ka hopena i kahi manawa boot lōʻihi (e pili ana i 5 mau minuke) I kēia manawa ua hana ʻia ka holo mua o ka VCP i ka wā o ke kūkulu ʻana i ke kiʻi Docker, a no ka mea ʻaʻole hiki ke holo ka hale Docker me ka - - koho pono, 'o ia ho'i, hana 'o qemu me ka wikiwiki 'ole o ka lako KVM a no laila, lō'ihi loa ke kūkulu 'ia 'ana. ʻAʻole makaʻu nui no ka mea hana mākou i hoʻokahi kiʻi, akā hoʻomaka mākou i nā mea he nui. "

Ma hope o ka ʻike ʻana i ke kiʻi o kā mākou 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

E wehe i ka pahu vr-vmx

Hoʻomaka mākou me ke kauoha:

ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c

A laila, hiki iā mākou ke ʻike i ka ʻike e pili ana i nā pahu hana:

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

Ke hoʻokuʻi ʻana i ka router

Hiki ke kiʻi ʻia ka IP address o ke kikowaena pūnaewele o ke alalai me kēia kauoha:

ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2

Paʻamau, Vrnetlab hana i ka mea hoʻohana ma ka router vrnetlab/VR-netlab9.
Pili me 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

Hoʻopau kēia i ka hoʻonohonoho router.

Hiki ke loaʻa nā ʻōlelo paipai no nā mea hoʻokele o nā mea kūʻai like ʻole ma papahana github i loko o nā papa kuhikuhi.

Mahele 5: Leta - hoʻohui i ke alalai iā OpenDaylight

Hoʻokomo ʻia ka mea leka uila

No ka hoʻouka ʻana, e hoʻoiho wale i ka polokalamu mai kēia wahi.

Ke hoʻokuʻi ʻana i kahi alalai iā ODL

E hana kākou PUT noi:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

  1. Kaila nīnau:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Noi kino (Kōʻao kino):
    <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. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin. Pono kēia no ke komo ʻana i ka ODL:
    ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab
  4. Ma ka ʻaoʻao Headers, pono ʻoe e hoʻohui i ʻelua mau poʻo:
    • E ʻae i ka noi/xml
    • Palapala maʻiʻo-ʻano/xml

Ua hana ʻia kā mākou noi. Hoʻouna mākou. Inā hoʻonohonoho pono ʻia nā mea a pau, pono mākou e hoʻihoʻi i ke kūlana "201 Created":

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

He aha ka hana a kēia noi?

Hana mākou i ka node i loko ODL me nā palena o ke alalai maoli makemake mākou e komo.

xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"

He mau papa inoa loko kēia 'ōkuene (Helu inoa XML) no ODL e like me ka hana ʻana i ka node.

Eia kekahi, ʻo ka inoa o ka router node-id, helu kelepona - koa a pēlā aku nō.

ʻO ka laina hoihoi loa ka laina hope loa. Schema-cache-papa kuhikuhi hana i kahi papa kuhikuhi kahi e hoʻoiho ʻia ai nā faila a pau ʻO ka papahana YANG mea hoʻopili i hoʻohui ʻia. Hiki iā ʻoe ke loaʻa iā lākou i loko $ODL_ROOT/cache/jun01_cache.

Ke nānā nei i ka pilina o ke alalai

E hana kākou GET noi:

  1. Kaila nīnau:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

Hoʻouna mākou. Pono e loaʻa kahi kūlana o "200 OK" a me kahi papa inoa o nā mea āpau i kākoʻo ʻia e ka hāmeʻa ʻO ka papahana YANG:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

manaʻo hoʻopuka: No kaʻikeʻana i ka hope, i koʻu hihia, pono e kali ma kahi o 10 mau minuke ma hope o ka hoʻokōʻana PUTa hiki i nā mea a pau ʻO ka papahana YANG wehe i ka ukana ODL. A hiki i kēia manawa, i ka wā e hana ai i kēia GET e hōʻike ʻia ka nīnau penei:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Holoi i ka router

E hana kākou e kāpae i noi:

  1. Kaila nīnau:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

Mahele 6: E hoʻololi i ka hoʻonohonoho router

Loaʻa i ka hoʻonohonoho

E hana kākou GET noi:

  1. Kaila nīnau:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

Hoʻouna mākou. Pono e loaʻa ke kūlana "200 OK" a me ka hoʻonohonoho router:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Hana i kahi hoʻonohonoho

E like me ka laʻana, e hana kākou i kēia hoʻonohonoho a hoʻololi iā ia:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

E hana kākou POST noi:

  1. Kaila nīnau:
    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. Noi kino (Kōʻao kino):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
  4. Ma ka ʻaoʻao Headers, pono ʻoe e hoʻohui i ʻelua mau poʻo:
    • E ʻae i ka noi/xml
    • Palapala maʻiʻo-ʻano/xml

Ma hope o ka hoʻouna ʻana, pono e loaʻa iā lākou ke kūlana "204 No Content"

No ka nānā ʻana ua loli ka hoʻonohonoho, hiki iā ʻoe ke hoʻohana i ka nīnau mua. Akā no ka laʻana, e hana mākou i kahi mea e hōʻike i ka ʻike e pili ana i nā protocols i hoʻonohonoho ʻia ma ke alalai.

E hana kākou GET noi:

  1. Kaila nīnau:
    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. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

Ma hope o ka hoʻokō ʻana i ka noi, e ʻike mākou i kēia:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

E hoʻololi i ka hoʻonohonoho

E hoʻololi kākou i ka ʻike e pili ana i ka protocol BGP. Ma hope o kā mākou hana, e like me kēia:

protocols {
    bgp {
        disable;
    }
}

E hana kākou PUT noi:

  1. Kaila nīnau:
    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. Noi kino (Kōʻao kino):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
  4. Ma ka ʻaoʻao Headers, pono ʻoe e hoʻohui i ʻelua mau poʻo:
    • E ʻae i ka noi/xml
    • Palapala maʻiʻo-ʻano/xml

Ke hoʻohana nei i ka mea mua GET noi, ʻike mākou i nā loli:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Holoi i ka hoʻonohonoho

E hana kākou e kāpae i noi:

  1. Kaila nīnau:
    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. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

Ke kāhea ʻia GET noi me ka ʻike e pili ana i nā protocols, e ʻike mākou i kēia:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Hoʻohui:

No ka hoʻololiʻana i ka hoʻonohonohoʻana,ʻaʻole pono e hoʻouna i ke kino noi ma keʻano 'ōkuene. Hiki ke hana i kēia ma ke ʻano JSON.

No ka hana ʻana i kēia, no ka laʻana, i ka nīnau PUT e hoʻololi i ka hoʻonohonoho, hoʻololi i ke kino noi me:

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

Mai poina e hoʻololi i nā poʻo ma ka ʻaoʻao Headers i:

  • E ʻae i ka noi/json
  • Palapala maʻiʻo-ʻano/json

Ma hope o ka hoʻouna ʻana, e loaʻa iā mākou ka hopena aʻe (Nānā mākou i ka pane me ka hoʻohana ʻana GET noi):

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Mahele 7: Hoʻohui i ka Cisco xRV9000

He aha kā mākou e pili ana iā Juniper, ʻae Juniper? E kamaʻilio kākou e pili ana iā Cisco!
Ua loaʻa iaʻu ka xRV9000 version 7.0.2 (he holoholona e pono ai ka 8Gb RAM a me 4 cores. ʻAʻole i loaʻa manuahi, no laila e hoʻopili Cisco) - e holo kāua.

Holo i kahi ipu

ʻAʻole ʻokoʻa ka hana o ka hana ʻana i kahi pahu Docker mai Juniper. Pēlā nō, hoʻokuʻu mākou i ka faila .qcow2 me ke alalai i loko o ka papa kuhikuhi e pili ana i kona inoa (i kēia hihia, xrv9k) a hoʻokō i ke kauoha make docker-image.

Ma hope o kekahi mau minuke, ʻike mākou ua hana ʻia ke kiʻi:

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

Hoʻomaka mākou i ka ipu:

ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc

Ma hope o kekahi manawa, ʻike mākou ua hoʻomaka ka ipu:

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

Hoʻohui ma 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

Hoʻohui i ka mea ala ala iā OpenDaylight

Hoʻohui like ʻia me ka vMX. Pono mākou e hoʻololi i nā inoa.
PUT noi:
ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

Kāhea ma hope o kekahi manawa GET nīnau e nānā ua pili nā mea a pau:
ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

E hoʻololi i ka hoʻonohonoho

E hoʻonohonoho kākou i kēia hoʻonohonoho:

!
router ospf LAB
 mpls ldp auto-config
!

E hana kākou POST noi:

  1. Kaila nīnau:
    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. Noi kino (Kōʻao kino):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
  4. Ma ka ʻaoʻao Headers, pono ʻoe e hoʻohui i ʻelua mau poʻo:
    • E ʻae i ka noi/json
    • Palapala maʻiʻo-ʻano/json

Ma hope o kāna hoʻokō ʻana, pono lākou e loaʻa ke kūlana "204 No Content".

E nānā kāua i ka mea i loaʻa iā mākou.
No kēia e hana mākou GET noi:

  1. Kaila nīnau:
    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. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

Ma hope o ka hoʻokō ʻana, pono ʻoe e ʻike i kēia:

ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab

E wehe i ka hoʻohana hoʻonohonoho e kāpae i:

  1. Kaila nīnau:
    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. Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.

hopena

I ka huina, e like me kāu i ʻike ai, ʻaʻole ʻokoʻa nā kaʻina hana no ka hoʻopili ʻana iā Cisco a me Juniper i OpenDaylight - wehe kēia i kahi ākea ākea no ka hana. E hoʻomaka ana mai ka hoʻonohonoho hoʻonohonoho ʻana i nā ʻāpana pūnaewele āpau a hoʻopau me ka hana ʻana i kāu mau kulekele pūnaewele ponoʻī.
Ma kēia kumu aʻo, ua hāʻawi wau i nā hiʻohiʻona maʻalahi o ke ʻano e hiki ai iā ʻoe ke launa pū me nā lako pūnaewele me ka hoʻohana ʻana i OpenDaylight. Me ka kānalua ʻole, hiki ke hoʻonui ʻia nā nīnau mai nā hiʻohiʻona ma luna a hoʻonohonoho i nā lawelawe holoʻokoʻa me hoʻokahi kaomi o ka ʻiole - ua kaupalena ʻia nā mea āpau e kou noʻonoʻo *

E hoʻomau 'ia…

PS

Inā ʻike koke ʻoe i kēia mau mea a i ʻole, ua hele a komo i loko o ka ʻuhane o ODL, a laila paipai wau e nānā i ka hoʻomohala ʻana i nā noi ma ka mea hoʻokele ODL. Hiki iā ʻoe ke hoʻomaka mai kēia wahi.

Nā hoʻokolohua holomua!

Nānā

  1. Vrnetlab: Emulate i nā pūnaewele me ka hoʻohana ʻana iā KVM a me Docker /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, Et al
  3. ʻO ka Polokalamu Pūnaewele me YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. E aʻo ana i ka XML, Second Edition / Erik T. Ray
  5. Nā DevOps kūpono / Jennifer Davis, Ryn Daniels

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka