У меня есть Debian Jessie box на 192.168.1.5, подключенный к маршрутизатору (на 192.168.1.1), на котором работает клиент OpenVPN (на самом деле это Pi, использующий эту настройку). Единственное отличие состоит в том, что eth0 IP Pi является статическим из-за маршрутизатора, т.е. Pi использует DHCP маршрутизатора).

Когда клиенты LAN настроены на использование 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 ответ1

2

Быстрый способ переопределить маршрут по умолчанию, предоставленный DHCP (который является /0), - добавить два /1 маршрута к шлюзу VPN:

route -n add -net 0.0.0.0 192.168.1.5 128.0.0.0

route -n add -net 128.0.0.0 192.168.1.5 128.0.0.0

Хотя предоставленный DHCP маршрут по умолчанию остается на месте, любой из /1 будет предпочтительным для трафика IPv4 из-за их более коротких префиксов.

В настоящее время я использую этот взлом в качестве подтверждения концепции; Я все еще в сети, и запрос таблицы показывает, что используется маршрут /1.

[nevin-mac-mini:~] root# route -n add -net 0.0.0.0 192.168.2.1 128.0.0.0
add net 0.0.0.0: gateway 192.168.2.1
[nevin-mac-mini:~] root# route -n add -net 128.0.0.0 192.168.2.1 128.0.0.0
add net 128.0.0.0: gateway 192.168.2.1
[nevin-mac-mini:~] root# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
0/1                192.168.2.1        UGSc            3        0     en0
default            192.168.2.1        UGSc            4        0     en0
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH              1     6576     lo0
128.0/1            192.168.2.1        UGSc            1        0     en0
...
[nevin-mac-mini:~] root# route -n get 200.200.200.200
   route to: 200.200.200.200
destination: 128.0.0.0
       mask: 128.0.0.0
    gateway: 192.168.2.1
  interface: en0
      flags: 
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0 
[nevin-mac-mini:~] root# 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .