/ Etc / नेटवर्क / इंटरफेस सिंटैक्स की अच्छी विस्तृत व्याख्या?


139

मुझे समझ में आया कि कैसे उपयोग करना है /etc/network/interfaces, लेकिन मुझे लगता है कि सभी ऑनलाइन हैं उदाहरण, उदाहरण के बाद उदाहरण, जिसे मैं कॉपी-पेस्ट कर सकता हूं। मुझे जो याद आता है वह वाक्य रचना का एक विवरण है, जो कमांड के अर्थ की व्याख्या करता है और जिसके लिए कमांड की आवश्यकता होती है। मैं समझना चाहता हूं, क्योंकि ज्यादातर समय कॉपी-पेस्ट पर्याप्त नहीं होता है, क्योंकि मैं एक ताजा मशीन पर काम नहीं कर रहा हूं, इसलिए मैं सिर्फ मौजूदा कॉन्फ़िगरेशन को अधिलेखित नहीं कर सकता, क्योंकि यह बहुत सारे सामान को तोड़ देगा। man interfacesबहुत उपयोगी नहीं था क्योंकि यह बहुत जटिल लिखा जाता है।

उदाहरण के प्रश्न मेरे पास हैं: inetएक ifaceपंक्ति में क्या होता है इसका ठीक-ठीक मतलब है (मैं इसे मैनपेज में भी नहीं खोज सका), लाइन manualमें क्या होता है ifaceइसका ठीक-ठीक मतलब है (कई उदाहरण इसका उपयोग करते हैं, लेकिन मैनपेज के अनुसार इसके लिए एक अतिरिक्त विन्यास फाइल की जरूरत होती है, जिसे उदाहरण मौजूद नहीं हैं), मैं उनका उपयोग कब करूं या उन्हें आवश्यकता हो? कब नहीं? जब मैं एक पुल का निर्माण करता हूं, तो इंटरफेस का वास्तव में क्या होता है?


4
मैन पेज कहता है कि इंटरफ़ेस नाम के बाद क्या आता है, पता परिवार है जो इंटरफ़ेस का उपयोग करता है। "इनवेट" IPv4 के लिए नाम है, IPv6 के लिए inet6। वहाँ भी ipx, x25, appletalk है ..., हालांकि ifupdown मैन पेज बताते हुए inet / inet6 / ipx के साथ ही सौदा करता है। manualइसका मतलब यह है कि ifupdown उनके बारे में कुछ नहीं करता है, आपको इसे स्वयं करना होगा।
स्टीफन चेजेलस

जवाबों:


168

खैर, आइए इसे टुकड़ों में अलग करते हैं, जिससे इसे समझना आसान हो जाता है /etc/network/interfaces:

लिंक परत + इंटरफ़ेस प्रकार के विकल्प (आम तौर पर प्रत्येक इंटरफ़ेस छंद के पहले और interfaces(5)मैनपेज़ द्वारा पता परिवार + विधि कहा जाता है ):

auto interface- बूट पर इंटरफ़ेस शुरू करें। यही कारण है कि loइंटरफ़ेस इस तरह के लिंकिंग कॉन्फ़िगरेशन का उपयोग करता है।

allow-auto interface - के समान auto

allow-hotplug interface- "हॉटप्लग" घटना का पता चलने पर इंटरफ़ेस शुरू करें। वास्तविक दुनिया में, यह उन्हीं स्थितियों में उपयोग किया जाता है, autoलेकिन अंतर यह है कि यह "udv hotplug api" या "केबल लिंक्ड" जैसे किसी घटना का इंतजार करेगा। अतिरिक्त जानकारी के लिए " संबंधित सामग्री (हॉटप्लग) " देखें ।

ये विकल्प बहुत "लेयर 2" विकल्प हैं, इंटरफेस पर लिंक स्टेट्स सेट करते हैं, और "लेयर 3" (रूटिंग और एड्रेसिंग) से संबंधित नहीं हैं। एक उदाहरण के रूप में आपके पास एक लिंक एकत्रीकरण हो सकता है जहां बंधन 0 इंटरफ़ेस को लिंक स्थिति जो भी हो, और उसके सदस्यों को लिंक राज्य घटना के बाद होना चाहिए:

auto bond0
iface bond0 inet manual
        down ip link set $IFACE down
        post-down rmmod bonding
        pre-up modprobe bonding mode=4 miimon=200
        up ip link set $IFACE up mtu 9000
        up udevadm trigger

allow-hotplug eth0
iface eth0 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

allow-hotplug eth1
iface eth1 inet manual
        up ifenslave bond0 $IFACE
        down ifenslave -d bond0 $IFACE 2> /dev/null

तो, इस तरह मैं एक लिंक एकत्रीकरण बनाता हूं और इसमें इंटरफेस जोड़े जाएंगे और केबल लिंक राज्यों पर हटा दिए जाएंगे।

सबसे आम इंटरफ़ेस प्रकार:

नीचे दिए गए सभी विकल्प एक परिभाषित इंटरफ़ेस ( iface <Interface_family>) के लिए एक प्रत्यय हैं । मूल रूप से एक ईथरनेट डिवाइस पर iface eth0बुलाया एक श्लोक बनाता eth0है। iface ppp0एक बिंदु-से-बिंदु इंटरफ़ेस बनाना चाहिए , और इसके पास पते प्राप्त करने के विभिन्न तरीके हो सकते हैं जैसे inet wvdialकि इस इंटरफ़ेस के कॉन्फ़िगरेशन को wvdialconfस्क्रिप्ट में अग्रेषित किया जाएगा । टपल inet/ inet6+ optionके संस्करण परिभाषित करेगा आईपी प्रोटोकॉल है कि इस्तेमाल किया जाएगा और जिस तरह से इस पते विन्यस्त किया जाएगा ( static, dhcp, scripts...)। ऑनलाइन डेबियन मैनुअल आप इस बारे में अधिक जानकारी दे देंगे।

ईथरनेट इंटरफेस पर विकल्प:

inet static - एक स्थिर आईपी पते को परिभाषित करता है।

inet manual- एक इंटरफेस के लिए एक आईपी पते को परिभाषित नहीं करता है। आम तौर पर उन इंटरफेसों द्वारा उपयोग किया जाता है जो पुल या एग्रीगेशन सदस्य होते हैं, इंटरफेस जो कि प्रोमेसस मोड में संचालित करने की आवश्यकता होती है ( जैसे पोर्ट मिररिंग या नेटवर्क टीएपी ), या उन पर एक वीएलएएन डिवाइस कॉन्फ़िगर किया गया है। यह एक आईपी पते के बिना इंटरफ़ेस को बनाए रखने का एक तरीका है।

inet dhcp - डीएचसीपी प्रोटोकॉल के माध्यम से आईपी एड्रेस हासिल करें।

inet6 static - एक स्थिर IPv6 पते को परिभाषित करता है।

उदाहरण:

# Eth0
auto eth0
iface eth0 inet manual
    pre-up modprobe 8021q
    pre-up ifconfig eth0 up
    post-down ifconfig eth0 down

# Vlan Interface
auto vlan10
iface vlan10 inet static
        address 10.0.0.1
        netmask 255.255.255.0
        gateway 10.0.0.254
        vlan-raw-device eth0
        ip_rp_filter 0

इस उदाहरण लाएगा eth0अप, और एक बनाने VLAN इंटरफ़ेस कहा जाता है vlan10कि एक ईथरनेट फ्रेम पर टैग संख्या 10 पर कार्रवाई करेंगे।

एक इंटरफ़ेस श्लोक (परत 2 और 3) के अंदर सामान्य विकल्प:

address - एक स्थिर आईपी कॉन्फ़िगर इंटरफ़ेस के लिए आईपी पता

netmask- नेटवर्क मास्क। यदि आप cidr पते का उपयोग करते हैं उदाहरण:

iface eth1 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

gateway- सर्वर का डिफ़ॉल्ट गेटवे। इस आदमी में से केवल एक का उपयोग करने के लिए सावधान रहें।

vlan-raw-device - वीएलएएन इंटरफ़ेस पर, इसके "पिता" को परिभाषित करता है।

bridge_ports - एक ब्रिज इंटरफेस पर, इसके सदस्यों को परिभाषित करें।

down- इंटरफ़ेस के बजाय नीचे दिए गए कमांड का उपयोग करें ifdown

post-down - इंटरफेस नीचे होने के बाद सही लिया गया कार्य।

pre-up - इंटरफ़ेस उठने से पहले की क्रिया।

up- इंटरफ़ेस के बजाय निम्नलिखित कमांड का उपयोग करें ifup। पर उपलब्ध किसी भी विकल्प का उपयोग करना आपकी कल्पना पर निर्भर है iputils। एक उदाहरण के रूप में हम ऑपरेशन के दौरान जंबो फ्रेमup ip link set $IFACE up mtu 9000 को सक्षम करने के लिए उपयोग कर सकते हैं ( विकल्प का उपयोग करने के बजाय )। इंटरफ़ेस उठने के बाद आप 100Mbps फुल डुप्लेक्स 5 सेकंड के लिए बाध्य करने के लिए किसी भी अन्य सॉफ़्टवेयर को कॉल कर सकते हैं ।upmtuup sleep 5; mii-tool -F 100baseTx-FD $IFACE

hwaddress ether 00:00:00:00:00:00- इंटरफ़ेस का मैक पता बदलें, जो कि हार्डकोड को रोम में उपयोग करने के बजाय, या एल्गोरिदम द्वारा उत्पन्न होता है। आप randomएक यादृच्छिक मैक पता प्राप्त करने के लिए कीवर्ड का उपयोग कर सकते हैं ।

dns-nameservers- नेमसर्वर्स के आईपी पते। resolvconfपैकेज की आवश्यकता है । यह DNS से ​​संबंधित कॉन्फ़िगरेशन के लिए /etc/network/interfacesउपयोग करने के बजाय सभी सूचनाओं को केंद्रित करने का एक तरीका है /etc/resolv.confresolv.confकॉन्फ़िगरेशन फ़ाइल को मैन्युअल रूप से संपादित न करें क्योंकि यह सिस्टम में कार्यक्रमों द्वारा गतिशील रूप से बदल जाएगा।

dns-search example.netFQDN बनाते हुए, host के प्रश्नों के लिए डोमेन के रूप में example.net को जोड़ें। विकल्प domainकी/etc/resolv.conf

wpa-ssid - वायरलेस: एक वायरलेस WPA SSID सेट करें।

mtu- एमटीयू का आकार। mtu 9000= जंबो फ्रेम। उपयोगी यदि आपका लिनक्स बॉक्स उन स्विचों से जुड़ा है जो बड़े MTU आकारों का समर्थन करते हैं। कुछ प्रोटोकॉल को तोड़ सकते हैं (मुझे स्नैम्प और जंबो फ्रेम के साथ बुरे अनुभव थे)।

wpa-psk - वायरलेस: अपने SSID के लिए एक हेक्साडेसिमल एन्कोडेड PSK सेट करें।

ip_rp_filter 1- रिवर्स पाथ फिल्टर सक्षम। ऐसी परिस्थितियों में उपयोगी जहां आपके पास होस्ट करने के लिए 2 मार्ग हैं, और यह पैकेट को वापस उसी स्थान पर आने के लिए मजबूर करेगा जहां यह आया था (उसी इंटरफ़ेस, इसके मार्गों का उपयोग करके)। उदाहरण: आप अपने lan ( 192.168.1.1/24) से जुड़े हैं और आपके पास एक dlna सर्वर है जिसमें आपके lan ( 192.168.1.10/24) पर एक इंटरफ़ेस है और dmz पर अन्य इंटरफ़ेस प्रशासनिक कार्यों को निष्पादित करने के लिए है ( 172.16.1.1/24)। आपके कंप्यूटर से dlna dmz आईपी में ssh सत्र के दौरान, जानकारी को आपके पास वापस आने की आवश्यकता होती है, लेकिन हमेशा के लिए हैंग हो जाएगा क्योंकि आपका dlna सर्वर इसके lan इंटरफ़ेस के माध्यम से सीधे प्रतिक्रिया देने का प्रयास करेगा। Rp_filter सक्षम होने के साथ, यह सुनिश्चित करेगा कि कनेक्शन वहीं से वापस आएगा जहां से आया था। अधिक जानकारी यहाँ

उन विकल्पों में से कुछ वैकल्पिक नहीं हैं। उदाहरण के लिए, अगर आप बिना नेटमैस्क के इंटरफ़ेस पर IP एड्रेस डालते हैं, तो डेबियन आपको चेतावनी देगा।

