अगर आईपी मल्टीकास्ट सक्षम है तो मुझे कैसे पता चलेगा


19

मेरे पास स्क्रिप्ट हैं जो आईपी मल्टीकास्ट परीक्षण चलाते हैं; हालाँकि, मेरी स्क्रिप्ट एक विशेष लिनक्स मशीन पर विफल हो रही हैं।

मुझे पता है कि मैं CONFIG_IP_MULTICASTकर्नेल कॉन्फ़िगरेशन फ़ाइल में यह निर्धारित करने के लिए देख सकता हूं कि क्या कर्नेल को इसके साथ संकलित किया गया था। हालांकि, मेरी स्क्रिप्ट में लापता आवश्यकताओं को फ्लैग करना आसान होगा यदि मैं देख सकता हूं /procया sysctlजवाब पा सकता हूं ।

क्या आईपी मल्टीकास्ट को देखने के बिना कर्नेल में संकलित किया गया था, यह पता लगाने का एक तरीका है CONFIG_IP_MULTICAST?

जवाबों:


18

ऐसा लगता है कि अधिकांश कर्नेल (पोस्ट v1) डिफ़ॉल्ट रूप से मल्टीकास्ट का समर्थन करते हैं या संकलन करते समय CONFIG_IP_MULTICAST सक्षम होते हैं। यह जाँचने के लिए कि क्या संकलित और चालू कर्नेल किसी मल्टीकास्ट समूह की सदस्यता लेता है, मैं उपयोग करूँगा netstat -g

ऐसा लगता है कि अधिकांश कर्नेल (पोस्ट v1) डिफ़ॉल्ट रूप से मल्टीकास्ट का समर्थन करते हैं।

[root@centos module]# grep CONFIG_IP_MULTICAST /usr/src/kernels/2.6.18-274.7.1.el5-i686/.config 
CONFIG_IP_MULTICAST=y
[root@centos module]# netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      224.0.0.251
eth0            1      all-systems.mcast.net

मुझे लगता है कि मेरे मेजबान पर eth0 इंटरफ़ेस सोचता है कि इसका सब्सक्राइब 224.0.0.251 बेसिक मॉक ग्रुप है। वैकल्पिक रूप से, अगर मैं समूह या नेटवर्क को पिंग करता हूं और फिर सभी ज्ञात मल्टीकास्ट सक्षम होस्ट नेटवर्क मेरे पास वापस आ जाते हैं, तो मैं कहूंगा कि मल्टीकास्ट मेजबान पर काम कर रहा है। क्या आप कोशिश कर सकते हैं netstat -gया cat /proc/net/igmpदेख सकते हैं कि क्या यह आपके मेजबान पर कोई समूह लौटाता है?


1
लेकिन आप कैसे निर्धारित करते हैं, यदि राउटर वह बॉक्स मल्टीकास्ट का समर्थन करने के लिए जुड़ा हुआ है?
निल्स

1
मल्टीकास्टिंग - प्रेषक अपने यूनिकस्ट पते से मल्टीकास्ट ग्रुप पते पर एक एकल डेटाग्राम भेजता है और मध्यस्थ राउटर प्रतियां बनाने और उन्हें उन सभी रिसीवर्स को भेजने का ध्यान रखते हैं जो संबंधित मल्टीकास्ट समूह में शामिल हो गए हैं।
निखिल मुल्ले

3
यदि हाँ, तो राउटर को मल्टीकास्टिंग का समर्थन करना होगा। हालाँकि, प्रेषकों / रिसीवर्स के लिए यह IGMP पर और राउटर्स के लिए काम करता है, इसके प्रोटोकॉल इंडिपेंडेंट मल्टीकास्ट (PIM)। राउटर जो पीआईएम का समर्थन करता है, आमतौर पर सक्षम और मल्टीकास्ट समूह - 224.0.0.0/4। दूसरे छोर पर समूह में एक और पीसी सुनने की कोशिश करें और मल्टीकास्ट समूह को डेटा भेजें और जाँच करें कि क्या रिसीवर दूसरे डेटा प्राप्त करता है। ठीक है, राउटर नेटवर्क मल्टीकास्टिंग का समर्थन करता है। ऑनलाइन उपकरण: imj.ucsb.edu/mit_detective (विंडोज़)
निखिल मुल्ले

20

अपने बॉक्स बॉक्स पर: ip maddr show देता है:

@4Gtest ~]$ ip maddr show
1:      lo
        inet  224.0.0.1
        inet6 ff02::1
2:      p3p1
        link  01:00:5e:00:00:01
        link  33:33:00:00:00:01
        link  33:33:ff:bd:7e:0f
        link  01:00:5e:00:00:fb
        link  01:00:5e:7f:ff:05
        inet  224.127.255.5
        inet  224.0.0.251
        inet  224.0.0.1
        inet6 ff02::1:ffbd:7e0f
        inet6 ff02::1

1
इंटरफ़ेस में एक म्यूटिकस्ट समूह कैसे जोड़ें?
एआर

8
# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F1:FF:EA  
inet addr:78.46.74.27  Bcast:78.46.74.31  Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fef1:ffea/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
RX packets:5339836 errors:0 dropped:0 overruns:0 frame:0
TX packets:5486444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:820300389 (782.2 MiB)  TX bytes:1929979381 (1.7 GiB)
Base address:0x1400 Memory:e8820000-e8840000

मल्टीकास्ट को अक्षम करें:

ifconfig eth0 -multicast

परिणाम:

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:F1:FF:EA  
inet addr:78.46.74.27  Bcast:78.46.74.31  Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fef1:ffea/64 Scope:Link
UP BROADCAST MTU:1500  Metric:1
RX packets:5339836 errors:0 dropped:0 overruns:0 frame:0
TX packets:5486444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:820300389 (782.2 MiB)  TX bytes:1929979381 (1.7 GiB)
Base address:0x1400 Memory:e8820000-e8840000

इंटरफ़ेस में कोई मल्टीकास्ट मौजूद नहीं है

मल्टीकास्ट सक्षम करें:

ifconfig eth0 multicast

8
यह उल्लेख किया जाना चाहिए कि ifconfigअब लिनक्स में पदावनत किया गया है ... हमें iproute2उपयोगिताओं का उपयोग करना चाहिए ।
माइक पेनिंगटन

7
2 साल हो गए हैं और हम अभी भी इस्तेमाल कर रहे हैंifconfig
आस्कर

1
@oscar लेकिन इसका मतलब यह नहीं है कि ऐसा करना अच्छा है ipऔर iproute2 से अन्य उपयोगिताओं लिनक्स कर्नेल नेटवर्किंग कोड (इसके विपरीत ifconfig) में हाल के परिवर्तनों को प्रतिबिंबित कर रहे हैं ।
पिविक

6

ipयदि कोई इंटरफ़ेस मल्टीकास्ट सक्षम है, तो कमांड का उपयोग करके यह देख सकते हैं:

ip link show eth0 | grep MULTICAST

मल्टीकास्ट को सक्षम या अक्षम करने के लिए आप इसका उपयोग कर सकते हैं:

sudo ip link set dev eth0 multicast [on|off] 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.