Почему у bridge0 есть адрес порта Ethernet? он относится к чему?

Почему у bridge0 есть адрес порта Ethernet? он относится к чему?
Почему у bridge0 есть адрес порта Ethernet? он относится к чему? - craftedbygc @ Unsplash

Я использую ifconfig -a список подробной информации о bridge0:

bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 index 7
    eflags=41000000<ECN_ENABLE,FASTLN_ON>
    options=63<RXCSUM,TXCSUM,TSO4,TSO6>
    ether 82:13:08:b0:ec:c0 
    Configuration:
        id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
        maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
        root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
        ipfilter disabled flags 0x0
    member: en1 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 5 priority 0 path cost 0
            hostfilter 0 hw: 0:0:0:0:0:0 ip: 0.0.0.0
    member: en2 flags=3<LEARNING,DISCOVER>
            ifmaxaddr 0 port 6 priority 0 path cost 0
            hostfilter 0 hw: 0:0:0:0:0:0 ip: 0.0.0.0
    nd6 options=201<PERFORMNUD,DAD>
    media: <unknown type>
    status: inactive
    state availability: 0 (true)
    qosmarking enabled: yes mode: none
    low power mode: disabled
    multi layer packet logging (mpklog): disabled
    routermode4: disabled
    routermode6: disabled

У меня есть несколько вопросов о детальной информации.

  1. что означает ether 82:13:08:b0:ec:c0? это MAC-адрес? как мы знаем, порт Ethernet должен иметь его. но почему мост0 имеет его? он относится к порту Ethernet, но к какому?

  2. являются ли члены en1en2 присоединенными к мосту0?

или есть какая-нибудь ссылка для ознакомления?


EDIT-01

Если en1 и en2 подключены к bridge0, я думаю, что bridge0 должен иметь еще два MAC адреса каждого. так ли это hw: 0:0:0:0:0:0?

Я знаком с коммутаторами, MAC-адрес находится на порту Ethernet, но ether 82:13:08:b0:ec:c0 нет в порту Ethernet.

что означает эфир 82:13:08:b0:ec:c0? это MAC-адрес? как мы знаем, порт Ethernet должен иметь один. но почему он есть у bridge0? это относится к его порту Ethernet, но к какому?

Во-первых, устройство bridge0 одновременно представляет собой две вещи: фактический мост L2 и виртуальный порт Ethernet, который соединяет саму ОС хоста с этим мостом.

Отдельные порты моста/коммутатора обычно не имеют собственных MAC-адресов, но устройства, подключенные к ним, имеют. Так что в этом случае 82:13:08:b0:ec:c0 — это MAC-адрес хост-ОС, подключенный к мосту. Если бы bridge0 имел IP-адрес, ОС отправляла бы IP-пакеты, используя этот MAC-адрес.

Но также обратите внимание, что даже когда мостам/коммутаторам не нужно говорить по IP, они все равно не являются полностью пассивными устройствами в сети: они часто используют STP (протокол связующего дерева) для взаимодействия с другими мостами в сети, чтобы избежать петель, поэтому каждому STP-говорящему мосту, конечно, нужен свой собственный MAC-адрес для пакетов STP. (Подраздел «Конфигурация:» вашего вывода ifconfig полностью состоит из параметров, связанных с STP; «id» пуст, потому что STP отключен.)

Итак, 82:13:08:b0:ec:c0 — это MAC-адрес моста, когда он говорит по протоколу STP. (Более продвинутые «корпоративные» коммутаторы могут также использовать LLDP, 802.1X и различные другие протоколы канального уровня, которые требуют, чтобы коммутатор имел собственный MAC-адрес.) Хотя, опять же, технически это делает хост-ОС моста, подключенный к мост через внутренний порт (это верно даже для физических коммутаторов Ethernet; у них есть так называемый «порт ЦП»).


Из вашего вывода кажется, что вы используете macOS или, по крайней мере, какую-то BSD-подобную ОС. Если это так, не обращайте внимания на комментарии о том, что «ifconfig устарел» — хотя они очень верны для Linux (где предпочтительны инструменты «ip» и «bridge»), ничего из этого не относится к BSD.


NevaDev, 6 февраля 2023 г., 03:30