Я использую 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
У меня есть несколько вопросов о детальной информации.
что означает ether 82:13:08:b0:ec:c0
? это MAC-адрес? как мы знаем, порт Ethernet должен иметь его. но почему мост0 имеет его? он относится к порту Ethernet, но к какому?
являются ли члены en1
en2
присоединенными к мосту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.