У меня есть компьютер Debian Jessie по адресу 192.168.1.5, подключенный к маршрутизатору (по адресу 192.168.1.1), на котором запущен клиент OpenVPN (на самом деле это Pi, использующийэта установка. Единственное отличие заключается в том, что IP-адрес eth0 Pi является статическим из-за маршрутизатора, т. е. Pi использует DHCP маршрутизатора).
Когда клиенты локальной сети настроены на использование 192.168.1.5 в качестве шлюза, они, как и предполагалось, подключены к VPN.
Мне нужно, чтобы весь трафик клиентов локальной сети в пределах 192.168.1.128/25 перенаправлялся на 192.168.1.5, дажекогда их IP-адрес установлен DHCP-сервером маршрутизатораи их шлюз становится 192.168.1.1. Другими словами,клиенты в пределах 192.168.1.128/25 должны работать так, как будто их шлюз — 192.168.1.5.
Какие настройки iptables
и/или route add
возможности маршрутизатора необходимы для этого?(роутер работает на Tomato 3.4-138)? Вот настройки роутера:
iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
WANPREROUTING all -- 0.0.0.0/0 wan_ip
upnp all -- 0.0.0.0/0 wan_ip
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
SNAT all -- 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1
SNAT all -- 172.16.1.0/24 172.16.1.0/24 to:172.16.1.1
Chain WANPREROUTING (1 references)
target prot opt source destination
DNAT icmp -- 0.0.0.0/0 0.0.0.0/0 to:192.168.1.1
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:192.168.1.1:443
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2222 to:192.168.1.5:22
DNAT all -- 0.0.0.0/0 0.0.0.0/0 to:192.168.1.4
Chain pupnp (0 references)
target prot opt source destination
Chain upnp (1 references)
target prot opt source destination
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:55355 to:192.168.1.130:55355
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:55355 to:192.168.1.130:55355
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5353 to:192.168.1.48:5353
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4500 to:192.168.1.48:4500
iptables-L
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
shlimit tcp -- anywhere anywhere tcp dpt:ssh state NEW
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:https
Chain FORWARD (policy DROP)
target prot opt source destination
all -- anywhere anywhere account: network/netmask: 192.168.1.0/255.255.255.0 name: lan
all -- anywhere anywhere account: network/netmask: 172.16.1.0/255.255.255.0 name: lan1
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
wanin all -- anywhere anywhere
wanout all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
upnp all -- anywhere anywhere
ACCEPT all -- anywhere SIP-Device
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain shlimit (1 references)
target prot opt source destination
all -- anywhere anywhere recent: SET name: shlimit side: source
DROP all -- anywhere anywhere recent: UPDATE seconds: 60 hit_count: 4 name: shlimit side: source
Chain upnp (1 references)
target prot opt source destination
ACCEPT udp -- anywhere client-1 udp dpt:55355
ACCEPT tcp -- anywhere client-1 tcp dpt:55355
ACCEPT udp -- anywhere client-2 udp dpt:mdns
ACCEPT udp -- anywhere client-2 udp dpt:4500
Chain wanin (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere *Pi* tcp dpt:ssh
Chain wanout (1 references)
target prot opt source destination
маршрут
(маршрутизатор находится за WAN-модемом)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
modem.ip.0.1 * 255.255.255.255 UH 0 0 0 vlan2
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
172.16.1.0 * 255.255.255.0 U 0 0 0 br1
modem.ip.0.0 * 255.255.224.0 U 0 0 0 vlan2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default modem.ip.0.1 0.0.0.0 UG 0 0 0 vlan2
решение1
Вы не можете каким-то образом подключить маршрутизатор и RaspPi к одному и тому же сегменту локальной сети и ожидать, что RaspPi будет перезаписывать пакеты, которые другие клиенты отправляют в локальную сеть. Это, кажется, FAQ, люди пытаются с ARP-спуфингом и т. д. Но сетевые технологии не предназначены для работы таким образом.
Чистое решение — положить всепозадиRaspPi:
Router --- [eth0] RaspPi [eth1] --- Switch +--- Client1
+--- Client2
+--- Client3
По сути, вы хотите использовать RaspPi как второй маршрутизатор. Это означает, что ему нужен второй интерфейс LAN. Установите DHCP-сервер на маршрутизаторе, возможно, включите NAT на RaspPi VPN, который не может обрабатывать подсеть, и все готово.
Альтернативой является активация VPN.насам маршрутизатор, если вы можете получить root-доступ или прошить OpenWRT и т. д.
Другой альтернативой является отключение DHCP-сервера на маршрутизаторе, после чего вы сможете подключить RaspPi и маршрутизатор к одному и тому же сегменту локальной сети, и вам понадобится только один интерфейс локальной сети на RaspPi.