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

Openvpn и плохая маршрутизация = несколько внешних IP-адресов

У меня есть сервер OpenVPN на ubuntu и клиент (Openvpn 2.1_rc19) на windows7 x64.
Соединение установлено, и я могу им пользоваться. Однако не весь трафик направляется через интерфейс openvpn, поэтому на разных серверах у меня разные.

например: showipaddress.com IP = 208.99.113.122 видит только внешний ip моего сервера vpn
whatsmyip.com IP = 208.87.33.150 видит IP моего обычного коммутируемого соединения

Я предполагаю, что это проблема маршрутизации, поэтому она «распечатывает маршрут» из клиента Windows.

Schnittstellenliste
 27...00 ff 1a c3 26 d6 ......TAP-Win32 Adapter V9
 26...........................Vodafone
  1...........................Software Loopback Interface 1

IPv4-Routentabelle
Aktive Routen:
     Netzwerkziel    Netzwerkmaske          Gateway    Schnittstelle Metrik
          0.0.0.0          0.0.0.0         10.8.0.5         10.8.0.6      4
          0.0.0.0          0.0.0.0   Auf Verbindung    109.84.XXX.XXX     31
         10.8.0.4  255.255.255.252   Auf Verbindung          10.8.0.6    259
         10.8.0.6  255.255.255.255   Auf Verbindung          10.8.0.6    259
         10.8.0.7  255.255.255.255   Auf Verbindung          10.8.0.6    259
   109.84.XXX.XXX  255.255.255.255   Auf Verbindung    109.84.XXX.XXX    286
        127.0.0.0        255.0.0.0   Auf Verbindung         127.0.0.1   4531
        127.0.0.1  255.255.255.255   Auf Verbindung         127.0.0.1   4531
  127.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1   4531
        128.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6      4
   188.40.XXX.XXX  255.255.255.255   Auf Verbindung    109.84.XXX.XXX     30
        224.0.0.0        240.0.0.0   Auf Verbindung    109.84.XXX.XXX     31
    255.255.255.0    255.255.255.0         10.8.0.5         10.8.0.6      4
  255.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1   4531
  255.255.255.255  255.255.255.255   Auf Verbindung          10.8.0.6    259
  255.255.255.255  255.255.255.255         10.8.0.5         10.8.0.6      4
  255.255.255.255  255.255.255.255   Auf Verbindung    109.84.XXX.XXX    286
===========================================================================
St„ndige Routen:
  Keine

109.84.XXX.XXX - это внешний IP-адрес моего коммутируемого доступа (umts). 188.40.XXX.XXX - мой внешний IP-адрес сервера. 10.8.0.0 - это сеть openvpn, а 6 - клиент.

Если я удалю вторую запись 0.0.0.0, эти сайты больше не будут работать, а те, которые маршрутизируются через vpn, так как они все еще должны работать.

Что мне нужно сделать, чтобы все маршрутизировалось через openvpn?

Изменить: конфигурация сервера

local 188.40.XXX.XXX
port 1194

proto tcp
dev tun
tun-mtu 1544

key /etc/openvpn/examples/easy-rsa/2.0/keys/server.key
ca /etc/openvpn/examples/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/examples/easy-rsa/2.0/keys/server.crt
dh /etc/openvpn/examples/easy-rsa/2.0/keys/dh2048.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

keepalive 10 120

comp-lzo
max-clients 5

persist-key
persist-tun

status /tmp/openvpn-status.log
log-append  /var/log/openvpn.log
verb 4

push "redirect-gateway def1"
push "dhcp-option DNS 145.253.2.11"
push "dhcp-option DNS 145.253.2.75"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Конфигурация клиента:

client
dev tun
proto tcp
remote 188.40.XXX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
cipher AES-128-CBC
comp-lzo
verb 4

Теперь это работает.
Я удалил маршрут по умолчанию, который мне дал коммутируемый доступ, и добавил маршрут только к моему серверу openvpn. Это помогло, так как теперь openvpn может отправлять мне все маршруты, включая маршрут по умолчанию :)

В конфигурации вашего сервера у вас, вероятно, в настоящее время есть настройка redirect-gateway. Попробуйте заменить это на redirect-gateway def1.

Эта опция создаст 2 маршрута 0.0.0.0/1 и 128.0.0.0/1 вместо маршрута для 0.0.0.0/0. Поскольку эти маршруты более специфичны, их следует использовать вместо настроенного шлюза по умолчанию.