Назад | Перейти на главную страницу

Как направить весь трафик через другой сервер в той же подсети?

Я хочу перенаправлять весь трафик от клиентов (192.168.1.0/24) из шлюза openwrt (0.0.0.0/0) к серверу openvpn туннель.

На сервере есть туннель openvpn. Он также установил параметры:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
net.ipv4.ip_forward=1
tun0 is the default gateway

Openwrt - это шлюз в Интернет по умолчанию. Итак, если я вручную изменю шлюз по умолчанию на стороне клиента на IP-адрес сервера 192.168.1.2 - оно работает.

                            +------------+                                       
                            |  INTERNET  |                                       
                            +------|-----+                                       
                                   |                                             
                                   |                                             
                                   |                                             
                          +--------|-------+                                     
                          |    OpenWRT     |                                     
                          |                |                                     
                          | 192.168.1.1/24 |                                     
                          +---|----|-------+                                     
                              |    |                                             
                              |    |       +-------------+                       
                              |    |       |    Server   |                       
                              |    |       |             |                       
          +---------------+   |    |--------192.168.1.2  |                       
          |    Client     |   |    |       |             |                       
          |               ----+    +-------|tun0         |                       
          | 192.168.1.101 |                |             |                       
          +---------------+                +-------------+                       

Что пробовал?

Отмечены все пакеты, кроме одного с сервера:

iptables -t mangle -I PREROUTING -i br-lan '!' -s 192.168.1.2 -d 0.0.0.0/0 -j MARK --set-mark 1

Затем направьте их через новую таблицу маршрутов, которая имеет маршрут по умолчанию через 192.168.1.2 но не повезло с этим. Трафик застревает в маршрутизаторе.

ip route add default via 192.168.1.2 table vpn
ip rule add fwmark 1 lookup vpn

Мое решение

Собственно, когда я писал это, я понял, что могу использовать dhcp-option = 3,192.168.1.2 на маршрутизаторе dnsmasq для отправки предпочтительного шлюза всем клиентам. И работает :) Наверное, это лучшее решение. Но можно ли маршрутизировать весь трафик с помощью iptables и маршрутов на стороне openwrt?