ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

මෙම ලිපියෙන්, සකස් කරන්නේ කෙසේදැයි මම ඔබට පෙන්වන්නම් විවෘත දිවා ආලෝකය ජාල උපකරණ සමඟ වැඩ කිරීමට, සහ භාවිතා කරන ආකාරය ද පෙන්වන්න තැපැල්කරු සහ සරලයි RESTCONF ඉල්ලීම්, මෙම උපකරණ පාලනය කළ හැක. අපි දෘඩාංග සමඟ වැඩ නොකරමු, ඒ වෙනුවට අපි තනි රවුටරයක් ​​භාවිතා කරමින් කුඩා අතථ්‍ය රසායනාගාර යොදවන්නෙමු. Vrnetlab අවසන් උබුන්ටු 20.04 LTS.

මම මුලින්ම රවුටරයක උදාහරණය භාවිතා කර සවිස්තරාත්මක සැකසුම පෙන්වන්නම් ජුනිපර් vMX 20.1R1.11, පසුව අපි එය සැකසුම සමඟ සංසන්දනය කරමු Cisco xRV9000 7.0.2.

අන්තර්ගතය

  • අවශ්ය දැනුම
  • 1 කොටස: කෙටියෙන් සාකච්ඡා කරන්න OpenDaylight (මෙතැන් සිට හැඳින්වෙන්නේ ODL), තැපැල්කරු и Vrnetlab සහ අපට ඒවා අවශ්‍ය වන්නේ ඇයි?
  • 2 කොටස: අතථ්‍ය රසායනාගාරයේ විස්තරය
  • 3 කොටස: අභිරුචිකරණය කරන්න විවෘත දිවා ආලෝකය
  • 4 කොටස: අභිරුචිකරණය කරන්න Vrnetlab
  • 5 කොටස: භාවිතා කිරීම මගින් තැපැල්කරු අතථ්‍ය රවුටරය සම්බන්ධ කරන්න (ජුනිපර් vMX) වෙත ODL
  • 6 කොටස: භාවිතා කර රවුටර වින්‍යාසය ලබාගෙන වෙනස් කරන්න තැපැල්කරු и ODL
  • 7 කොටස: Cisco xRV9000 එකතු කරන්න
  • නිගමනය
  • ප්රාදේශීය සභා
  • ග්‍රන්ථ නාමාවලිය

අවශ්ය දැනුම

ලිපිය පත්‍රයක් බවට පත් නොවීමට, මම තාක්ෂණික විස්තර කිහිපයක් මඟ හැරියෙමි (ඔබට ඒවා ගැන කියවිය හැකි සාහිත්‍යයට සබැඳි සමඟ).

මේ සම්බන්ධයෙන්, කියවීමට පෙර දැන ගැනීම හොඳ (නමුත් අවශ්‍ය නොවන) මාතෘකා මම ඔබට ඉදිරිපත් කරමි:

1 කොටස: කුඩා සිද්ධාන්තයක්

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

  • සියලු වර්ගවල ජාල කළමනාකරණය සහ ස්වයංක්‍රීය කිරීම සඳහා විවෘත SDN වේදිකාවක්, සහාය දක්වයි ලිනක්ස් පදනම
  • ජාවා ඇතුලේ
  • ආකෘතිය මත පදනම් වූ සේවා වියුක්ත මට්ටම (MD-SAL)
  • ජාල උපාංග සඳහා ස්වයංක්‍රීයව RESTCONF API උත්පාදනය කිරීමට YANG මාදිලි භාවිතා කරයි

ජාල කළමනාකරණය සඳහා ප්රධාන මොඩියුලය. එය හරහා අපි සම්බන්ධිත උපාංග සමඟ සන්නිවේදනය කරන්නෙමු. තමන්ගේම API හරහා කළමනාකරණය කරයි.

ඔබට OpenDaylight ගැන වැඩිදුර කියවිය හැක මෙහි.

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

  • API පරීක්ෂණ මෙවලම
  • සරල සහ භාවිතා කිරීමට පහසු අතුරු මුහුණත

අපගේ නඩුවේදී, OpenDaylight API වෙත REST ඉල්ලීම් යැවීමේ මාධ්‍යයක් ලෙස අපි එය ගැන උනන්දු වෙමු. ඔබට, ඇත්ත වශයෙන්ම, අතින් ඉල්ලීම් යැවිය හැක, නමුත් Postman හි සෑම දෙයක්ම ඉතා පැහැදිලිව පෙනෙන අතර අපගේ අරමුණු වලට හොඳින් ගැලපේ.

හෑරීමට කැමති අය සඳහා: පුහුණු ද්රව්ය ගොඩක් එහි ලියා ඇත (උදාහරණයක් ලෙස).

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

  • Docker හි අතථ්‍ය රවුටර යෙදවීම සඳහා මෙවලම
  • සහය දක්වයි: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ආදිය.
  • විවෘත කේතය

ඉතා රසවත් නමුත් එතරම් නොදන්නා උපකරණයකි. අපගේ නඩුවේදී, අපි එය සාමාන්‍ය Ubuntu 9000 LTS මත Juniper vMX සහ Cisco xRV20.04 ධාවනය කිරීමට භාවිතා කරමු.

ඔබට ඒ ගැන වැඩිදුර කියවිය හැකිය ව්යාපෘති පිටුව.

2 කොටස: රසායනාගාරය

මෙම නිබන්ධනයේදී, අපි පහත පද්ධතිය සකසන්නෙමු:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

කොහොමද මේ වැඩ කරන්නේ

  • ජුනිපර් vMX තුළ නැඟී සිටියි Docker බහාලුම් (මාර්ගයෙන් Vrnetlab) සහ වඩාත් පොදු අථත්ය රවුටරය ලෙස ක්රියා කරයි.
  • ODL රවුටරයට සම්බන්ධ කර එය පාලනය කිරීමට ඔබට ඉඩ සලසයි.
  • තැපැල්කරු වෙනම යන්ත්‍රයක් මත දියත් කර එය හරහා අපි විධාන යවමු ODL: රවුටරය සම්බන්ධ කිරීමට / ඉවත් කිරීමට, වින්‍යාසය වෙනස් කිරීමට යනාදිය.

පද්ධතියේ උපාංගය පිළිබඳ විවරණය

ජුනිපර් vMX и ODL ඔවුන්ගේ ස්ථාවර ක්‍රියාකාරිත්වය සඳහා විශාල සම්පත් ප්‍රමාණයක් අවශ්‍ය වේ. එකම vMX 6 Gb RAM එකක් සහ cores 4ක් ඉල්ලනවා. එබැවින්, සියලු "බර" වෙනම යන්ත්රයකට ගෙන යාමට තීරණය විය (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS) රවුටරය, ඇත්ත වශයෙන්ම, එය මත "පියාසර" නැත, නමුත් කාර්ය සාධනය කුඩා අත්හදා බැලීම් සඳහා ප්රමාණවත් වේ.

3 කොටස: OpenDaylight පිහිටුවීම

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

මෙම ලිපිය ලියන අවස්ථාව වන විට ODL හි වත්මන් අනුවාදය මැග්නීසියම් SR1 වේ

1) ස්ථාපනය කරන්න ජාවා OpenJDK 11 (වැඩි විස්තර ස්ථාපනය සඳහා මෙහි)

ubuntu:~$ sudo apt install default-jdk

2) නවතම ගොඩනැගීම සොයාගෙන බාගත කරන්න ODL මෙතනින්
3) බාගත කළ සංරක්ෂිතය Unzip කරන්න
4) ලැබෙන බහලුම වෙත යන්න
5) දියත් කිරීම ./bin/karaf

මෙම පියවරේදී ODL ආරම්භ කළ යුතු අතර, අපි කොන්සෝලය තුළ සිටිනු ඇත (Port 8181 පිටත සිට ප්‍රවේශය සඳහා භාවිතා කරයි, එය අප පසුව භාවිතා කරනු ඇත).

ඊළඟට, ස්ථාපනය කරන්න ODL විශේෂාංග, ප්රොටෝකෝල සමඟ වැඩ කිරීමට නිර්මාණය කර ඇත NETCONF и RESTCONF. කොන්සෝලය තුළ මෙය කිරීමට ODL අපි ක්රියාත්මක කරන්න:

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

මෙය සරලම සැකසුමයි. ODL සම්පූර්ණ කර ඇත. (වැඩි විස්තර සඳහා, බලන්න මෙහි).

4 කොටස: Vrnetlab පිහිටුවීම

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

පද්ධතිය සකස් කිරීම

ස්ථාපනය කිරීමට පෙර Vrnetlab ඔබ එහි ක්‍රියාකාරිත්වය සඳහා අවශ්‍ය පැකේජ ස්ථාපනය කළ යුතුය. ආදි Docker, යන්න, 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 ස්ථාපනය කිරීම

ස්ථාපනය කිරීමට 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

රවුටරයේ රූපයක් සාදන්න

සහය දක්වන සෑම රවුටරයක්ම Vrnetlab, එයටම ආවේණික සැකසුම් ක්‍රියා පටිපාටියක් ඇත. කවදා ද ජුනිපර් vMX අපට අවශ්‍ය වන්නේ රවුටරය සමඟ .tgz සංරක්ෂිතය උඩුගත කිරීමට පමණි (ඔබට එය බාගත කළ හැක නිල වෙබ් අඩවිය) vmx බහලුම වෙත ගොස් විධානය ක්‍රියාත්මක කරන්න make:

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

රූපයක් ගොඩනැගීම vMX විනාඩි 10-20 ක් පමණ ගත වනු ඇත. කෝපි ටිකක් බොන්න යන්න වෙලාව හරි!

ඇයි මෙච්චර කල්, ඔබ අහන්නේ?

පරිවර්තනය ප්රතිචාරය මෙම ප්‍රශ්නයට කර්තෘ:

"මෙයට හේතුව වන්නේ VCP (Control Plane) ප්‍රථම වරට ආරම්භ කරන විට, එය vMX හි VRR VCP ලෙස ක්‍රියා කරන්නේද යන්න තීරණය කරන වින්‍යාස ගොනුවක් කියවයි. මීට පෙර, මෙම දියත් කිරීම Docker ආරම්භයේදී සිදු කරන ලදී, නමුත් මෙයින් අදහස් කළේ VCP අතථ්‍ය රවුටරය ලබා ගැනීමට පෙර සෑම විටම නැවත ආරම්භ කරන ලදී, එහි ප්‍රතිඵලයක් ලෙස දිගු ඇරඹුම් කාලයක් (විනාඩි 5 ක් පමණ) දැන් VCP හි පළමු ධාවනය සිදු කරනු ලබන්නේ ඩොකර් රූපය තැනීමේදී වන අතර, ඩොකර් ගොඩනැගීම සමඟ ධාවනය කළ නොහැකි බැවින් - -privileged විකල්පය, මෙයින් අදහස් කරන්නේ 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 රවුටරයේ පරිශීලකයෙකු නිර්මාණය කරයි 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 කොටස: තැපැල්කරු - රවුටරය OpenDaylight වෙත සම්බන්ධ කිරීම

තැපැල්කරු ස්ථාපනය

ස්ථාපනය කිරීමට, යෙදුම බාගත කරන්න මෙතනින්.

ODL වෙත රවුටරයක් ​​සම්බන්ධ කිරීම

අපි නිර්මාණය කරමු දාන්න පරීක්ෂණයක්:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ 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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක. ODL වෙත ප්‍රවේශ වීමට මෙය අවශ්‍ය වේ:
    ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද
  4. ශීර්ෂ පටිත්තෙහි, ඔබ ශීර්ෂ දෙකක් එකතු කළ යුතුය:
    • යෙදුම/xml පිළිගන්න
    • අන්තර්ගත-වර්ගය යෙදුම/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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

අපි යවන. "200 OK" තත්ත්වය සහ උපාංගය මඟින් සහාය දක්වන සියල්ලේ ලැයිස්තුවක් ලැබිය යුතුය YANG යෝජනා ක්රමය:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

අදහස්: දෙවැන්න දැකීමට, මගේ නඩුවේ ක්රියාත්මක කිරීමෙන් පසු විනාඩි 10 ක් පමණ රැඳී සිටීමට අවශ්ය විය දාන්නසියල්ල තෙක් 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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

අපි යවන. "200 OK" තත්ත්වය සහ රවුටර වින්‍යාසය ලැබිය යුතුය:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

වින්‍යාසයක් සාදන්න

උදාහරණයක් ලෙස, අපි පහත වින්‍යාසය සාදා එය වෙනස් කරමු:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

අපි නිර්මාණය කරමු තැපැල් පරීක්ෂණයක්:

  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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.
  4. ශීර්ෂ පටිත්තෙහි, ඔබ ශීර්ෂ දෙකක් එකතු කළ යුතුය:
    • යෙදුම/xml පිළිගන්න
    • අන්තර්ගත-වර්ගය යෙදුම/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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

ඉල්ලීම ක්‍රියාත්මක කිරීමෙන් පසු, අපට පහත දේ පෙනෙනු ඇත:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

වින්යාසය වෙනස් කරන්න

BGP ප්‍රොටෝකෝලය පිළිබඳ තොරතුරු වෙනස් කරමු. අපගේ ක්‍රියාවෙන් පසු එය මේ ආකාරයෙන් පෙනෙනු ඇත:

protocols {
    bgp {
        disable;
    }
}

අපි නිර්මාණය කරමු දාන්න පරීක්ෂණයක්:

  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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.
  4. ශීර්ෂ පටිත්තෙහි, ඔබ ශීර්ෂ දෙකක් එකතු කළ යුතුය:
    • යෙදුම/xml පිළිගන්න
    • අන්තර්ගත-වර්ගය යෙදුම/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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

කැඳවූ විට ගන්න ප්‍රොටෝකෝල පිළිබඳ තොරතුරු සමඟ ඉල්ලීම, අපි පහත දකිමු:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

එකතු කිරීම:

වින්‍යාසය වෙනස් කිරීම සඳහා, ඉල්ලීම් ශරීරය ආකෘතියෙන් යැවීම අවශ්‍ය නොවේ XML. මෙය ආකෘතියෙන් ද කළ හැකිය JSON.

මෙය සිදු කිරීම සඳහා, උදාහරණයක් ලෙස, විමසුමේදී දාන්න වින්‍යාසය වෙනස් කිරීමට, ඉල්ලීම් කොටස ප්‍රතිස්ථාපනය කරන්න:

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

ශීර්ෂ පටිත්තෙහි ශීර්ෂයන් වෙනස් කිරීමට අමතක නොකරන්න:

  • අයදුම්පත/json පිළිගන්න
  • අන්තර්ගත-වර්ගය යෙදුම/json

යැවීමෙන් පසු, අපට පහත ප්‍රතිඵලය ලැබෙනු ඇත (අපි පිළිතුර භාවිතා කර බලමු ගන්න ඉල්ලීම):

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

7 කොටස: Cisco xRV9000 එකතු කිරීම

අපි හැමෝම ජුනිපර් ගැන මොනවද, ඔව් ජුනිපර්? අපි Cisco ගැන කතා කරමු!
මට xRV9000 අනුවාදය 7.0.2 හමු විය (8Gb RAM සහ 4 cores අවශ්‍ය වන මෘගයෙකි. එය නොමිලේ ලබා ගත නොහැක, එබැවින් අමතන්න සිස්කෝ) - අපි එය ක්රියාත්මක කරමු.

කන්ටේනරයක් ධාවනය කිරීම

ඩොකර් කන්ටේනරයක් නිර්මාණය කිරීමේ ක්රියාවලිය ප්රායෝගිකව ජුනිපර්ට වඩා වෙනස් නොවේ. ඒ හා සමානව, අපි රවුටරය සමඟ .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 සමඟ සම්පූර්ණයෙන්ම සමාන ආකාරයකින් සිදු වේ. අපිට තියෙන්නේ නම් වෙනස් කරන්න විතරයි.
දාන්න පරීක්ෂණයක්:
ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

ටික වෙලාවකින් අපි කෝල් කරනවා ගන්න සියල්ල සම්බන්ධ වී ඇත්දැයි පරීක්ෂා කිරීමට විමසන්න:
ජාල සේවා ස්වයංක්‍රීයකරණය හෝ OpenDaylight, Postman සහ Vrnetlab භාවිතයෙන් අතථ්‍ය රසායනාගාරයක් ගොඩනඟන්නේ කෙසේද

වින්යාසය වෙනස් කරන්න

අපි පහත වින්‍යාසය සකස් කරමු:

!
router ospf LAB
 mpls ldp auto-config
!

අපි නිර්මාණය කරමු තැපැල් පරීක්ෂණයක්:

  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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.
  4. ශීර්ෂ පටිත්තෙහි, ඔබ ශීර්ෂ දෙකක් එකතු කළ යුතුය:
    • අයදුම්පත/json පිළිගන්න
    • අන්තර්ගත-වර්ගය යෙදුම/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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

ක්රියාත්මක කිරීමෙන් පසු, ඔබ පහත සඳහන් දෑ දැකිය යුතුය:

ජාල සේවා ස්වයංක්‍රීයකරණය හෝ 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 සහ පිවිසුම්/මුරපදය: පරිපාලක/පරිපාලක.

නිගමනය

සමස්තයක් වශයෙන්, ඔබ දැක ඇති පරිදි, සිස්කෝ සහ ජුනිපර් 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 / Jennifer Davis, Ryn Daniels

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න