স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

স্কাইডাইভ একটি ওপেন সোর্স, রিয়েল-টাইম নেটওয়ার্ক টপোলজি এবং প্রোটোকল বিশ্লেষক। এটি একটি নেটওয়ার্ক পরিকাঠামোতে কী ঘটছে তা বোঝার একটি ব্যাপক উপায় প্রদানের লক্ষ্য।

আপনার আগ্রহের জন্য, আমি আপনাকে স্কাইডাইভ সম্পর্কে কয়েকটি স্ক্রিনশট দেব। নীচে স্কাইডাইভের একটি ভূমিকা সম্পর্কে একটি পোস্ট থাকবে।

স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

পোস্ট"skydive.network এর পরিচিতি» হাব্রেতে।

স্কাইডাইভ স্কাইডাইভ এজেন্টদের কাছ থেকে নেটওয়ার্ক ইভেন্ট গ্রহণ করে নেটওয়ার্ক টপোলজি প্রদর্শন করে। আপনি কি কখনও ভেবে দেখেছেন যে কীভাবে টপোলজি ডায়াগ্রাম নেটওয়ার্ক উপাদানগুলি স্কাইডাইভ এজেন্ট নেটওয়ার্ক বা নন-নেটওয়ার্ক অবজেক্ট যেমন TOR, ডেটা স্টোরেজ ইত্যাদির বাইরে যুক্ত বা প্রদর্শন করা যায়৷ নোড নিয়ম API-কে ধন্যবাদ৷

সংস্করণ 0.20 থেকে, Skydive একটি নোড নিয়ম API প্রদান করে যা নতুন নোড এবং প্রান্ত তৈরি করতে এবং বিদ্যমান নোডের মেটাডেটা আপডেট করতে ব্যবহার করা যেতে পারে। নোড রুল এপিআই দুটি এপিআইতে বিভক্ত: নোড রুল এপিআই এবং এজ রুল এপিআই। নোড রুল API একটি নতুন নোড তৈরি করতে এবং বিদ্যমান নোডের মেটাডেটা আপডেট করতে ব্যবহৃত হয়। প্রান্ত নিয়ম API দুটি নোডের মধ্যে একটি সীমানা তৈরি করতে ব্যবহৃত হয়, যেমন দুটি নোড সংযোগ করে।

এই ব্লগে আমরা দুটি ব্যবহারের ক্ষেত্রে দেখব, যার মধ্যে একটি হল একটি নেটওয়ার্ক উপাদান যা স্কাইডাইভ নেটওয়ার্কের অংশ নয়। দ্বিতীয় বিকল্পটি একটি নন-নেটওয়ার্ক উপাদান। তার আগে, আমরা টপোলজি নিয়ম API ব্যবহার করার কিছু মৌলিক উপায় দেখব।

একটি স্কাইডাইভ নোড তৈরি করা

একটি নোড তৈরি করতে, আপনাকে অবশ্যই একটি অনন্য নোডের নাম এবং একটি বৈধ নোডের ধরণ প্রদান করতে হবে। আপনি কিছু অতিরিক্ত বিকল্প প্রদান করতে পারেন.

skydive client node-rule create --action="create" --node-name="node1" --node-type="fabric" --name="node rule1"
{
  "UUID": "ea21c30f-cfaa-4f2d-693d-95159acb71ed",
  "Name": "node rule1",
  "Description": "",
  "Metadata": {
    "Name": "node1",
    "Type": "fabric"
  },
  "Action": "create",
  "Query": ""
}

স্কাইডাইভ নোড মেটাডেটা আপডেট করুন

একটি বিদ্যমান নোডের মেটাডেটা আপডেট করতে, আপনি যে নোডগুলিতে মেটাডেটা আপডেট করতে চান তা নির্বাচন করতে আপনাকে অবশ্যই একটি গ্রেমলিন কোয়েরি প্রদান করতে হবে। আপনার অনুরোধ অনুযায়ী, আপনি একটি একক নোড নিয়ম ব্যবহার করে এক বা একাধিক নোডের মেটাডেটা আপডেট করতে পারেন।

skydive client node-rule create --action="update" --name="update rule" --query="G.V().Has('Name', 'node1')" --metadata="key1=val1, key2=val2"
{
  "UUID": "3e6c0e15-a863-4583-6345-715053ac47ce",
  "Name": "update rule",
  "Description": "",
  "Metadata": {
    "key1": "val1",
    "key2": "val2"
  },
  "Action": "update",
  "Query": "G.V().Has('Name', 'node1')"
}

একটি স্কাইডাইভ এজ তৈরি করা

একটি প্রান্ত তৈরি করতে, আপনাকে অবশ্যই উত্স এবং গন্তব্য নোড এবং প্রান্তের লিঙ্কের ধরণ নির্দিষ্ট করতে হবে; একটি চাইল্ড নোড তৈরি করতে, লিঙ্কের প্রকারের মান অবশ্যই মালিকানা হতে হবে; একইভাবে, একটি লিঙ্ক টাইপ লেয়ার2 তৈরি করতে, লিঙ্ক টাইপ মান হতে হবে স্তর2 আপনি দুটি নোডের মধ্যে একাধিক লিঙ্ক তৈরি করতে পারেন, তবে লিঙ্কের ধরন অবশ্যই আলাদা হতে হবে।

skydive client edge-rule create --name="edge" --src="G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')" --dst="G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')" --relationtype="both"
{
  "UUID": "50fec124-c6d0-40c7-42a3-2ed8d5fbd410",
  "Name": "edge",
  "Description": "",
  "Src": "G.v().has('TID', '2f6f9b99-82ef-5507-76b6-cbab28bda9cb')",
  "Dst": "G.V().Has('TID', 'd6ec6e2f-362e-51e5-4bb5-6ade37c2ca5c')",
  "Metadata": {
    "RelationType": "both"
  }
}

প্রথম ব্যবহারের ক্ষেত্রে

এই ক্ষেত্রে, আমরা স্কাইডাইভ টপোলজিতে কীভাবে একটি নন-নেটওয়ার্ক ডিভাইস দেখাতে হয় তা দেখব। আসুন আমরা বিবেচনা করি যে আমাদের কাছে একটি ডেটা গুদাম রয়েছে যা কিছু দরকারী মেটাডেটা সহ একটি স্কাইডাইভ টপোলজি ডায়াগ্রামে প্রদর্শন করা প্রয়োজন।

ডিভাইসটিকে টপোলজিতে যুক্ত করার জন্য আমাদের শুধু একটি নোড নিয়ম তৈরি করতে হবে। আমরা ক্রিয়েট কমান্ডের অংশ হিসেবে ডিভাইস মেটাডেটা যোগ করতে পারি, অথবা পরে এক বা একাধিক আপডেট নোড নিয়ম কমান্ড তৈরি করতে পারি।

টপোলজি ডায়াগ্রামে একটি স্টোরেজ ডিভাইস যোগ করতে নিম্নলিখিত হোস্ট রুল কমান্ডটি চালান।

skydive client node-rule create --action="create" --node-name="sda" --node-type="persistentvolume" --metadata="DEVNAME=/dev/sda,DEVTYPE=disk,ID.MODEL=SD_MMC, ID.MODEL ID=0316, ID.PATH TAG=pci-0000_00_14_0-usb-0_3_1_0-scsi-0_0_0_0, ID.SERIAL SHORT=20120501030900000, ID.VENDOR=Generic-, ID.VENDOR ID=0bda, MAJOR=8, MINOR=0, SUBSYSTEM=block, USEC_INITIALIZED=104393719727"

হোস্ট নোডের সাথে তৈরি নোডকে সংযুক্ত করতে প্রান্ত নিয়মের নীচের কমান্ডটি চালান।

skydive client edge-rule create --src="G.V().Has('Name', 'node1')" --dst="G.V().Has('Name', 'sda')" --relationtype="ownership"

উপরের কমান্ডের পর, আপনি এখন স্কাইডাইভ টপোলজি ডায়াগ্রামে প্রদত্ত মেটাডেটা সহ দৃশ্যমান ডিভাইসটি দেখতে পাচ্ছেন যা নীচের ছবিতে দেখানো হয়েছে।

স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

দ্বিতীয় ব্যবহারের ক্ষেত্রে

