LINUX.ORG.RU
ФорумAdmin

Помогите настроить маршрут

 , , ,


1

1

Привет!

Схема сети:

192.168.1.30_win1 -> 192.168.1.1_ubuntu_gate[openvpn_client] -> real_ip_gentoo_gate[openvpn_server] -> 192.168.0.87_win2
Openvpn поднят и работает. Конфиг сервера:
local real_ip
port 1194
proto tcp
dev tun
ca ca.crt
cert eva02.crt
key eva02.key
dh dh1024.pem
push "route 192.168.0.0 255.255.255.0"
server 10.10.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log /var/log/openvpn.log
verb 3
mute 10
Маршруты ubuntu_gate
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         мой_белый_ip     0.0.0.0        UG    100    0        0 eth1
10.10.0.0       10.10.0.5       255.255.255.0   UG    0      0        0 tun0
10.10.0.5       0.0.0.0         255.255.255.255 UH    0      0        0 tun0
Сеть_моего_белого_ip     0.0.0.0         255.255.255.192 U     0      0        0 eth1
192.168.0.0     10.10.0.5       255.255.255.0   UG    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
Проблема: не пингуется win2 с win1. Фаервол на обоих шлюзах временно в политике accept. С ubuntu_gate win2 пингуется. Вот что показывает tcpdump -nn -q -i tun0 icmp на ubuntu_gate при попытке пингануть win2 c win1:
19:30:46.210055 IP мой_белый_ip > 192.168.0.87: ICMP echo request, id 1, seq 1760, length 40
На gentoo_gate пакеты не долетают. При попытке пинговать win2 с ubuntu_gate:
19:44:41.864811 IP 10.10.0.6 > 192.168.0.87: ICMP echo request, id 2748, seq 1, length 64
Все оки, пинг идет. На win1 я пытался дописывать маршрут в 192.168.0.0/24 сеть - безрезультатно. Тем более, как я понимаю, этого и не нужно делать, ведь пакеты все равно будут уходить в шлюз по-умолчанию. route на win1
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.30     20
        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
     192.168.1.30  255.255.255.255         On-link      192.168.1.30    276
        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      192.168.1.30    276
  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      192.168.1.30    276
===========================================================================
Когда пингую win2 с win1, tcpdump -i tun0 icmp на gentoo_gate молчит. В чем может быть проблема?
P.S. Извиняюсь, если что-то не ясно описал.


Для себя похожую проблему решил сменой типа интерфейса на tap. Ещё можно NAT настройть на ubuntu_gate. Почему не работает в текущем варианте я не разобрался. :(

// Читал по диагонали, прости.

drake
()
Последнее исправление: drake (всего исправлений: 1)
Ответ на: комментарий от drake

Когда openvpn клиент был на win1 при tun интерфейсе все работало. Nat настроен, но хочется шифрования трафика.

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

Nat настроен

Нет, я о другом. Я так понял, у тебя пакеты теряются после попадания в tup0 интерфейс, если в поле «source ip» значение отличное от ip адреса ubuntu_gate. Собственно, тогда SNAT может помочь (но это костыль, конечно).

drake
()
Последнее исправление: drake (всего исправлений: 1)
Ответ на: комментарий от drake

в поле «source ip» значение отличное от ip адреса ubuntu_gate.

Вот этого момента я тоже не пойму, выходит, что в туннель пакеты попадают, но не знают куда двигать дальше. Без SNAT'a тоже должно работать.

riso
() автор топика

В логах должны быть сообщения от openvpn-сервера типа:

bad source address from client

И помочь вам должна опция конфига ″iroute″.

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

В логах как сервера, так и клиента, подобных сообщений нет. При добавлении опции iroute и тот и другой не запускаются.

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

На сервере дописал push «iroute 192.168.0.0 255.255.255.0» результат нет. Пакеты все равно не доходят до gentoo_gate, в tcpdump ничего не изменилось:

23:00:20.907855 IP мой_белый_ip > 192.168.0.87: ICMP echo request, id 1, seq 4329, length 40

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

Какой ещё

push «iroute 192.168.0.0 255.255.255.0»

Вы погуглите, как пишется iroute. Нужно на сервере в каталоге конфигурации клиента (ccd) в его файле прописывать iroute.

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

Ага, разобрался. Вот что выходи: Когда прописываю просто iroute 192.168.0.0 255.255.255.0 лог такой:

Sat Dec  7 13:32:51 2013 home_/real_ip:40213 OPTIONS IMPORT: reading client specific options from: /etc/openvpn/ccd/home_
Sat Dec  7 13:32:51 2013 home_/real_ip:40213 MULTI: Learn: 10.10.0.6 -> home_/real_ip:40213
Sat Dec  7 13:32:51 2013 home_/real_ip:40213 MULTI: primary virtual IP for home_/real_ip:40213: 10.10.0.6
Sat Dec  7 13:32:51 2013 home_/real_ip:40213 MULTI: internal route 192.168.0.0/24 -> home_/real_ip:40213
Sat Dec  7 13:32:51 2013 home_/real_ip:40213 MULTI: Learn: 192.168.0.0/24 -> home_/real_ip:40213
Sat Dec  7 13:32:51 2013 home_/real_ip:40213 REMOVE PUSH ROUTE: 'route 192.168.0.0 255.255.255.0'
Sat Dec  7 13:32:51 2013 home_/real_ip:40213 MULTI: Learn: 192.168.0.87 -> home_/real_ip:40213
Sat Dec  7 13:32:52 2013 home_/real_ip:40213 PUSH: Received control message: 'PUSH_REQUEST'
Sat Dec  7 13:32:52 2013 home_/real_ip:40213 SENT CONTROL [home_]: 'PUSH_REPLY,route 10.10.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.10.0.6 10.10.0.5' (status=1)
Если дописать еще и route 192.168.0.0 255.255.255.0, как написано в howlo openvpn'a, то появляется ошибка:
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 OPTIONS IMPORT: reading client specific options from: /etc/openvpn/ccd/home_
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 Options error: option 'route' cannot be used in this context
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 MULTI: Learn: 10.10.0.6 -> home_/real_ip:40230
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 MULTI: primary virtual IP for home_/real_ip:40230: 10.10.0.6
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 MULTI: internal route 192.168.0.0/24 -> home_/real_ip:40230
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 MULTI: Learn: 192.168.0.0/24 -> home_/real_ip:40230
Sat Dec  7 13:38:02 2013 home_/real_ip:40230 REMOVE PUSH ROUTE: 'route 192.168.0.0 255.255.255.0'
Sat Dec  7 13:38:05 2013 home_/real_ip:40230 PUSH: Received control message: 'PUSH_REQUEST'
Sat Dec  7 13:38:05 2013 home_/real_ip:40230 SENT CONTROL [home_]: 'PUSH_REPLY,route 10.10.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.10.0.6 10.10.0.5' (status=1)
Из-за REMOVE PUSH ROUTE: 'route 192.168.0.0 255.255.255.0' маршрут на клиенте не прописывается. Если добавить вручную, пакеты все равно не приходят на openvpn сервер.

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

Секундочку:

19:30:46.210055 IP мой_белый_ip > 192.168.0.87: ICMP echo request

А почему у вас в тунеле пакеты с реальным ip-адресом? У вас на Ubuntu настроен SNAT всех исходящих пакетов?

По идее, вы должны писать опцию iroute для клинета убунту для сети 192.168.1.0 255.255.255.0 и у пакетов в тунеле должны быть именно эти ip-адреса, допустим 192.168.1.30.

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

У вас на Ubuntu настроен SNAT всех исходящих пакетов?

Тут то и собака была зарыта. Спасибо! А как бы так прописать SNAT, чтобы он не затрагивал уходящие в туннель пакеты?

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

У меня eth1 это внешний интерфейс, поэтому решил так

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source real_ip
вот только теперь не ясно другое - хост win2 пингует win1, но не могу достучаться к шаре win1. Хотя с win1 видит шару win2.

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

Решил проблему, порт 445 был закрыт на win1 для других сетей. Всем спасибо за ответы!

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