|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Gleb Smirnoff 2:5020/400 24 Apr 2004 14:35:43 To : Valentin Nechayev Subject : Re: вопрос по multicast -------------------------------------------------------------------------------- Valentin Nechayev <netch@segfault.kiev.ua> wrote: VS>>> Тогда объясни результат такого эксперимента. С одной машины пуляем VS>>> пакет на 239.0.0.13, на другой ловим: VS>>> "tcpdump dst host 239.0.0.13" его ловит, а VS>>> "tcpdump -p dst host 239.0.0.13" нифига. GS>> Потому что карточка не настроена на прием этого мультикаста. Hужно либо GS>> создать на ней сокет под этот адрес и тогда она будет его получать, VN> А подробнее? Что значит "сокет под этот адрес" для _драйвера_? For each network interface (e.g., physical or a virtual tunnel) that would be used for multicast forwarding, a corresponding multicast inter- face must be added to the kernel: /* IPv4 */ struct vifctl vc; memset(&vc, 0, sizeof(vc)); /* Assign all vifctl fields as appropriate */ vc.vifc_vifi = vif_index; vc.vifc_flags = vif_flags; vc.vifc_threshold = min_ttl_threshold; vc.vifc_rate_limit = max_rate_limit; memcpy(&vc.vifc_lcl_addr, &vif_local_address, sizeof(vc.vifc_lcl_addr)); if (vc.vifc_flags & VIFF_TUNNEL) memcpy(&vc.vifc_rmt_addr, &vif_remote_address, sizeof(vc.vifc_rmt_addr)); setsockopt(mrouter_s4, IPPROTO_IP, MRT_ADD_VIF, (void *)&vc, sizeof(vc)); Hасколько я понимаю, после setsockopt() ядро установит соответствующий фильтр в драйвер заданного интерфейса. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE --- ifmail v.2.15dev5.3 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6577ea7a1323.html, оценка из 5, голосов 10
|