এই ক্ষেত্রে আমরা দেখব কিভাবে একটি নেটওয়ার্ক ডিভাইস যোগ করা যায় যেটি স্কাইডাইভ নেটওয়ার্কের অংশ নয়। আসুন এই উদাহরণ তাকান. আমাদের দুটি স্কাইডাইভ এজেন্ট দুটি ভিন্ন হোস্টে চলছে, এই দুটি হোস্টকে সংযুক্ত করতে আমাদের একটি TOR সুইচ প্রয়োজন৷ যদিও আমরা একটি কনফিগারেশন ফাইলে স্ট্রাকচার নোড এবং লিঙ্কগুলি সংজ্ঞায়িত করে এটি অর্জন করতে পারি, আসুন আমরা কীভাবে টপোলজি নিয়ম API ব্যবহার করে একই কাজ করতে পারি তা দেখা যাক।

একটি TOR সুইচ ছাড়া, দুটি এজেন্ট দুটি ভিন্ন নোড হিসেবে কোনো লিঙ্ক ছাড়াই প্রদর্শিত হবে, যেমনটি নীচের ছবিতে দেখানো হয়েছে।

স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

এখন TOR সুইচ এবং পোর্ট তৈরি করতে নিম্নলিখিত হোস্ট রুলস কমান্ডগুলি চালান।

skydive client node-rule create --node-name="TOR" --node-type="fabric" --action="create"
skydive client node-rule create --node-name="port1" --node-type="port" --action="create"
skydive client node-rule create --node-name="port2" --node-type="port" --action="create"

আপনি দেখতে পাচ্ছেন, TOR সুইচ এবং পোর্টগুলি তৈরি করা হয়েছে এবং স্কাইডাইভ টপোলজিতে যুক্ত করা হয়েছে এবং টপোলজি এখন নীচের চিত্রের মতো দেখাবে।

স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

এখন TOR সুইচ, পোর্ট 1 এবং হোস্ট 1 এর পাবলিক ইন্টারফেসের মধ্যে একটি সংযোগ তৈরি করতে নিম্নলিখিত এজ রুল কমান্ডগুলি চালান।

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('TID', '372c254d-bac9-50c2-4ca9-86dcc6ce8a57')" --dst="G.V().Has('Name', 'port1')" --relationtype="layer2"

TOR সুইচ পোর্ট 2 এবং হোস্ট 2 পাবলিক ইন্টারফেসের মধ্যে একটি লিঙ্ক তৈরি করতে নিম্নলিখিত কমান্ডগুলি চালান

skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"
skydive client edge-rule create --src="G.V().Has('Name', 'TOR')" --dst="G.V().Has('Name', 'port2')" --relationtype="ownership"
skydive client edge-rule create --src="G.V().Has('TID', '50037073-7862-5234-4996-e58cc067c69c')" --dst="G.V().Has('Name', 'port2')" --relationtype="layer2"

মালিকানা এবং লেয়ার2 অ্যাসোসিয়েশনগুলি এখন TOR সুইচ এবং পোর্টের মধ্যে তৈরি করা হয়েছে, সেইসাথে এজেন্ট এবং পোর্টের মধ্যে লেয়ার2 অ্যাসোসিয়েশন তৈরি করা হয়েছে। এখন চূড়ান্ত টপোলজি নিচের ছবির মত দেখাবে।

স্কাইডাইভ ক্লায়েন্টের মাধ্যমে ম্যানুয়ালি স্কাইডাইভ টপোলজিতে একটি নোড যোগ করা

এখন দুটি হোস্ট/এজেন্ট সঠিকভাবে সংযুক্ত এবং আপনি সংযোগটি পরীক্ষা করতে পারেন বা দুটি হোস্টের মধ্যে একটি সংক্ষিপ্ততম পাথ ক্যাপচার তৈরি করতে পারেন।

পিএস লিঙ্ক মূল পোস্ট

আমরা এমন লোকদের খুঁজছি যারা অন্যান্য স্কাইডাইভ বৈশিষ্ট্য সম্পর্কে পোস্ট লিখতে পারে।
টেলিগ্রাম-চ্যাট skydive.network এর মাধ্যমে।

উত্স: www.habr.com

একটি মন্তব্য জুড়ুন