LINUX.ORG.RU

История изменений

Исправление firkax, (текущая версия) :

Так ты сам и ответил. Счётчик потерь - это именно что активное действие, нужно слать пинги, ядро само это делать не будет. Ещё теоретически можно пассивно оценивать (не точно! только приблизительно) потери по tcp-траффику, но подозреваю что такое если и есть то только в драйвере tcp-протокола для динамической подстройки таймингов конкретного tcp-коннекта.

Так что повторю: напиши отправлялку пингов (только не делай это на баше с запуском команды ping - будет костыльно и убого, напиши на си с raw сокетом) с скользящим окном с затуханием статистикой потерь (окна 10 сек и 1минуту). Когда в 10сек окне потери больше 20% - считаешь линк проблемным, когда за минуту стали меньше 1% - исправившимся, переключать можно либо через system() вызовом утилиты либо ioctl() к ядру напрямую там тоже не сложно.

И повторю: не знаю зачем тебе целый файрвольный балансировщик, если задача - переключить default gateway. Это гораздо проще.

Исправление firkax, :

Так ты сам и ответил. Счётчик потерь - это именно что активное действие, нужно слать пинги, ядро само это делать не будет. Ещё теоретически можно пассивно оценивать (не точно! только приблизительно) потери по tcp-траффику, но подозреваю что такое если и есть то только в драйвере tcp-протокола для динамической подстройки таймингов конкретного tcp-коннекта.

Так что повторю: напиши отправлялку пингов (только не делай это на баше с запуском команды ping - будет костыльно и убого, напиши на си с raw сокетом) с скользящим окном с затуханием статистикой потерь (окна 10 сек и 1минуту). Когда в 10сек окне потери больше 20% - считаешь линк проблемным, когда за минуту стали меньше 1% - исправившимся, переключать можно либо через system() вызовом утилиты либо ioctl() к ядру напрямую там тоже не сложно.

И повторю: не знаю зачем тебе целый файрвольный балансировщик, если задачу - переключить default gateway. Это гораздо проще.

Исходная версия firkax, :

Так ты сам и ответил. Счётчик потерь - это именно что активное действие, нужно слать пинги, ядро само это делать не будет. Ещё теоретически можно пассивно оценивать (не точно! только приблизительно) потери по tcp-траффику, но подозреваю что такое если и есть то только в драйвере tcp-протокола для динамической подстройки таймингов конкретного tcp-коннекта.

Так что повторю: напиши отправлялку пингов (только не делай это на баше с запуском команды ping - будет костыльно и убого, напиши на си с raw сокетом) с скользящим окном с затуханием статистикой потерь (окна 10 сек и 1минуту). Когда в 10сек окне потери больше 20% - считаешь линк проблемным, когда за минуту стали меньше 1% - исправившимся, переключать можно либо через system() вызовом утилиты либо ioctl() к ядру напрямую там тоже не сложно.