![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 21 Всего: 207 |
ситуация следующая
есть удаленный клиент (я) и сервер (сервер) сервер находится в удаленной локалке, но прозрачно виден извне через роутер (linux), расположенный там же в локалке и имеющий внешний IP перенаправление осуществляется через DNAT в iptables на сервере запущена программа, слушающая порт 57999 после передачи первого пакета с данными от меня сервер возвращает два пакета с ACK и FIN флагами, что означает пассивное закрытие соединения программа, работающая на сервере, юзает epoll и из логов видно, что после получения пакета с данными от меня epoll_wait возвращает одно событие с флагами 0x2005 => EPOLLRDHUP | EPOLLIN | EPOLLOUT EPOLLRDHUP в свою очередь возвращается, если удалення сторона закрывает соединение из лога tcpdump на моей стороне видно, что в пакете с данными только PUSH флаг установлен вопрос, возможно ли, что DNAT каким-то непонятным образом изменяет пакет? до того как начались траблы, программа на сервере успешно неделю работала
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 21 Всего: 207 |
совсем не понятно...
грубо говоря на сервере netstat показывает валидное соединение с клиентом (присоединенный сокет в состоянии ESTABLISHED) однако в серверном процессе отсутствует соответствующий файловый дескриптор есть только дескриптор LISTEN сокета такое чувство, что где-то в ядре был инкремент счетчика ссылок, а декремента не было при завершении процесса соединение сбрасывается, что наталкивает на мысль с траблами на LISTEN сокете -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
как именно настраивается dnat и epoll ? (желательно выложить команды с фейкнутыми ай-пишниками) -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 21 Всего: 207 |
bilbobagginz,
похоже, вопрос решен все оказалось тривиально после срабатывания epoll нужно дергать accept до EAGAIN в моем случае он вызывался единожды, т. е. при повышенной нагрузке в backlog очереди могли быть еще установленные соединения они и были видны в netstat при работе сервере в некоторый момент в очереди оказывалось 2 установленных соединения но т. к. epoll события на сервере edge triggered, то второй epoll_wait уже не возвращал EPOLLIN на серверном сокете в свою очеред на клиенте по таймауту соединения рвались => я получал EPOLLRDHUP сразу после accept'а в общем простая ошибка с нетривиальным проявлением -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
я понял что я всё ещё не понял, но хорошо что ты всё разрулил.
-------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 21 Всего: 207 |
можно и подробнее ;) что не понятно? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |