LINUX.ORG.RU
ФорумAdmin

OpenVPN и роутинг


0

1

Здравствуйте.

Не получается правильно настроить роутинг в OpenVPN, перечитал разные мануалы, все вроде бы хорошо, не могу понять, в чем загвоздка. Буду премного благодарен за помощь.

Суть в следующем. Есть сервер, который находится за аппаратным роутером. IP сервера в LAN: 192.168.1.106, OpenVPN крутится на порту 8566, который зафорварден на роутере.

Кусок ifconfig'a:

eth0      Link encap:Ethernet  HWaddr 20:cf:30:49:aa:1b
          inet addr:192.168.1.106  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::22cf:30ff:fe49:aa1b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10182 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7847 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1045983 (1.0 MB)  TX bytes:1167151 (1.1 MB)
          Interrupt:44 Base address:0x6000

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00                                                                                        -00
          inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:526 errors:0 dropped:0 overruns:0 frame:0
          TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:29571 (29.5 KB)  TX bytes:6252 (6.2 KB)

Серверный конфиг OpenVPN:

port 8566
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
log /var/log/openvpn.log
status /var/log/openvpn-status.log
verb 3
push "redirect-gateway"
push "dhcp-option DNS 10.8.8.254"

Клиентский конфиг:

client
dev tun
proto tcp
remote 94.X.X.X 8566
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files (x86)\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files (x86)\\OpenVPN\\config\\ell.crt"
key "C:\\Program Files (x86)\\OpenVPN\\config\\ell.key"
comp-lzo
verb 3

Форвардинг для ipv4 включен. Добавлено следующее правило для iptables: iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -j SNAT --to 192.168.1.106

Подключиться к openvpn-серверу получается, 10.8.0.1 пингуется с клиента, 192.168.1.106 тоже, но дальше пакеты не идут. Что не так? Заранее спасибо.

Что не так?

То что для задачи проброса сегмента сети через тоннель надо использовать tap и бридж.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Это если хосты внешней сети могут раутить в впн-сегмент, ОП вроде как терминирует впн и вываливается в левую подсеть, пусть натит.

x0r ★★★★★
()
Ответ на: комментарий от x0r

в качестве default router'a на клиенте ставится 10.8.0.1

то, что дальше пакеты надо направлять на 192.168.1.1 через 192.168.1.106 - это ведь уже должна быть забота сервера, клиент об этом знать не должен.

мне кажется, что неправильно что-то с форвардингом на сервере

oleg_yegorov
() автор топика
Ответ на: комментарий от oleg_yegorov

хм, глянул свои конфиги - у меня default gw это P-t-P

попробуй вообще классический маскарадинг iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

x0r ★★★★★
()
Ответ на: комментарий от adriano32
route add 192.168.1.0 mask 255.255.255.0 192.168.1.106

Пробовал, не помогает, 192.168.1.1 не пингуется, дальше 10.8.0.1 пакеты не идут

Tracing route to 192.168.1.1 over a maximum of 30 hops

  1     3 ms     2 ms     2 ms  gate-8.a45 [10.8.0.1]
  2     *        *        *     Request timed out.
  3     *        *     ^C

А вот что выдает route print на оффтопике:

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       172.16.0.1       172.16.0.2     25
          0.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6     30
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     30
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    286
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    286
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    286
     94.244.60.42  255.255.255.255       172.16.0.1       172.16.0.2     25
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
        128.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6     30
       172.16.0.0      255.255.0.0         On-link        172.16.0.2    281
       172.16.0.2  255.255.255.255         On-link        172.16.0.2    281
   172.16.255.255  255.255.255.255         On-link        172.16.0.2    281
      192.168.1.0    255.255.255.0         10.8.0.5         10.8.0.6     30
      192.168.1.0    255.255.255.0    192.168.1.106         10.8.0.6     31
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    286
        224.0.0.0        240.0.0.0         On-link        172.16.0.2    281
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    286
  255.255.255.255  255.255.255.255         On-link        172.16.0.2    281
===========================================================================
Persistent Routes:
  None

oleg_yegorov
() автор топика
Ответ на: комментарий от oleg_yegorov

фуууууу, выхлоп route print на моём ЛОРе!

а какого маршруты в 192.168.1.0 через 10.8.0.5? не через 10.8.0.1 случайно должно быть, а?

adriano32 ★★★
()

Тебе надо на роутере (либо на каждой машине в сети куда тебе нужен доступ) добавить статический маршрут к 10.8.0.0/24 через 192.168.1.106. Если это невозможно, тогда на впн-сервере необходимо маскарадить пакеты, приходящие с впн.

Также, если тебе нужно, чтоб клиенты могли друг друга видеть, необходимо добавить в конфиг сервера опцию client-to-client.

INFOMAN ★★★★★
()
Ответ на: комментарий от INFOMAN

Также sysctl net.ipv4.ip_forward на впн-сервере должен быть равен 1 и в iptables разрешена нужная тебе маршрутизация.

INFOMAN ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.