Câu hỏi này có thể xuất phát từ một sự hiểu lầm cơ bản về IP multicast, vì vậy hãy sửa tôi nếu tôi tắt cơ sở.Khám phá các máy chủ DHCP bằng cách sử dụng multicast (224.0.0.12) trong GNU/Linux/C
Tôi đang cố gắng viết mã C để tìm địa chỉ IP của tất cả các máy chủ DHCP trên mạng. Trường hợp sử dụng là:
- Chương trình phát sóng khách hàng Khám phá DHCP.
- Đại lý tiếp sức độc quyền của tôi chọn gói, thêm một số thông tin cần thiết và chuyển tiếp UNICAST đến máy chủ DHCP tại địa chỉ IP đã biết.
Vấn đề tôi đang gặp là thông báo cho nhân viên chuyển tiếp nơi (các) máy chủ DHCP (đang)). Tôi thấy rằng địa chỉ multicast 224.0.0.12 được IANA dành riêng cho các máy chủ DHCP, vì vậy tôi đã hình dung ra các máy chủ để lắng nghe lưu lượng multicast đó. Nhưng bất cứ khi nào tôi cấu hình một tùy chọn socket linux để IP_ADD_MEMBERSHIP đến 224.0.0.12, nó sử dụng IGMP, một giao thức hoàn toàn riêng biệt mà tôi không muốn phải thực hiện.
Tôi có hiểu sai về cách hoạt động của multicast không? Không nên tôi có thể gửi một ping từ các đại lý chuyển tiếp đến 224.0.0.12 và có nó trả lại một phản ứng ping từ tất cả các máy chủ DHCP?
Thông tin bổ sung:
- các giao diện trên tất cả các hộp làm có multicast được liệt kê khi tôi làm một
ifconfig
- Tôi đã thêm các tuyến đường multicast sử dụng
ip route add 224.0.0.0/4 dev eth0
trên tất cả các hộp
Bạn có thể kiểm tra định tuyến multicast được định cấu hình không? http://www.dancres.org/bjspj/docs/docs/linux.html – ChristopheD
bạn có thể đăng mã để chúng tôi có thể tìm thấy lỗi trong ứng dụng không? – dwalter
Bạn phải sử dụng IGMP cho phát đa hướng; có vẻ như có một sự hiểu lầm ở đây. Hạt nhân thực hiện tất cả IGMP cho bạn, giống như ARP và IP mà bạn không lo lắng về nó. Vấn đề là với phát sóng, định tuyến là (khá) dễ dàng: các gói chỉ đi khắp mọi nơi. Tuy nhiên, để nhận được một phản hồi multicast, bạn phải chấp nhận rằng IGMP được sử dụng, để nói cho các bộ định tuyến trên mạng mà bạn quan tâm đến các gói multicast. Nếu bạn không nói với họ, làm thế nào họ có thể biết để chuyển tiếp tin nhắn trong nhóm cho bạn? Tuy nhiên, DHCP thường sử dụng chương trình phát sóng. –