redsabien
@redsabien

Как работает bridge на уровне ядра?

Не уверен что правильно пока что задаю вопрос, Но вдруг кто-то знает, кто и как заботится о этом виртуальном интерфейсе, и где можно взять эту информации.
Дано:
eth0 <-> br0 <-> eth1
Кто может продолжить цепочку: реальное устройство eth0 инициирует прерывание -> процессор смотрит в таблице прерываний откуда брать код драйвера, а что дальше
  • Вопрос задан
  • 429 просмотров
Пригласить эксперта
Ответы на вопрос 2
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Кто может продолжить цепочку: реальное устройство eth0 инициирует прерывание -> процессор смотрит в таблице прерываний откуда брать код драйвера, а что дальше

Слишком глубоко копнул: если тебя интересует именно бриджевание, то зачем разбираться в том, как драйвер сетевухи взаимодействует с ядром, если код бриджевания в линуксе не зависит от того, как сетевой пакет попал в систему.

Очень грубо: если сетевой пакет получен с одного из интерфейсов-слейвов бриджа -- посмотреть, есть ли для его адреса назначения запись в forwarding database, если есть -- переслать пакет в интерфейс из этой записи, если нет -- переслать во все интерфейсы этого бриджа, кроме того, через который пакет был получен.

Если хочется подробностей, можно почитать тут: it-ebooks.info/book/2195
Или тут: https://git.kernel.org/cgit/linux/kernel/git/torva... , там всего пара интересных файлов, по 500 строчек каждый.
Ответ написан
Mystray
@Mystray
NOC
Если так сильно хочется разобраться ВООБЩЕ в сетевой архитектуре, включая обработку прерываний, структуры ядра, и прочее, то существует перевод хорошей книги.
"Linux: сетевая архитектура. Структура и реализация сетевых протоколов в ядре", КУДИЦ-ОБРАЗ, ISBN 5-9579-0094-X
Она, конечно, немного устарела, но общее понимание даст.
А вообще, какова цель? Может, вы к проблеме не с той стороны подходите?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы