[freebsd] Есть ли особенности проброса порта в туннель?

Nick Kostirya nick at i11.co
Mon Jun 27 06:02:51 EEST 2022


On Mon, 27 Jun 2022 01:35:12 +0700
Eugene Grosbein <eugen at grosbein.net> wrote:

 
> > А почему на сервере Y в tcpdump видны запросы
> > 
> > 12:50:08.219710 IP X.X.X.X.41173 > 192.168.12.111.http: Flags [S], seq 3645315935, win 65535, options [mss 16344,nop,wscale 6,sackOK,TS val 1553419922 ecr 0], length 0
> > 
> > Но в ipfw нет?  
> 
> Вероятно, до прохода по ipfw после расшифровки пакеты не доходят.

То есть, не все пакеты проходят ipfw. Спасибо за информацию.

> Нужен вывод netstat -sp ipsec и netstat -sp esp
> 
> > И что означает ip в nat config ?
> > Описание "Define an ip address to use for aliasing." на понятно.  
> 
> Вместо if можно использовать ip.
> Если использовать if, то ipfw nat берет с указанного интерфейса два параметра:
> IP в качестве aliasing address (то есть, "внешнего) и MTU для PMTUD,
> для отправки ICMP need-frag при необходимости.

Спасибо.

> 
> Если же вместо if указать ip, то он будет его использовать, но ICMP need-frag отправлять не будет.
> 
> Что касается исходной проблемы: пора в деталях описывать, каким образом устанавливается IPSec-туннель:
> используется ли IKE-агент? Используется ли NAT-T? Что в выводе упомянутых выше команд
> netstat -sp ipsec и netstat -sp esp и какие счетчики растут, когда проблема воспроизводится повторно?

Это не зависит от туннеля. Пробовал l2tp (чистый, без ipsec), ipsec (ручное создание, без IKE), openvpn и, кажется, gif.

Для UDP заработало.

На внешнем сервере.

${fwcmd} nat 1 config if vmx0 same_ports reset redirect_port udp 192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
${fwcmd} add nat 1 ip from any to me 8080 in via vmx0
${fwcmd} add nat 1 ip from any 8080 to any

(192.168.10.111 - адресс другой сторону туннеля, 192.168.10.1 - это сторона туннеля)

На внутреннем нужно было добавить.

${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0
Так как ответы уходили от  192.168.1.111 через rl0 (ip на внешнем интерфейсе)

А вот ответы по TCP уходят от 192.168.10.111 через rl0 (ip туннеля)
Но правило 
${fwcmd} add fwd 192.168.10.1 all from 192.168.10.111 8080 to any out via rl0
хоть и улавливает пакет, не хочет перенаправлять пакет в туннель (наверное из-за того, что пакет уже имеет в качестве отправителя адрес туннеля).


Поэтому возник вопрос почему у UDP и TCP разные отправители и как все таки завернуть TCP назад в туннель.


More information about the freebsd mailing list