Tôi có một máy chủ Proxmox với kernel 5.15.19-2-pve.
Nó có giao diện bond0 được tạo từ eth2 và eth3, giao diện này nhận lưu lượng được gắn thẻ vlan.
Tôi đã tạo một cây cầu vmbr666 hiển thị như thế này:
# /etc/mạng/giao diện:
tự động vmbr666
hướng dẫn sử dụng iface vmbr666 inet
liên kết cầu cảng0
tắt cầu nối
cầu-fd 0
cầu-vlan-nhận biết có
cầu-vids 2-4094
mtu 9220
# brctl hiển thị
vmbr666 8000.5a0a13a9dd29 không ràng buộc0
tap151034i1
# ip -d liên kết sh dev vmbr666
66: vmbr666: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9220 trạng thái qdisc noqueue UP mode MẶC ĐỊNH nhóm mặc định qlen 1000
liên kết/ether 5a:0a:13:a9:dd:29 brd ff:ff:ff:ff:ff:ff lăng nhăng 0 minmtu 68 maxmtu 65535
cầu forward_delay 0 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 ưu tiên 32768 vlan_filtering 1 vlan_protocol 802.1Q bridge_id 8000.5a:a:13:a9:dd:29 được chỉ định root 8000.5a:a:13:a9:dd:29 root_port 0 root_path_change 0 cấu trúc liên kết 0 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_enables 536 gso_max_seg 65535
Lưu ý rằng vlan_filtering
Là 1
.
Nếu tôi tcpdump -enlvvv
trên bond0, tôi thấy lưu lượng cho VLAN42. Nếu tôi bật tcpdump vmbr666
hoặc tap151034i1
, tôi không thấy lưu lượng cho VLAN42 (thậm chí không phát sóng hoặc phát đa hướng, mặc dù tôi thấy lưu lượng quảng bá của một số VLAN khác). Câu hỏi: tại sao không?
Đầu ra có liên quan từ cầu -c vlan hiển thị
:
trái phiếu0 1 PVID Đi ra Untagged
2-99
tap151034i1 1 Đầu ra PVID Untagged
2-99
vmbr666 1 PVID Lối ra Untagged
Như tôi đã nói, tôi thấy lưu lượng truy cập cho các Vlan khác trên tất cả các giao diện này, bao gồm cả các thẻ, ví dụ:.
15:03:35.293420 00:50:56:b1:24:0c > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), chiều dài 64: vlan 49, p 0, ethertype ARP (0x0806) , Ethernet (len 6), IPv4 (len 4), Yêu cầu ai có 10.76.155.200 cho biết 10.76.155.51, độ dài 46
Bây giờ hãy thêm vlan 42 vào vmbr666
interface để xem nó có khác biệt gì không:
# cầu vlan thêm vid 42 dev vmbr666 tự
# bridge -c vlan show dev vmbr666
cổng vlan-id
vmbr666 1 PVID Lối ra Untagged
42
Trong tcpdump -enlvvv -i vmbr666
Tôi vẫn không thấy bất cứ điều gì liên quan đến vlan42, chỉ là các Vlan khác (ví dụ: 49 và 50).
Hãy tạo subinterface cho vlan42 trên tap151034i1
như thế này:
liên kết ip thêm liên kết tap151034i1 tên kiểm tra loại giao thức vlan 802.1q id 42 reorder_hdr trên gvrp trên mvrp trên loose_binding tắt; liên kết ip thiết lập kiểm tra dev
Đang chạy kiểm tra tcpdump -enlvvv -i
Tôi thấy không có lưu lượng truy cập nào cả.
Đây là một vmbr42
, có thể gây cản trở (nhưng nếu vậy thì tại sao lại gây cản trở?):
vmbr42 8000.9a0f54fe1040 không liên kết0.42
fwpr103p0
fwpr104p0
fwpr105p0
fwpr151034p0
tap102i0
Trong liên kết ip -d sh
:
31: vmbr42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 trạng thái qdisc noqueue UP mode MẶC ĐỊNH nhóm mặc định qlen 1000
liên kết/ether 9a:0f:54:fe:10:40 brd ff:ff:ff:ff:ff:ff lăng nhăng 0 minmtu 68 maxmtu 65535
cầu forward_delay 0 hello_time 200 max_age 2000 ageing_time 30000 stp_state 0 ưu tiên 32768 vlan_filtering 0 vlan_protocol 802.1Q bridge_id 8000.9a:f:54:fe:10:40 được chỉ định_root 8000.9a:f:54:fe:10:40 root_port 0 root_path_change 0 cấu trúc liên kết 0 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_enables 536 gso_max_seg 65535
Lưu ý rằng vlan_filtering
Là 0
.
Đang chạy tcpump -enlvvv
trên vmbr42
hoặc tap102i0
, là một trong những thành viên của nó, hiển thị lưu lượng VLAN42, không có thẻ -- không có gì ngạc nhiên.
Không có bảng ebtables
hoặc bảng xếp chồng
quy tắc.
Tôi đoán là tôi không hiểu sự tương tác giữa tư cách thành viên VLAN và giao diện cầu nối trong Linux.
Một số câu hỏi lý thuyết:
- Tác dụng của việc thêm Vlan vào giao diện chính của cầu nối với
bản thân
từ khóa trong cầu thêm vlan
?
- Tác dụng của việc tạo giao diện con Vlan của giao diện thành viên cầu nối là gì?
- Nếu một giao diện vật lý có một giao diện con Vlan và được thêm vào một cầu nối, thì có bất kỳ khung nào cho Vlan đó được cho là hiển thị trên các cầu nối khác mà cùng một giao diện vật lý là thành viên không? Nếu không, tai sao không?
- Sự khác biệt là gì, từ góc độ lý thuyết cũng như thực tế, giữa một mặt, tạo ra các giao diện con VLAN của các giao diện vật lý và bắc cầu chúng, và mặt khác, cho phép
vlan_filtering
trên một cây cầu và sử dụng cầu vlan pvid untagged
để đưa ra một số giao diện thành viên trong VLAN cụ thể?
- Bạn có thể kết hợp hai cách tiếp cận này không?
CHỈNH SỬA: đã xóa nội dung được hiển thị trong nhận xét là không liên quan và thêm câu hỏi lý thuyết để hy vọng giúp cấu trúc câu trả lời tốt hơn.