Tôi có một hệ thống độc quyền truyền luồng video udp từ đơn vị số 1 (192.168.1.1) sang đơn vị số 2 (.1.2). Tôi không thể thay đổi hệ thống này và tôi đang cố gắng sao chép luồng udp này để tôi có thể truy cập nó trong một chương trình khác. Chương trình này sẽ thực hiện công cụ với video và gửi lại dưới dạng luồng phát đa hướng.
Tôi hy vọng sẽ thực hiện việc này bằng máy Linux (chạy Ubuntu Server 12.04 ngay bây giờ) với ba card mạng. Bằng cách kết nối thiết bị số 1 và số 2 với hai trong số các card mạng (eth0 và eth1) trong máy Linux và sử dụng cầu nối, tôi đã giao tiếp với chúng. Giao diện / etc / mạng / của tôi trông như sau:
# The loopback network interface
auto lo
iface lo inet loopback
# The external interface
auto eth3
iface eth3 inet static
address 192.168.10.2
netmask 255.255.255.0
# The bridge interface
auto br0
iface br0 inet manual
bridge_ports eth0 eth1
Điều này hoạt động và bằng cách sử dụng tcpdump tôi đã xác nhận rằng các gói udp đang đến từ # 1 và đang hướng tới # 2 tại cổng 6000.
Bước tiếp theo tôi hy vọng sẽ hoạt động là sử dụng iptables để sao chép tất cả các gói udp bắt đầu từ 192.168.1.1 sang cổng 6000 ở # 2. Tôi không quen thuộc lắm với iptables, nhưng sau khi đọc trực tuyến và hướng dẫn, tôi nghĩ rằng nó sẽ hoạt động:
iptables -A PREROUTING -t mangle -p udp -s 192.168.1.1/32 --dport 6000 -j TEE --gateway 192.168.10.2
Quy tắc được áp dụng thành công, nhưng nó không hoạt động. Nếu tôi sử dụng tcpdump để theo dõi eth3 thì tôi không thấy các gói ở đó.
Tôi muốn lấy luồng này, làm việc trên luồng đó và gửi nó dưới dạng đa tuyến trên giao diện .10.2.
Tôi đang làm gì sai? Có điều gì tôi đã hiểu lầm?