tcp нет, icmp есть - freebsd+openvpn+nat

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
lex_coder
проходил мимо
Сообщения: 3
Зарегистрирован: 2014-05-26 0:11:17

tcp нет, icmp есть - freebsd+openvpn+nat

Непрочитанное сообщение lex_coder » 2014-05-26 0:41:00

Доброй ночи.

Есть интересная проблемка, к серверу freebsd 9.2 на котором установлен сервер openvpn, подключаются клиенты с ОС gentoo и win для соединения к другому серверу от ИП данного, или, как будет лучше, получают инет через этот сервера, разницы нет, но дело в том, что icmp пакеты проходят через NAT на сервере, а tcp соединение не устанавливается, tcpdump показывает на клиентской тачке, что syn и syn/ack уходят и приходят соответственно, но дальше клиент не посылает никакого сообщения для финализации соединения.

[server]

Код: Выделить всё

vtnet0 : inet
tun0 : openvpn
ipfw show:
03100 allow tcp from 213.33.150.86 to me dst-port 22
03200 allow tcp from 10.15.0.0/24 to me dst-port 22
03300 allow ip from me to any out via vtnet0 setup keep-state
03400 divert 8668 ip from 10.15.0.0/24 to vtnet0_ext_ip out via vtnet0
03500 divert 8668 ip from ip_server_connect to vtnet0_ext in via vtnet0
03600 allow ip from me to 10.15.0.0/24 out via tun0

Код: Выделить всё

root@kot:~ # cat /etc/natd.conf
same_ports yes
use_sockets yes
log
dynamic yes
verbose yes
port natd
log_ipfw_denied no
proxy_only no
interface vtnet0
клиент:
ip route
[ip_server_connect] via 10.15.0.1 dev tun0

Код: Выделить всё

puchigus log # traceroute (ip_server_connect)
traceroute to ip_server_connect (ip_server_connect), 30 hops max, 60 byte packets
 1   (10.15.0.1)  27.503 ms  27.529 ms  27.525 ms
 2   (ip_server_connect)  27.524 ms  30.982 ms  31.039 ms
puchigus log #
клиент tcpdump

Код: Выделить всё

01:37:43.895764 IP 10.15.0.2.40798 > ip_server_connect.5005: Flags [S], seq 1411167535, win 29200, options [mss 1460,sackOK,TS val 311023436 ecr 0,nop,wscale 7], length 0
01:37:43.924422 IP ip_server_connect.5005 > 10.15.0.2.40798: Flags [S.], seq 3985324745, ack 1411167536, win 65535, options [mss 1368,nop,wscale 6,sackOK,TS val 3800491170 ecr 311023436], length 0
01:37:45.899774 IP 10.15.0.2.40798 > ip_server_connect.5005: Flags [S], seq 1411167535, win 29200, options [mss 1460,sackOK,TS val 311025440 ecr 0,nop,wscale 7], length 0
01:37:45.926919 IP ip_server_connect.5005 > 10.15.0.2.40798: Flags [S.], seq 3985324745, ack 1411167536, win 65535, options [mss 1368,nop,wscale 6,sackOK,TS val 3800491170 ecr 311025440], length 0

Сервер [ip_server_connect] - слушаем порт:
nc -lv 5005

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

lex_coder
проходил мимо
Сообщения: 3
Зарегистрирован: 2014-05-26 0:11:17

Re: tcp нет, icmp есть - freebsd+openvpn+nat

Непрочитанное сообщение lex_coder » 2014-06-01 19:19:46

Нашел решение!

Дело было в сетевой карте, отключил -rxcsum и заработало.

- Библиотека libalias, на которой основан ipfw nat, плохо дружит с функциями аппаратного ускорения расчета контрольных сумм и управления потоками, которые доступны на некотроых сетевых адаптерах. Рекомендуется выключать tcp segmentation offloading (TSO), а так же rxcsum и txcsum на том сетевом адаптере где работает нат
http://forum.lissyara.su/viewtopic.php? ... 5&start=25

Код: Выделить всё

ifconfig igb0 -rxcsum -txcsum -tso
Расширенный лог tcpdump -v

Код: Выделить всё

    10.15.0.2.57268 > ip_server_connect.http: Flags [S], cksum 0xae25 (correct), seq 1673344120, win 29200, options [mss 1460,sackOK,TS val 163922224 ecr 0,nop,wscale 7], length 0
19:57:48.251079 IP (tos 0x0, ttl 63, id 52237, offset 0, flags [DF], proto TCP (6), length 60)
    ip_server_connect.http > 10.15.0.2.57268: Flags [S.], cksum 0x05e2 (incorrect -> 0xc0a6), seq 493214540, ack 1673344121, win 65535, options [mss 1368,nop,wscale 6,sackOK,TS val 2881796964 ecr 163922224], length 0
    10.15.0.2.57268 > ip_server_connect.http: Flags [S], cksum 0xaa3b (correct), seq 1673344120, win 29200, options [mss 1460,sackOK,TS val 163923226 ecr 0,nop,wscale 7], length 0
19:57:49.251187 IP (tos 0x0, ttl 63, id 52238, offset 0, flags [DF], proto TCP (6), length 60)
    ip_server_connect.http > 10.15.0.2.57268: Flags [S.], cksum 0x05e2 (incorrect -> 0xbcbc), seq 493214540, ack 1673344121, win 65535, options [mss 1368,nop,wscale 6,sackOK,TS val 2881796964 ecr 163923226], length 0
Видно, что сумма пакета некоректна. И тут не причем, как думал первоначально, MSS и MTU.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35465
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: tcp нет, icmp есть - freebsd+openvpn+nat

Непрочитанное сообщение Alex Keda » 2014-06-01 22:29:23

чё за карточка?
у интеля хорошие сетевухи-то...
Убей их всех! Бог потом рассортирует...

lex_coder
проходил мимо
Сообщения: 3
Зарегистрирован: 2014-05-26 0:11:17

Re: tcp нет, icmp есть - freebsd+openvpn+nat

Непрочитанное сообщение lex_coder » 2014-06-01 22:59:21

В данном случае, настраивалось все на виртуалках, virtualbox и VMmanager, по ссылке в посте решения как раз на интел и показан пример решения - igb0