কোনও নেটওয়ার্ক ইন্টারফেস শারীরিক (ডিভাইস) বা ভার্চুয়াল (ওরফে) কিনা তা আমি কীভাবে বলতে পারি?


17

আমার ওপেনআরআরটি (রাউটারগুলির জন্য এম্বেডড লিনাক্সের মতো) চলমান একটি ছোট হোম রাউটার রয়েছে। এটিতে পাঁচটি ইথারনেট পোর্ট রয়েছে, একটি লেবেলযুক্ত ডান ওয়ান এবং চারটি লেবেল ল্যান 1 থেকে 4 রয়েছে 4. এটিতে নিম্নলিখিত নেটওয়ার্ক ইন্টারফেসগুলি সংজ্ঞায়িত করা হয়েছে ifconfig:

root@TIBERIUS: ~ > ifconfig | grep Link
br-lan    Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
eth0      Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
lan1      Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
lan2      Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
lan3      Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
lan4      Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
lo        Link encap:Local Loopback
pppoe-wan Link encap:Point-to-Point Protocol
wan       Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
wlan0     Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0

আপনি দেখতে পাচ্ছেন, বেশ কয়েকটি ডিভাইস রয়েছে তবে কেবলমাত্র একটি ম্যাকের ঠিকানা।

আমি বুঝতে পারি those ডিভাইসের কয়েকটি ভার্চুয়াল। আসুন একপাশে রাখি loএবং pppoe-wanএটি লুপব্যাক ডিভাইস এবং আমার পিপিপিওই সংযোগ। তবে বাকিদের জন্য, তারা শারীরিক বা ভার্চুয়াল কিনা তা আমি কীভাবে বলতে পারব? আমি বুঝতে পারি ভার্চুয়াল ইন্টারফেসের মতো লেবেল করার জন্য একটি নামকরণের কনভেনশন রয়েছে eth0.1তবে এটি অবশ্যই এখানে মেনে চলে না। আসুন ifconfigএই দুটি ইন্টারফেসের জন্য আউটপুট দেখুন :

root@TIBERIUS: ~ > ifconfig wan
wan       Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15007 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12055 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:13341276 (12.7 MiB)  TX bytes:1831757 (1.7 MiB)

root@TIBERIUS: ~ > ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:23:CD:20:C3:B0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:25799 errors:0 dropped:0 overruns:23 frame:0
          TX packets:25294 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15481996 (14.7 MiB)  TX bytes:15160380 (14.4 MiB)
          Interrupt:4

txqueuelenঅ-শূন্যের জন্য অস্পষ্ট বিবরণ ছাড়াও eth0একমাত্র উল্লেখযোগ্য পার্থক্য হল eth0একটি Interruptএন্ট্রি রয়েছে, যা আমি যতদূর জানি একটি হার্ডওয়্যার বৈশিষ্ট্য। তাহলে কী আপনি কীভাবে কোনও নেটওয়ার্ক ইন্টারফেসটিকে শারীরিক বা না Interruptএন্ট্রি খুঁজছেন তা বলছেন ifconfig? নাকি এর চেয়ে ভাল উপায় আছে? কোনও নেটওয়ার্ক ডিভাইস শারীরিক বা ভার্চুয়াল কিনা তা সন্ধান করার একটি সহজ এবং সোজা উপায়?

মনে রাখবেন একটি সম্পর্কিত প্রশ্ন রয়েছে তবে এটির একটি স্বীকৃত উত্তর থাকলেও এটি চূড়ান্ত নয়।

হালনাগাদ

ডার্বার্টের উত্তরের জবাবে, এখানে থেকে প্রাপ্ত তথ্য ls -l /sys/class/net:

br-lan      -> ../../devices/virtual/net/br-lan
eth0        -> ../../devices/platform/ag71xx.0/net/eth0
lan1        -> ../../devices/platform/dsa.0/net/lan1
lan2        -> ../../devices/platform/dsa.0/net/lan2
lan3        -> ../../devices/platform/dsa.0/net/lan3
lan4        -> ../../devices/platform/dsa.0/net/lan4
lo          -> ../../devices/virtual/net/lo
pppoe-wan   -> ../../devices/virtual/net/pppoe-wan
wan         -> ../../devices/platform/dsa.0/net/wan

[এই তালিকায় সংযোজন: wlan0পাশাপাশি প্রদর্শিত হবে wlan0 -> ../../devices/platform/ath9k/net/wlan0, কিন্তু আমি উপরের তালিকাটি অনুলিপি করার সময় আমার ডাব্লুএলএএনএএন অক্ষম ছিল, যে কারণে এটি প্রদর্শিত হয়নি]]

