উবুন্টুতে নেটপ্ল্যান আয়ত্ত করা: YAML দিয়ে নেটওয়ার্ক কনফিগারেশনের সম্পূর্ণ গাইড

目次

১. Ubuntu-এ Netplan-এর ওভারভিউ

Netplan কী?

Netplan হল একটি নেটওয়ার্ক কনফিগারেশন ম্যানেজমেন্ট টুল, যা Ubuntu 17.10 সংস্করণ থেকে প্রবর্তিত হয়েছে। পূর্বে ifconfig এবং /etc/network/interfaces ইত্যাদি টুল ব্যবহার করা হতো, তবে Netplan নেটওয়ার্ক কনফিগারেশনের জন্য একটি নতুন পদ্ধতি প্রদান করে। Netplan-এর অন্যতম বড় সুবিধা হল এটি নেটওয়ার্ক সেটিংস বর্ণনা করতে YAML ফাইল ব্যবহার করে। এর ফলে কনফিগারেশন সহজ এবং সঙ্গতিপূর্ণ হয়, এমনকি জটিল নেটওয়ার্ক পরিবেশও সহজে পরিচালনা করা যায়।

Netplan NetworkManager এবং systemd-networkd এর মতো ব্যাকএন্ড সমর্থন করে এবং উভয়ই Ubuntu Desktop এবং Server সংস্করণে উপলব্ধ। এটি বিভিন্ন পরিবেশে একীভূত নেটওয়ার্ক ম্যানেজমেন্টকে সম্ভব করে।

কেন Netplan ব্যবহার করবেন?

প্রচলিত নেটওয়ার্ক কনফিগারেশন পদ্ধতির তুলনায় Netplan নিম্নলিখিত সুবিধা প্রদান করে:

  1. সহজ সিনট্যাক্স : YAML ফরম্যাটটি স্বজ্ঞাত এবং স্পষ্টভাবে গঠিত, ফলে নবীন ব্যবহারকারীরাও কনফিগারেশন সহজে বুঝতে পারে।
  2. একীভূত ম্যানেজমেন্ট : এটি ডেস্কটপ ও সার্ভার উভয় পরিবেশে কাজ করে, ফলে বিভিন্ন নেটওয়ার্ক কনফিগারেশনকে কেন্দ্রীয়ভাবে পরিচালনা করা যায়।
  3. ডাইনামিক পরিবর্তন : কনফিগারেশন ফাইল সম্পাদনা ও প্রয়োগের মাধ্যমে রিয়েল-টাইমে নেটওয়ার্ক সেটিংস আপডেট করা যায়।

Netplan-এর মৌলিক গঠন

Netplan কনফিগারেশন ফাইলগুলি সাধারণত /etc/netplan/ ডিরেক্টরিতে অবস্থিত এবং .yaml এক্সটেনশন ব্যবহার করে। এই ফাইলগুলিতে নেটওয়ার্ক ইন্টারফেস কনফিগারেশন, IP ঠিকানা, DNS সার্ভার ইত্যাদি তথ্য থাকে।

নিচে একটি মৌলিক Netplan কনফিগারেশনের উদাহরণ দেওয়া হল:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

এই উদাহরণে, enp3s0 ইথারনেট ইন্টারফেসটি DHCP এর মাধ্যমে IP ঠিকানা পেতে কনফিগার করা হয়েছে।

Ubuntu 18.04 LTS এবং পরবর্তী সংস্করণে Netplan-এর ভূমিকা

Ubuntu 18.04 LTS এবং পরবর্তী সংস্করণে Netplan ডিফল্টভাবে ইনস্টল থাকে এবং ডেস্কটপ ও সার্ভার উভয় পরিবেশে নেটওয়ার্ক ম্যানেজমেন্টের জন্য ব্যাপকভাবে ব্যবহৃত হয়। সার্ভার পরিবেশে, যেখানে একাধিক নেটওয়ার্ক ইন্টারফেস বা স্ট্যাটিক IP অ্যাসাইনমেন্ট প্রয়োজন হয়, সেখানে Netplan-এর নমনীয়তা বিশেষভাবে উপকারী হয়ে ওঠে।

