Участвующие устройства: VPS, маршрутизатор и несколько устройств, подключенных к маршрутизатору.
Конечная цель: на основе клиента OpenVPN, который подключился к серверу на VPS, укажите только одно локальное устройство для доступа в Интернет через VPN и перенаправьте некоторые порты VPS на указанное устройство.
Сеть VPS:
Public IP: 157.7.201.X
Сеть маршрутизатора:
WAN: 192.168.178.207/27
LAN: 192.168.1.0/24
VPN:
DHCP: 10.168.1.0/29
VPS: 10.168.1.1 (static)
Client: 10.168.1.2 (static)
IP указанного устройства 192.168.1.123 (static)
(Вы можете перепрыгнуть через следующие подробные конфигурации, чтобы увидеть мою ситуацию прямо сейчас, потому что она немного длинная и не все строки полезны.)
И вот iptables моего VPS:
root@VPS:~# iptables -t nat -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 24 packets, 2860 bytes)
pkts bytes target prot opt in out source destination
6280 663K SNAT all -- * * 10.168.1.0/29 0.0.0.0/0 to:157.7.201.X
Таблица маршрутов моего роутера:
root@Onee3:/tmp/home/root# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.178.193 * 255.255.255.255 UH 0 0 0 vlan1
157.7.201.85 192.168.178.193 255.255.255.255 UGH 0 0 0 vlan1
10.168.1.1 * 255.255.255.255 UH 0 0 0 tun11
10.168.1.0 10.168.1.1 255.255.255.248 UG 0 0 0 tun11
192.168.178.192 * 255.255.255.224 U 0 0 0 vlan1
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.178.193 0.0.0.0 UG 0 0 0 vlan1
Iptables моего роутера:
root@Onee3:/tmp/home/root# iptables -t nat -L POSTROUTING -vn
Chain POSTROUTING (policy ACCEPT 5 packets, 709 bytes)
pkts bytes target prot opt in out source destination
75 14012 SNAT all -- * br0 192.168.1.0/24 192.168.1.0/24 to:192.168.1.233
12828 1438K SNAT all -- * vlan1 192.168.1.100 0.0.0.0/0 to:192.168.178.207
27 1764 SNAT all -- * tun11 0.0.0.0/0 10.168.1.0/29 to:10.168.1.2
33 1980 SNAT all -- * vlan1 192.168.1.222 0.0.0.0/0 to:192.168.178.207
0 0 SNAT all -- * tun11 192.168.1.123 0.0.0.0/0 to:10.168.1.2
Моя ситуация сейчас такова:
Сам маршрутизатор может получить доступ к Интернету через физическую сеть, и он может получить доступ к любому хосту, включая 10.168.1.1, который является виртуальным IP-адресом VPS.
Любое устройство, подключенное к маршрутизатору, может нормально обращаться к маршрутизатору и виртуальному IP-адресу VPS. Устройства, включенные в iptables маршрутизатора, которые настроены на использование vlan1, могут нормально выходить в Интернет, например, 192.168.1.100 в списке. Другие, не включенные, не могут, потому что запись MASQUERADE по умолчанию была удалена вручную.
Итак, теперь я добавил запись в iptables маршрутизатора, чтобы выполнить пересылку ip с 192.168.1.123 до 10.168.1.2 по SNAT(в списке выше) или MASQUERADE(также пытался), но в результате 192.168.1.123 может Доступ только к хостам в локальной сети или к виртуальному IP-адресу VPS.
Одним словом, я застрял на полпути (или даже меньше) к конечной цели. Пожалуйста, помогите мне, спасибо.