Điểm:0

Đã gửi IGMP v3 JOIN nhưng không có lưu lượng truy cập từ switch

lá cờ gr

Tôi đang cố gắng tham gia luồng phát đa hướng IGMP từ máy Centos 8 nhưng sau khi gửi THAM GIA, không có lưu lượng truy cập nào đến từ bộ chuyển mạch.

Kết nối đơn giản:

MUX <-----------> cisco3850 <--------> Centos8
192.168.117.13 192.168.117.21

Công tắc ngược dòng (chất xúc tác cisco 3850) được cung cấp MPEG-TS tới 239.1.1.1:4000 từ MUX.

Tôi đã thử cả hai socat và chương trình của riêng tôi để mở ổ cắm, tham gia luồng và giữ ổ cắm mở. Cả hai đều gửi cùng một thông báo tham gia IGMP như được xác nhận bởi Wireshark:

Giao thức quản lý nhóm Internet
    [Phiên bản IGMP: 3]
    Loại: Báo cáo thành viên (0x22)
    Đặt trước: 00
    Tổng kiểm tra: 0xe9fb [chính xác]
    [Trạng thái tổng kiểm tra: Tốt]
    Đặt trước: 0000
    Số bản ghi nhóm: 1
    Bản ghi nhóm: 239.1.1.1 Thay đổi sang chế độ loại trừ
        Loại bản ghi: Thay đổi thành Chế độ loại trừ (4)
        Len dữ liệu phụ trợ: 0
        Số Src: 0
        Địa chỉ phát đa hướng: 239.1.1.1

sử dụng thêm tuyến đường ip Tôi đã tạo các tuyến cho các nhóm phát đa hướng tới giao diện:

Liên kết phạm vi dev eth1 224.0.0.0/4
Liên kết phạm vi dev eth1 225.0.0.0/8
Liên kết phạm vi dev eth1 239.0.0.0/8

con mèo /proc/net/igmp cho thấy nhóm đã được tham gia:

con mèo /proc/net/igmp
Thiết bị Idx: Trình báo cáo bộ hẹn giờ của người dùng nhóm truy vấn
3 eth1 : 2 V3
                                030101E1 1 0:00000000 0
                                010000E0 1 0:00000000 0

Tôi nghi ngờ đây là sự cố với công tắc chứ không phải sự cố Linux, nhưng khách hàng (người sở hữu công tắc) nói rằng mọi thứ đều ổn.

Tôi có thể làm gì khác về phía Linux để điều tra/khắc phục sự cố này?

Nếu đó là một vấn đề trên công tắc thì sao? Những gì cần phải được cấu hình ở đó? (cần giải thích cho khách hàng)


Để tham khảo, chương trình của tôi tham gia và giữ ổ cắm mở trông giống như:

// Kiểm tra lỗi được bỏ qua cho ngắn gọn
fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);
setockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes);

bộ nhớ (&saddr, 0, sizeof(saddr));
saddr.sin_family = PF_INET;
saddr.sin_addr.s_addr = mcastAddr;
saddr.sin_port = htons(cổng);

bind(fd, (struct sockaddr *)&saddr, sizeof(saddr);

cấu trúc ip_mreq mcastReq;
mcastReq.imr_multiaddr.s_addr = mcastAddr;
&mcastReq.imr_interface.s_addr = interfaceAddr;

setockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mcastReq, sizeof(mcastReq);
Điểm:0
lá cờ gr

Cuối cùng, bộ chuyển đổi của khách hàng không thể/sẽ không kích hoạt IGMPv3, vì vậy chúng tôi đã đặt máy của mình sử dụng IGMP v2 bằng cách tạo một tệp bên dưới /etc/sysctl.d.

THAM GIA sau đó đã hoạt động, nhưng Linux không phản hồi các truy vấn tư cách thành viên phát đa hướng nên công tắc đã bỏ luồng sau 1-2 phút (mặc dù chúng tôi đã net.ipv4.conf.default.rp_filter đặt thành không.

Hóa ra để tắt hoàn toàn xác thực đường dẫn trả lại, chúng tôi cần đặt tất cả rp_filter cài đặt về 0 (bao gồm liệt kê rõ ràng giao diện)

# Đặt phiên bản IGMP cho eth1
# Đặt thành '2' hoặc '3' tùy thuộc vào những gì được bật trong công tắc
net.ipv4.conf.eth1.force_igmp_version = 2

# Vô hiệu hóa xác minh tuyến đường nguồn
# Ngoài 90-torque.conf, cũng đặt rõ ràng eth1 thành bỏ qua
# xác thực đường dẫn trả về
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.