পরবর্তী অংশে, Netplan ব্যবহার করে নেটওয়ার্ক কনফিগার করার ব্যবহারিক উদাহরণগুলি অনুসন্ধান করা হবে।

২. মৌলিক Netplan কনফিগারেশন

Netplan কনফিগারেশন ফাইলের অবস্থান

Netplan কনফিগারেশন ফাইলগুলি সাধারণত /etc/netplan/ ডিরেক্টরিতে সংরক্ষিত থাকে। এই .yaml ফাইলগুলি সম্পাদনা করে নেটওয়ার্ক সেটিংস পরিবর্তন করা যায়। 50-cloud-init.yaml এর মতো ফাইল নামগুলি সাধারণ, তবে পরিবেশের উপর নির্ভর করে ভিন্ন হতে পারে।

কনফিগারেশন ফাইলটি খুলতে, vi বা nano এর মতো টেক্সট এডিটর ব্যবহার করুন:

sudo vi /etc/netplan/50-cloud-init.yaml

ডাইনামিক IP ঠিকানা কনফিগারেশন (DHCP)

DHCP ব্যবহার করে স্বয়ংক্রিয়ভাবে IP ঠিকানা পেতে, নিম্নলিখিত YAML কনফিগারেশন ব্যবহার করুন। এটি সবচেয়ে সহজ সেটআপ এবং বাড়ি ও অফিসের পরিবেশে সাধারণত ব্যবহৃত হয়।

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true

স্ট্যাটিক IP ঠিকানা কনফিগারেশন

কিছু পরিবেশে সার্ভার বা নির্দিষ্ট ডিভাইসের জন্য স্ট্যাটিক IP ঠিকানা নির্ধারণের প্রয়োজন হয়। নিচের উদাহরণটি স্ট্যাটিক IP ঠিকানা কনফিগার করার পদ্ধতি দেখায়।

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

কনফিগারেশন প্রয়োগ করা

কনফিগারেশন ফাইল সম্পাদনা করার পরে, নিচের কমান্ড ব্যবহার করে Netplan কনফিগারেশন প্রয়োগ করুন:

sudo netplan apply

কনফিগারেশন যাচাই করা

Netplan সেটিংস সফলভাবে প্রয়োগ হয়েছে কিনা যাচাই করতে, নিচের কমান্ড দিয়ে নেটওয়ার্ক ইন্টারফেসের অবস্থা পরীক্ষা করুন:

ip a

৩. একাধিক নেটওয়ার্ক ইন্টারফেস কনফিগার করা

একাধিক ইথারনেট ইন্টারফেস কনফিগারেশন

একাধিক নেটওয়ার্ক ইন্টারফেসযুক্ত ডিভাইসগুলিতে প্রতিটি ইন্টারফেসের জন্য ভিন্ন সেটিংস নির্ধারণ করা যায়। নিচের উদাহরণে দুটি ইথারনেট ইন্টারফেস কনফিগার করা হয়েছে:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
    enp4s0:
      addresses:
        - 192.168.1.150/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

রিডান্ডেন্সির জন্য বন্ডিং

বন্ডিং একাধিক নেটওয়ার্ক ইন্টারফেসকে একটি একক ভার্চুয়াল ইন্টারফেসে সংযুক্ত করে, রিডান্ডেন্সি প্রদান করে এবং উপলভ্যতা উন্নত করে। নিচের উদাহরণটি bond0 নামের একটি বন্ড ইন্টারফেস তৈরি করে:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: enp3s0

Wi‑Fi কনফিগারেশন

Netplan ওয়াই‑ফাই কনফিগারেশন সমর্থন করে। নিম্নলিখিত উদাহরণটি নির্দিষ্ট একটি SSID‑তে সংযোগ স্থাপন করে:

network:
  version: 2
  renderer: networkd
  wifis:
    wlp2s0:
      access-points:
        "my_wifi_network":
          password: "password1234"
      dhcp4: true

VLAN কনফিগারেশন

