2011-03-30 12 views
7

मेरी एनआईसी (DVB) डिफ़ॉल्ट नहीं मैं निम्नलिखित है पर एक बहुस्त्र्पीय प्राप्त करने के लिए: (SOCK_DGRAM AF_INET,)कई इंटरफेस (लिनक्स) के साथ एक सर्वर पर मल्टीकास्ट प्राप्त

  • सॉकेट खोलने
  • में शामिल होने के dvb इंटरफेस पर IP_ADD_MEMBERSHIP साथ मल्टीकास्ट एड्रेस
  • मल्टीकास्ट एड्रेस (ध्यान दें कि एक सामान्य त्रुटि बाध्य करने के लिए "0.0.0.0" है और फिर उस सॉकेट पर प्राप्त भी बहुस्त्र्पीय आप में कोई दिलचस्पी नहीं कर रहे हैं) और बंदरगाह के लिए बाध्य

इस बिंदु पर आवश्यक मल्टीकास्ट पैकेट प्राप्त करने का एकमात्र तरीका रूटिंग तालिका में नेटवर्क तक पहुंचने के लिए एक नियम है जहां प्रेषक (अन्य नेटवर्क) डीवीबी को टफ करता है, जैसे कि डीवीबी को मल्टीकास्ट प्रेषक को जवाब देने की आवश्यकता होती है; स्रोत प्रेषक मल्टीकास्ट मोड का एक प्रकार कहें। किसी को पता है कि क्या हो रहा है? समस्या मेरे लिए परेशान है क्योंकि सिद्धांत रूप में मैं प्रेषक के आईपी को नहीं जानता।

उत्तर

9

आपको rp_filter रिवर्स-पथ फ़िल्टरिंग द्वारा चिपकाया जा रहा प्रतीत होता है। यह पैकेट छोड़ देता है अगर वे एक इंटरफ़ेस पर पहुंचते हैं जिसमें स्रोत पते के लिए कोई मार्ग नहीं है।

आप इसे प्रति इंटरफ़ेस आधार पर sysctl /proc/sys/net/ipv4/conf/<if>/rp_filter के साथ अक्षम कर सकते हैं।

+1

यह समाधान प्रतीत होता है, मुझे इस पृष्ठ पर उपयोगी जानकारी भी मिली है http://ifup.org/2011/02/03/reverse-path-filter-rp_filter-by-example/ – thrantir

+0

यह काम करता था, हालांकि हमें करना था आरपी_फिल्टर को मल्टीकास्ट प्राप्त करने वाले इंटरफ़ेस पर नहीं बल्कि रूटिंग तालिका में डिफ़ॉल्ट रूप से उपयोग किए गए इंटरफ़ेस पर अक्षम करें। –

+0

दुर्भाग्यवश, @ थ्रांतिर का लिंक अब मान्य नहीं है। –

0

बाँध मल्टीकास्ट एड्रेस

यह निश्चित रूप से गलत है। आपको वास्तविक एडाप्टर, या 0.0.0.0 के वास्तविक आईपी पते से जुड़ना होगा।

टिप्पणी है कि एक सामान्य त्रुटि बाध्य करने के लिए "0.0.0.0"

वह एक त्रुटि नहीं है। यह सही प्रक्रिया है जब तक कि आप केवल एक आईपी पते को सुनना नहीं चाहते हैं।

और फिर उस सॉकेट पर प्राप्त भी बहुस्त्र्पीय आप

में रुचि मैं नहीं जानता कि इसका क्या मतलब नहीं हैं।

सिद्धांत रूप में मैं इस

किसी भी UDP आंकड़ारेख के प्रेषक के आईपी पते का आईपी पता नहीं है सॉकेट एपीआई के माध्यम से उपलब्ध है।

+3

यदि आप वास्तविक एडाप्टर के आईपी पते को बाध्य करते हैं तो आपको मल्टीकास्ट पते को बाध्य करने की आवश्यकता नहीं है, यदि आप 0.0.0.0 से जुड़ते हैं तो आप किसी भी मल्टीकास्ट पर अपना आईपी फ़िल्टर खोल रहे हैं, तो आपको कोई मल्टीकास्ट पैकेट नहीं मिलेगा। गंतव्य आईपी (इस मामले में मल्टीकास्ट एड्रेस) के आधार पर सही सॉफ़्टवेयर फ़िल्टरिंग करने के लिए और फिर केवल "उस" मल्टीकास्ट को प्राप्त करने के लिए आपको * मल्टीकास्ट को बांधना होगा। मैं आपको यूएनपी में मल्टीकास्ट अध्याय पढ़ने का सुझाव देता हूं। –

+0

@ गेटानो मेंडोला: मैंने 13 साल पहले इसे पढ़ा धन्यवाद। यह विंडोज पर काम नहीं करता है और यह समझ में नहीं आता w.r.t. 'बाइंड' की स्वीकृत परिभाषा। – EJP

+1

तथ्य विंडोज पर काम नहीं करता है इसका मतलब यह नहीं है कि यह गलत है। विंडोज आईपी स्टैक मानक होने के लिए प्रसिद्ध नहीं है, यह भी ध्यान दें कि मैंने अपना प्रश्न रखा है: लिनक्स।फिर फिर हमारे मिडलवेयर पर हम इसके बारे में जानते हैं और यदि WIN32 परिभाषित किया गया है तो हम इंटरफ़ेस के आईपी पते को बाध्य करते हैं, लेकिन फिर भी ऐसा करना गलत है यदि आपके पास "अच्छा" आईपी स्टैक है। –

संबंधित मुद्दे