1. Ubuntu में Netplan का अवलोकन
Netplan क्या है?
Netplan एक नेटवर्क कॉन्फ़िगरेशन प्रबंधन टूल है जो Ubuntu 17.10 और बाद के संस्करणों में पेश किया गया था। पहले नेटवर्क कॉन्फ़िगरेशन के लिए ifconfig और /etc/network/interfaces का उपयोग किया जाता था, लेकिन Netplan एक नया, अधिक संरचित दृष्टिकोण प्रदान करता है। Netplan की मुख्य विशेषताओं में से एक नेटवर्क कॉन्फ़िगरेशन के लिए YAML फ़ाइलों का उपयोग है, जिससे एक सरल और सुसंगत सेटअप बनता है जिसे प्रबंधित करना आसान होता है, यहाँ तक कि जटिल नेटवर्क कॉन्फ़िगरेशन के लिए भी।
Netplan NetworkManager और systemd-networkd जैसे बैकएंड का समर्थन करता है, जिससे यह Ubuntu डेस्कटॉप और सर्वर दोनों वातावरणों के लिए उपयुक्त बनता है। यह विभिन्न सेटअप्स में नेटवर्क को प्रबंधित करने का एकीकृत तरीका प्रदान करता है।
Netplan क्यों उपयोग करें?
पारंपरिक नेटवर्क कॉन्फ़िगरेशन विधियों की तुलना में Netplan कई लाभ प्रदान करता है:
- सरल सिंटैक्स : YAML फ़ॉर्मेट सहज और संरचित है, जिससे कॉन्फ़िगरेशन पढ़ना और समझना आसान हो जाता है, यहाँ तक कि शुरुआती लोगों के लिए भी।
- एकीकृत प्रबंधन : इसे डेस्कटॉप और सर्वर दोनों वातावरणों में उपयोग किया जा सकता है, जिससे विभिन्न नेटवर्क कॉन्फ़िगरेशन का केंद्रीकृत प्रबंधन संभव हो जाता है।
- डायनामिक परिवर्तन : आप कॉन्फ़िगरेशन फ़ाइल को संशोधित कर सकते हैं और तुरंत परिवर्तन लागू कर सकते हैं, जिससे वास्तविक समय में अपडेट प्रतिबिंबित होते हैं।
Netplan की बुनियादी संरचना
Netplan कॉन्फ़िगरेशन फ़ाइलें आमतौर पर /etc/netplan/ डायरेक्टरी में स्थित होती हैं और उनका एक्सटेंशन .yaml होता है। इन फ़ाइलों में नेटवर्क इंटरफ़ेस, IP पते और DNS सर्वरों की सेटिंग्स होती हैं।
नीचे एक बुनियादी Netplan कॉन्फ़िगरेशन फ़ाइल का उदाहरण दिखाया गया है:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
इस उदाहरण में, Ethernet इंटरफ़ेस enp3s0 को DHCP के माध्यम से IP पता प्राप्त करने के लिए सेट किया गया है।
Ubuntu 18.04 LTS और बाद में Netplan की भूमिका
Ubuntu 18.04 LTS से शुरू होकर, Netplan डिफ़ॉल्ट रूप से स्थापित होता है और सर्वर तथा डेस्कटॉप दोनों वातावरणों में नेटवर्क प्रबंधन के लिए व्यापक रूप से उपयोग किया जाता है। सर्वर वातावरण में, जहाँ कई नेटवर्क इंटरफ़ेस और स्थिर 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
कॉन्फ़िगरेशन लागू करना
कॉन्फ़िगरेशन फ़ाइल को संपादित करने के बाद, नीचे दिए गए कमांड का उपयोग करके परिवर्तन लागू करें:
sudo netplan apply
कॉन्फ़िगरेशन की जाँच करना
यह सुनिश्चित करने के लिए कि Netplan सेटिंग्स सही ढंग से लागू हुई हैं, नेटवर्क इंटरफ़ेस की स्थिति जांचने के लिए नीचे दिया गया कमांड चलाएँ:
ip a

