Hôm nay tôi dành nhiều thời gian để tìm ra cách thực hiện việc này, nhưng tôi không thể tìm ra giải pháp. Trong tâm trí của tôi nó nên có thể. Tôi đang cố gắng thiết lập thiết lập sau:
tổng quan thiết lập
đọc các tap1
giao diện và chuyển tiếp đến enp0s3
sử dụng Go Nên làm việc mà không gặp vấn đề gì... Tôi hy vọng. Nếu tôi làm một ping 10.0.0.10 -Tôi gõ 1
Tôi có thể thấy các khung ether trong ứng dụng Go. (Tôi hiện đang sử dụng https://github.com/songgao/water nhưng tôi có thể sẽ chuyển đến https://github.com/mdlayher/packet nếu tôi làm việc này)
Vấn đề tôi gặp phải là chuyển tiếp etherframes từ enp0s8
đến tap1
giao diện. Tôi đã thử nhiều lệnh nhưng nó không hoạt động. tôi đã thử sử dụng iptables
:
iptables -A FORWARD -i enp0s8 -o tap1 -j CHẤP NHẬN
và các lệnh tương tự.
sau đó tôi tìm thấy câu hỏi này: Tap0 không nhận được lưu lượng truy cập Sherwood Wang đã nói như sau:
Nếu bạn muốn buộc tap0 nhận các gói IP của riêng mình, bạn có thể sử dụng ebtables. Khi các gói được DROPed trong lớp ethernet của tap0 tại bảng broute, các gói này sẽ đi vào lớp IP của tap0 thay vì eth0. Xem thêm: http://ebtables.sourceforge.net/examples/real.html#example1
Những gì âm thanh chính xác những gì tôi cần. Tôi nghĩ rằng tôi đã tìm thấy lệnh mà anh ấy muốn nói ở đây: https://ebtables.netfilter.org/examples/basic.html#ex_brouter
ebtables -t broute -A BROUTING -p ipv4 -i tap1 --ip-dst 172.16.1.1 -j DROP
Tuy nhiên tôi nhận được lỗi sau: ebtables: Không có chuỗi/mục tiêu/khớp với tên đó
. Nếu tôi nhìn vào đàn ông
tôi không thấy người môi giới
bảng đã đề cập. Tôi thấy nó ở đây mặc dù https://linux.die.net/man/8/ebtables. Vì vậy, tôi đang thiếu một cái gì đó?
tôi cũng đã thử ebtables -A FORWARD -i enp0s8 -o tap1 -j CHẤP NHẬN
từ https://www.linuxquestions.org/questions/linux-networking-3/ebtables-to-setup-forwarding-and-ethernet-level-nat-4175538316/ nhưng điều đó cũng không hoạt động.