Tôi đang làm việc trên bộ định tuyến giữa radio/modem bên ngoài và thiết bị của mình, nơi bộ định tuyến tạo kết nối quay số bằng giao thức ppp với radio và đặt quy tắc iptables giữa IP radio đã nhận và IP của thiết bị của tôi.
Tôi có các tuyến đường sau:
Cổng đích Genmask Flag Metric Ref Sử dụng Iface
mặc định 192.168.1000.101 0.0.0.0 UG 0 0 0 ppp0
192.168.100.101 * 255.255.255.255 UH 0 0 0 ppp0
192.168.164.0 * 255.255.255.0 U 0 0 0 eth0
Và đây là các quy tắc iptables sau đây của tôi:
iptables -A INPUT -j CHẤP NHẬN
iptables -A ĐẦU RA -j CHẤP NHẬN
iptables -A FORWARD -j CHẤP NHẬN
iptables -A INPUT -i lo -j CHẤP NHẬN
iptables -A OUTPUT -o lo -j CHẤP NHẬN
iptables -t nat -A PREROUTING -i ppp0 -p tcp -j DNAT --to 192.168.0.110
iptables -t nat -A PREROUTING -i ppp0 -p udp -j DNAT --to 192.168.0.110
iptables -t nat -A POSTROUTING --source 0/0 -o ppp0 -j MASQUERADE
Với các quy tắc này, tôi có thể truy cập mọi thứ trên thiết bị của mình như telnet, máy chủ web và một số giao tiếp khác bằng cổng cao.
Vấn đề của tôi là tôi cần kết nối với thiết bị của mình bằng cổng nguồn với cổng đích và đây không phải là vấn đề, nhưng thiết bị của tôi cần phản hồi bằng một cổng khác mà thiết bị đã tạo để tiếp tục giao tiếp này.
Ví dụ: tôi cố gắng tạo kết nối bằng cổng nguồn 2000 với cổng đích 2001 và phản hồi của thiết bị của tôi trả về bằng cổng nguồn 21550 và cổng đích 2000. Nhưng phản hồi không quay lại máy khách được kết nối với phía bên kia của đài .
Bằng cách sử dụng tcpdump bên trong bộ định tuyến của mình, tôi đã thấy phản hồi của thiết bị, nhưng tôi không thể tìm ra cách xử lý các thay đổi cổng này trong quy tắc iptables để gửi lại cho máy khách được kết nối với phía bên kia của đài.
Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào!