Ubuntu पर Netplan में निपुणता: YAML के साथ नेटवर्क कॉन्फ़िगरेशन की पूरी गाइड

.## 1. 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 की भूमिका

Netplan Ubuntu 18.04 LTS और उसके बाद के संस्करणों में डिफ़ॉल्ट रूप से स्थापित आता है और डेस्कटॉप तथा सर्वर दोनों वातावरण में नेटवर्क प्रबंधन के लिए व्यापक रूप से उपयोग किया जाता है। सर्वर वातावरण में, जहाँ अक्सर कई नेटवर्क इंटरफ़ेस या स्थिर IP असाइनमेंट की आवश्यकता होती है, Netplan की लचीलापन विशेष रूप से उपयोगी बन जाता है।

आगे, हम Netplan का उपयोग करके नेटवर्क कॉन्फ़िगर करने के व्यावहारिक उदाहरणों की जाँच करेंगे।

2. 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

3. कई नेटवर्क इंटरफ़ेस कॉन्फ़िगर करना

कई Ethernet इंटरफ़ेस कॉन्फ़िगरेशन

एकाधिक नेटवर्क इंटरफ़ेस वाले डिवाइस प्रत्येक इंटरफ़ेस को अलग‑अलग सेटिंग्स असाइन कर सकते हैं। नीचे दिया गया उदाहरण दो Ethernet इंटरफ़ेस को कॉन्फ़िगर करता है:

.

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

रिडंडेंसी के लिए बांडिंग

Bonding कई नेटवर्क इंटरफ़ेस को एकल वर्चुअल इंटरफ़ेस में संयोजित करता है, जिससे रिडंडेंसी मिलती है और उपलब्धता में सुधार होता है। नीचे दिया गया उदाहरण 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 Wi‑Fi कॉन्फ़िगरेशन को भी समर्थन देता है। निम्नलिखित उदाहरण एक विशिष्ट 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

4. उन्नत 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 सर्वर कॉन्फ़िगरेशन

नीचे दिया गया उदाहरण Google Public 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 असाइन करता है, जिससे एक विभाजित वर्चुअल नेटवर्क बनता है।

5. Netplan समस्या निवारण

हालांकि Netplan सुविधाजनक है, कॉन्फ़िगरेशन त्रुटियों या सिस्टम सीमाओं के कारण समस्याएँ उत्पन्न हो सकती हैं। यह अनुभाग सामान्य समस्याओं और उनके समाधान को समझाता है।

सामान्य Netplan समस्याएँ और कारण

1. कॉन्फ़िगरेशन लागू नहीं हुआ

  • YAML इंडेंटेशन त्रुटि : YAML इंडेंटेशन के प्रति बहुत सख्त है। गलत स्पेसिंग सही पार्सिंग को रोकती है।
  • गलत इंटरफ़ेस नाम : सुनिश्चित करें कि इंटरफ़ेस नाम ip a कमांड के आउटपुट से मेल खाते हों।

समाधान

  1. कॉन्फ़िगरेशन फ़ाइल को सहेजने के बाद netplan apply चलाएँ।
  2. स्थायी रूप से लागू करने से पहले बदलावों का परीक्षण करने के लिए sudo netplan try उपयोग करें।
    sudo netplan apply
    
    sudo netplan try
    

2. नेटवर्क कनेक्शन त्रुटियाँ

  • गलत गेटवे या DNS सेटिंग्स : IP पते और DNS कॉन्फ़िगरेशन की जाँच करें।
  • भौतिक इंटरफ़ेस समस्याएँ : केबल और हार्डवेयर की जाँच करें।

समाधान

  1. कनेक्टिविटी का परीक्षण करने के लिए ping कमांड उपयोग करें:
    ping 8.8.8.8
    
  1. नेटवर्क कॉन्फ़िगरेशन को पुनः लागू करें और सेवाओं को रीस्टार्ट करें:
    sudo systemctl restart networkd
    

3. netplan apply के दौरान त्रुटि संदेश

जब कॉन्फ़िगरेशन गलत हो या इंटरफ़ेस पहचाना न जाए, तो त्रुटियाँ आती हैं।

  • उदाहरण त्रुटि संदेश : Error in network configuration: failed to bring up device enp3s0

सही इंटरफ़ेस नाम ip a का उपयोग करके सत्यापित करें।

समाधान

इंडेंटेशन, वर्तनी, इंटरफ़ेस नाम, और IP पते की शुद्धता की जाँच करें।

लॉग्स की जाँच

सिस्टम लॉग्स समस्या निवारण के लिए उपयोगी होते हैं। नीचे दिया गया कमांड नेटवर्क‑संबंधित लॉग्स देखने के लिए उपयोग करें:

journalctl -u systemd-networkd

यह विस्तृत जानकारी प्रदर्शित करता है जो कॉन्फ़िगरेशन त्रुटियों को हल करने में मदद करता है।

6. सारांश और अगले कदम

Netplan का उपयोग करके Ubuntu नेटवर्क सेटिंग्स को सरल और प्रभावी ढंग से प्रबंधित किया जा सकता है। नीचे एक सारांश और गहन अन्वेषण के लिए सुझाए गए अगले कदम दिए गए हैं।

Netplan के मुख्य लाभ

  1. सहज YAML कॉन्फ़िगरेशन : पढ़ने और संशोधित करने में आसान।
  2. लचीला नेटवर्क डिज़ाइन : कई इंटरफ़ेस, बांडिंग, रूट और VLAN का समर्थन करता है।
  3. एकीकृत इंटरफ़ेस : systemd-networkd और NetworkManager दोनों के साथ काम करता है।
  4. रियल‑टाइम अपडेट : एक कमांड से तुरंत बदलाव लागू करें।

अनुशंसित अगले कदम

  1. वर्चुअल नेटवर्क डिज़ाइन : नेटवर्क को तार्किक रूप से विभाजित करने के लिए कई VLAN का उपयोग करें।
  2. IPv6 कॉन्फ़िगरेशन : आधुनिक नेटवर्किंग इन्फ्रास्ट्रक्चर के लिए तैयारी करें।
  3. ऑटोमेशन स्क्रिप्ट्स : Ansible या Puppet का उपयोग करके कॉन्फ़िगरेशन को स्वचालित करें।
  4. सुरक्षा संवर्द्धन : फ़ायरवॉल और एक्सेस कंट्रोल सेटिंग्स को मजबूत बनाएं।

अतिरिक्त संसाधन