Туннель GRE over IPSEC
-
Помогите советом, не могу понять в чем проблема.
Есть два pfsense 2.2.2, связаны через интернет GRE туннелем 10.0.0.1 и 10.0.0.2 соответсвенно. Тут всё хорошо, пинги ходят во внутренние подсети 192.168.0.0 и 1.0.
Поднимаю ipsec на внешние WAN адреса в transport mode. Трафик начинает ходить через ipsec, но пинги во внутренние подсети не ходят. 10.0.0.1. видит 10.0.0.2. но если пинговать с 10.0.0.1 подсеть за другим роутером (192.168.1.0) то происходит следующее: судя по tcpdump пакет приходит на 10.0.0.2, далее проходит в подсеть 192.168.1.0. ответ идёт на 10.0.0.2 и оттуда отправляется на 10.0.0.1. На роутере тспдамп так же говорит что ответ пришёл 10.0.0.2 > 10.0.0.1 но дальше пакет никуда не идёт.
Пинговал с вебморды с GRE интерфейса (10.0.0.1) там пишет что пинги не вернулись, хотя тспдамп утверждает что 10.0.0.1 таки поймал ответ. Куда копать?:(ipsec пробовал по разному настраивать, пробовал ему адреса не внешние WAN писать, а адреса GRE туннеля.
туннель вроде даже поднимается, но не видно что трафик идёт через ipsec.в этом случае странная ситуация пинги с 10.0.0.1 на 10.0.0.2 по тспдампу по гре туннелю идут шифрованные, 10.0.0.2 отправляет шифрованный ответ, но на 10.0.0.1 ответ не приходит. а если пинговать 192.168.1.0 подсеть, то пинги проходят и возвращаются, но они не шифруются.
-
А разрешающие фаервольные правила для GRE трафика на интерфейсе IPsec обоих фаерволов вешали?
-
на gre интерфейсе any to any pass
на ipsec интерфейсе any to any pass
на wan интерфейсе на котором висит gre и ipsec 1) pass GRE 2) pass UDP:500 (ISAKMP) 3) pass ESPприкол в том что пакет уходит и возвращается, и блочится уже возвращенный. с обоих сторон такая проблема.
-
Доброе.
А чем OpenVPN между pf не устроил? Зачем такие сложности ? -
openvpn конечно хорошо но пока ковыряем то что есть:) не получится будем на опен переводить.
поковырял еще, добавил:
- правила в NAT outband для GRE интерфейса - 10.0.0.0 nonat , 192.168.0.0 no nat
- firewall-floating - TCP Any flags, State Type none
и пинги пошли! пинги шифруются и ходят, НО только те которые размером меньше примерно 1490, всё что больше не проходит. Кстати на ГРЕ интерфейсе MTU 1400.
соответственно никакие пакеты кроме мелких пингов не проходят.Куда копать дальше?:)
-
максимальный проходящий пакет 1472. мту интерфейса 1400, мсс 1300.
шифрования разные пробовал, всё тоже самое -
Доброе.
ping -l 1400 -f -t ip-адрес, где ip-адрес - адрес узла в удаленной сети.
Вместо 1400 руками подбираете максимально возможный для себя пакет (mtu).
На концах туннеля у ваших провайдеров разный размер mtu (?)Еще раз. Не мучайтесь. Настройте OpenVPN. Зачем вам туннель в туннеле ? Двойные накладные расходы.
P.s. Хозяйке на заметку:
Есть крайне интересная команда ping -n 1 -r 9 ip-адрес . Показывает (но не всегда) адреса исходящих интерфейсов устройств. И показывает тогда, когда tracert выдает *** * * *** при отрисовке маршрута.