3. कई नेटवर्क इंटरफ़ेस कॉन्फ़िगर करना
कई Ethernet इंटरफ़ेस सेट करना
एकाधिक नेटवर्क इंटरफ़ेस वाले सर्वर और डिवाइस प्रत्येक इंटरफ़ेस को अलग-अलग IP पते और सेटिंग्स असाइन कर सकते हैं। निम्न उदाहरण दो इथरनेट इंटरफ़ेस को विभिन्न सेटिंग्स के साथ कॉन्फ़िगर करता है:
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
वाई-फ़ाई कनेक्शन कॉन्फ़िगर करना
नेटप्लान वाई-फ़ाई कनेक्शन भी कॉन्फ़िगर कर सकता है। निम्न उदाहरण एक विशिष्ट SSID से कनेक्शन सेट करता है:
network:
version: 2
renderer: networkd
wifis:
wlp2s0:
access-points:
"my_wifi_network":
password: "password1234"
dhcp4: true
VLAN कॉन्फ़िगर करना
विशिष्ट उपयोग मामलों के लिए, वर्चुअल LAN (VLAN) का उपयोग नेटवर्क को तार्किक रूप से विभाजित करने के लिए किया जा सकता है। नेटप्लान 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. उन्नत नेटप्लान कॉन्फ़िगरेशन
स्थैतिक रूटिंग कॉन्फ़िगर करना
जब कई राउटरों के माध्यम से नेटवर्क को जोड़ा जाता है, तो स्थैतिक रूटिंग आवश्यक होती है। नेटप्लान का उपयोग करके, आप स्थैतिक रूट्स कॉन्फ़िगर कर सकते हैं ताकि ट्रैफ़िक के लिए कुछ IP पते या नेटवर्क के लिए मार्ग निर्दिष्ट किया जा सके। निम्न स्थैतिक रूटिंग का एक उदाहरण है:
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
इस कॉन्फ़िगरेशन में, enp3s0 इंटरफ़ेस को डिफ़ॉल्ट गेटवे 192.168.1.1 के माध्यम से 10.0.0.0/24 नेटवर्क के लिए एक स्थैतिक रूट असाइन किया गया है। यह ट्रैफ़िक को एक निर्धारित मार्ग के माध्यम से रूट करने की अनुमति देता है।
कई डिफ़ॉल्ट गेटवे कॉन्फ़िगर करना
जब कई नेटवर्क इंटरफ़ेस मौजूद होते हैं, तो नेटप्लान प्रत्येक इंटरफ़ेस के लिए अलग-अलग डिफ़ॉल्ट गेटवे सेट करने की अनुमति देता है। यह उन वातावरणों के लिए उपयोगी है जिन्हें विभिन्न नेटवर्क खंडों के माध्यम से इंटरनेट एक्सेस की आवश्यकता होती है। निम्न एक उदाहरण कॉन्फ़िगरेशन है:
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 सर्वरों की आसान कॉन्फ़िगरेशन की अनुमति देता है। निम्न उदाहरण गूगल के सार्वजनिक DNS सर्वरों (8.8.8.8 और 8.8.4.4) को निर्दिष्ट करता है:
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
The balance-rr (राउंड-रॉबिन) मोड इंटरफ़ेसों के बीच ट्रैफ़िक को बदलता है ताकि बैंडविड्थ वितरित हो सके, जिससे प्रदर्शन में सुधार होता है। अन्य मोड, जैसे फेलओवर के लिए active-backup और लोड बैलेंसिंग के लिए balance-tlb, आवश्यकताओं के आधार पर चुने जा सकते हैं।
उन्नत VLAN कॉन्फ़िगरेशन
VLAN (वर्चुअल LAN) बड़े नेटवर्क में ट्रैफ़िक को तार्किक रूप से विभाजित करने के लिए उपयोग किया जाता है। Netplan VLAN कॉन्फ़िगरेशन का समर्थन करता है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: true
vlans:
vlan100:
id: 100
link: enp3s0
addresses:
- 192.168.100.1/24
यहाँ, VLAN ID 100 को enp3s0 को असाइन किया गया है, और इसे स्थिर IP पता 192.168.100.1 दिया गया है। यह नेटवर्क को विभाजित करने में मदद करता है जिससे सुरक्षा और ट्रैफ़िक प्रबंधन में सुधार होता है।

