Где необходимо разместить конфигурацию для отключения многокастового подглядывания на мостах?

Вопрос или проблема

Этот вопрос не имеет ничего общего с multicast DNS, multicast UPNP или чем-либо, кроме мульткастового слежения.

Я точно знаю, что если я не отключу мульткастовое слежение на своей системе 15.10, где основной сетевой интерфейс — это мост br0, любая попытка достичь IPv6-адреса будет саботирована мульткастовым слежением, предназначенным для предотвращения затопления сети мульткастовыми пакетами, которые большинству систем не интересны. Это так же просто, как:

  1. Загрузите компьютер на Ubuntu 15.10 с br0 в качестве основного интерфейса (где “основной интерфейс” — это интерфейс с маршрутом по умолчанию).
  2. Попробуйте выполнить ping6 до IPv6-адреса и посмотрите, как это не удается.
  3. Запустите sudo sh -c "echo -n 0 > /sys/class/net/br0/bridge/multicast_snooping"
  4. Попробуйте снова выполнить ping6, и он волшебным образом заработает.

Вы можете прочитать об этом в ответе здесь тоже. Есть много других источников.

Следующие страницы справочной документации молчат о мульткастовом слежении: interfaces(5), brctl(8), bridge-utils-interfaces(5)

Страница man для bridge(8) говорит, что bridge link set fastleave off является значением по умолчанию, а документация CISCO для того же названия (которая намного лучше страницы man bridge(8), на мой взгляд) утверждает, что установка fastleave в положение включено усугубит мою проблему с IPv6. Я еще не пробовал, чтобы увидеть, правда ли это или нет.

Я знаю, что есть /etc/network/if-pre-up.d/bridge

Но в нем сказано:

# Обычно вам не нужно вообще трогать этот файл, полную конфигурацию
# моста можно сделать стандартным способом в /etc/network/interfaces.

Так это правда? Есть ли способ внести это в /etc/network/interfaces?

Ответ — это неправда. Вы не можете внести важное управление конфигурацией в /etc/network/interfaces, несмотря на комментарии в /etc/network/if-pre-up.d/bridge.

Просто сделайте что-нибудь на основе конкретной ситуации.

Ответ или решение

Настройка отключения многомасштабного слежения на мостах в Ubuntu 15.10

Введение

Многомасштабное слежение (multicast snooping) — это механизм, используемый в сетях для предотвращения ненужного размножения многомасштабного трафика. В некоторых случаях, таких как работа с IPv6, данная функция может препятствовать нормальной работе сетевых приложений. В этом ответе мы подробно рассмотрим, как отключить многомасштабное слежение на мостах (br) в Ubuntu 15.10.

Проблема

Если на вашей системе установлен интерфейс моста br0, попытки отправки пакетов по IPv6 могут заканчиваться неудачами из-за включенного многомасштабного слежения. Пользователи могут обнаружить, что команды, такие как ping6, не работают до тех пор, пока вы не выполните специальную настройку.

Шаги для отключения многомасштабного слежения

  1. Перезагрузите компьютер и войдите в систему под управлением Ubuntu 15.10, убедившись, что br0 является основным интерфейсом (интерфейсом с маршрутом по умолчанию).
  2. Попробуйте отправить ping на IPv6-адрес, чтобы подтвердить, что это не сработает:
    ping6 <IPv6-адрес>
  3. Для отключения многомасштабного слежения выполните следующую команду:
    sudo sh -c "echo -n 0 > /sys/class/net/br0/bridge/multicast_snooping"
  4. Попробуйте снова выполнить ping на тот же IPv6-адрес и проверьте, что теперь запросы проходят успешно.

Настройка при помощи конфигурации сети

К сожалению, вне зависимости от комментариев в файле /etc/network/if-pre-up.d/bridge о том, что вся конфигурация моста может быть выполнена в файле /etc/network/interfaces, установка параметра для отключения многомасштабного слежения в этом файле не предусмотрена. Файл не поддерживает необходимые команды для изменения состояния многомасштабного слежения.

Рекомендации для постоянного отключения

Чтобы сделать изменения постоянными, можно воспользоваться следующим способом:

  1. Создайте скрипт, который будет выполняться при загрузке системы. Для этого создайте файл, например, /etc/network/if-up.d/multicast_snooping, и откройте его в текстовом редакторе.

  2. Добавьте в него следующий код:

    #!/bin/sh
    if [ "$IFACE" = "br0" ]; then
       echo -n 0 > /sys/class/net/$IFACE/bridge/multicast_snooping
    fi
  3. Сделайте скрипт исполняемым командой:

    sudo chmod +x /etc/network/if-up.d/multicast_snooping

Теперь, каждый раз при запуске интерфейса br0, ваш скрипт будет отключать многомасштабное слежение.

Заключение

Отключение многомасштабного слежения на интерфейсах моста br0 в Ubuntu 15.10 является необходимым шагом для обеспечения корректной работы сетевых приложений, использующих IPv6. Несмотря на ограничения стандартной конфигурации в /etc/network/interfaces, использование скриптов загрузки предоставляет надежное решение для автоматизации этого процесса.

Оцените материал
Добавить комментарий

Капча загружается...