Làm cách nào để biết IP Multicast được bật


19

Tôi có các kịch bản chạy thử nghiệm đa hướng IP; tuy nhiên, tập lệnh của tôi bị lỗi trên một máy linux cụ thể.

Tôi biết rằng tôi có thể xem CONFIG_IP_MULTICASTtrong tệp cấu hình kernel để xác định xem kernel có được biên dịch với cái này không. Tuy nhiên, việc gắn cờ các yêu cầu bị thiếu trong kịch bản của tôi sẽ dễ dàng hơn nếu tôi có thể xem /prochoặc sysctlnhận được câu trả lời.

Có cách nào để tìm nếu IP Multicast được biên dịch vào kernel mà không cần nhìn vào CONFIG_IP_MULTICASTkhông?

Câu trả lời:


18

Có vẻ như hầu hết các hạt nhân (bài v1) đều hỗ trợ phát đa hướng theo mặc định hoặc đã bật CONFIG_IP_MULTICAST trong khi biên dịch. Để kiểm tra xem kernel đã biên dịch và đang chạy có đăng ký vào bất kỳ nhóm phát đa hướng nào không, tôi sẽ sử dụng netstat -g.

Có vẻ như hầu hết các hạt nhân (bài v1) đều hỗ trợ phát đa hướng theo mặc định.

[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

Tôi thấy giao diện eth0 trên máy chủ của tôi nghĩ rằng nhóm mcast cơ bản đã đăng ký 224.0.0.251. Ngoài ra, nếu tôi ping nhóm hoặc mạng và sau đó tất cả các mạng máy chủ kích hoạt phát đa hướng đã biết được trả về cho tôi, tôi sẽ nói rằng multicast đang hoạt động trên máy chủ. Bạn có thể thử netstat -ghoặc cat /proc/net/igmpxem nếu nó trả về bất kỳ nhóm nào trên máy chủ của bạn không?


1
Nhưng làm thế nào để bạn xác định, nếu bộ định tuyến mà hộp được kết nối để hỗ trợ phát đa hướng?
Nils

1
Đa phát - người gửi gửi một datagram duy nhất từ ​​địa chỉ unicast của nó đến địa chỉ nhóm phát đa hướng và các bộ định tuyến trung gian đảm nhiệm việc sao chép và gửi chúng đến tất cả các máy thu đã tham gia nhóm phát đa hướng tương ứng.
Nikhil Mulley

3
Nếu có, bộ định tuyến cần hỗ trợ phát đa hướng. Tuy nhiên, đối với người gửi / người nhận, nó hoạt động trên IGMP và cho các bộ định tuyến, Giao thức độc lập giao thức (PIM) của nó. Bộ định tuyến hỗ trợ PIM, thường được bật và nhóm phát đa hướng - 224.0.0.0/4. Hãy thử đưa lên khác nghe máy trong nhóm xét dữ liệu cuối & gửi khác vào nhóm multicast & kiểm tra nếu nhận tại otherend nhận data.Ify, mạng định tuyến không hỗ trợ công cụ multicasting.Few trực tuyến: imj.ucsb.edu/mcast_detective (windows)
Nikhil Mulley

20

Trên hộp linux của bạn: ip maddr show cho:

@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
Làm thế nào để thêm một nhóm muticast vào một giao diện?
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

Vô hiệu hóa Multicast:

ifconfig eth0 -multicast

kết quả:

# 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

Không có Multicast trong giao diện

Kích hoạt tính năng Multicast:

ifconfig eth0 multicast

8
Cần phải đề cập rằng ifconfighiện không dùng nữa trong linux ... chúng ta nên sử dụng các iproute2tiện ích.
Mike Pennington

7
Đã 2 năm và chúng tôi vẫn đang sử dụngifconfig
Askar

1
@oscar nhưng điều đó không có nghĩa là thật tốt khi làm như vậy ipvà các tiện ích khác từ iproute2 đang phản ánh những thay đổi gần đây trong mã mạng nhân Linux (không giống như ifconfig).
pevik

6

Sử dụng iplệnh người ta có thể kiểm tra xem một giao diện có khả năng phát đa hướng hay không bằng cách:

ip link show eth0 | grep MULTICAST

Để bật hoặc tắt phát đa hướng, bạn có thể sử dụng:

sudo ip link set dev eth0 multicast [on|off] 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.