[freebsd] TCP vs UDP в контексте туннеля.

Nick Kostirya nick at i11.co
Mon Jun 27 06:11:09 EEST 2022


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

> 25.06.2022 13:47, Nick Kostirya via freebsd пишет:
> > Привет.
> > 
> > В туннель заворачивается на сервере X (192.168.10.1) вот так
> > 
> > ${fwcmd} nat 2 config if vmx0 same_ports reset redirect_port udp 192.168.10.111:8080 8080 redirect_port tcp 192.168.10.111:8080 8080
> > 
> > 
> > На сервере Y (192.168.10.111) запросы tcpdump показывает приходят на 192.168.10.111, но вот ответы...
> > 
> > UDP ответ идет с 192.168.0.111 (вне туннеля) по внешнему интерфейсу rl0
> > а
> > TCP ответ идет с 192.168.10.111 (адрес туннеля), но тоже по внешнему интерфейсу rl0
> > 
> > 
> > Почему так? 
> > 
> > 
> > Для UDP заворачиваю в туннель вот так
> > ${fwcmd} add fwd 192.168.10.1 all from me 8080 to any out via rl0
> > 
> > И все работает. Сервер видит ответ X и пересылает дальше.
> > 
> > А вот с TCP forward не работает.  
> 
> Нужен полный вывод ipfw show без каких-либо редактирований, разве что можешь заменить публичные адреса.

На W.W.W.W делаю запрос, который X.X.X.X перенаправляет в тeннель 192.168.10.1 -> 192.168.10.111
# echo hello | nc -w 1 X.X.X.X 8080



Ответ на дальнем конце туннеля (192.168.10.111), где стоит TCP сервер


# tcpdump -A -i rl0 'port 8080'
06:03:48.740345 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 3660567064 ecr 2622412667], length 0
E..<.. at .@..c..
oak.....Rm..W..*......`.............
./...N.{
06:03:49.740412 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 3660568064 ecr 2622412667], length 0
E..<.. at .@..c..
oak.....Rm..W..*......x.............
./...N.{
06:03:51.976288 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 3660570300 ecr 2622412667], length 0
E..<.. at .@..c..
oak.....Rm..W..*....................
./...N.{
06:03:56.266309 IP 192.168.10.111.http-alt > W.W.W.W.35922: Flags [S.], seq 1829934935, ack 3960482503, win 65535, options [mss 1460,nop,wscale 6,sackOK,TS val 3660574590 ecr 2622412667], length 0
E..<.. at .@..c..
oak.....Rm..W..*....................
./.~.N.{


Выше - это ответ на вот это запрос, который пришел по ng0 тунелю:

# tcpdump -A -i ng0 'port 8080'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ng0, link-type NULL (BSD loopback), capture size 262144 bytes
06:06:39.524166 IP W.W.W.W.35924 > 192.168.10.111.http-alt: Flags [S], seq 1945733787, win 64240, options [mss 1178,sackOK,TS val 2622583445 ecr 0,nop,wscale 7], length 0
E..<.. at .3...ak....
o.T..s............o.........
.Qr.........




More information about the freebsd mailing list