Tạo hai thiết bị TAP, mỗi thiết bị sẽ được đọc và ghi bởi ngăn xếp giao thức vùng người dùng. Ngoài ra, hai thiết bị TAP được kết nối bởi Linux Bridge.
Kịch bản chuẩn bị môi trường như sau.
Sudo ip tuntap add dev tap0 mode tap
Sudo ip tuntap add dev tap1 mode tap
Sudo ip addr add 10.0.0.1/24 dev tap0
Sudo ip addr add 10.0.0.2/24 dev tap1
thiết lập liên kết sudo ip tap0
thiết lập liên kết sudo ip tap1
Sudo brctl addbr br0
sudo brctl addif br0 tap1
sudo brctl addif br0 tap0
thiết lập liên kết ip sudo br0 lên
Ngăn xếp giao thức vùng người dùng có khả năng gửi và nhận ARP. Thủ tục để tạo ra vấn đề này là như sau.
- ném một Yêu cầu ARP từ tap0.
- Nó đến tap1 qua br0 và gửi ARP Reply.
- br0 nhận được Trả lời ARP, nhưng nó không đến được tap0.
Tôi đã chụp các gói như sau.
vagrant@impish64:~$ sudo tcpdump -i br0 -nv
tcpdump: lắng nghe trên br0, loại liên kết EN10MB (Ethernet), ảnh chụp nhanh dài 262144 byte
13:14:23.103549 ARP, Ethernet (len 6), IPv4 (len 4), Yêu cầu ai có 10.0.0.2 cho biết 10.0.0.1, độ dài 28
13:14:23.104203 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.0.0.2 is-at 3a:2c:25:5b:e1:40, độ dài 28
vagrant@impish64:~$ Sudo tcpdump -i tap0 -nv
tcpdump: lắng nghe trên tap0, loại liên kết EN10MB (Ethernet), ảnh chụp nhanh dài 262144 byte
13:13:40.868761 ARP, Ethernet (len 6), IPv4 (len 4), Yêu cầu ai có 10.0.0.2 cho biết 10.0.0.1, độ dài 28
vagrant@impish64:~$ Sudo tcpdump -i tap1 -nv
tcpdump: lắng nghe trên tap1, loại liên kết EN10MB (Ethernet), ảnh chụp nhanh dài 262144 byte
13:12:50.368294 ARP, Ethernet (len 6), IPv4 (len 4), Yêu cầu ai có 10.0.0.2 cho biết 10.0.0.1, độ dài 28
13:12:50.368699 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.0.0.2 is-at 3a:2c:25:5b:e1:40, độ dài 28
Sơ đồ của vấn đề này như sau.
biểu đồ
Tại sao ARP Reply không bay tới tap0
với cài đặt này?