Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    TCP Retransmission нет доступа к серверу

    Scheduled Pinned Locked Moved Russian
    32 Posts 4 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      HelpUser
      last edited by HelpUser

      Здравствуйте!
      Приключилась паранормальная беда))
      есть в локальной сети два сервера, на каждом сервере по сервису на одном сервере на 8090 порту на втором 9090 порту везде tomcat. Из локальной сети с соседнего сервера сервисы доступны прекрасно работают, фаерволы не настроены вообще, разрешено все на этих серверах.
      Есть замечательный pfsense свежеустановленный скачанный с оффсайта только сегодня 10.09.2019.
      Мне необходим доступ извне по портам к данным сервисам, соответственно я тут же принялся мапить порты, сервис тот который весит на порту 8090 прекрасно работает, тот что 9090 нет. Настройки правил идентичны, кроме имени ип и порта.
      После длительных проверок что я сделал не так, так проблему и не выявил, за это время сделал тесты при помощи других фаерволов а именно, ideco smb, microtic, ну и не без чистого iptables. Все сервисы прекрасно мапятся работают и доступны извне, сервис на порту 8090 и 9090. Что же тут может быть не так чем pfsensY не нравится сервис что находится на порту 9090 и ТОЛЬКО pfsensY ?
      Сервис что на порту 9090
      debian 9
      Контейнер на ProxMox
      сервис Tomcat отвечает на порту 9090 порт менять пробовал не помогает.
      Ниже диагностическая информация.

      tcpdump С Клиента откуда пытаюсь попасть

      client.jpg

      tcpdump С Сервера куда пытаюсь попасть

      server.txt

      tcpdump С pfsense

      tcpdump s pf.jpg

      Какие есть правила трансляции

      Какие правила трансляции есть.jpg

      Как выглядят правила трансляции

      как выглядят правила трансляции.jpg

      Какие есть правила в фаерволе

      правила фаервола что есть.jpg

      Как выглядят правила в фаерволе

      что в правилах фаервола.jpg

      Что попадает в правило фаервола в момент соединения

      в правилах.jpg

      1 Reply Last reply Reply Quote 0
      • K
        Konstanti
        last edited by Konstanti

        Здр
        Так Вам четко сервер все показывает
        Идет сброс соединения на порту 9090
        Вместо ответного пакета ACK
        Идет пакет R - сброс соединения
        Попробуйте посмотреть , нет ли ошибок контрольных сумм tcp пакета
        запустите tcpdump на сервере с опцией -v

        H 1 Reply Last reply Reply Quote 0
        • H
          HelpUser @Konstanti
          last edited by

          @Konstanti Я это вижу что идет сброс, и повтор от клиента, но мне почему то кажется что это pfsense делает сброс, но ПОЧЕМУ? Да возможно я не прав (возможно не сильно умен) и сброс идет от клиента, тогда тот же вопрос. Чем этому серверу не нравится pfsense?

          K 2 Replies Last reply Reply Quote 0
          • K
            Konstanti @HelpUser
            last edited by Konstanti

            @HelpUser
            Сбрасывает именно сервер , больше никто
            Причина может быть , по-моему, в том что

            1. Или файрвол на сервере
            2. Контрольные суммы tcp пакета
              Запустите tcpdump на сервере с опцией -v ( нет ли ошибок) ?
            1 Reply Last reply Reply Quote 0
            • K
              Konstanti @HelpUser
              last edited by

              @HelpUser Если будут ошибки контрольных сумм, то попробуйте в настройках PFSense System/Advanced/Networking
              Сделать так

              fe45b90f-1a86-41ab-a7f3-53e636a8dec9-image.png

              H 1 Reply Last reply Reply Quote 1
              • H
                HelpUser @Konstanti
                last edited by

                @Konstanti так делал не помогло, судя по дампу вроде бы все в порядке
                1.txt

                K 1 Reply Last reply Reply Quote 0
                • K
                  Konstanti @HelpUser
                  last edited by Konstanti

                  @HelpUser А если сделать исходящий NAT на lan интерфейсе PFSense для tcp-пакетов на порту 9090 ? Тогда сервер будет получать пакеты с ip-адресом lan интерфейса PF.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    HelpUser @Konstanti
                    last edited by

                    @Konstanti не совсем понял, привожу пример что сделал.
                    123.jpg

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Konstanti @HelpUser
                      last edited by

                      @HelpUser
                      2f8d9b70-a850-4799-8cdd-29f70f688223-image.png

                      H 1 Reply Last reply Reply Quote 0
                      • H
                        HelpUser @Konstanti
                        last edited by HelpUser

                        @Konstanti
                        В правило попадает так

                        В правило попадает так
                        WAN tcp ВнешнийИПКлиента:23148 -> 10.10.10.19:9090 (ВнешнийИПСервера:9090) TIME_WAIT:TIME_WAIT 1 / 1 52 B / 40 B
                        WAN tcp ВнешнийИПКлиента:23150 -> 10.10.10.19:9090 (ВнешнийИПСервера:9090) TIME_WAIT:TIME_WAIT 1 / 1 52 B / 40 B
                        WAN tcp 93.158.156.96:50825 -> 10.10.10.19:9090 (ВнешнийИПСервера:9090) TIME_WAIT:TIME_WAIT 1 / 1 60 B / 40 B
                        WAN tcp ВнешнийИПКлиента:23147 -> 10.10.10.19:9090 (ВнешнийИПСервера:9090) TIME_WAIT:TIME_WAIT 1 / 1 52 B / 40 B

                        да судя по дампу с сервера
                        19:22:35.391537 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
                        имясервера.9090 > 10.10.10.50.63540: Flags [R.], cksum 0xd4f7 (correct), seq 0, ack 778528866, win 0, length 0

                        теперь локальный pfsensa появляется

                        H K 2 Replies Last reply Reply Quote 0
                        • H
                          HelpUser @HelpUser
                          last edited by

                          This post is deleted!
                          K 1 Reply Last reply Reply Quote 0
                          • K
                            Konstanti @HelpUser
                            last edited by

                            @HelpUser said in TCP Retransmission нет доступа к серверу:

                            93.158.156.96

                            Если все сделано верно , то на сервере должно быть так
                            10.10.10.X:11111 -> 10.10.10.19:9090
                            Мне любопытно , ответит ли сервер сервер
                            Чтобы было Вам понятно , какой порядок настройки проброса портов с исходящим НАТ
                            покажу Вам пример с IPTABLES
                            1 действие - проброс портов на хост 192.168.1.230
                            2 действие - исходящий НАТ для пакетов 25,465 и тд для хоста 192.168.1.230 на интерфейсе tun100 адресом 10.10.100.2

                            :PREROUTING ACCEPT [0:0]
                            -A PREROUTING -d 37.XXX.XX.XX -p tcp -m multiport --destination-port 25,465,587,993 -j DNAT --to-destination 192.168.1.230
                            :POSTROUTING ACCEPT [0:0]
                            :OUTPUT ACCEPT [0:0]
                            -A POSTROUTING -o tun100 -p tcp -m multiport --destination-port 25,465,587,993 -d 192.168.1.230 -j SNAT --to-source 10.10.100.2
                            
                            H 1 Reply Last reply Reply Quote 0
                            • K
                              Konstanti @HelpUser
                              last edited by Konstanti

                              @HelpUser На сервере нет файрвола для блокирования доступа с неавторизированных ip ?
                              Обычно сброс соединения говорит о том , что порт закрыт

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                HelpUser @Konstanti
                                last edited by

                                @Konstanti нету, больше скажу, как писал выше, на месте pfsense, использовал ideco smb, microtic, ну и не без чистого iptables. Все работает.

                                1 Reply Last reply Reply Quote 0
                                • H
                                  HelpUser @Konstanti
                                  last edited by

                                  @Konstanti ну так и есть.

                                  19:36:01.898300 IP (tos 0x0, ttl 127, id 20080, offset 0, flags [DF], proto TCP (6), length 48)
                                  10.10.10.50.5614 > 10.10.10.19.9090: Flags [S], cksum 0x8a30 (correct), seq 830293417, win 8192, options [mss 1460,nop,nop,sackOK], length 0
                                  19:36:01.898341 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
                                  10.10.10.19.9090 > 10.10.10.50.5614: Flags [R.], cksum 0xd6e0 (correct), seq 0, ack 830293418, win 0, length 0
                                  19:36:01.903365 IP (tos 0x0, ttl 127, id 20081, offset 0, flags [DF], proto TCP (6), length 48)
                                  10.10.10.50.22176 > 10.10.10.19.9090: Flags [S], cksum 0x0f8c (correct), seq 3209687496, win 8192, options [mss 1460,nop,nop,sackOK], length 0
                                  19:36:01.903405 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
                                  10.10.10.19.9090 > 10.10.10.50.22176: Flags [R.], cksum 0x5c3c (correct), seq 0, ack 3209687497, win 0, length 0
                                  19:36:02.149223 IP (tos 0x0, ttl 127, id 20082, offset 0, flags [DF], proto TCP (6), length 48)
                                  10.10.10.50.30869 > 10.10.10.19.9090: Flags [S], cksum 0xdc75 (correct), seq 1433234636, win 8192, options [mss 1460,nop,nop,sackOK], length 0
                                  19:36:02.149259 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
                                  10.10.10.19.9090 > 10.10.10.50.30869: Flags [R.], cksum 0x2926 (correct), seq 0, ack 1433234637, win 0, length 0

                                  K 1 Reply Last reply Reply Quote 0
                                  • K
                                    Konstanti @HelpUser
                                    last edited by

                                    @HelpUser Можете показать вывод команды из консоли
                                    ifconfig -m
                                    на PFSense

                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      HelpUser @Konstanti
                                      last edited by

                                      @Konstanti said in TCP Retransmission нет доступа к серверу:

                                      ifconfig -m

                                      [2.4.4-RELEASE][root@pfSense.localdomain]/root: ifconfig -m
                                      vtnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                                      options=6c00bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
                                      capabilities=7d07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,NETMAP,RXCSUM_IPV6,TXCSUM_IPV6>
                                      ether 2e:ca:d7:59:74:55
                                      hwaddr 2e:ca:d7:59:74:55
                                      inet6 fe80::2cca:d7ff:fe59:7455%vtnet0 prefixlen 64 scopeid 0x1
                                      inet БелыйИПпровайдера netmask 0xffffff00 broadcast Провайдер.255
                                      nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
                                      media: Ethernet 10Gbase-T <full-duplex>
                                      status: active
                                      supported media:
                                      media 10Gbase-T mediaopt full-duplex
                                      vtnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
                                      options=6c00bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
                                      capabilities=7d07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,NETMAP,RXCSUM_IPV6,TXCSUM_IPV6>
                                      ether e2:08:58:26:b9:44
                                      hwaddr e2:08:58:26:b9:44
                                      inet6 fe80::1:1%vtnet1 prefixlen 64 scopeid 0x2
                                      inet 10.10.10.50 netmask 0xffffff00 broadcast 10.10.10.255
                                      nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                                      media: Ethernet 10Gbase-T <full-duplex>
                                      status: active
                                      supported media:
                                      media 10Gbase-T mediaopt full-duplex
                                      enc0: flags=0<> metric 0 mtu 1536
                                      nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                                      groups: enc
                                      lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
                                      options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
                                      capabilities=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
                                      inet6 ::1 prefixlen 128
                                      inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
                                      inet 127.0.0.1 netmask 0xff000000
                                      nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
                                      groups: lo
                                      pflog0: flags=100<PROMISC> metric 0 mtu 33160
                                      groups: pflog
                                      pfsync0: flags=0<> metric 0 mtu 1500
                                      groups: pfsync
                                      syncpeer: 224.0.0.240 maxupd: 128 defer: on
                                      syncok: 1

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        Konstanti @HelpUser
                                        last edited by

                                        @HelpUser Странно все это
                                        Попробуйте запустить tcpdump на lan интерфейсе PFSense , а потом в WireShark-е посмотреть , нет ли ошибок tcp пакетов ?
                                        На данный момент у Вас включен расчет контрольных сумм пакета на уровне адаптера, а не ядром (возможно , все-таки , что в этом проблема)
                                        можно еще увидеть вывод команды
                                        sysctl -a | grep hw.vtnet

                                        H 1 Reply Last reply Reply Quote 0
                                        • H
                                          HelpUser @Konstanti
                                          last edited by HelpUser

                                          @Konstanti said in TCP Retransmission нет доступа к серверу:

                                          sysctl -a | grep hw.vtnet

                                          с pfsense

                                          [2.4.4-RELEASE][root@pfSense.localdomain]/root: sysctl -a | grep hw.vtnet
                                          hw.vtnet.rx_process_limit: 512
                                          hw.vtnet.mq_max_pairs: 8
                                          hw.vtnet.mq_disable: 0
                                          hw.vtnet.lro_disable: 0
                                          hw.vtnet.tso_disable: 0
                                          hw.vtnet.csum_disable: 0spoiler

                                          С тем правилом исходящего ната, да ошибки есть.
                                          Screenshot_1.jpg
                                          Если это правило выключить то только те что писал выше retransmission

                                          K 1 Reply Last reply Reply Quote 0
                                          • K
                                            Konstanti @HelpUser
                                            last edited by Konstanti

                                            @HelpUser Можно попробовать сделать так
                                            Изменить значения этих переменных
                                            hw.vtnet.lro_disable= 0
                                            hw.vtnet.tso_disable= 0
                                            hw.vtnet.csum_disable= 0

                                            сделать их равными 1 и перегрузиться

                                            ab467377-936f-44b0-80be-b941c314bc48-image.png

                                            вот пример того , как это сделано у меня

                                            242be0b0-d360-4f3b-a18c-e327e56ccc7f-image.png

                                            H 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.