FreeBSD - обрыв TCP соединений из-за PF
Добавлено: 2010-01-20 13:51:05
Сегодня полдня на одном им серверов борол непонятную для меня багу:
При передаче с сервера большого файла (более 120 мб) по протоколу TCP (пробовал SCP и FTP) происходит обрыв примерно на 115-125 мбайтах (т.е. столько передается, дальше рвется).
Сервер: Sun Fire X4200 M2
Данные: FreeBSD 7.2-STABLE AMD64
Сетевая: Dual Port Gigabit Ethernet Controller (Copper) (82546EB) (em0,1)
Тюнинг (пробовал по разному, пробовал оставлять пустым /etc/sysctl.conf - никак не влияет)
Межсетевой экран: PF
Ядро - стандартное (default)
Так вот - после 4 часов ковыряния было случайно выяснено, что при отключении PF проблема УХОДИТ (ничего не рвется, можно передавать 10-ками гигабайт).
Далее ковырял PF - виснет в любой комбинации (с одним правилом: pass all, в выключенным или включенным scrub-ом, с большим списком).
Если сделать pfctl -d - все сразу работает.
В итоге пришлось сделать set skip on em0 (это внутренний интерфейс, для него PF практически не нужен - он только для em1 используется реально (проброс портов в JAIL-ы) - и мне это помогло.
В общем такая вот петрушка - если кому поможет, буду рад.
При передаче с сервера большого файла (более 120 мб) по протоколу TCP (пробовал SCP и FTP) происходит обрыв примерно на 115-125 мбайтах (т.е. столько передается, дальше рвется).
Сервер: Sun Fire X4200 M2
Данные: FreeBSD 7.2-STABLE AMD64
Сетевая: Dual Port Gigabit Ethernet Controller (Copper) (82546EB) (em0,1)
Тюнинг (пробовал по разному, пробовал оставлять пустым /etc/sysctl.conf - никак не влияет)
Межсетевой экран: PF
Ядро - стандартное (default)
Так вот - после 4 часов ковыряния было случайно выяснено, что при отключении PF проблема УХОДИТ (ничего не рвется, можно передавать 10-ками гигабайт).
Далее ковырял PF - виснет в любой комбинации (с одним правилом: pass all, в выключенным или включенным scrub-ом, с большим списком).
Если сделать pfctl -d - все сразу работает.
В итоге пришлось сделать set skip on em0 (это внутренний интерфейс, для него PF практически не нужен - он только для em1 используется реально (проброс портов в JAIL-ы) - и мне это помогло.
В общем такая вот петрушка - если кому поможет, буду рад.