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]


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

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