5. Netplan समस्या निवारण
जबकि Netplan बहुत सुविधाजनक है, कॉन्फ़िगरेशन त्रुटियां और सिस्टम-विशिष्ट समस्याएँ उत्पन्न हो सकती हैं। यह अनुभाग सामान्य Netplan समस्याओं और उनके समाधान को समझाता है, जिससे आप नेटवर्क कनेक्शन त्रुटियों और गलत कॉन्फ़िगरेशन को प्रभावी ढंग से हल कर सकें।
सामान्य Netplan समस्याएँ और कारण
1. कॉन्फ़िगरेशन लागू नहीं हो रहा है
यदि Netplan में किए गए परिवर्तन लागू नहीं हो रहे हैं, तो संभावित कारण हो सकते हैं:
- YAML इंडेंटेशन त्रुटियाँ : YAML सिंटैक्स इंडेंटेशन के प्रति कड़ा है। गलत स्पेस या टैब्स कॉन्फ़िगरेशन को अमान्य बना सकते हैं।
- गलत इंटरफ़ेस नाम : Netplan को सही नेटवर्क इंटरफ़ेस नाम चाहिए।
ip aकमांड का उपयोग करके सत्यापित करें और सुनिश्चित करें कि यह आपके कॉन्फ़िगरेशन से मेल खाता है।
समाधान
- कॉन्फ़िगरेशन फ़ाइल को सहेजने के बाद, इसे निम्न कमांड से लागू करें:
sudo netplan apply
- यदि कोई त्रुटि आती है, तो
sudo netplan tryकमांड का उपयोग करके परिवर्तन को स्थायी रूप से लागू करने से पहले परीक्षण करें।
sudo netplan try
2. नेटवर्क कनेक्शन त्रुटियाँ
यदि नेटवर्क काम नहीं कर रहा है, तो संभावित कारण हो सकते हैं:
- गलत गेटवे या DNS कॉन्फ़िगरेशन : सुनिश्चित करें कि सही IP पते और DNS सर्वर निर्दिष्ट किए गए हैं।
- भौतिक इंटरफ़ेस समस्याएँ : नेटवर्क केबल और हार्डवेयर की जाँच करें कि वे सही ढंग से जुड़े हुए हैं।
समाधान
- कनेक्टिविटी जांचने के लिए
pingकमांड का उपयोग करें, उदाहरण के लिए:
ping 8.8.8.8
- आवश्यकता होने पर नेटवर्क सेवा को पुनः प्रारंभ करें:
sudo systemctl restart networkd
त्रुटियों के लिए लॉग जांचना
समस्याओं को हल करने के लिए, सिस्टम लॉग मूल्यवान जानकारी प्रदान करते हैं। Netplan-संबंधित लॉग जांचने के लिए निम्न कमांड का उपयोग करें:
journalctl -u systemd-networkd
6. सारांश और अगले कदम
Netplan Ubuntu नेटवर्क कॉन्फ़िगरेशन को सरल बनाता है, जिससे यह अधिक कुशल और प्रबंधनीय हो जाता है। नीचे इसके मुख्य लाभों का सारांश दिया गया है:
- सहज YAML-आधारित कॉन्फ़िगरेशन : पारंपरिक तरीकों की तुलना में पढ़ने और लिखने में आसान।
- लचीला नेटवर्क सेटअप : कई इंटरफ़ेस, बांडिंग, स्थिर रूटिंग, और VLAN का समर्थन करता है।
- एकीकृत इंटरफ़ेस : विभिन्न Ubuntu परिवेशों में एकसमान दृष्टिकोण के साथ काम करता है।
- रियल-टाइम कॉन्फ़िगरेशन परिवर्तन : नेटवर्क सेटिंग्स को तुरंत अपडेट किया जा सकता है।
आगे का अध्ययन
बुनियादी बातों में सहज होने के बाद, निम्नलिखित का अन्वेषण करने पर विचार करें:
- वर्चुअल नेटवर्क सेटअप : उन्नत नेटवर्क सुरक्षा के लिए VLAN लागू करें।
- IPv6 समर्थन : भविष्य-प्रूफ नेटवर्किंग के लिए IPv6 कॉन्फ़िगर करें।
- स्क्रिप्ट्स के साथ ऑटोमेशन : नेटवर्क कॉन्फ़िगरेशन को स्वचालित करने के लिए Ansible या Puppet का उपयोग करें।



