(Первоначально спрошенный относительно StackOverflow. Благодарен за то, что Ken White перенаправляет меня здесь.)
Ubuntu 16.04 amd64 с 3 NICs
NIC1: внешний IP $WAN_IP
NIC2: внутренняя LAN $LAN_IP
NIC3: инфраструктура LAN $INF_IP
(инфраструктура, которая - LAN то, где все серверы находятся, намеренно далеко от Рабочих столов и Персональных компьютеров),
Я хочу портировать, передают запросы от NIC1 и NIC2 к определенному серверу на NIC3. Я могу сделать это, и все работает правильно. Моя проблема, я не могу надежно установить --to-source
поле в iptables.
Это - то, что я имею до сих пор:
iptables -A PREROUTING -t nat -p udp -d $WAN_IP --dport 1194 -j DNAT --to-destination 192.168.26.105 # VPN Server on the $INF_IP subnet
iptables -A PREROUTING -t nat -p udp -d $LAN_IP --dport 1194 -j DNAT --to-destination 192.168.26.105
iptables -A PREROUTING -t nat -p udp -d $INF_IP --dport 1194 -j DNAT --to-destination 192.168.26.105
# The above code routes port 1194:udp (openvpn) to the VPN Server 26.105 properly
# The -j SNAT below is where I encounter problems
iptables -A POSTROUTING -t nat -p udp -m udp -s 192.168.26.105 --dport 1194 -j SNAT --to-source ????
Вышеупомянутое???? в POSTROUTING -j SNAT
то, где я сталкиваюсь с проблемой. У меня есть 3 потенциальных дюйм/с, я могу установить это на, и никакой надежный способ установить их. Если я установил его на $WAN_IP
, что-либо на $LAN_IP
и $INF_IP
будет получил неправильные пакеты источника.
Как я могу использовать iptables (или альтернатива) для надлежащей установки SOURCE
адрес, независимо от которого интерфейса запрос прибывает из.
Спасибо в усовершенствованном.