LINUX.ORG.RU
ФорумAdmin

Проблемы с OpenVPN


0

0

  Локалка 1 - Сервер1/OpenVPN - INET - Сервер2/OpenVPN - Локалка 2
192.168.1.0/24                                         192.168.2.0/24

Проблема в том, что пакеты между локалками ходят, только если на
обоих серверах есть правило в iptables/nat: 

-A POSTROUTING -s 192.168.1(или 2).0/24 ! -o eth1 -j MASQUERADE

TCP forward включен. Если это правило убрать, то пакеты доходят
только до следующего сервера и остаются (!) в tun интерфейсе, не
пытаясь идти в чужую локалку (т.е. в интерфейс eth1).

Есть идеи как это исправить?
★★★★★

Извините за недоверие, но пакеты точно не идут через eth1 в локальную сеть? Вы проверяли tcpdump/wireshark? Гораздо вероятнее, что в локальной сети проблемы с маршрутизацией.

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

Точно. На любом сервере

tcpdump -i tun0 показывает, что пакеты пришли с другой стороны.

tcpdump -i any показывает тоже самое.

Что-то типа "192.168.1.100 -> 192.168.2.100 echo request" и всё. Тишина. Попыток переслать пакет в локалку ядро не делает.

route -n говорит, что всё в порядке.

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

Мне даже неудобно за свою назойливость, но в случае 'tcpdump -i any' "192.168.1.100 -> 192.168.2.100 echo request" идут не парами?

Просто буквально вчера было то же самое.

router ★★★★★
()

в цепочках POSTROUTING во всех трёх таблицах ничего подозрительно нет? Раз уж доказано, что там пакеты появляются..

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

А маршруты для 192.168.(1|2).0/24 на каждом из VPN серверов имеются ?
Не может ли в это всё вмешиваться rp_filter ? (sysctl -a|grep rp_filter)

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

Маршруты есть - как я уже сказал в первом сообщении - пакеты доходят до второго сервера и там умирают в tun интерфейсе.

sysctl -a | grep rp_filter
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.arp_filter = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.arp_filter = 0
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.lo.arp_filter = 0
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth0.arp_filter = 0
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.eth1.arp_filter = 0
net.ipv4.conf.tun0.rp_filter = 1
net.ipv4.conf.tun0.arp_filter = 0

Первый сервер - eth1 - LAN

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

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

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

Короче, проблема рушил - слишком круто iptables настроил :-)

rp_filter не имеет значения.

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