ভার্চুয়াল LAN (VLAN) গুলি লজিক্যালভাবে নেটওয়ার্ককে ভাগ করতে পারে। নিচের উদাহরণটি enp3s0‑এ একটি VLAN তৈরি করে:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan10:
      id: 10
      link: enp3s0
      addresses:
        - 192.168.10.1/24

৪. উন্নত Netplan কনফিগারেশন

স্ট্যাটিক রাউটিং কনফিগারেশন

একাধিক রাউটার ব্যবহার করে নেটওয়ার্ক সংযুক্ত করার সময় স্ট্যাটিক রাউটিং প্রয়োজন। নিচের উদাহরণটি নির্দিষ্ট একটি নেটওয়ার্কে অ্যাক্সেসের জন্য রুট নির্ধারণ করে:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: 10.0.0.0/24
          via: 192.168.1.1

এই কনফিগারেশনটি ডিফল্ট গেটওয়ে 192.168.1.1 এর মাধ্যমে 10.0.0.0/24 নেটওয়ার্কের জন্য একটি স্ট্যাটিক রুট সেট করে।

একাধিক ডিফল্ট গেটওয়ে

Netplan প্রতিটি ইন্টারফেসের জন্য ভিন্ন ডিফল্ট গেটওয়ে নির্ধারণের অনুমতি দেয়। এটি বিভিন্ন নেটওয়ার্ক সেগমেন্টের মাধ্যমে ইন্টারনেট অ্যাক্সেস করার সময় উপকারী:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
    enp4s0:
      addresses:
        - 10.0.0.100/24
      gateway4: 10.0.0.1

DNS সার্ভার কনফিগারেশন

নিচের উদাহরণটি গুগল পাবলিক DNS সার্ভারগুলি নির্দিষ্ট করে:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.100/24
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4

উন্নত বন্ডিং কনফিগারেশন

বিভিন্ন আচরণের জন্য বন্ডিং মোড পরিবর্তন করা যায়। নিচের উদাহরণটি রাউন্ড‑রবিন বন্ডিং কনফিগার করে:

network:
  version: 2
  renderer: networkd
  bonds:
    bond0:
      interfaces:
        - enp3s0
        - enp4s0
      addresses:
        - 192.168.1.200/24
      gateway4: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: balance-rr

balance-rr মোডটি দুইটি ইন্টারফেসের মধ্যে ট্র্যাফিক পরিবর্তন করে, ব্যান্ডউইথ বণ্টনের মাধ্যমে পারফরম্যান্স উন্নত করে।

উন্নত VLAN কনফিগারেশন

বৃহৎ স্কেলের নেটওয়ার্কে পরিবেশকে লজিক্যালভাবে ভাগ করতে VLAN ব্যবহার করা হয়। নিচের উদাহরণটি VLAN ID 100 নির্ধারণ করে:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  vlans:
    vlan100:
      id: 100
      link: enp3s0
      addresses:
        - 192.168.100.1/24

এটি enp3s0 ইন্টারফেসে VLAN ID 100 নির্ধারণ করে, একটি সেগমেন্টেড ভার্চুয়াল নেটওয়ার্ক তৈরি করে।

৫. Netplan ট্রাবলশুটিং

Netplan সুবিধাজনক হলেও, কনফিগারেশন ত্রুটি বা সিস্টেমের সীমাবদ্ধতা সমস্যার সৃষ্টি করতে পারে। এই বিভাগে সাধারণ সমস্যাগুলি এবং তাদের সমাধান ব্যাখ্যা করা হয়েছে।

সাধারণ Netplan সমস্যাগুলি এবং কারণগুলি

১. কনফিগারেশন প্রয়োগ হয়নি

  • YAML ইন্ডেন্টেশন ত্রুটি : YAML ইন্ডেন্টেশন সম্পর্কে কঠোর। ভুল স্পেসিং সঠিক পার্সিং বাধা দেয়।
  • ভুল ইন্টারফেস নাম : নিশ্চিত করুন ইন্টারফেস নামগুলি ip a কমান্ডের আউটপুটের সাথে মেলে।

সমাধানসমূহ

  1. কনফিগারেশন ফাইল সংরক্ষণ করার পরে netplan apply চালান।
  2. sudo netplan try ব্যবহার করে পরিবর্তনগুলি স্থায়ীভাবে প্রয়োগ করার আগে পরীক্ষা করুন।
    sudo netplan apply
    
    sudo netplan try
    

২. নেটওয়ার্ক সংযোগ ত্রুটি

  • ভুল গেটওয়ে বা DNS সেটিংস : IP ঠিকানা এবং DNS কনফিগারেশন যাচাই করুন।
  • ফিজিক্যাল ইন্টারফেস সমস্যাগুলি : ক্যাবল এবং হার্ডওয়্যার পরীক্ষা করুন।

সমাধানসমূহ

  1. সংযোগ পরীক্ষা করতে ping কমান্ড ব্যবহার করুন:
    ping 8.8.8.8
    
  1. নেটওয়ার্ক কনফিগারেশন পুনরায় প্রয়োগ করুন এবং সার্ভিসগুলো রিস্টার্ট করুন:
    sudo systemctl restart networkd
    

৩. netplan apply চলাকালীন ত্রুটি বার্তা

কনফিগারেশন ভুল হলে বা ইন্টারফেস স্বীকৃত না হলে ত্রুটি ঘটে।

  • উদাহরণ ত্রুটি বার্তা : Error in network configuration: failed to bring up device enp3s0

ip a ব্যবহার করে সঠিক ইন্টারফেস নাম যাচাই করুন।

সমাধান

ইন্ডেন্টেশন, বানান, ইন্টারফেস নাম এবং IP ঠিকানার সঠিকতা পরীক্ষা করুন।

লগ পরীক্ষা করা

সিস্টেম লগ ট্রাবলশুটিংয়ের জন্য উপযোগী। নেটওয়ার্ক-সম্পর্কিত লগ দেখতে নিচের কমান্ড ব্যবহার করুন:

journalctl -u systemd-networkd

এটি কনফিগারেশন ত্রুটি সমাধানে সহায়ক বিশদ তথ্য প্রদর্শন করে।

৬. সারাংশ এবং পরবর্তী ধাপসমূহ

Netplan ব্যবহার করে উবুন্টু নেটওয়ার্ক সেটিংস সহজ ও কার্যকরভাবে পরিচালনা করা যায়। নিচে একটি সারাংশ এবং গভীর অনুসন্ধানের জন্য প্রস্তাবিত পরবর্তী ধাপগুলো দেওয়া হয়েছে।

Netplan-এর প্রধান সুবিধাসমূহ

  1. সুস্পষ্ট YAML কনফিগারেশন : পড়া ও পরিবর্তন করা সহজ।
  2. নমনীয় নেটওয়ার্ক ডিজাইন : একাধিক ইন্টারফেস, বন্ডিং, রুট এবং VLAN সমর্থন করে।
  3. একীভূত ইন্টারফেস : systemd-networkd এবং NetworkManager উভয়ের সাথে কাজ করে।
  4. রিয়েল-টাইম আপডেট : এক কমান্ডে সঙ্গে সঙ্গে পরিবর্তন প্রয়োগ করুন।

প্রস্তাবিত পরবর্তী ধাপসমূহ

  1. ভার্চুয়াল নেটওয়ার্ক ডিজাইন : লজিক্যালভাবে নেটওয়ার্ক ভাগ করতে একাধিক VLAN ব্যবহার করুন।
  2. IPv6 কনফিগারেশন : আধুনিক নেটওয়ার্কিং অবকাঠামোর জন্য প্রস্তুত হন।
  3. অটোমেশন স্ক্রিপ্ট : Ansible বা Puppet ব্যবহার করে কনফিগারেশন অটোমেট করুন।
  4. সিকিউরিটি উন্নয়ন : ফায়ারওয়াল এবং অ্যাক্সেস কন্ট্রোল সেটিংস শক্তিশালী করুন।

অতিরিক্ত সম্পদ