URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID6
Нить номер: 1760
[ Назад ]

Исходное сообщение
"nat перед ipsec"

Отправлено nerik , 10-Июл-15 13:40 
Имеется сервер на freebsd, который устанавливает ipsec-туннель с удаленным хостом в сети Интернет. За сервером есть сетка с серыми ip, сервер их натит в сеть Интернет с помощью pf. ipsec-туннель работает на racoon Правило в pf
nat pass from 192.168.1.5/32 to x.x.x.x/32 -> y.y.y.y
Почему-то трафик с внутренней сетки не заворачивается в ipsec-туннель (хост x.x.x.x как раз находится за ipsec-туннелем).
Такое впечатление, что правила spdadd срабатывают до трансляции. Нашел подобную тему dadv.livejournal.com/202710.html
Но такое впечатление, что не может быть такого у pf.

Содержание

Сообщения в этом обсуждении
"nat перед ipsec"
Отправлено eRIC , 15-Июл-15 08:26 
> Имеется сервер на freebsd, который устанавливает ipsec-туннель с удаленным хостом в сети
> Интернет. За сервером есть сетка с серыми ip, сервер их натит
> в сеть Интернет с помощью pf. ipsec-туннель работает на racoon Правило
> в pf
> nat pass from 192.168.1.5/32 to x.x.x.x/32 -> y.y.y.y
> Почему-то трафик с внутренней сетки не заворачивается в ipsec-туннель (хост x.x.x.x как
> раз находится за ipsec-туннелем).
> Такое впечатление, что правила spdadd срабатывают до трансляции. Нашел подобную тему dadv.livejournal.com/202710.html
> Но такое впечатление, что не может быть такого у pf.

зачем натить? у вас без ната должно в туннель нормально идти если в pf есть правила разрешающие прохождения туннеля туда и обратно:

Server A:

# 192.168.1.5 -->  x.x.x.x
pass out quick on $ext_if proto udp from 192.168.1.5 port = isakmp to x.x.x.x port = isakmp
pass out quick on $ext_if proto esp from 192.168.1.5 to x.x.x.x
pass out quick on $ext_if proto ipencap from 192.168.1.5 to x.x.x.x

#  x.x.x.x ---> 192.168.1.5
pass in quick on $ext_if proto udp from x.x.x.x port = isakmp to 192.168.1.5 port = isakmp
pass in quick on $ext_if proto esp from x.x.x.x to 192.168.1.5
pass in quick on $ext_if proto ipencap from x.x.x.x to 192.168.1.5


Server B (зеркальные правила):

# x.x.x.x --> 192.168.1.5
pass out quick on $ext_if proto udp from x.x.x.x port = isakmp to 192.168.1.5 port = isakmp
pass out quick on $ext_if proto esp from x.x.x.x to 192.168.1.5
pass out quick on $ext_if proto ipencap from x.x.x.x to 192.168.1.5

# 192.168.1.5 --> x.x.x.x
pass in quick on $ext_if proto udp from 192.168.1.5 port = isakmp to x.x.x.x port = isakmp
pass in quick on $ext_if proto esp from 192.168.1.5 to x.x.x.x
pass in quick on $ext_if proto ipencap from 192.168.1.5 to x.x.x.x