BSDPORTAL.RU

На этом сайте обсуждаются вопросы использования ОС FreeBSD
 Портал  •  Статьи  •  Форум  •  Wiki  •  Поиск  •  FAQ  •  Обои  •   Официальная документация  •  Новые темы 

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: FreeBSD не отправляет IGMP Leave
СообщениеДобавлено: Ср 02 сен, 2020 4:02 pm 
Не в сети

Зарегистрирован: Чт 03 янв, 2008 3:16 pm
Сообщения: 201
Откуда: Москва
Привет тебе, великий All!

Я столкнулся со странной проблемой при работе с мультикастом во FreeBSD 12.x. Проблема состоит в том, что система не отправляет запросы IGMP Leave, т.е. не отписывается от мультикаста по окончании его использования. В результате единожды запрошенный мультикаст льётся в сетевой интерфейс вечно, даже если он уже сто лет как не нужен. Это приводит к быстрому забиванию сетевой полосы и необходимости перезагрузки сервера. Либо я чего-то фатально не понял :(

Итак, следственный эксперимент выглядит так. Имеем под рукой две машинки: на одной 12.1, на другой - 11.3. На обеих установлен ffprobe 4.2.x. Проводим эксперимент на мультикасте 234.5.2.157:1234. Смысл эксперимента состоит в том, что мы запрашиваем мультикаст через ffprobe, при этом с помощью tcpdump пишем дамп всех IGMP-запросов, а сам ffprobe запускаем с помощью truss, чтобы отследить его вызовы.

Что в итоге вышло?

1) Смотрим системные вызовы setsockopt в логах truss.

11.3:
Код:
setsockopt(3,SOL_SOCKET,SO_NOSIGPIPE,0x7fffffffd92c,4) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_REUSEADDR,0x80ecba028,4) = 0 (0x0)
setsockopt(3,IPPROTO_IP,IP_ADD_MEMBERSHIP,0x7fffffffe360,8) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_RCVBUF,0x7fffffffe360,4) = 0 (0x0)
setsockopt(3,IPPROTO_IP,IP_DROP_MEMBERSHIP,0x7fffffffe440,8) = 0 (0x0)


12.1:
Код:
setsockopt(3,SOL_SOCKET,SO_NOSIGPIPE,0x7fffffffd3ac,4) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_REUSEADDR,0x8055869e8,4) = 0 (0x0)
setsockopt(3,IPPROTO_IP,IP_ADD_MEMBERSHIP,0x7fffffffdde0,8) = 0 (0x0)
setsockopt(3,SOL_SOCKET,SO_RCVBUF,0x7fffffffdde0,4) = 0 (0x0)
setsockopt(3,IPPROTO_IP,IP_DROP_MEMBERSHIP,0x7fffffffe290,8) = 0 (0x0)


Таким образом, ffprobe в обоих случаях обращается к ядру с предложением избавиться от ставшего ненужным мультикаста. На практике это должно означать отправку запроса IGMP Leave.

2) Теперь смотрим IGMP-запросы по этому мультикасту в дампах tcpdump.

11.3:
Код:
14:42:39.191842 IP 192.168.171.66 > 234.5.2.157: igmp v2 report 234.5.2.157
14:42:43.428794 IP 192.168.171.66 > all-routers.mcast.net: igmp leave 234.5.2.157


12.1:
Код:
14:42:25.372999 IP 192.168.71.100 > 234.5.2.157: igmp v2 report 234.5.2.157
14:42:47.548742 IP 192.168.71.100 > 234.5.2.157: igmp v2 report 234.5.2.157


Как бы вот...
Что я делаю не так? Где что можно проверить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD не отправляет IGMP Leave
СообщениеДобавлено: Пн 07 сен, 2020 1:57 pm 
Не в сети

Зарегистрирован: Чт 03 янв, 2008 3:16 pm
Сообщения: 201
Откуда: Москва
Если вдруг кому интересно, то грабли - в баге 248512. С нетерпением жду, когда исправления внесут в релиз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD не отправляет IGMP Leave
СообщениеДобавлено: Пн 07 сен, 2020 2:35 pm 
Не в сети

Зарегистрирован: Пт 03 сен, 2004 1:26 pm
Сообщения: 2470
Abyrvalg писал(а):
Если вдруг кому интересно, то грабли - в баге 248512. С нетерпением жду, когда исправления внесут в релиз.


вроде как в stable исправили...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD не отправляет IGMP Leave
СообщениеДобавлено: Пн 07 сен, 2020 2:47 pm 
Не в сети

Зарегистрирован: Чт 03 янв, 2008 3:16 pm
Сообщения: 201
Откуда: Москва
Вроде в октябре выйдет 12.2. Надеюсь, там всё учтут.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD не отправляет IGMP Leave
СообщениеДобавлено: Пн 07 сен, 2020 4:26 pm 
Не в сети

Зарегистрирован: Пт 03 сен, 2004 1:26 pm
Сообщения: 2470
Abyrvalg писал(а):
Вроде в октябре выйдет 12.2. Надеюсь, там всё учтут.


если в stable поправили, в 12.2 обязано быть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeBSD не отправляет IGMP Leave
СообщениеДобавлено: Вт 08 сен, 2020 11:07 am 
Не в сети

Зарегистрирован: Чт 14 май, 2009 6:56 pm
Сообщения: 819
После того как я изрядно потряс security@, фикс моего бага внесли даже в секьюрити апдейт для 12.1. Так что, если вам позарез надо, то можете развернуть бурную деятельность.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Bing [Bot], Google [Bot], Google Feedfetcher, TruculentFreddi


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
Яндекс.Метрика