1

Резюме: я хотел бы направить трафик, инициированный с определенного IP-адреса в VPN

Существующие ответы: есть несколько вопросов и ответов (1, 2), которые касаются именно этой проблемы, но они не работают для меня.

Детали:

Настройка на Debian 8. У меня есть соединение OpenVPN на 10.8.8.134 (в удаленном режиме с удаленным 10.8.8.133), через которое я хотел бы перенаправить трафик с 192.168.10.10 .

192.168.10.10 - это созданный вручную IP на eth0 , который также получает через DHCP адрес (192.168.0.107) и маршрут по умолчанию (192.168.1.1).

Я установил OpenVPN для

  • отказаться от маршрутов с сервера (--route-noexec)
  • удалить "поддельный маршрут по умолчанию", добавленный OpenVPN (два диапазона, охватывающие весь IPV4)
  • добавить маршрутизацию к 10.8.8.1/255.255.255.255 (сервер OpenVPN gw) через 10.8.8.133 (назначенный адрес OpenVPN)

Чтобы заставить трафик с 192.168.10.10 проходить через VPN, я попытался

  • ip route add 192.168.10.10 dev tun0
  • или ip route add 192.168.10.10 via 10.8.8.133

Результирующая таблица маршрутизации

root@debian-testing:~# ip route
default via 192.168.1.1 dev eth0
10.8.8.1 via 10.8.8.133 dev tun0
10.8.8.133 dev tun0  proto kernel  scope link  src 10.8.8.134
169.254.0.0/16 dev eth0  scope link  metric 1000
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.107
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.10

Дополнительный маршрут эквивалентен использованию route 192.168.10.10 255.255.255.255 в файле конфигурации OpenVPN.

В обоих случаях работает

traceroute -s 192.168.10.10 www.google.com

отправляет пакеты на реальный шлюз по умолчанию:

root@debian-testing:~# traceroute -s 192.168.10.10 www.google.com
traceroute to www.google.com (173.194.112.20), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *

Как видно из tcpdump (и wireshark)

Почему эта маршрутизация не работает?

0