कैसे पता चलेगा कि नेटवर्क इंटरफ़ेस टैप, ट्यून, ब्रिज या फिजिकल है?


19

जहाँ तक मुझे पता है, लिनक्स में 4 मुख्य प्रकार के नेटवर्क इंटरफेस हैं: ट्यून, टैप, ब्रिज और फिजिकल।

जब मैं KVM पर चलने वाली मशीनों पर sys का व्यवस्थापक कर रहा हूं, तो मैं आमतौर पर एक ही मशीन पर टैप, ब्रिज और भौतिक इंटरफेस के पार आता हूं, बिना उन्हें बताए। मैं ifconfigपरिणामों में, परिणामों में कोई महत्वपूर्ण अंतर नहीं देख सकता ip

मुझे कैसे पता चलेगा कि कोई इंटरफ़ेस एक ट्यून, टैप, ब्रिज या फिजिकल है?

नोट: मैं यह दावा नहीं करता कि लिनक्स में अन्य प्रकार के नेटवर्क इंटरफेस नहीं हैं, लेकिन मैं केवल इन 4 को जानता हूं।

जवाबों:


18

मुझे नहीं लगता कि उनमें अंतर करने का कोई आसान तरीका है। चारों ओर घूमकर /sys/class/netमैंने निम्नलिखित भेद पाए:

  • भौतिक उपकरणों में एक /sys/class/net/eth0/deviceसिमलिंक होता है
  • पुलों की एक /sys/class/net/br0/bridgeनिर्देशिका है
  • TUN और TAP उपकरणों में एक /sys/class/net/tap0/tun_flagsफ़ाइल होती है
  • पुलों और लूपबैक इंटरफेस 00:00:00:00:00:00में है/sys/class/net/lo/address

अच्छा विचार देखने के लिए / sys /
user368507

वर्चुअल डिवाइस में इस तरह का deviceसिमिलिंक भी हो सकता है : OpenWrt (एम्बेडेड लिनक्स) पर चलने वाले राउटर पर ls -l /sys/class/net/lan1/deviceशो /sys/class/net/lan1/device -> ../../../dsa.0। मैंने पाया कि फिजिकल इंटरफेसेस के आउटपुट में इंटरप्ट एंट्री है ifconfig। यह अजीब है कि एक इंटरफ़ेस के बारे में इतना आसान सवाल जवाब देना कितना कठिन लगता है। जांच जारी है ...
लूमी

कैसे एक पीपीपी आभासी डिवाइस के बारे में?
मध्याह्न फ्रेटमैन

23

TUN और TAP उपकरणों के बारे में: यह ऊपर दिए गए चेक को बनाने के लिए पर्याप्त नहीं है।

कारण यह है कि ऐसे मामले हो सकते हैं जब हम एक TUN डिवाइस बनाते हैं और (गलती से) इसे टैप 10 कहते हैं; या एक TAP डिवाइस बनाएं और इसे tun10 नाम दें। इसलिए, मुझे कैसे पता चलेगा कि यह एक ट्यून डिवाइस या टैप डिवाइस है, क्योंकि दोनों कोर्स में "ट्यून_फ्लैग" प्रविष्टियां होंगी?

जवाब दौड़ना है ethtool -i tunOrTapDeviceName

  • TAP डिवाइस के मामले में हमें मिलेगा: "बस-जानकारी: टैप"।
  • TUN डिवाइस के मामले में हमें मिलेगा: "बस-जानकारी: ट्यून"।

उदाहरण

$ ethtool -i tapfffb93e9-6a
driver: tun
version: 1.6
firmware-version:
bus-info: tap
supports-statistics: no
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

क्या यह खोजने के लिए एक एथलेटिक कमांड नहीं है कि क्या यह भौतिक या पुल है?
मैडकोड

यह उत्तर अधिक संक्षिप्त और सामान्य-उद्देश्य समाधान है।
जोशुआ मिलर 19

@ कामकोड सामान्य मामले में आप driverक्षेत्र चाहते हैं । पुल दिखाएगा driver: bridge। दुर्भाग्य से driver: tun, पैटर्न को तोड़ते हुए, दोनों को ट्यून / टैप किया गया ।
sourcejedi

हां यह जवाब है। अन्य केवल आपको बताता है कि इंटफ़ नॉट ऑफ वर्चुअल है! आप एक ऐसे नाम के साथ एक टैप इंटरफ़ेस का नाम दे सकते हैं जो इंटरफ़ेस की प्रकृति का कोई संकेत नहीं देता है
MiniMe

9

आप अधिक-या-कम-अन-अनियोजित -dविकल्प का उपयोग कर सकते हैं ip(8), जो आपको ट्यून, टैप और वेथ सहित कुछ निश्चित उपकरणों के प्रकार बताता है:

जैसे

$ ip -d a
[regular devices]
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether 52:54:00:c8:12:ec brd ff:ff:ff:ff:ff:ff promiscuity 0 
tun

... tunअंतिम पंक्ति पर ध्यान दें ।

के -dसाथ भी उपयोग कर सकते हैं ip l


iproute2 एक ऐसा अच्छा टूल है। बहुत बुरा तो कई सुविधाओं को खोजने के लिए कठिन हैं।
थोड़ा-सा दोस्त

4

यह कमांड काम करेगा:

आईपी ​​टंटप

परिणाम उदाहरण:

vnet0: tap

या विवरण के साथ:

ip -details tuntap

परिणाम उदाहरण:

vnet0: tap
    Attached to processes: qemu-system-x86(2225)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.