Tôi đã thiết lập dịch vụ ppp động trên máy linux nơi khách hàng sẽ kết nối và nhận IP riêng.
Các quy tắc tôi đã thiết lập trong iptables hiện tại là:
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.ip_dynaddr=1
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
iptables -A INPUT -i ppp+ -j CHẤP NHẬN
iptables -A FORWARD -i ppp+ -j CHẤP NHẬN
iptables -I PREROUTING -t nat -i ppp+ -p udp -s 10.0.10.3 -j DNAT --to 10.0.10.2
iptables -I PREROUTING -t nat -i ppp+ -p udp -s 10.0.10.2 -j DNAT --to 10.0.10.3
Chức năng dự định của tôi là dành cho bất kỳ ai kết nối trên giao diện ppp để kế thừa IP của máy chủ và có quyền truy cập internet và có thể giao tiếp với các đồng nghiệp trên cùng một mạng. Thành công!
Ngoại trừ các gói quảng bá. Mọi thứ gửi đến 255.255.255.255 hoặc tương tự đều không đến được tay ai. Để giảm thiểu, tôi đã mã hóa cứng các quy tắc trong in đậm từ phía trên, tuy nhiên, đây không phải là một giải pháp động và bổ sung dựa trên số lượng máy khách được kết nối.
Câu hỏi của tôi là, tôi có thể làm gì để có giải pháp iptables 'ký tự đại diện' cho vấn đề này? Cụ thể, lý tưởng nhất là tôi cần một giải pháp một dòng sẽ chuyển tiếp bất kỳ gói udp nào từ giao diện ppp sang giao diện ppp khác, đồng thời không can thiệp vào các quy tắc hoặc gói tcp khác.
Cảm ơn bạn trước.
Chỉnh sửa
Tôi đã nhượng bộ và cố gắng mã hóa cứng các quy tắc cho 100 IP để ít nhất nó chạy bình thường.Ngay cả ở định dạng ngắn nhất mà tôi có thể tìm thấy, tôi vẫn gặp phải sự cố là chỉ đầu tiên quy tắc sẽ có hiệu lực đối với một gói nhất định, nghĩa là tôi không thể tạo nhiều quy tắc cho cùng một gói và không thể tạo quy tắc bắt tất cả cho một IP cho toàn bộ mạng vì nó sẽ gửi gói được đề cập đến nguồn dưới dạng tốt, dẫn đến một thất bại tương tự:
Ảnh chụp màn hình của các quy tắc
Chỉnh sửa 2
Thật không may, tôi đã gấp vì không có giải pháp nào mà tôi đã xác định cho đến nay đối với iptables có thể mở rộng hoặc áp dụng được trong trường hợp của tôi. Tôi sẽ để ngỏ câu hỏi này trong trường hợp bất kỳ ai có bất kỳ cách nào để đạt được điều này trong một hoặc một vài dòng trong iptables hoặc cách khác.
Trong thời gian chờ đợi, vui lòng xem lại các tài liệu sau có liên quan đến trường hợp cụ thể của tôi, nếu bạn tò mò hoặc nếu bạn có cùng quan điểm:
Chuyển tiếp gói phát sóng của Cisco
Chuyển tiếp chương trình phát sóng UDP
Hướng dẫn NAT
Tài liệu dải IP DNAT
Cuối cùng, đây là giải pháp thay thế mà tôi hiện đã triển khai:
https://github.com/udp-redux/udp-broadcast-relay-redux