Mengarahkan lalu lintas subnet ke gateway yang berbeda

0

Saya memiliki kotak Debian Jessie di 192.168.1.5 yang terhubung ke router (pada 192.168.1.1) yang menjalankan klien OpenVPN (sebenarnya Pi menggunakan pengaturan ini . Satu-satunya bagian yang berbeda adalah bahwa IP eth0 Pi statis karena router, yaitu, Pi menggunakan DHCP router).

Ketika klien LAN diatur untuk menggunakan 192.168.1.5 sebagai gateway mereka, mereka berada di VPN, sebagaimana dimaksud.

Yang saya butuhkan adalah untuk memiliki klien LAN dalam 192.168.1.128/25 memiliki semua lalu lintas mereka dialihkan ke 192.168.1.5, bahkan ketika IP mereka diatur oleh DHCP router dan gateway mereka menjadi 192.168.1.1. Dengan kata lain, klien dalam 192.168.1.128/25 harus berfungsi seolah-olah gateway mereka adalah 192.168.1.5.

Apa iptablesdan / atau route addpengaturan yang harus dilakukan router untuk melakukan ini (router menjalankan Tomat 3.4-138)? Ini adalah pengaturan router:

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

rute

(router duduk di belakang modem 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
Gaia
sumber

Jawaban:

2

Cara cepat untuk mengganti rute default yang disediakan DHCP (yaitu / 0) adalah dengan menambahkan dua / 1 rute ke gateway 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

Sementara DHCP yang disediakan rute default tetap ada, salah satu dari / 1s akan lebih disukai untuk lalu lintas IPv4 karena awalan yang lebih pendek.

Saat ini saya menggunakan retasan ini sebagai bukti konsep; Saya masih online, dan kueri tabel menunjukkan bahwa / 1 rute sedang digunakan.

[nevin-mac-mini: ~] root # route -n add -net 0.0.0.0 192.168.2.1 128.0.0.0
tambahkan 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
tambahkan net 128.0.0.0: gateway 192.168.2.1
[nevin-mac-mini: ~] root # netstat -rn
Tabel perutean

Internet:
Flags Gateway Gateway Tujuan Menggunakan Netif Kedaluwarsa
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 dapatkan 200.200.200.200
   rute ke: 200.200.200.200
tujuan: 128.0.0.0
       mask: 128.0.0.0
    gateway: 192.168.2.1
  antarmuka: en0
      bendera: 
 recvpipe sendpipe ssthresh rtt, msec rttvar hopcount mtu kedaluwarsa
       0 0 0 0 0 0 1500 0 
[nevin-mac-mini: ~] root # 
Nevin Williams
sumber
Tidak yakin saya ikuti. Tambahkan rute ini ke Pi?
Gaia
Tambahkan mereka ke perangkat apa pun yang ingin menggunakan host .5 sebagai gateway, bukan perangkat .1 yang disediakan oleh DHCP.
Nevin Williams