1

У меня есть сервер Ubuntu в качестве маршрутизатора. Теперь я хотел бы направить весь трафик из подсети 1 (192.168.1.0) через соединение VPN. Это работает только тогда, когда я позволяю серверу vpn проталкивать маршруты к моему маршрутизатору, но теперь подсеть 2 (192.168.2.0) и трафик, исходящий от самого маршрутизатора, также туннелируются через vpn.

Может кто-нибудь сказать мне, как настроить маршруты, чтобы только трафик из подсети1 входил в соединение vpn, а трафик из подсети2 и с самого сервера шел прямо в интернет?

Таблица маршрутизации без vpn:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         31.19.38.254    0.0.0.0         UG    0      0        0 eth0
31.19.38.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.128 U     0      0        0 p1p1
192.168.2.0     0.0.0.0         255.255.255.128 U     0      0        0 p1p2

с включенным vpn push-шлюзом

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.9.0.41       128.0.0.0       UG    0      0        0 tun0
0.0.0.0         31.19.38.254    0.0.0.0         UG    0      0        0 eth0
10.9.0.1        10.9.0.41       255.255.255.255 UGH   0      0        0 tun0
10.9.0.41       0.0.0.0         255.255.255.255 UH    0      0        0 tun0
31.19.38.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
128.0.0.0       10.9.0.41       128.0.0.0       UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.128 U     0      0        0 p1p1
192.168.2.0     0.0.0.0         255.255.255.128 U     0      0        0 p1p2
209.95.51.97    31.19.38.254    255.255.255.255 UGH   0      0        0 eth0

Интерфейсы:

eth0      Link encap:Ethernet  HWaddr d0:50:99:26:c9:62  
          inet addr:31.19.38.94  Bcast:31.19.38.255  Mask:255.255.255.0
          inet6 addr: fe80::d250:99ff:fe26:c962/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

p1p1      Link encap:Ethernet  HWaddr 00:15:17:94:4c:16  
          inet addr:192.168.1.1  Bcast:192.168.1.127  Mask:255.255.255.128
          inet6 addr: fe80::215:17ff:fe94:4c16/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

p1p2      Link encap:Ethernet  HWaddr 00:15:17:94:4c:17  
          inet addr:192.168.2.1  Bcast:192.168.2.127  Mask:255.255.255.128
          inet6 addr: fe80::215:17ff:fe94:4c17/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.9.0.54  P-t-P:10.9.0.53  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1

1 ответ1

1

Zoredache поставил вас на правильный путь. Детали ответа следующие:

  1. Оставьте VPN как есть, это настроит таблицу маршрутизации по умолчанию, называемую main ;

  2. Теперь мы устанавливаем вторую таблицу маршрутизации для пакетов, которые не должны проходить через VPN. Мы называем новую таблицу маршрутизации novpn (я не согласен, что это большой полет):

    echo 200 novpn >> /etc/iproute2/rt_tables
    ip route add 31.19.38.0/24 dev eth0 src YourIP table novpn
    ip route add default via 31.19.38.254 table novpn
    ip route add 192.168.1.0/24 dev p1p1 table novpn
    ip route add 192.168.2.0/24 dev p1p2 table novpn
    

    Как указано выше, YourIP - это IP-адрес вашего интерфейса eth0 .

  3. Теперь мы устанавливаем правила, чтобы различать, что происходит через VPN, а что нет:

    ip rule add from 192.168.1.0/24 table main
    ip rule add from 192.168.2.0/24 table novpn
    

    Не забудьте использовать ключевое правило,

    iptables -t nat -A POSTROUTING -j MASQUERADE
    

    и разрешить пересылку ipv4, и все готово.

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