আমি বলব eth0একমাত্র ডিভাইস। কী dsa.0তা পরিষ্কার নয় ।

এবং ব্রায়ান এজির উত্তরে:

root@TIBERIUS: ~ > cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'eth'
        option ifname 'eth0'
        option proto 'none'

config interface 'lan'
        option ifname 'lan1 lan2 lan3 lan4'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.33.1'
        option netmask '255.255.255.0'

config interface 'wan'
        option ifname 'wan'
        option proto 'pppoe'
        option username '…'
        option password '…'

আপনি ইতিমধ্যে আপনার নিজের প্রশ্নের উত্তর দিয়েছেন (হার্ডওয়্যার-নির্দিষ্ট আইটেমগুলি যেমন আইআরকিউ, টেক্স্কিউ, ... দেখুন) look আমার কাছে প্রশ্নটি আসে যে - আপনার ব্যবহারের ক্ষেত্রে আপনাকে কেন এটির পার্থক্য করতে হবে?
নীল

@ নীল, আমি ওপেনআরটি এর উপরে ফ্ল্যাশ করার পরে আমার রাউটার ডিভাইসে নেটওয়ার্ক কনফিগারেশনটি সম্পর্কে আমার স্পষ্ট উপলব্ধি নেই। আমি এটি পুরোপুরি বিভ্রান্ত মনে করি find প্রজেক্ট ডকস এবং ফোরাম কিছু সহায়তা সরবরাহ করেছে, তবে যথেষ্ট নয় এবং প্রাথমিক প্রশ্নগুলি উত্তরহীন রেখে দিয়েছে। এই প্রশ্নগুলির মধ্যে একটি এখানে উত্থাপিত প্রশ্ন। আমার কাছে এখন মনে হচ্ছে যে আমার রাউটারটিতে কেবল একটি এনআইসি রয়েছে যখন আমি নিশ্চিত যে এটির দুটি রয়েছে। বিশদ বিবরণ বিভ্রান্তি হ্রাস করে। এই জন্য.
লুমি

আপনি কি এখানে সেই রাউটারের জন্য একটি ছোট ফটো বা কোনও ফটো / ডকুমেন্টেশনের লিঙ্ক রাখতে পারেন? বন্ধন / ব্রিজিং / নেটটিংয়ের মতো জিনিসগুলি থাকতে পারে যা আসল ম্যাকগুলি গোপন করে ...
নীল

আপনি আরও বিশদ বিবরণ এবং আপনার যা প্রয়োজন তা দেখতে সক্ষম হবেনlshw -class network
নাথান ভি

@ নীল, আপনি এখানে যান: wiki.openwrt.org/toh/tp-link/tl-wr941 তম - @ নাথান, মাত্র 4 এমবি ফ্ল্যাশ সহ, বাক্সটি বরং সীমাবদ্ধ, এবং lshwপ্যাকেজ তালিকায় নেই। একজন জ্ঞানী এবং দৃ determined়প্রতিজ্ঞ লোকটি ডিভাইসগুলি ইনস্টল করতে সফল হতে পারে tmpfsতবে এটি কি উপযুক্ত হবে? আমি একটি স্ট্যান্ডার্ড পিসির মাধ্যমে লিনাক্স নেটওয়ার্কিং সম্পর্কে আমার বোঝার জন্য এগিয়ে যাচ্ছি। এটি আরও সহজ হতে চলেছে। যদিও আমি এই রাউটার কনফিগারেশনটি সঠিকভাবে বুঝতে পারি না, এটি কাজ করে। আপনার সাহায্যের জন্য ধন্যবাদ.
লুমি

উত্তর:


19

আপনি যাচাই করতে পারেন /sys:

anthony@Zia:/sys/class/net$ ls -l /sys/class/net/
total 0
lrwxrwxrwx 1 root root 0 Dec 11 15:38 br0 -> ../../devices/virtual/net/br0
lrwxrwxrwx 1 root root 0 Dec 11 15:38 lan -> ../../devices/pci0000:00/0000:00:1e.0/0000:07:01.0/net/lan
lrwxrwxrwx 1 root root 0 Dec 11 15:38 lo -> ../../devices/virtual/net/lo
lrwxrwxrwx 1 root root 0 Dec 11 15:38 tun0 -> ../../devices/virtual/net/tun0

