У меня есть хост Proxmox с ядром 5.15.19-2-pve.
Он имеет интерфейс bond0, сделанный из eth2 и eth3, который получает тегированный трафик vlan.
Я создал мост vmbr666, который выглядит следующим образом:
# /etc/сеть/интерфейсы:
авто вмбр666
iface vmbr666 инет руководство
мост-порты бонд0
мост-стп выкл.
мост-fd 0
поддержка моста vlan да
Мост-видео 2-4094
мту 9220
# показать brctl
vmbr666 8000.5a0a13a9dd29 без связи0
кран151034i1
# ip -d ссылка sh dev vmbr666
66: vmbr666: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9220 qdisc noqueue state Режим UP DEFAULT group default qlen 1000
ссылка/эфир 5a:0a:13:a9:dd:29 brd ff:ff:ff:ff:ff:ff неразборчивость 0 minmtu 68 maxmtu 65535
bridge forward_delay 0 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 приоритет 32768 vlan_filtering 1 vlan_protocol 802.1Q bridge_id 8000.5a:a:13:a9:dd:29 назначенный_root 8000.5a:a:13:a9:dd:29 root_port 0 root_path_cost 0 root_path_cost topology_change_detected 0 hello_timer 0.00 tcn_timer 0.00 topology_change_timer 0.00 gc_timer 251.81 vlan_default_pvid 1 vlan_stats_enabled 0 vlan_stats_per_port 0 group_fwd_mask 0 group_address 01:80:c2:00:00:00 mcast_snooping 1 mcast_router 1 mcast_query_use_ifaddr 0 mcast_querier 0 mcast_hash_elasticity 16 mcast_hash_max 4096 mcast_last_member_count 2 mcast_startup_query_count 2 mcast_last_member_interval 100 mcast_membership_interval 26000 mcast_querier_interval 25500 mcast_query_interval 12500 mcast_query_response_interval 1000 mcast_startup_query_interval 3124 mcast_stats_enabled 0 mast_igmp_version 2 mast_mld_version 1 nf_call_iptables 0 nf_call_pables 0cales_calse_calles_calles_calles_calles_calles_calles_callesshales_callesi_ 536 gso_max_segs 65535
Обратите внимание, что vlan_filtering
является 1
.
Если я tcpdump-enlvvv
на bond0 вижу трафик для VLAN42. Если я tcpdump на вмбр666
или же кран151034i1
, не вижу трафика для VLAN42 (даже не широковещательные или многоадресные рассылки, хотя я вижу широковещательный трафик некоторых других VLAN). Вопрос: почему бы и нет?
Соответствующий вывод из бридж -c vlan показать
:
bond0 1 Выход PVID без тегов
2-99
tap151034i1 1 Выход PVID без тегов
2-99
vmbr666 1 Выход PVID без тегов
Как я уже сказал, я вижу трафик для других VLAN на всех этих интерфейсах, включая теги, например.
15:03:35.293420 00:50:56:b1:24:0c > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), длина 64: vlan 49, p 0, ethertype ARP (0x0806) , Ethernet (длина 6), IPv4 (длина 4), Запрос у кого есть 10.76.155.200 подскажите 10.76.155.51, длина 46
Теперь добавим vlan 42 в вмбр666
интерфейс, чтобы увидеть, имеет ли это какое-либо значение:
# bridge vlan add vid 42 dev vmbr666 self
# bridge -c vlan show dev vmbr666
порт vlan-id
vmbr666 1 Выход PVID без тегов
42
В tcpdump -enlvvv -i vmbr666
Я по-прежнему не вижу ничего, связанного с vlan42, только другие VLAN (например, 49 и 50).
Создадим подынтерфейс для vlan42 на кран151034i1
как это:
ip ссылка добавить ссылку tap151034i1 имя тест тип vlan протокол 802.1q id 42 reorder_hdr вкл gvrp вкл mvrp вкл свободные_привязки выкл; ip link настроить dev test
Бег tcpdump -enlvvv -я тест
Я вообще не вижу трафика.
Существует вмбр42
, что может мешать (но если да, то почему мешает?):
vmbr42 8000.9a0f54fe1040 без связи0,42
fwpr103p0
fwpr104p0
fwpr105p0
fwpr151034p0
кран102i0
В ip -d ссылка ш
:
31: vmbr42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state режим UP DEFAULT group default qlen 1000
ссылка/эфир 9a:0f:54:fe:10:40 brd ff:ff:ff:ff:ff:ff неразборчивость 0 minmtu 68 maxmtu 65535
bridge forward_delay 0 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 приоритет 32768 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 8000.9a:f:54:fe:10:40 назначенный_root 8000.9a:f:54:fe:10:40 root_port 0 root_path_cost 0 root_path_cost topology_change_detected 0 hello_timer 0.00 tcn_timer 0.00 topology_change_timer 0.00 gc_timer 53.08 vlan_default_pvid 1 vlan_stats_enabled 0 vlan_stats_per_port 0 group_fwd_mask 0 group_address 01:80:c2:00:00:00 mcast_snooping 1 mcast_router 1 mcast_query_use_ifaddr 0 mcast_querier 0 mcast_hash_elasticity 16 mcast_hash_max 4096 mcast_last_member_count 2 mcast_startup_query_count 2 mcast_last_member_interval 100 mcast_membership_interval 26000 mcast_querier_interval 25500 mcast_query_interval 12500 mcast_query_response_interval 1000 mcast_startup_query_interval 3124 mcast_stats_enabled 0 mast_igmp_version 2 mast_mld_version 1 nf_call_iptables 0 nf_call_pables 0cales_calse_calles_calles_calles_calles_calles_calles_callesshales_callesi_ 536 gso_max_segs 65535
Обратите внимание, что vlan_filtering
является 0
.
Бег tcpump -enlvvv
на вмбр42
или же кран102i0
, который является одним из его членов, показывает трафик VLAN42 без тегов — ничего удивительного.
Нет блюда
или же Арптабли
правила.
Думаю, я не понимаю взаимодействие между членством в VLAN и мостовыми интерфейсами в Linux.
Некоторые теоретические вопросы:
- Каков эффект добавления VLAN к главному интерфейсу моста с
себя
ключевое слово в бридж влан добавить
?
- Каков эффект от создания субинтерфейса VLAN интерфейса члена моста?
- Если физический интерфейс имеет подынтерфейс VLAN, и он добавлен к мосту, должны ли какие-либо кадры для этой VLAN быть видимыми на других мостах, членом которых является тот же физический интерфейс? Если нет, то почему?
- В чем разница, как с теоретической, так и с практической точки зрения, между, с одной стороны, созданием субинтерфейсов VLAN физических интерфейсов и их соединением, а с другой стороны,
vlan_filtering
на мосту и используя мост vlan pvid без тегов
предоставить место некоторым интерфейсам-членам в конкретных VLAN?
- Можно ли смешивать эти два подхода?
РЕДАКТИРОВАТЬ: удалены материалы, которые были показаны в комментариях как неактуальные, и добавлены теоретические вопросы, которые, как мы надеемся, помогут лучше структурировать ответ.