শুভ এবং বোনা দিয়ে শুরু করা

1। পরিচিতি

শুভ কৃত্রিম ব্যবস্থা ভূ এর লাইটওয়েট অর্কেস্ট্রারচনা জন্য নেস্ট ল্যাবস দ্বারা নির্মিত একটি টুল। হ্যাপি আইওটি হোম এরিয়া নেটওয়ার্কগুলির বিকাশ এবং পরীক্ষার জন্য দরকারী।

হ্যাপির সাথে, আপনি করতে পারেন:

  • IoT ডিভাইস হার্ডওয়্যার ব্যবহার না করে একটি একক লিনাক্স ডেভেলপমেন্ট মেশিনে নেটওয়ার্ক প্রোটোকল এবং অন্যান্য বিতরণকৃত এক্সিকিউশন প্রোগ্রাম পরীক্ষা করুন
  • একটি নেটওয়ার্ক জুড়ে স্বয়ংক্রিয় কার্যকরী পরীক্ষা সম্পাদন করুন
  • টেস্টিং থ্রুপুট উন্নত করতে একই সিস্টেমে একাধিক সমবর্তী, সমান্তরাল নেটওয়ার্ক চালান

এই Codelab, আপনি জানতে পারবেন শুভ, সেইসাথে বুনিয়াদি দিয়ে শুরু করতে কিভাবে বুনা IOT ডিভাইসের জন্য। বুনা বাস্তবায়ন আপনি ব্যবহার পাবেন OpenWeave , একটি ওপেন সোর্স সংস্করণ নেস্ট দ্বারা প্রকাশিত।

f6996428fb06dede.png

আপনি কি শিখবেন

  • হ্যাপি এবং ওপেনওয়েভ কীভাবে তৈরি করবেন
  • কিভাবে ম্যানুয়ালি একটি সিমুলেটেড 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 ব্যবহার করতে, আপনাকে হ্যাপিকে জানাতে হবে যে কোথায় ওয়েভ ইনস্টলেশন পাবেন। আপডেট করার জন্য পাথ দিয়ে শুভ কনফিগারেশন /src/test-apps আপনার OpenWeave বিল্ড মধ্যে:

$ 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. আপনার প্রথম টপোলজি

হ্যাপি দিয়ে নিচের তিন-নোড টপোলজি তৈরি করি।

a3295ee87fbd9764.png

এই টপোলজি হল একটি সাধারণ হোম এরিয়া নেটওয়ার্ক (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

আমাদের টপোলজি এখন এই মত দেখায়:

2d054e6c4e54089c.png

আমাদের হ্যাপি নেটওয়ার্ক নিয়ে আসার শেষ ধাপ হল প্রতিটি নোডের প্রতিটি ইন্টারফেসে 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

সুখী অবস্থা আরও একবার পরীক্ষা করুন। প্রতিটি ওয়াই-ফাই ইন্টারফেসের জন্য দুটি সহ সমস্ত ইন্টারফেস আইপি ঠিকানা বরাদ্দ করেছে:

$ 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

এখানে আমাদের আপডেট করা টপোলজি আছে:

84eecd23871618ca.png

4. সংযোগ পরীক্ষা করুন

এখন যেহেতু আমাদের শুভ নেটওয়ার্কের আপ এবং চলমান, এর থেকে অন্য নোড pinging দ্বারা তার সংযোগ পরীক্ষা করা যাক 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 কমান্ড চেষ্টা লক্ষ্য নোড প্রতি ইন্টারফেসের জন্য যে IP ঠিকানা ping করতে। আমরা IPv4 ঠিকানাগুলি উপেক্ষা করতে পারি কারণ থ্রেড শুধুমাত্র IPv6 ব্যবহার করে।

লক্ষ্য করুন শুধুমাত্র একটি IPv6, পিং সফল ছিল: এক 02BorderRouter এর wpan0 ইন্টারফেস, যা শুধুমাত্র ঠিকানা 01ThreadNode সরাসরি পৌঁছতে পারে:

5447bcbdf7d539df.png

অন্যান্য IPv6 অ্যাড্রেসের ব্যর্থ হয়েছে কারণ ফরওয়ার্ডিং মধ্যে সক্রিয় করা হয়েছে wpan0 এবং wlan0 উপর 02BorderRouter । সুতরাং, 01ThreadNode কোন ধারণা আছে 03WiFiNode বিদ্যমান, অথবা এটি কিভাবে পৌঁছানোর। হ্যাপি সিমুলেটেড নেটওয়ার্ক নিয়ে এসেছে, কিন্তু নোডের মধ্যে সমস্ত রাউটিং এবং ফরওয়ার্ডিং সক্ষম করেনি।

রুট যোগ করুন

HAN জুড়ে IPv6 ট্র্যাফিক রুট করতে, প্রতিটি নেটওয়ার্কের প্রতিটি নোডে সঠিক রুট যোগ করুন, উভয় দিকেই (তাই পিং জানে কিভাবে উৎস নোডে ফিরে যেতে হয়)।

প্রতিটি নোডের জন্য, আপনাকে জানতে হবে:

  • নিকটতম নেটওয়ার্কের গেটওয়ে-এই ক্ষেত্রে, 02BorderRouter উভয়ের জন্য
  • লক্ষ্য নেটওয়ার্ক—গেটওয়ের পরে কোথায় যেতে হবে

আমাদের তিনটি নোড নেটওয়ার্কের জন্য, এটি আমাদের নিম্নলিখিত দেয়:

সোর্স নেটওয়ার্ক থেকে

টার্গেট নেটওয়ার্কে

গেটওয়ে মাধ্যমে

ThreadNetwork

WiFiNetwork

02BorderRouter wlan0 2001:db8:1:2::/64 prefix

WiFiNetwork

ThreadNetwork

02BorderRouter wpan0 2001:db8:a:b::/64 prefix

এই স্বতন্ত্রভাবে সঙ্গে প্রতিটি নোডের জন্য কাজ করা যেতে পারে 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 আছে।

5bb53be0280b3320.png

সবকিছু একসাথে সংযুক্ত করার একটি আরো নিরাপদ এবং নির্ভরযোগ্য উপায় সক্ষম করতে, আসুন HAN-এর উপরে Weave যোগ করি।

5. বুনা যোগ করুন

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

ওয়েভের একটি বাস্তবায়নকে "ফ্যাব্রিক" বলা হয়। একটি ওয়েভ ফ্যাব্রিক হল এমন একটি নেটওয়ার্ক যা সমস্ত HAN নোড, নেস্ট পরিষেবা এবং HAN-এ অংশগ্রহণকারী যেকোনো মোবাইল ডিভাইস নিয়ে গঠিত। এটি HAN-এর উপরে বসে এবং বিভিন্ন অন্তর্নিহিত নেটওয়ার্ক লিঙ্ক প্রযুক্তি (উদাহরণস্বরূপ, থ্রেড বা Wi-Fi) জুড়ে সহজ রাউটিং সক্ষম করে।

আপনার HAN জন্য বুনা ফ্যাব্রিক তৈরি করুন ব্যবহার করে, fab1 , তারেক আইডি তারপর বুনা জন্য সব নোড কনফিগার করুন:

$ 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

প্রতিটি নোডের বুনা ফ্যাব্রিক যোগ করা হয়েছে, এবং প্রতিটি ইন্টারফেস একটি নতুন IPv6 ঠিকানা দিয়ে শুরু হয়েছে fd00 । বুনা ফ্যাব্রিক উপর আরও তথ্য পেতে, ব্যবহার 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 মান সহ আমাদের আপডেট করা টপোলজি রয়েছে:

ce3fa9082408355b.png

বুনন কাপড়

ওয়েভ এবং হ্যাপি রাজ্যে অনেক নতুন তথ্য রয়েছে। থেকে ফ্যাব্রিক সঙ্গে আসুন শুরু weave-state :

FABRIC     Fabric Id           Global Prefix
                fab1     fd00:0000:fab1::/48

বুনা ব্যবহার সম্পর্কে একটি IPv6, প্রিফিক্স fd00::/48 প্রতিটি নোডের জন্য। এই ব্লকের ঠিকানাগুলিকে অনন্য স্থানীয় ঠিকানা বলা হয় এবং HAN-এর মতো ব্যক্তিগত নেটওয়ার্কগুলির মধ্যে ব্যবহারের জন্য মনোনীত করা হয়৷ এটিকে ফ্যাব্রিক আইডির সাথে সংযুক্ত করলে উপরে দেখানো উইভ গ্লোবাল প্রিফিক্স তৈরি হয়।

বুনা নোড

ওয়েভ ফ্যাব্রিকের প্রতিটি নোডকে একটি পেয়ারিং কোড সহ একটি অনন্য নোড আইডি বরাদ্দ করা হয়:

NODES           Name       Weave Node Id    Pairing Code
        01ThreadNode    69ca9502eb6911e7          8ZJB5Q
      02BorderRouter    686af236eb6911e7          B5YV3P
          03WiFiNode    69826e60eb6911e7          L3VT3A

নোড আইডি বিশ্বব্যাপী ওয়েভ ফ্যাব্রিকের একটি নোড সনাক্ত করে। পেয়ারিং কোডটি পেয়ারিং প্রক্রিয়া চলাকালীন একটি "জোয়ারের শংসাপত্র" হিসাবে ব্যবহৃত হয় এবং সাধারণত একটি পণ্যের QR কোডের পাশাপাশি প্রিন্ট করা হয়।

উদাহরণস্বরূপ, আপনি যদি নেস্ট প্রোটেক্ট বা নেস্ট ক্যামের QR কোড দেখেন, আপনি একটি 6-অক্ষরের স্ট্রিং লক্ষ্য করবেন, যা প্রায়শই এন্ট্রি কী হিসাবে উল্লেখ করা হয়। এটি ওয়েভ পেয়ারিং কোড।

e7c6fa3e24d61d1b.png

ফেব্রিকের প্রতিটি নোড এবং ইন্টারফেসের জন্য Weave-নির্দিষ্ট IPv6 ঠিকানা তৈরি করতে ওয়েভ গ্লোবাল প্রিফিক্স, ফ্যাব্রিক আইডি এবং নোড আইডির সংমিশ্রণ ব্যবহার করে।

বুনা ঠিকানা

নোট চার শুভ টপোলজি নতুন IPv6 অ্যাড্রেসের আছে, সব আমাদের বুনা গ্লোবাল উপসর্গ দিয়ে শুরু fd00:0000:fab1::/48

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-state-load কমান্ড যাতে বুনা ফ্যাব্রিক এবং সংশ্লিষ্ট কনফিগারেশন প্রয়োগ করা হয়।

সংরক্ষিত হ্যাপি টপোলজি পুনরায় লোড করুন:

$ 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 জুড়ে প্রযোজ্য। নেটওয়ার্ক নেমস্পেস আপনাকে নেটওয়ার্ক কনফিগারেশন পার্টিশন করতে দেয় যাতে প্রতিটি নেমস্পেসের নিজস্ব ইন্টারফেস এবং রাউটিং টেবিল থাকে।

হ্যাপির প্রতিটি নোড এবং নেটওয়ার্ক হল একটি নেটওয়ার্ক নেমস্পেস, যখন তাদের মধ্যে লিঙ্কগুলি হল নেটওয়ার্ক ইন্টারফেস।

উদাহরণস্বরূপ, আমাদের টপোলজি ব্যবহার করে:

7d6654c2e4907f2a.png

আসুন দেখি হ্যাপি এর জন্য কী কী নামস্থান তৈরি করেছে:

$ ip netns list
happy004
happy003
happy002
happy001
happy000

আপনি না পরীক্ষা তাহলে netns শুভ রাষ্ট্র JSON ফাইল বিভাগে, আপনি কি নোড এবং নেটওয়ার্কের প্রতিটি নামস্থান অনুরূপ দেখতে পারেন:

$ happy-state -j | grep "netns" -A 5
"netns": {
    "01ThreadNode": "000",
    "02BorderRouter": "001",
    "03WiFiNode": "002",
    "ThreadNetwork": "003",
    "WiFiNetwork": "004",

49cfdce6ff9dd745.png

রান-টাইম লগ

নোডগুলিতে জারি করা কমান্ডগুলি প্রতিটি নোডের নামস্থানের মধ্যে থেকে কার্যকর করা মৌলিক টার্মিনাল কমান্ড। এটি দেখার একটি সহজ উপায় হল হ্যাপি রান-টাইম লগ সক্রিয় করা।

একটি দ্বিতীয় টার্মিনাল উইন্ডো খুলুন এবং লগগুলি চালু করুন, তারা এই উইন্ডোতে ক্রমাগত চলবে:

$ 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 চলমান বেশী খুশি কমান্ড বেশি কিছু নয় ping6 কমান্ড happy000 নামস্থান ( 01ThreadNode )।

একটি নোড লিখুন

ব্যবহার করুন 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

6d04cbfcc84038e2.png

টপোলজি নিশ্চিত করতে হ্যাপি এবং ওয়েভ রাজ্যগুলি পরীক্ষা করুন। এই টপোলজি সালে onhub পি, যখন হয় cloud কৃত্রিম সার্ভিস। নোট উভয় সংযুক্ত আছেন Internet ধরনের নেটওয়ার্কের wan :

$ 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

সুখী রাষ্ট্র পুনরায় পরীক্ষা করুন. আপনার উপর বুনা IPv6 ঠিকানা সহ একটি নতুন সুড়ঙ্গ ইন্টারফেস দেখতে পাবেন cloud নোড:

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

c5ffca09d7cd3208.png

আপনি এখন সফলভাবে উইভ ফ্যাব্রিকের নোড এবং পরিষেবার উইভ গ্লোবাল প্রিফিক্সের মধ্যে পিং করতে পারেন:

$ 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 কমান্ড।

একটি অ্যাক্সেস পয়েন্ট (এপি) নোড সহ একটি পূর্ব-সংজ্ঞায়িত টপোলজি লোড করুন:

$ weave-state-load ~/happy/topologies/thread_wifi_ap_internet.json

c75127417ef3833a.png

এই টপোলজি সালে onhub পি হয়। সুখী অবস্থা পরীক্ষা করুন. এটা ছাড়া পূর্ববর্তী টপোলজি অনুরূপ, 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 পতাকা, সংখ্যা trailing ছাড়া ইন্টারফেস নাম ব্যবহার করুন। এই উদাহরণে, এটা 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

সফলতার !

c4d411ab1734131.png

ডিএনএস

হ্যাপি নোডের অন্তর্নির্মিত DNS ক্ষমতা নেই। আপনি 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 :

$ happy-dns 172.16.255.1 172.16.255.153 172.16.255.53

এখন মধ্যে থেকে google.com pinging চেষ্টা onhub নোড:

$ 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

3ed2c3c0df67f4d2.png

9. পরিষ্কার করা

আপনার লিনাক্স নেটওয়ার্ক কনফিগারেশনের সমস্যাগুলি এড়াতে, হ্যাপি টপোলজিগুলিকে সেগুলি দিয়ে শেষ করার জন্য সর্বদা পরিষ্কার করা গুরুত্বপূর্ণ।

আপনি আপনার টপোলজি মধ্যে ডিএনএস সমর্থন সক্রিয়, এটা যে কমান্ড rerunning দ্বারা অপসারণ -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 রেফারেন্স সহ বিভিন্ন জন্য:

f6996428fb06dede.png