সুতরাং, প্রকৃত ডিভাইসগুলি / sys / শ্রেণী / নেটতে দেখায়। দ্রষ্টব্য যে এলিয়াসগুলি (যেমন ল্যান: 0) না করে (যাতে আপনি এটি করতে পারেন কোনটি উপাধি রয়েছে)। এবং আপনি পরিষ্কারভাবে দেখতে পারবেন কোনটি প্রকৃত হার্ডওয়্যার (ল্যান) এবং কোনটি নয় (br0, lo, tun0)।

স্পষ্ট করা

উপরেরগুলিতে কোনটি আসল তা আপনি বলতে পারেন কারণ ভার্চুয়ালগুলি সমস্ত ভার্চুয়াল। আর ল্যান পিসিআই বাসে আছে।

আপনার ক্ষেত্রে, আপনার ছয়টি রয়েছে: এথ0, ওয়ান এবং ল্যান 1–4। এটি বরং অদ্ভুত, যেহেতু আপনি বলেছেন যে আপনার কাছে মোট পাঁচটি বন্দর রয়েছে। আমি অনুমান করতে পারি যে eth0 আসলে এএ স্যুইচ-চিপ চিপ করা শক্ত, এবং অন্য 5 টি বন্দর সেই সুইচ এর পোর্ট হয়। wlan0 সম্ভবত বাস্তব (ওয়্যারলেস অ্যাডাপ্টার হবে), যদিও এটি / sys তে প্রদর্শিত হচ্ছে না…।

সুতরাং, আমি বলব যে সমস্ত ব্যবহারিক উদ্দেশ্যে, আপনার আসল বন্দরগুলি হ'ল, ল্যান 1–4 এবং ওলান0। বিআর-ল্যান হল একটি ব্রিজ যা সমস্ত 4 ল্যান বন্দরগুলি একটি স্যুইচ হিসাবে ফাংশন করতে তৈরি করে (যাতে আপনি সেই স্যুইচটি বিভক্ত করতে সক্ষম হতে পারেন)।


ধন্যবাদ। আমি আমার প্রশ্নের অনুরূপ আউটপুট যুক্ত। আপনি এখানে আউটপুটটি দেখিয়ে যাচ্ছেন তা পিসিআই বাসের সাথে বা সেখানে কী প্রদর্শিত হচ্ছে তা পরিষ্কার নয়; যদিও আমি আউটপুটটি সত্যই বুঝতে পারি না, আমি সম্মত হয়েছি এটি হার্ডওয়্যার শনাক্তকারীদের মতো দেখাচ্ছে। উপরের পোস্ট করা আমার আউটপুটটির ক্ষেত্রে, এটি উপস্থিতিই ag71xxআমাকে মনে করে যে এটি হার্ডওয়্যার, কারণ এটি একটি চালকের মতো দেখাচ্ছে।
লুমি

@ লুমি উত্তর দেওয়ার চেষ্টা করার জন্য সম্পাদিত।
ডার্বোবার্ট

এটি আমার প্রতিক্রিয়ার চেয়ে সম্ভবত ব্যবহারিক।
ব্রায়ান এজ

ধন্যবাদ। আমি তালিকাটি অনুলিপি করার সময় এটি সক্ষম করার জন্য টুপিটি wlan0ডিভাইসের তালিকায় নোট উপস্থিত থাকত /sys/class/net। :) আমি এখন উপরে এটি যুক্ত করেছি। ডিভাইসের সংখ্যা নিয়ে আমি আপনার সাথে একমত নই, আমার মনে হয় ল্যান এবং ডাব্লুএলএএন কেবল দুটি আছে। তবে এটি একটি সামান্য বিষয় ... ভাল উত্তর, গৃহীত, আপনাকে ধন্যবাদ!
লুমি

@ লিমি brctrl delif br-lan lan1ব্রিজের বাইরে কোনও বন্দর ফেলে দেওয়ার জন্য (বা অনুরূপ) ব্যবহার করুন । আমার সন্দেহ হয় এটি তখন পৃথক বন্দর হিসাবে কাজ করবে (ল্যান স্যুইচের অংশ নয়)।
ডার্বোবার্ট

5

ধরে নেওয়া যাক আপনার ইন্টারফেস MAC ঠিকানা ছিল না প্রতারণামূলক , আপনি ব্যবহার করার চেষ্টা করতে পারেন সময় ethtool :

ethtool -P {Network interface name}

" স্থায়ী ঠিকানা: 00: 00: 00: 00: 00: 00 " এটি একটি ভার্চুয়াল নেটওয়ার্ক ইন্টারফেস নির্দেশ করবে।

নিম্নলিখিত বাশ লুপটি সমস্ত নেটওয়ার্ক ইন্টারফেসের জন্য ম্যাক ঠিকানা প্রদর্শন করবে:

for i in $(ip -o link show | awk -F': ' '{print $2}'); \
do mac=$(ethtool -P $i) \
&& printf '%-10s %-10s\n' "$i" "$mac"; \
done

lo         Permanent address: 00:00:00:00:00:00
enp5s0f0   Permanent address: 44:1e:a1:73:39:c8
enp4s0f0   Permanent address: 00:9c:02:b0:ef:20
enp5s0f1   Permanent address: 44:1e:a1:73:39:c9
enp4s0f1   Permanent address: 00:9c:02:b0:ef:24
virbr1     Permanent address: 00:00:00:00:00:00
virbr1-nic Permanent address: 00:00:00:00:00:00
virbr0     Permanent address: 00:00:00:00:00:00
virbr0-nic Permanent address: 00:00:00:00:00:00
vnet0      Permanent address: 00:00:00:00:00:00
vnet1      Permanent address: 00:00:00:00:00:00

2

আমি ভিতরে তাকিয়ে শুরু হবে /etc/network/config; নেটওয়ার্ক ডিভাইসগুলি সংজ্ঞায়িত করতে এবং কনফিগার করতে বেশিরভাগ ডিস্ট্রোসের একই ফাইল থাকে। ডিবিয়ান / উবুন্টুতে, এটি / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেস। আপনি যদি এর বিষয়বস্তু পোস্ট করতে থাকেন তবে আমরা উপন্যাস, বন্ড এবং ব্রিজের প্রবেশগুলি সনাক্ত করতে পারি; বাকিটি আপনার শারীরিক ডিভাইস হবে।

দিকে তাকিয়ে ifconfigআউটপুট, আপনাকে বলতে ডিভাইসের আছে বিঘ্নিত (IRQs) দ্বারা (যেমন উল্লেখ করেছে) করতে পারেন; অনেকের মেমোরিও বরাদ্দ থাকে, যা ভার্চুয়াল ইন্টারফেস দেয় না।

আপনি কখনই একা ম্যাক ঠিকানা দিয়ে বিচার করতে পারবেন না, যেহেতু বন্ডগুলি ( লিঙ্ক সমষ্টি ) পৃথক ডিভাইসগুলির ম্যাককে ওভাররাইড করবে এবং সেতুগুলি একই ব্যবহার করবে। সুতরাং আপনার যদি দুটি ডিভাইস বন্ধিত এবং ব্রিজযুক্ত থাকে - এইচএ ভার্চুয়াল হোস্ট এবং রাউটারগুলির জন্য একটি সাধারণ কনফিগারেশন - একই ম্যাকের সাথে চারটি ডিভাইস থাকবে:

eth0  - physical device 1
eth1  - physical device 2
bond0 - the virtual device that uses either or both of the above
br0   - the bridge that uses bond0 and allows sharing/forwarding across bond0

স্পষ্টতই ওপেনর্টে ব্যবহৃত এলিয়াসগুলি উপরের জিনিসগুলি নয়, তবে ধারণাকে ধারণ করে; আমি এগুলি ব্যবহার করেছি কারণ তারা মানক অনুশীলন are


এটি অন্যান্য উপায়ে তৈরি ইন্টারফেসগুলির জন্য অ্যাকাউন্ট করে না, 'স্ট্যান্ডার্ড' /etcপথে কাজ করে worked উদাহরণস্বরূপ, নেটওয়ার্কম্যানেজার দ্বারা নির্মিত ইন্টারফেসগুলি এখানে উল্লেখ করা হয়নি।
gertvdijk

@gertvdijk এটি সত্য, যদিও ওপেনআর্ট নেটওয়ার্কম্যানেজারকে 4MB- এ প্যাক করে না, সুতরাং সমস্ত ইন্টারফেস কনফিগারেশনে থাকা উচিত।
ব্রায়ান এজ

-2

আমি মনে করি যে /sys/class/net/<interface>/typeডিভাইসটি কোনও শারীরিক কিনা তা কেবলমাত্র 1 (এআরপিএইচআরডি_ইথার) এর মান কিনা তা যাচাই করা যথেষ্ট।

http://lxr.linux.no/linux+v3.0/include/linux/if_arp.h#L30

যেমন। বেসনাম $ (dirname grep -l ^1$ /sys/class/net/*/type)


আমি অনেক ইন্টারফেসের জন্য 1 টি দেখছি (নৈতিকতা, ওয়্যারলেস, ব্রিজ, এবং একটি ব্রিজ থেকে ঝুলন্ত
ভ্যালান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.