ฉันจะทราบได้อย่างไรว่าเปิดใช้งาน IP Multicast


19

ฉันมีสคริปต์ที่รันการทดสอบ IP multicast แต่สคริปต์ของฉันล้มเหลวในเครื่องลินุกซ์โดยเฉพาะ

ฉันรู้ว่าฉันสามารถดูCONFIG_IP_MULTICASTในไฟล์การตั้งค่าเคอร์เนลเพื่อตรวจสอบว่าเคอร์เนลถูกรวบรวมด้วยนี้ อย่างไรก็ตามมันจะง่ายกว่าในการตั้งค่าสถานะความต้องการที่ขาดหายไปในสคริปต์ของฉันถ้าฉันสามารถดู/procหรือsysctlได้รับคำตอบ

มีวิธีในการค้นหาว่า IP Multicast ถูกคอมไพล์ลงในเคอร์เนลโดยไม่ต้องดู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 บนโฮสต์ของฉันคิดว่ากลุ่ม mcast ขั้นพื้นฐานที่สมัครเป็นสมาชิก 224.0.0.251 อีกวิธีหนึ่งถ้าฉัน ping กลุ่มหรือเครือข่ายและจากนั้นเครือข่ายโฮสต์ที่เปิดใช้งานมัลติคาสต์ที่รู้จักทั้งหมดจะถูกส่งกลับมาให้ฉันฉันจะบอกว่ามัลติคาสต์ทำงานบนโฮสต์ คุณลองnetstat -gหรือcat /proc/net/igmpดูว่ามันจะส่งคืนกลุ่มใด ๆ ในโฮสต์ของคุณหรือไม่?


1
แต่คุณจะทราบได้อย่างไรว่าเราเตอร์นั้นเชื่อมต่อกล่องเพื่อรองรับมัลติคาสต์หรือไม่?
นิลส์

1
Multicasting - ผู้ส่งส่งดาตาแกรมเดียวจากที่อยู่ยูนิคาสต์ไปยังที่อยู่กลุ่มมัลติคาสต์และเราเตอร์ตัวกลางดูแลการทำสำเนาและส่งไปยังผู้รับทั้งหมดที่เข้าร่วมกลุ่มมัลติคาสต์ที่สอดคล้องกัน
Nikhil Mulley

3
ถ้าใช่เราเตอร์ต้องรองรับมัลติคาสต์นั้น อย่างไรก็ตามสำหรับผู้ส่ง / ผู้รับมันทำงานบน IGMP และสำหรับเราเตอร์ซึ่งเป็นโปรโตคอล Independent Multicast (PIM) เราเตอร์ที่รองรับ PIM ซึ่งมักเปิดใช้งานและกลุ่มแบบหลายผู้รับ - 224.0.0.0/4 ลองตั้งค่าการฟังพีซีอื่นในกลุ่มที่ส่วนท้าย & ส่งข้อมูลไปยังกลุ่มหลายผู้รับ & ตรวจสอบว่าผู้รับที่ปลายรับข้อมูลถ้าเครือข่ายเราเตอร์ไม่สนับสนุน multicasting เครื่องมือออนไลน์ไม่กี่แห่ง : imj.ucsb.edu/mcast_detective (windows)
Nikhil Mulley

20

บนกล่อง linux ของคุณ: 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
วิธีเพิ่มกลุ่ม muticast ในอินเตอร์เฟสได้อย่างไร
AR

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

ไม่มีมัลติคาสต์อยู่ในอินเตอร์เฟส

เปิดใช้งาน Multicast:

ifconfig eth0 multicast

8
มันควรจะกล่าวว่าifconfigขณะนี้การคัดค้านในลินุกซ์ ... เราควรจะใช้iproute2สาธารณูปโภค
Mike Pennington

7
เป็นเวลา 2 ปีแล้วและเรายังคงใช้งานอยู่ifconfig
Askar

1
@ Oscar แต่นั่นไม่ได้หมายความว่าเป็นการดีที่จะทำเช่นนั้นipและยูทิลิตี้อื่น ๆ จากiproute2กำลังแสดงการเปลี่ยนแปลงล่าสุดในโค้ดเครือข่ายเคอร์เนล Linux (ไม่เหมือนifconfig)
pevik

6

การใช้ipคำสั่งหนึ่งสามารถตรวจสอบว่าอินเตอร์เฟสมีความสามารถแบบหลายผู้รับโดย:

ip link show eth0 | grep MULTICAST

หากต้องการเปิดใช้งานหรือปิดใช้งานมัลติคาสต์คุณสามารถใช้:

sudo ip link set dev eth0 multicast [on|off] 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.