आप नेटवर्क कॉन्फ़िगरेशन के अधिक अच्छे उदाहरण यहां पा सकते हैं ।

संबंधित सामग्री :

वे लिंक जिनकी /etc/network/interfacesनेटवर्क कॉन्फ़िगरेशन फ़ाइल से संबंधित जानकारी है :


धन्यवाद, इससे बहुत मदद मिलती है। क्या inet"इंटरनेट" से कोई लेना देना है? मैं कुछ पढ़ता हूं कि यह सिर्फ "IPv4" का inet6अर्थ है और "IPv6" का अर्थ है, लेकिन "inet" शब्द वास्तव में भ्रमित है जब आप इसे देखते हैं और इसे "इंटरनेट" के लिए संक्षिप्त रूप से भ्रमित करते हैं। और जिन नामों का उपयोग करता है, जैसे eth0ये परिभाषित हैं या क्या मैंने उन्हें स्वयं चुना है? यदि मेरे पास एक से अधिक लैन एडेप्टर हैं, तो मैं कैसे बताऊं कि ethकौन से लैन एडेप्टर से संबंधित है?
फू बार

2
दोनों। साथ में वे आईपी पता अर्जनशिप (dhcp, static, ppp स्क्रिप्ट्स, नो एड्रेस) और आईपी प्रोटोकॉल ( inet= v4 और inet6= v6) के संस्करण को परिभाषित करते हैं । इंटरफ़ेस नाम बहुत ज्यादा उस वितरण पर निर्भर करता है जिसका आप उपयोग कर रहे हैं, और जिस तरह udevसे कॉन्फ़िगर किया गया है। डेबियन का उपयोग करता है eth*और wlan*केबल और वायरलेस इंटरफेस के लिए। फेडोरा biosdevname स्कीम का उपयोग करता है जहां em0आपके मदरबोर्ड पर पहला अंतर्निहित ईथरनेट इंटरफ़ेस और p<slot>p<eth port>एक PCI nic का नाम है। आप नेटवर्क नामों को ठीक कर सकते हैं /etc/udev/rules.d/70-persistent-net.rulesया अन्य उपनाम बना सकते हैं interfaces

2
"गेटवे के बारे में - एक सर्वर का डिफ़ॉल्ट गेटवे। इस आदमी में से केवल एक का उपयोग करने के लिए लापरवाह होना चाहिए।" क्या सभी श्लोक के बीच एक श्लोक या एक गेटवे इंटरफ़ेस है?
ctbrown

2
सभी चरणों के बीच एक प्रवेश द्वार होना चाहिए, या, आपको अपने डिफ़ॉल्ट मार्ग से परेशानी होगी। मल्टी गेटवे / मल्टी लिंक के साथ काम करने के लिए, iptables + पैकेज मार्किंग + आईपी नियमों के साथ कुछ विचार करने की आवश्यकता होगी।

एक छोटी सी क्वेरी, अगर इस फाइल में, मैं iface eth0 इनसेट स्टैटिक हो रहा हूं और फिर अगर मैं एड्रेस फील्ड के खिलाफ कुछ IP लिखता हूं, तो क्या इसका मतलब यह है कि यह विशेष आईपी जिसे मैंने लिखा है, मेरे सिस्टम के मैक एड्रेस से बंध जाएगा?
k10

0

मैं यह भी जोड़ूंगा:

  • इंटरफेस ifup / ifdown सेवाओं के लिए है।
  • जब आप यू-हॉटप्लग का उपयोग करते हैं तो यह ifup / ifdown से शुरू नहीं होगा, bcos u को फ्लैग --allow = हॉटप्लग का उपयोग करने की आवश्यकता है।

यू ट्रैक कर सकता है कि ifup के साथ क्या हो रहा है --verbose ध्वज का उपयोग करके।

Im इस का 100% shure नहीं है, लेकिन ऐसा लगता है कि मूल रूप से ifup को u कहा जाता है तो / etc / network / interfaces से सब निष्पादित करेगा ... यदि अन्यथा नहीं कहा गया है।

Im नहीं shure यह कैसे संबंधित है: सेवा नेटवर्किंग ...

अगर किसी को कॉल के बाद क्या हो रहा है, तो अच्छा लगेगा:

service networking restart

ifup / ifdown के संबंध में।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.