1। পরিচিতি
হ্যাপি হল সিমুলেটেড নেটওয়ার্ক টপোলজির লাইটওয়েট অর্কেস্ট্রেশনের জন্য নেস্ট ল্যাব দ্বারা তৈরি একটি টুল। হ্যাপি আইওটি হোম এরিয়া নেটওয়ার্কগুলির বিকাশ এবং পরীক্ষার জন্য দরকারী।
হ্যাপির সাথে, আপনি করতে পারেন:
- IoT ডিভাইস হার্ডওয়্যার ব্যবহার না করে একটি একক লিনাক্স ডেভেলপমেন্ট মেশিনে নেটওয়ার্ক প্রোটোকল এবং অন্যান্য বিতরণকৃত এক্সিকিউশন প্রোগ্রাম পরীক্ষা করুন
- একটি নেটওয়ার্ক জুড়ে স্বয়ংক্রিয় কার্যকরী পরীক্ষা সম্পাদন করুন
- টেস্টিং থ্রুপুট উন্নত করতে একই সিস্টেমে একাধিক সমবর্তী, সমান্তরাল নেটওয়ার্ক চালান
এই কোডল্যাবে , আপনি হ্যাপির সাথে কীভাবে শুরু করবেন, সেইসাথে আইওটি ডিভাইসের জন্য ওয়েভের মূল বিষয়গুলি শিখবেন। আপনি যে ওয়েভ ইমপ্লিমেন্টেশনটি ব্যবহার করবেন তা হল OpenWeave , নেস্ট দ্বারা প্রকাশিত একটি ওপেন-সোর্স সংস্করণ।
আপনি কি শিখবেন
- হ্যাপি এবং ওপেনওয়েভ কীভাবে তৈরি করবেন
- কিভাবে ম্যানুয়ালি একটি সিমুলেটেড IoT নেটওয়ার্ক তৈরি করবেন
- কাস্টম টপোলজিগুলি কীভাবে পরিচালনা করবেন
- ইন্টারনেটে একটি সিমুলেটেড হ্যাপি নেটওয়ার্ককে কীভাবে সংযুক্ত করবেন
- ওয়েভ এর মৌলিক বিষয়
আপনি কি প্রয়োজন হবে
- একটি লিনাক্স মেশিন, শারীরিক বা ভার্চুয়াল
- Git ক্লায়েন্ট বা cli
- পাইথন 2.7
- নেটওয়ার্কিং এবং রাউটিং ধারণাগুলির একটি প্রাথমিক ধারণা
2. শুরু করুন
টুলচেইন এবং নির্ভরতা ইনস্টল করুন
হ্যাপি এবং ওয়েভ তৈরি করতে, নিশ্চিত করুন যে আপনার কাছে একটি সমর্থিত টুলচেন এবং সমস্ত নির্ভরতা ইনস্টল রয়েছে।
$ sudo apt-get update $ sudo apt-get install -y autotools-dev build-essential git lcov \ libdbus-1-dev libglib2.0-dev libssl-dev \ libudev-dev make python2.7 software-properties-common \ python-setuptools bridge-utils python-lockfile \ python-psutil $ sudo apt-get install -y --force-yes gcc-arm-none-eabi $ sudo apt-get update -qq
সোর্স কোড পান
কমান্ড লাইন থেকে হ্যাপি এবং ওপেনওয়েভ গিট রিপোজিটরি ক্লোন করুন:
$ cd ~ $ git clone https://github.com/openweave/happy.git $ git clone https://github.com/openweave/openweave-core.git
হ্যাপি ইনস্টল করুন
হ্যাপি রুট ডিরেক্টরি থেকে, হ্যাপি ইনস্টল করুন:
$ cd ~/happy $ make
শুভ ইনস্টলেশন যাচাই করুন
হ্যাপি কমান্ড এখন কমান্ড লাইন থেকে অ্যাক্সেসযোগ্য হওয়া উচিত:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes NODES Name Interface Type IPs
OpenWeave ইনস্টল করুন
OpenWeave রুট ডিরেক্টরি থেকে, OpenWeave ইনস্টল করুন:
$ cd ~/openweave-core $ make -f Makefile-Standalone
OpenWeave দিয়ে হ্যাপি কনফিগার করুন
Happy এর সাথে OpenWeave ব্যবহার করতে, আপনাকে হ্যাপিকে জানাতে হবে যে কোথায় ওয়েভ ইনস্টলেশন পাবেন। আপনার OpenWeave বিল্ডের মধ্যে /src/test-apps
এর পথের সাথে হ্যাপি কনফিগারেশন আপডেট করুন:
$ happy-configuration weave_path ~/openweave-core/build/x86_64-unknown-linux-gnu/src/test-apps
কনফিগারেশন নিশ্চিত করুন:
$ happy-configuration User Happy Configuration weave_path ~/openweave-core/build/x86_64-unknown-linux-gnu/src/test-apps
OpenWeave ইনস্টলেশন যাচাই করুন
এই কোডল্যাবে প্রয়োজনীয় ওয়েভ কমান্ড কমান্ড লাইন থেকে অ্যাক্সেসযোগ্য:
$ weave-fabric-add -h weave-fabric-add creates a weave fabric. weave-fabric-add [-h --help] [-q --quiet] [-i --id <FABRIC_ID>] Example: $ weave-fabric-add 123456 Creates a Weave Fabric with id 123456 return: 0 success 1 fail
আপনি যদি weave-fabric-add: command not found
, তাহলে আপনার PATH
এনভায়রনমেন্ট ভেরিয়েবলটি হ্যাপি বাইনারিগুলির জন্য ব্যবহৃত পথের সাথে আপডেট করুন:
$ export PATH=$PATH:~/openweave-core/src/test-apps/happy/bin
3. আপনার প্রথম টপোলজি
হ্যাপি দিয়ে নিচের তিন-নোড টপোলজি তৈরি করি।
এই টপোলজি হল একটি সাধারণ হোম এরিয়া নেটওয়ার্ক (HAN) এর উদাহরণ। এই HAN-এ, দুটি নোড একটি থ্রেড নেটওয়ার্কে একসাথে সংযুক্ত থাকে এবং সেই নোডগুলির মধ্যে একটি Wi-Fi এর মাধ্যমে তৃতীয়টির সাথে সংযুক্ত হয়। এই নোডটি পুরো HAN-এর জন্য ইন্টারনেট সংযোগ প্রদানের জন্য বাড়ির একটি ওয়্যারলেস রাউটারের সাথে সংযুক্ত করা যেতে পারে। এই সম্পর্কে পরে আরো.
প্রথমে তিনটি নোড তৈরি করুন:
$ happy-node-add 01ThreadNode $ happy-node-add 02BorderRouter $ happy-node-add 03WiFiNode
আসুন নিশ্চিত করুন যে তারা বিদ্যমান:
$ happy-node-list 01ThreadNode 02BorderRouter 03WiFiNode
এখন কিছু নেটওয়ার্ক তৈরি করা যাক:
$ happy-network-add ThreadNetwork thread $ happy-network-add WiFiNetwork wifi
নেটওয়ার্ক বিদ্যমান কিনা যাচাই করুন:
$ happy-network-list ThreadNetwork WiFiNetwork
সুখী অবস্থা পরীক্ষা করুন:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes ThreadNetwork thread UP WiFiNetwork wifi UP NODES Name Interface Type IPs 01ThreadNode 02BorderRouter 03WiFiNode
শুধুমাত্র একটি নেটওয়ার্ক নিয়ে আসাই যথেষ্ট নয়-আমাদের নেটওয়ার্কগুলিতে নোড যোগ করতে হবে। আমাদের টপোলজি ডায়াগ্রাম অনুসরণ করে, উপযুক্ত নেটওয়ার্কে প্রতিটি নোড যোগ করুন:
$ happy-node-join 01ThreadNode ThreadNetwork $ happy-node-join 02BorderRouter ThreadNetwork $ happy-node-join 02BorderRouter WiFiNetwork $ happy-node-join 03WiFiNode WiFiNetwork
মনে রাখবেন যে 02BorderRouter
ThreadNetwork
এবং WiFiNetwork
উভয় ক্ষেত্রেই যোগ করা হয়েছে। কারণ আমাদের HAN-এর মধ্যে একটি বর্ডার রাউটার হিসেবে, এই নোড দুটি পৃথক নেটওয়ার্ককে একত্রে সংযুক্ত করে।
সুখী অবস্থা পরীক্ষা করুন. প্রতিটি নোডের ইন্টারফেস আপ আছে:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes ThreadNetwork thread UP WiFiNetwork wifi UP NODES Name Interface Type IPs 01ThreadNode wpan0 thread 02BorderRouter wpan0 thread wlan0 wifi 03WiFiNode wlan0 wifi
আমাদের টপোলজি এখন এই মত দেখায়:
আমাদের হ্যাপি নেটওয়ার্ক নিয়ে আসার শেষ ধাপ হল প্রতিটি নোডের প্রতিটি ইন্টারফেসে IP ঠিকানা বরাদ্দ করা। একটি নেটওয়ার্কের জন্য IP উপসর্গ নির্দিষ্ট করুন, এবং Happy স্বয়ংক্রিয়ভাবে আপনার জন্য IP ঠিকানা বরাদ্দ করে।
যেহেতু থ্রেড প্রোটোকল IPv6 ব্যবহার করে, থ্রেড নেটওয়ার্কে একটি IPv6 উপসর্গ যোগ করুন:
$ happy-network-address ThreadNetwork 2001:db8:1:2::
সুখী অবস্থা পরীক্ষা করুন. প্রতিটি থ্রেড নোডের থ্রেড ইন্টারফেসের আইপি ঠিকানা রয়েছে:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes ThreadNetwork thread UP 2001:0db8:0001:0002/64 WiFiNetwork wifi UP NODES Name Interface Type IPs 01ThreadNode wpan0 thread 2001:0db8:0001:0002:3e36:13ff:fe33:732e/64 02BorderRouter wpan0 thread 2001:0db8:0001:0002:a651:3eff:fe92:6dbc/64 wlan0 wifi 03WiFiNode wlan0 wifi
WiFi নেটওয়ার্কের জন্য, IPv4 এবং IPv6 উভয় উপসর্গ যোগ করুন:
$ happy-network-address WiFiNetwork 2001:db8:a:b:: $ happy-network-address WiFiNetwork 10.0.1.0
সুখী অবস্থা আরও একবার পরীক্ষা করুন। সমস্ত ইন্টারফেস প্রতিটি Wi-Fi ইন্টারফেসের জন্য দুটি সহ IP ঠিকানা বরাদ্দ করেছে:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes ThreadNetwork thread UP 2001:0db8:0001:0002/64 WiFiNetwork wifi UP 2001:0db8:000a:000b/64 10.0.1/24 NODES Name Interface Type IPs 01ThreadNode wpan0 thread 2001:0db8:0001:0002:3e36:13ff:fe33:732e/64 02BorderRouter wpan0 thread 2001:0db8:0001:0002:a651:3eff:fe92:6dbc/64 wlan0 wifi 10.0.1.2/24 2001:0db8:000a:000b:426c:38ff:fe90:01e6/64 03WiFiNode wlan0 wifi 2001:0db8:000a:000b:9aae:2bff:fe71:62fa/64 10.0.1.3/24
এখানে আমাদের আপডেট করা টপোলজি আছে:
4. সংযোগ পরীক্ষা করুন
এখন যেহেতু আমাদের হ্যাপি নেটওয়ার্ক চালু এবং চলছে, আসুন 01ThreadNode থেকে অন্যান্য 01ThreadNode
করে এর সংযোগ পরীক্ষা করি:
$ happy-ping 01ThreadNode 02BorderRouter [Ping] ping from 01ThreadNode to 02BorderRouter on address 10.0.1.2 -> 100% packet loss [Ping] ping from 01ThreadNode to 02BorderRouter on address 2001:0db8:0001:0002:a651:3eff:fe92:6dbc -> 0% packet loss [Ping] ping from 01ThreadNode to 02BorderRouter on address 2001:0db8:000a:000b:426c:38ff:fe90:01e6 -> 100% packet loss $ happy-ping 01ThreadNode 03WiFiNode [Ping] ping from 01ThreadNode to 03WiFiNode on address 2001:0db8:000a:000b:9aae:2bff:fe71:62fa -> 100% packet loss [Ping] ping from 01ThreadNode to 03WiFiNode on address 10.0.1.3 -> 100% packet loss
happy-ping
কমান্ড টার্গেট নোডের প্রতিটি ইন্টারফেসের জন্য প্রতিটি আইপি ঠিকানা পিং করার চেষ্টা করে। আমরা IPv4 ঠিকানাগুলি উপেক্ষা করতে পারি কারণ থ্রেড শুধুমাত্র IPv6 ব্যবহার করে।
মনে রাখবেন যে শুধুমাত্র একটি IPv6 পিং সফল হয়েছে: 02BorderRouter
এর wpan0
ইন্টারফেসের একটি, যেটি একমাত্র ঠিকানা 01ThreadNode
সরাসরি পৌঁছাতে পারে:
অন্যান্য IPv6 ঠিকানা ব্যর্থ হয়েছে কারণ 02BorderRouter-এ wpan0
এবং wlan0
এর মধ্যে ফরওয়ার্ডিং সক্ষম করা 02BorderRouter
। সুতরাং, 01ThreadNode
এর কোন ধারণা নেই 03WiFiNode
বিদ্যমান, বা কিভাবে এটিতে পৌঁছানো যায়। হ্যাপি সিমুলেটেড নেটওয়ার্ক নিয়ে এসেছে, কিন্তু নোডের মধ্যে সমস্ত রাউটিং এবং ফরওয়ার্ডিং সক্ষম করেনি।
রুট যোগ করুন
HAN জুড়ে IPv6 ট্র্যাফিক রুট করতে, প্রতিটি নেটওয়ার্কের প্রতিটি নোডে সঠিক রুট যোগ করুন, উভয় দিকেই (তাই পিং জানে কিভাবে উৎস নোডে ফিরতে হয়)।
প্রতিটি নোডের জন্য, আপনাকে জানতে হবে:
- নিকটতম নেটওয়ার্ক গেটওয়ে—এই ক্ষেত্রে, উভয়ের জন্য
02BorderRouter
- লক্ষ্য নেটওয়ার্ক—গেটওয়ের পরে কোথায় যেতে হবে
আমাদের তিনটি নোড নেটওয়ার্কের জন্য, এটি আমাদের নিম্নলিখিত দেয়:
সোর্স নেটওয়ার্ক থেকে | টার্গেট নেটওয়ার্কে | গেটওয়ে মাধ্যমে |
| | |
| | |
happy-node-route
সহ প্রতিটি নোডের জন্য এটি পৃথকভাবে করা যেতে পারে, তবে happy-network-route
সহ প্রতিটি নেটওয়ার্কের সমস্ত নোডের জন্য এটি করা সহজ।
$ happy-network-route -a -i ThreadNetwork -t default -v 02BorderRouter -p 2001:db8:1:2::/64 $ happy-network-route -a -i WiFiNetwork -t default -v 02BorderRouter -p 2001:db8:a:b::/64
কমান্ড-লাইন ফ্ল্যাগগুলির ব্যাখ্যার জন্য, happy-network-route -h
ব্যবহার করুন।
happy-network-route
কমান্ড প্রয়োজন অনুযায়ী প্রতিটি নোডের জন্য IPv4 এবং IPv6 ফরওয়ার্ডিং চালু করে। এটি একটি নোডের মধ্যে একটি ইন্টারফেস থেকে অন্য ইন্টারফেসে ট্রাফিককে রুট করার অনুমতি দেয়।
এখন পিং পুনরায় চেষ্টা করুন:
$ happy-ping 01ThreadNode 02BorderRouter [Ping] ping from 01ThreadNode to 02BorderRouter on address 10.0.1.2 -> 100% packet loss [Ping] ping from 01ThreadNode to 02BorderRouter on address 2001:0db8:0001:0002:a651:3eff:fe92:6dbc -> 0% packet loss [Ping] ping from 01ThreadNode to 02BorderRouter on address 2001:0db8:000a:000b:426c:38ff:fe90:01e6 -> 0% packet loss
উভয় IPv6 পিং কাজ! ফরওয়ার্ড করার সাথে সাথে, এটি জানে কিভাবে wlan0
ইন্টারফেসে পৌঁছাতে হয়। IPv4 পিং এখনও ব্যর্থ হয়, কারণ আমরা শুধুমাত্র IPv6 রুট এবং ফরওয়ার্ডিং কনফিগার করেছি (এছাড়াও থ্রেড IPv4-এর উপর চলে না)।
যেহেতু আমরা উভয় দিকে নেটওয়ার্ক রুট যোগ করেছি, আসুন নেটওয়ার্ক জুড়ে পিং করি:
$ happy-ping 01ThreadNode 03WiFiNode [Ping] ping from 01ThreadNode to 03WiFiNode on address 2001:0db8:000a:000b:9aae:2bff:fe71:62fa -> 0% packet loss [Ping] ping from 01ThreadNode to 03WiFiNode on address 10.0.1.3 -> 100% packet loss
IPv6 পিং প্রত্যাশিত হিসাবে কাজ করে। আপনার কাছে এখন একটি সম্পূর্ণ-কার্যকর, সিমুলেটেড IPv6 HAN আছে।
সবকিছু একসাথে সংযুক্ত করার আরও নিরাপদ এবং নির্ভরযোগ্য উপায় সক্ষম করতে, আসুন HAN-এর উপরে ওয়েভ যোগ করি।
5. বুনা যোগ করুন
ওয়েভ হল একটি নেটওয়ার্ক অ্যাপ্লিকেশন স্তর যা নেস্ট পণ্যগুলির জন্য নিরাপদ এবং নির্ভরযোগ্য যোগাযোগের ব্যাকবোন প্রদান করে। আমরা ওপেনওয়েভের সাথে উইভ কার্যকারিতা যোগ করতে পারি, ওয়েভের ওপেন-সোর্স সংস্করণ।
ওয়েভের একটি বাস্তবায়নকে "ফ্যাব্রিক" বলা হয়। একটি ওয়েভ ফ্যাব্রিক হল একটি নেটওয়ার্ক যা সমস্ত HAN নোড, নেস্ট পরিষেবা এবং HAN-এ অংশগ্রহণকারী যেকোনো মোবাইল ডিভাইস নিয়ে গঠিত। এটি HAN-এর উপরে বসে এবং বিভিন্ন অন্তর্নিহিত নেটওয়ার্ক লিঙ্ক প্রযুক্তি (উদাহরণস্বরূপ, থ্রেড বা Wi-Fi) জুড়ে সহজ রাউটিং সক্ষম করে।
ফ্যাব্রিক আইডি হিসাবে fab1
ব্যবহার করে আপনার HAN এর জন্য ওয়েভ ফ্যাব্রিক তৈরি করুন, তারপর ওয়েভের জন্য সমস্ত নোড কনফিগার করুন:
$ weave-fabric-add fab1 $ weave-node-configure
এখন যেহেতু ওয়েভ কনফিগার করা হয়েছে, হ্যাপি স্টেট চেক করুন:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes ThreadNetwork thread UP 2001:0db8:0001:0002/64 WiFiNetwork wifi UP 2001:0db8:000a:000b/64 10.0.1/24 NODES Name Interface Type IPs 01ThreadNode wpan0 thread 2001:0db8:0001:0002:3e36:13ff:fe33:732e/64 fd00:0000:fab1:0006:6bca:9502:eb69:11e7/64 02BorderRouter wpan0 thread fd00:0000:fab1:0006:6a6a:f236:eb69:11e7/64 2001:0db8:0001:0002:a651:3eff:fe92:6dbc/64 wlan0 wifi fd00:0000:fab1:0001:6a6a:f236:eb69:11e7/64 10.0.1.2/24 2001:0db8:000a:000b:426c:38ff:fe90:01e6/64 03WiFiNode wlan0 wifi 2001:0db8:000a:000b:9aae:2bff:fe71:62fa/64 10.0.1.3/24 fd00:0000:fab1:0001:6b82:6e60:eb69:11e7/64
প্রতিটি নোড উইভ ফ্যাব্রিকে যোগ করা হয়েছে, এবং প্রতিটি ইন্টারফেসে fd00
দিয়ে শুরু করে একটি নতুন IPv6 ঠিকানা রয়েছে। ওয়েভ ফ্যাব্রিক সম্পর্কে আরও তথ্য পেতে, উইভ weave-state
কমান্ডটি ব্যবহার করুন:
$ weave-state State Name: weave NODES Name Weave Node Id Pairing Code 01ThreadNode 69ca9502eb6911e7 8ZJB5Q 02BorderRouter 686af236eb6911e7 B5YV3P 03WiFiNode 69826e60eb6911e7 L3VT3A FABRIC Fabric Id Global Prefix fab1 fd00:0000:fab1::/48
এখানে নীল রঙে Weave মান সহ আমাদের আপডেট করা টপোলজি রয়েছে:
বুনন কাপড়
ওয়েভ এবং হ্যাপি রাজ্যে অনেক নতুন তথ্য রয়েছে। weave-state
থেকে ফ্যাব্রিক দিয়ে শুরু করা যাক:
FABRIC Fabric Id Global Prefix fab1 fd00:0000:fab1::/48
উইভ প্রতিটি নোডের জন্য fd00::/48
এর একটি IPv6 উপসর্গ ব্যবহার করে। এই ব্লকের ঠিকানাগুলিকে অনন্য স্থানীয় ঠিকানা বলা হয় এবং HAN-এর মতো ব্যক্তিগত নেটওয়ার্কগুলির মধ্যে ব্যবহারের জন্য মনোনীত করা হয়৷ এটিকে ফ্যাব্রিক আইডির সাথে সংযুক্ত করলে উপরে দেখানো উইভ গ্লোবাল প্রিফিক্স তৈরি হয়।
বুনা নোড
ওয়েভ ফ্যাব্রিকের প্রতিটি নোডকে একটি পেয়ারিং কোড সহ একটি অনন্য নোড আইডি বরাদ্দ করা হয়:
NODES Name Weave Node Id Pairing Code 01ThreadNode 69ca9502eb6911e7 8ZJB5Q 02BorderRouter 686af236eb6911e7 B5YV3P 03WiFiNode 69826e60eb6911e7 L3VT3A
নোড আইডি বিশ্বব্যাপী ওয়েভ ফ্যাব্রিকের একটি নোড সনাক্ত করে। পেয়ারিং কোডটি পেয়ারিং প্রক্রিয়া চলাকালীন একটি "জোয়ারের শংসাপত্র" হিসাবে ব্যবহৃত হয় এবং সাধারণত একটি পণ্যের QR কোডের পাশাপাশি প্রিন্ট করা হয়।
উদাহরণস্বরূপ, আপনি যদি নেস্ট প্রোটেক্ট বা নেস্ট ক্যামের QR কোড দেখেন, আপনি একটি 6-অক্ষরের স্ট্রিং লক্ষ্য করবেন, প্রায়শই এন্ট্রি কী হিসাবে উল্লেখ করা হয়। এটি ওয়েভ পেয়ারিং কোড।
ফেব্রিকের প্রতিটি নোড এবং ইন্টারফেসের জন্য Weave-নির্দিষ্ট IPv6 ঠিকানা তৈরি করতে ওয়েভ গ্লোবাল প্রিফিক্স, ফ্যাব্রিক আইডি এবং নোড আইডির সংমিশ্রণ ব্যবহার করে।
বুনন ঠিকানা
লক্ষ্য করুন যে হ্যাপি টপোলজিতে চারটি নতুন IPv6 ঠিকানা রয়েছে, fd00:0000:fab1::/48
এর আমাদের Weave গ্লোবাল প্রিফিক্স দিয়ে শুরু।
NODES Name Interface Type IPs 01ThreadNode wpan0 thread 2001:0db8:0001:0002:3e36:13ff:fe33:732e/64 fd00:0000:fab1:0006:6bca:9502:eb69:11e7/64 02BorderRouter wpan0 thread fd00:0000:fab1:0006:6a6a:f236:eb69:11e7/64 2001:0db8:0001:0002:a651:3eff:fe92:6dbc/64 wlan0 wifi fd00:0000:fab1:0001:6a6a:f236:eb69:11e7/64 10.0.1.2/24 2001:0db8:000a:000b:426c:38ff:fe90:01e6/64 03WiFiNode wlan0 wifi 2001:0db8:000a:000b:9aae:2bff:fe71:62fa/64 10.0.1.3/24 fd00:0000:fab1:0001:6b82:6e60:eb69:11e7/64
ওয়েভ প্রোটোকলগুলি প্রতিটি নোডে নির্ধারিত আদর্শ IPv6 ঠিকানাগুলির পরিবর্তে, ওয়েভ ফ্যাব্রিক জুড়ে যোগাযোগ করতে এই ঠিকানাগুলি ব্যবহার করে।
নেটওয়ার্ক গেটওয়ে বুনন
একটি থ্রেড নেটওয়ার্কে বুনন নোডগুলি জানতে হবে যে সেই নেটওয়ার্ক থেকে কোথায় প্রস্থান করতে হবে। একটি ওয়েভ নেটওয়ার্ক গেটওয়ে - সাধারণত একটি থ্রেড বর্ডার রাউটারে - এই কার্যকারিতা প্রদান করে।
আমাদের নমুনা টপোলজিতে, বর্ডাররাউটার নোডটিকে উইভ নেটওয়ার্ক গেটওয়ে হিসাবে মনোনীত করা যাক:
$ weave-network-gateway ThreadNetwork 02BorderRouter
এই কমান্ডটি সমস্ত থ্রেড নোড থেকে ওয়েভ ফ্যাব্রিক সাবনেটে ( fd:0:fab1::/48
) একটি রুট যোগ করে BorderRouter
নোডের থ্রেড ইন্টারফেস ( wpan0
) এর মাধ্যমে, যা প্রতিটি থ্রেড নোডকে থ্রেড নেটওয়ার্কের বাইরে যেকোনো ওয়েভ নোডে পৌঁছাতে সক্ষম করে। এটি happy-network-route
কমান্ডের সাথে সাদৃশ্যপূর্ণ, যা আমরা আগে ব্যবহার করেছি, তবে উইভ ফ্যাব্রিক রুটের জন্য নির্দিষ্ট।
6. টপোলজি রক্ষণাবেক্ষণ
যেটি হ্যাপিকে এত শক্তিশালী করে তোলে তা হল কিভাবে এটি সহজে একটি সিমুলেটেড টপোলজির সমস্ত সেটআপ এবং টিয়ারডাউন পরিচালনা করে।
পরবর্তী ব্যবহারের জন্য আপনার শুভ টপোলজি সংরক্ষণ করুন:
$ happy-state -s codelab.json
এটি আপনার রুট ~/
ফোল্ডারে সম্পূর্ণ টপোলজি সহ একটি JSON ফাইল রাখে। JSON ফাইলটি আপনার বর্তমান হ্যাপি স্টেটের একটি কপি, যা ~/.happy_state.json
এ পাওয়া যায়।
একবার সংরক্ষণ করা হলে, বর্তমান টপোলজি মুছুন:
$ happy-state-delete
এটি ~/.happy-state.json
ফাইলে পাওয়া সমস্ত নেটওয়ার্ক নেমস্পেস এবং সম্পর্কিত কনফিগারেশন মুছে দেয়। একটি খালি কনফিগারেশন নিশ্চিত করতে happy-state
এবং weave-state
চেক করুন:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes NODES Name Interface Type IPs $ weave-state State Name: weave NODES Name Weave Node Id Pairing Code FABRIC Fabric Id Global Prefix
একটি সংরক্ষিত কনফিগারেশন পুনরায় লোড করতে, দুটি কমান্ডের একটি ব্যবহার করুন:
-
happy-state-load
— উইভ প্লাগইন সমর্থন করে না -
weave-state-load
— Weave প্লাগইন সমর্থন করে
তাই যদি আপনার টপোলজিতে Weave থাকে, তাহলে সবসময় weave-state-load
কমান্ড ব্যবহার করুন যাতে Weave ফ্যাব্রিক এবং সংশ্লিষ্ট কনফিগারেশন প্রয়োগ করা হয়।
সংরক্ষিত হ্যাপি টপোলজি পুনরায় লোড করুন:
$ weave-state-load codelab.json
একটি সফল লোডিং নিশ্চিত করতে সমস্ত রাজ্য পরীক্ষা করুন:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes ThreadNetwork thread UP 2001:0db8:0001:0002/64 WiFiNetwork wifi UP 2001:0db8:000a:000b/64 10.0.1/24 NODES Name Interface Type IPs 01ThreadNode wpan0 thread 2001:0db8:0001:0002:eef6:a0ff:feca:6697/64 fd00:0000:fab1:0006:6bca:9502:eb69:11e7/64 02BorderRouter wpan0 thread fd00:0000:fab1:0006:6a6a:f236:eb69:11e7/64 2001:0db8:0001:0002:5e53:bbff:fe05:484b/64 wlan0 wifi 2001:0db8:000a:000b:2e61:fdff:fed9:4fbc/64 fd00:0000:fab1:0001:6a6a:f236:eb69:11e7/64 10.0.1.2/24 03WiFiNode wlan0 wifi fd00:0000:fab1:0001:6b82:6e60:eb69:11e7/64 10.0.1.3/24 2001:0db8:000a:000b:5e8e:c9ff:fed2:bdd1/64 $ weave-state State Name: weave NODES Name Weave Node Id Pairing Code 01ThreadNode 69ca9502eb6911e7 8ZJB5Q 02BorderRouter 686af236eb6911e7 B5YV3P 03WiFiNode 69826e60eb6911e7 L3VT3A FABRIC Fabric Id Global Prefix fab1 fd00:0000:fab1::/48
হ্যাপি রিপোজিটরিতে শেল-স্ক্রিপ্ট এবং JSON ফর্ম্যাটে বেশ কয়েকটি পূর্ব-সংজ্ঞায়িত টপোলজি প্রদান করা হয়েছে। ~/happy/topologies
এ তাদের খুঁজুন।
ওপেনওয়েভ পরীক্ষার উদ্দেশ্যে নির্বাচিত প্রাক-সংজ্ঞায়িত হ্যাপি টপোলজির সাথেও আসে। ~/openweave-core/src/test-apps/happy/topologies/standalone
এ তাদের খুঁজুন।
7. এটি কিভাবে কাজ করে
হ্যাপি জটিল টপোলজি অনুকরণ করতে লিনাক্স নেটওয়ার্ক নেমস্পেস ব্যবহার করে। সাধারণত, একটি নেটওয়ার্ক কনফিগারেশন সমগ্র Linux OS জুড়ে প্রযোজ্য। নেটওয়ার্ক নেমস্পেস আপনাকে নেটওয়ার্ক কনফিগারেশন পার্টিশন করতে দেয় যাতে প্রতিটি নেমস্পেসের নিজস্ব ইন্টারফেস এবং রাউটিং টেবিল থাকে।
হ্যাপির প্রতিটি নোড এবং নেটওয়ার্ক হল একটি নেটওয়ার্ক নেমস্পেস, যখন তাদের মধ্যে লিঙ্কগুলি হল নেটওয়ার্ক ইন্টারফেস।
উদাহরণস্বরূপ, আমাদের টপোলজি ব্যবহার করে:
আসুন দেখি হ্যাপি এর জন্য কী কী নামস্থান তৈরি করেছে:
$ ip netns list happy004 happy003 happy002 happy001 happy000
আপনি যদি হ্যাপি স্টেট JSON ফাইলের netns
বিভাগটি পরীক্ষা করেন, আপনি দেখতে পাবেন প্রতিটি নেমস্পেস কোন নোড এবং নেটওয়ার্কগুলির সাথে মিলে যায়:
$ happy-state -j | grep "netns" -A 5 "netns": { "01ThreadNode": "000", "02BorderRouter": "001", "03WiFiNode": "002", "ThreadNetwork": "003", "WiFiNetwork": "004",
রান-টাইম লগ
নোডগুলিতে জারি করা কমান্ডগুলি প্রতিটি নোডের নামস্থানের মধ্যে থেকে কার্যকর করা মৌলিক টার্মিনাল কমান্ড। এটি দেখার একটি সহজ উপায় হল হ্যাপি রান-টাইম লগ সক্রিয় করা।
একটি দ্বিতীয় টার্মিনাল উইন্ডো খুলুন এবং লগগুলি চালু করুন, তারা এই উইন্ডোতে ক্রমাগত চলবে:
$ happy-state -l
প্রথম উইন্ডোতে ফিরে যান এবং একটি শুভ পিং চালান:
$ happy-ping 01ThreadNode 02BorderRouter
দ্বিতীয় টার্মিনাল উইন্ডোতে সবচেয়ে সাম্প্রতিক লগ এন্ট্রি পরীক্ষা করুন। আপনি লগগুলিতে এই মত একটি লাইন দেখতে হবে:
DEBUG [Driver:CallCmd():416] Happy [happy]: > sudo ip netns exec happy000 ping6 -c 1 2001:0db8:0001:0002:5e53:bbff:fe05:484b
happy-ping
কমান্ডটি হ্যাপি happy000
নেমস্পেসে ( 01ThreadNode
) ping6
কমান্ড চালানো ছাড়া আর কিছুই নয়।
একটি নোড লিখুন
নন-হ্যাপি কমান্ডগুলি চালানোর জন্য happy-shell
ব্যবহার করুন যেন নোডগুলির মধ্যে একটিতে লগ ইন করা হয়েছে (নেটওয়ার্ক নামস্থান):
$ happy-shell 01ThreadNode root@01ThreadNode:#
সিমুলেটেড ডিভাইসগুলি প্রতিটি নামস্থানের মধ্যে চালিত হয় এবং তাদের শুধুমাত্র হ্যাপির মাধ্যমে নির্দিষ্ট করা নেটওয়ার্ক কনফিগারেশনে অ্যাক্সেস থাকে।
নোডের জন্য ইন্টারফেস কনফিগারেশন পরীক্ষা করুন। এটি আপনার OS-ওয়াইড কনফিগারেশনের থেকে আলাদা হবে এবং খুশি অবস্থায় যা তালিকাভুক্ত করা হয়েছে তা প্রতিফলিত করা উচিত:
root@01ThreadNode:# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:1 errors:0 dropped:0 overruns:0 frame:0 TX packets:1 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:152 (152.0 B) TX bytes:152 (152.0 B) wpan0 Link encap:Ethernet HWaddr ec:f6:a0:ca:66:97 inet6 addr: fd00:0:fab1:6:6bca:9502:eb69:11e7/64 Scope:Global inet6 addr: 2001:db8:1:2:eef6:a0ff:feca:6697/64 Scope:Global inet6 addr: fe80::eef6:a0ff:feca:6697/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:32 errors:0 dropped:0 overruns:0 frame:0 TX packets:26 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2832 (2.8 KB) TX bytes:2348 (2.3 KB)
নোডের নামস্থান ছেড়ে exit
করুন ব্যবহার করুন:
root@01ThreadNode:# exit
8. একটি পরিষেবার সাথে সংযোগ করুন৷
হ্যাপি কীভাবে লিনাক্স নেটওয়ার্ক নেমস্পেস ব্যবহার করে তা বোঝার সাথে, আপনি এখন বুঝতে পারেন যে ইন্টারনেটে একটি সিমুলেটেড হ্যাপি নেটওয়ার্ক সংযোগ করা এবং সিমুলেটেড নোডের মধ্যে থেকে সর্বজনীন ঠিকানাগুলি অ্যাক্সেস করা সম্ভব। এটি আপনার সিমুলেটেড ডিভাইসগুলিকে একটি বাস্তব পরিষেবার সাথে সংযুক্ত করার জন্য দরকারী (যেমন নেস্ট পরিষেবা ওভার ওয়েভ)।
ওয়েভ-এর পরিষেবা হল একটি ক্লাউড-ভিত্তিক অবকাঠামো যা HAN নোডগুলিকে একটি ডেটা মডেলে সংযুক্ত করে, দূরবর্তী অ্যাক্সেস প্রদান করে এবং একটি বিস্তৃত ইকোসিস্টেম তৈরি করতে বুদ্ধিমান কন্ট্রোলার প্রয়োগ করে৷
হ্যাপির সাথে পরিষেবাটি দুটি প্রাথমিক উপায়ে উপস্থাপন করা যেতে পারে:
- নিজস্ব নেটওয়ার্ক নামস্থানে একটি সিমুলেটেড পরিষেবা হিসাবে (হ্যাপি নোড)
- ইন্টারনেটে একটি বাস্তব ক্লাউড পরিষেবা হিসাবে
প্রতিটি পরিষেবার দৃশ্যের উদাহরণ হিসেবে ~/happy/topologies
এ পূর্ব-সংজ্ঞায়িত টপোলজি প্রদান করা হয়েছে।
একটি শুভ নোডে সিমুলেটেড পরিষেবা
বিদ্যমান হ্যাপি টপোলজিগুলি সরান:
$ happy-state-delete
happy-state
এবং weave-state
কমান্ড সহ একটি খালি অবস্থা নিশ্চিত করুন।
অ্যাক্সেস পয়েন্ট (এপি) এবং পরিষেবা নোড সহ একটি পূর্ব-সংজ্ঞায়িত টপোলজি লোড করুন:
$ weave-state-load ~/happy/topologies/thread_wifi_ap_service.json
টপোলজি নিশ্চিত করতে হ্যাপি এবং ওয়েভ স্টেট পরীক্ষা করুন। এই টপোলজিতে, onhub
হল AP, যখন cloud
হল সিমুলেটেড পরিষেবা৷ দ্রষ্টব্য উভয়ই wan
টাইপের একটি Internet
নেটওয়ার্কের সাথে সংযুক্ত:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes HomeThread thread UP 2001:0db8:0111:0001/64 HomeWiFi wifi UP 2001:0db8:0222:0002/64 10.0.1/24 Internet wan UP 192.168.100/24 NODES Name Interface Type IPs BorderRouter wpan0 thread 2001:0db8:0111:0001:f624:13ff:fe4a:6def/64 fd00:0000:fab1:0006:1ab4:3000:0000:0005/64 wlan0 wifi 10.0.1.2/24 fd00:0000:fab1:0001:1ab4:3000:0000:0005/64 2001:0db8:0222:0002:9e31:97ff:fe73:29f0/64 ThreadNode wpan0 thread 2001:0db8:0111:0001:c237:fbff:fecc:b082/64 fd00:0000:fab1:0006:1ab4:3000:0000:0009/64 cloud eth0 wan 192.168.100.3/24 onhub wlan0 wifi 10.0.1.3/24 2001:0db8:0222:0002:3266:20ff:fe98:6ee2/64 eth0 wan 192.168.100.2/24 $ weave-state State Name: weave NODES Name Weave Node Id Pairing Code BorderRouter 18B4300000000005 AAA123 ThreadNode 18B4300000000009 AAA123 FABRIC Fabric Id Global Prefix fab1 fd00:0000:fab1::/48
সুড়ঙ্গ বুনন
একটি ওয়েভ টানেল ওয়েভ ফ্যাব্রিককে একটি পরিষেবার সাথে সংযুক্ত করে। এটি একটি নিরাপদ রুট যা HAN এবং পরিষেবার মধ্যে IPv6 UDP বার্তা স্থানান্তর করে। এই টপোলজিতে, BorderRouter
নোড হল ওয়েভ নেটওয়ার্ক গেটওয়ে, যা HAN-এ টানেল এন্ডপয়েন্ট হিসেবে কাজ করে।
ওয়েভ টানেল তৈরি করুন:
$ weave-tunnel-start BorderRouter cloud
সুখী রাষ্ট্র পুনরায় পরীক্ষা করুন. আপনি cloud
নোডে একটি Weave IPv6 ঠিকানা সহ একটি নতুন টানেল ইন্টারফেস দেখতে পাবেন:
NODES Name Interface Type IPs cloud service-tun0 tun fd00:0000:fab1:0005:1ab4:3002:0000:0011/64 eth0 wan 192.168.100.3/24
আপনি এখন সফলভাবে উইভ ফ্যাব্রিকের নোড এবং পরিষেবার উইভ গ্লোবাল প্রিফিক্সের মধ্যে পিং করতে পারেন:
$ happy-ping ThreadNode cloud [Ping] ping from ThreadNode to cloud on address fd00:0000:fab1:0005:1ab4:3002:0000:0011 -> 0% packet loss
ইন্টারনেটে বাস্তব ক্লাউড পরিষেবা
বিদ্যমান হ্যাপি টপোলজিগুলি সরান:
$ happy-state-delete
happy-state
এবং weave-state
কমান্ড সহ একটি খালি অবস্থা নিশ্চিত করুন।
একটি অ্যাক্সেস পয়েন্ট (AP) নোড সহ একটি পূর্ব-সংজ্ঞায়িত টপোলজি লোড করুন:
$ weave-state-load ~/happy/topologies/thread_wifi_ap_internet.json
এই টপোলজিতে, onhub
হল AP. সুখী অবস্থা পরীক্ষা করুন. এটি Internet
নেটওয়ার্ক এবং cloud
নোড ছাড়াই আগের টপোলজির মতো:
$ happy-state State Name: happy NETWORKS Name Type State Prefixes HomeThread thread UP 2001:0db8:0111:0001/64 HomeWiFi wifi UP 2001:0db8:0222:0002/64 10.0.1/24 NODES Name Interface Type IPs BorderRouter wpan0 thread 2001:0db8:0111:0001:ca3f:71ff:fe53:1559/64 fd00:0000:fab1:0006:1ab4:3000:0000:0006/64 wlan0 wifi 2001:0db8:0222:0002:32e7:dfff:fee2:107a/64 fd00:0000:fab1:0001:1ab4:3000:0000:0006/64 10.0.1.2/24 ThreadNode wpan0 thread 2001:0db8:0111:0001:c2fb:97ff:fe04:64bd/64 fd00:0000:fab1:0006:1ab4:3000:0000:000a/64 onhub wlan0 wifi 10.0.1.3/24 2001:0db8:0222:0002:3a3c:8dff:fe38:999b/64 $ weave-state State Name: weave NODES Name Weave Node Id Pairing Code BorderRouter 18B4300000000006 AAA123 ThreadNode 18B430000000000A AAA123 FABRIC Fabric Id Global Prefix fab1 fd00:0000:fab1::/48
যেহেতু প্রতিটি হ্যাপি নোড একটি নেটওয়ার্ক নেমস্পেস, সেগুলি ডিফল্টরূপে সর্বজনীন ইন্টারনেট থেকে বিভাজিত হয়। একটি শুভ নোড প্রবেশ করে এবং একটি সর্বজনীন ইন্টারনেট ঠিকানা পিং করে এটি পরীক্ষা করুন৷ আমরা 8.8.8.8
ব্যবহার করব, google.com-এর IPv4 ঠিকানাগুলির মধ্যে একটি৷
$ happy-shell onhub root@onhub:# ping -c2 8.8.8.8 connect: Network is unreachable
onhub
ইন্টারনেটের সাথে সংযুক্ত করতে, এটিকে অবশ্যই লিনাক্স ওএস-স্তরের কনফিগারেশনে সেই ইন্টারফেসের সাথে ব্রিজ করতে হবে।
নোড থেকে প্রস্থান করুন:
root@onhub:# exit
route
কমান্ড দিয়ে আপনার ইন্টারনেট সংযোগের জন্য ইন্টারফেস নির্ধারণ করুন:
$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.1.0 0.0.0.0 UG 0 0 0 em1
default
রুট খুঁজুন. এটি আপনার লিনাক্স মেশিনের জন্য ইন্টারনেট সংযোগ। Iface
কলাম নির্দেশ করে যে সংযোগের জন্য কোন ইন্টারফেস ব্যবহার করা হচ্ছে। উপরের উদাহরণে, এটি em1
।
আপনার ডিফল্ট রুটের ইন্টারফেস ব্যবহার করে ব্রিজ সেট আপ করতে happy-internet
ব্যবহার করুন। --isp
পতাকার জন্য, ট্রেলিং নম্বর ছাড়াই ইন্টারফেসের নাম ব্যবহার করুন। এই উদাহরণে, এটা em
. আপনার ডিফল্ট ইন্টারফেস eth1
হলে, --isp
পতাকা হবে eth
।
$ happy-internet --node onhub --interface em1 --isp em --seed 249
happy-state
আউটপুটে কোনও দৃশ্যমান পরিবর্তন হবে না, তবে onhub
নোডে ইন্টারনেট সংযোগ থাকা উচিত। আসুন নোডে ফিরে যাই এবং পরীক্ষা করি:
$ happy-shell onhub root@onhub:# ping -c2 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=1.81 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=56 time=1.81 ms --- 8.8.8.8 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 1.814/1.816/1.819/0.042 ms
সফলতার !
ডিএনএস
হ্যাপি নোডের বিল্ট-ইন ডিএনএস ক্ষমতা নেই। আপনি google.com পিং করার চেষ্টা করলে, এটি ব্যর্থ হয়:
root@onhub:# ping -c2 google.com ping: unknown host google.com
সৌভাগ্যবশত, Happy DNS-এর জন্য সমর্থন প্রদান করে। নোড থেকে প্রস্থান করুন এবং আপনার লিনাক্স মেশিনের জন্য DNS সার্ভার খুঁজুন। উপযুক্ত ডিফল্ট ইন্টারফেস ব্যবহার নিশ্চিত করুন:
root@onhub:# exit $ nmcli dev list iface em1 | grep domain_name_servers DHCP4.OPTION[13]: domain_name_servers = 172.16.255.1 172.16.255.153 172.16.255.53
happy-dns
সাথে এই DNS ঠিকানাগুলি ব্যবহার করুন:
$ happy-dns 172.16.255.1 172.16.255.153 172.16.255.53
এখন onhub
নোডের মধ্যে থেকে google.com পিং করার চেষ্টা করুন:
$ happy-shell onhub root@onhub:# ping -c2 google.com PING google.com (64.233.191.113) 56(84) bytes of data. 64 bytes from ja-in-f113.1e100.net (64.233.191.113): icmp_seq=1 ttl=46 time=36.9 ms 64 bytes from ja-in-f113.1e100.net (64.233.191.113): icmp_seq=2 ttl=46 time=37.0 ms --- google.com ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 36.978/36.995/37.013/0.193 ms
আপনার হয়ে গেলে onhub
নোড থেকে প্রস্থান করুন:
root@onhub:# exit
সুড়ঙ্গ বুনন
সিমুলেটেড পরিষেবার মতো, হ্যাপি এবং পরিষেবার সিমুলেটেড HAN-এর মধ্যে একটি ওয়েভ টানেল সেট আপ করতে হবে। একটি বাস্তব ক্লাউড পরিষেবার সাথে, টানেল সেটআপে পরিষেবাটির IP ঠিকানা বা URL ব্যবহার করুন৷ উদাহরণ স্বরূপ:
$ weave-tunnel-start BorderRouter mycloud.service.com
9. পরিষ্কার করা
আপনার লিনাক্স নেটওয়ার্ক কনফিগারেশনের সমস্যাগুলি এড়াতে, হ্যাপি টপোলজিগুলি সেগুলির সাথে কাজ শেষ করার জন্য সর্বদা পরিষ্কার করা গুরুত্বপূর্ণ।
আপনি যদি আপনার টপোলজিতে DNS সমর্থন সক্ষম করে থাকেন, তাহলে প্রথমে -d
(delete) ফ্ল্যাগ দিয়ে সেই কমান্ডটি পুনরায় চালু করে এটি সরিয়ে ফেলুন। নেটওয়ার্ক কনফিগারেশন সঠিকভাবে আপডেট করা হয়েছে তা নিশ্চিত করার জন্য যেকোন হ্যাপি নোডগুলি সরানোর আগে এটি অবশ্যই চালানো উচিত।
$ happy-dns -d 172.16.255.1 172.16.255.153 172.16.255.53
এর পরে, হ্যাপি স্টেটটি মুছুন:
$ happy-state-delete
কখনও কখনও, কিছু রাষ্ট্রীয় ফাইল একটি রাষ্ট্র মুছে ফেলার পরে থেকে যেতে পারে. আপনি যদি সমস্যায় পড়েন এবং হ্যাপি প্রত্যাশিতভাবে কাজ না করে, তাহলে happy-state-delete
দিয়ে স্টেটটি মুছে দিন এবং তারপরে অবশিষ্ট ক্লিন আপ করতে বাধ্য করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন:
$ ip netns | xargs -I {} sudo ip netns delete {} $ rm -rf ~/.*state.json $ rm -rf ~/.*state.json.lock
আপনার মেশিনটি তার স্বাভাবিক নেটওয়ার্ক কনফিগারেশনে ফিরে আসা উচিত।
10. অভিনন্দন!
আপনি এখন জানেন:
- আপনার নিজের আইওটি হোম এরিয়া নেটওয়ার্কগুলিকে অনুকরণ করতে হ্যাপি কীভাবে ব্যবহার করবেন
- হ্যাপি টপোলজিগুলিকে কীভাবে ইন্টারনেটে সংযুক্ত করবেন
- ওপেনওয়েভের মাধ্যমে ওয়েভের মৌলিক বিষয়, নেস্ট-এর ওপেন-সোর্স সংস্করণ
পরবর্তী পদক্ষেপ
এই কোডল্যাবটি তৈরি করে, নিম্নলিখিত অনুশীলনগুলি চেষ্টা করুন:
- প্রতিটি থ্রেড এবং ওয়াই-ফাই নেটওয়ার্কে একাধিক নোড সহ একটি বড় টপোলজি তৈরি করুন এবং সমস্ত নোডের মধ্যে সংযোগ স্থাপন করুন
-
happy-state-load
বাweave-state-load
লোডের মাধ্যমে টপোলজি লোড করতে একটি ব্যাশ স্ক্রিপ্ট তৈরি করুন - হ্যাপি
happy-traceroute
এবংhappy-process-*
এর মতো অন্যান্য হ্যাপি কমান্ডগুলি অন্বেষণ করুন
আরও পড়া
বিভিন্ন রেফারেন্সের জন্য openweave.io দেখুন, যার মধ্যে রয়েছে: