Вопрос или проблема
У меня установлена Fedora 20 с конфигурацией ядра по умолчанию, где функция моста включена как модуль (CONFIG_BRIDGE=m
), и модуль моста загружается при запуске системы. Я не понимаю, кто инициирует его загрузку, так как не нашел ничего о bridge.ko
в /etc/sysconfig/modules/*
. Однако он оказывается в памяти, и каждый раз мне приходится удалять его с помощью команды ‘rmmod’.
Я хотел бы запретить загрузку bridge.ko
при запуске, но все же хочу вручную загружать/разгружать bridge.ko
при необходимости.
Я знаю, что возможно использовать функцию черного списка в /etc/modprobe.d/blacklist.conf
, но может кто-нибудь указать, кто загружает bridge.ko
в стандартной конфигурации Fedora 20?
Если вы посмотрите на вывод команды lsmod
, то она обычно укажет, какие модули загружены в результате зависимости от какого-либо другого модуля. Например, в случае bridge
оказывается, что ему требуются stp
и llc
.
$ lsmod | grep brid
bridge 116006 1 ebtable_broute
stp 12868 1 bridge
llc 13941 2 stp,bridge
ПРИМЕЧАНИЕ: Это также с моей системы Fedora 20 (ноутбук). Вы можете использовать другой инструмент, modinfo
, чтобы узнать информацию о двух модулях:
$ modinfo stp
filename: /lib/modules/3.16.3-200.fc20.x86_64/kernel/net/802/stp.ko
license: GPL
depends: llc
intree: Y
vermagic: 3.16.3-200.fc20.x86_64 SMP mod_unload
signer: Fedora kernel signing key
sig_key: 55:46:C1:1D:28:CF:EC:0B:46:B1:C1:F1:93:0D:6B:F3:EC:63:B0:67
sig_hashalgo: sha256
$ modinfo llc
filename: /lib/modules/3.16.3-200.fc20.x86_64/kernel/net/llc/llc.ko
description: LLC IEEE 802.2 core support
author: Procom 1997, Jay Schullist 2001, Arnaldo C. Melo 2001-2003
license: GPL
depends:
intree: Y
vermagic: 3.16.3-200.fc20.x86_64 SMP mod_unload
signer: Fedora kernel signing key
sig_key: 55:46:C1:1D:28:CF:EC:0B:46:B1:C1:F1:93:0D:6B:F3:EC:63:B0:67
sig_hashalgo: sha256
Это не прояснило ситуацию, так что давайте посмотрим, что Google говорит о “linux llc”. Вот страница проекта и краткое изложение того, о чем этот модуль.
отрывок – https://code.google.com/p/linux-llc/
linux-llc — это набор программ, которые составляют базовый набор компонентов пользовательского пространства стека сетевого взаимодействия Linux-LLC для операционной системы Linux.
Logical Link Control (LLC) — это подсеть протокольного набора IEEE 802.2 LAN. LLC является верхним подслоем канального уровня и является общим способом доступа к различным технологиям доступа к среде, таким как Tokenring, Ethernet и FDDI. Сокеты LLC предоставляют удобный и простой способ доступа к функциям LLC1 и LLC2 из пользовательского пространства.
Сокет LLC2 наследует всю функциональность сокета LLC1. Сокет LLC1 использует режим соединения без подключения по протоколу LLC (неподтвержденная передача данных). В то время как сокет LLC2 использует режим соединения с подключением LLC плюс режим соединения без подключения.
Итак, исходя из этой информации, я бы сказал, что это довольно важный модуль, который вам будет трудно удалить и/или обойтись без него, особенно если вы используете какую-либо из указанных сетевых технологий.
Добавление alias bridge off
в файл /etc/modprobe.d/disable_bridge.conf
предотвратит загрузку модуля.
Обратите внимание, что имя файла может быть любым, главное, чтобы он заканчивался на .conf
.
$ echo "alias bridge off" >> /etc/modprobe.d/disable_bridge.conf
Ответ или решение
Отключение загрузки модуля bridge.ko в Fedora 20
В операционной системе Fedora 20, как и в других дистрибутивах Linux, модули ядра могут автоматически загружаться при старте системы или в результате зависимости от других задействованных модулей. В вашем случае модуль bridge.ko
загружается автоматически, что вызывает необходимость его ручного удаления при каждой перезагрузке. Давайте разберем, как отключить автоматическую загрузку модуля bridge без удаления возможности его ручной загрузки по мере необходимости.
Шаг 1: Поиск причин автоматической загрузки
Существует множество причин, по которым модули могут загружаться автоматически. Вы упомянули, что модули stp
и llc
требуют наличия bridge.ko
, что можно проверить с помощью команды lsmod
. Если какой-либо из этих модулей загружен, он может быть инициатором загрузки bridge
.
Команда modinfo
предоставит вам информацию о зависимостях модулей. Например, выполнение команд:
modinfo stp
modinfo llc
может показать, что другие загруженные модули требуют наличия bridge
. Если это так, вам нужно будет рассмотреть отключение соответствующих модулей (если они не нужны) или настроить bridge.ko
так, чтобы он не загружался по умолчанию.
Шаг 2: Использование blacklist для модуля
Наиболее удобный способ отключить автоматическую загрузку модуля bridge.ko
— это использовать механизм черного списка (blacklist
). Хотя в /etc/sysconfig/modules/*
не найдено ссылок на bridge
, это не означает, что его нельзя заблокировать.
Создадим новый файл конфигурации для черного списка:
echo "blacklist bridge" > /etc/modprobe.d/blacklist_bridge.conf
Эта команда создаёт файл blacklist_bridge.conf
, который гарантирует, что при загрузке системы модуль bridge
не будет активирован.
Шаг 3: Альтернатива через alias
Кроме метода с использованием blacklist, вы можете использовать альтернативный подход с помощью alias
. Этот метод позволяет вам создавать псевдонимы для модулей.
Создайте новый файл конфигурации:
echo "alias bridge off" > /etc/modprobe.d/disable_bridge.conf
Таким образом, вы сообщаете системе, что при попытке загрузить bridge
, следует игнорировать эту команду, но при этом позволяя вручную загружать модуль по необходимости.
Шаг 4: Проверка
После внесения изменений перезагрузите систему и проверьте, был ли модуль bridge.ko
загружен:
lsmod | grep bridge
Если модуль не отображается в списке загруженных, вы успешно отключили его автоматическую загрузку.
Заключение
Методы, описанные выше, помогут вам отключить автоматическую загрузку модуля bridge.ko
в Fedora 20. Вы можете использовать либо blacklist
, либо alias
, в зависимости от ваших предпочтений и специфики использования системы. Не забывайте, что изменение конфигурации системы требует внимания и может понадобиться тестирование для подтверждения работоспособности всех сетевых функций, которые вы используете.