Задачи (на проработку): различия между версиями
Entcor (обсуждение | вклад) Нет описания правки |
Entcor (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
'''Производительность:''' | |||
- | - Алгоритм классификации пакетов (перебор правил) <nowiki>https://codilime.com/blog/network-acl-processing-algorithms-optimizing-firewall-performance/</nowiki> | ||
- | - Ограничение по количеству правил (не хватает стека?) | ||
- | - Переход на ringbuffer | ||
- | - Подписка вместо опроса (docker, devices, info) | ||
- ip адреса передавать как числа (можно ли тип number в JS?) | |||
- Формат передачи статистики (не HTTP?) (перехода на Push режим в части данных) | |||
'''Баги:''' | |||
- bpf_skb_pull_data (загрузка всего пакета) Проверить, что skb->len равно размеру всего пакета | |||
- перехватывать панику во всех горутинах, иначе программа падает и не отписывается | |||
- Добавлять неизвестные(неразобранные) пакеты в статистику (есть потеря части информации) | |||
- Корректное завершение при сбоях (освобождение ресурсов) | |||
'''Распределенная система / надежность:''' | |||
- Обрабатывать потерю связи HA с внешними сервисами (сейчас возможно зависание всего цикла отправки из-за недоступности http) | |||
- Агент в оффлайне | |||
- Формирование отказоустойчивый модели зукипепов - возможно распределенной | |||
- Запуск на старом ядре с контролем его версии. При стром ядре запускаем анент, но кернел спейс запуститься не моожет. Пусть юзер часть запустится и отрапартнует пакетом на сервер о старом ядре | |||
- деградация функций | |||
'''Качество кода и сборки:''' | |||
- Один репозиторий на ha, blocker и winHA | |||
- be типы для bigendian | |||
- использовать go context для завершения программы (пример https://github.com/pouriyajamshidi/flat) | |||
'''Администрирование (наблюдаемость, управляемость):''' | |||
- Логирование сервисов под linux и windows (отдельный лог файл, текст сообщений хранить в отдельном файле, логировать коды https://learn.microsoft.com/en-us/windows/win32/eventlog/message-files, так же использовать категории, изучить best practice) , syslog | |||
- контроль агентом утилизации ресурсов | |||
- доставка конфигурации до host agenta | |||
'''Безопасность:''' | |||
- Размер IP, TCP, UDP(?) заголовков не фиксирован. Возможны опциональные поля. Это надо учитывать. Особенно для firewall и bloccker. | |||
- Защищенный Канал до агента | |||
- Валидация агента плюс его этп | |||
== '''Сырое (не разобранное):''' == | |||
---- | |||
SD-WAN: | |||
- Редирект пакетов, VPN | |||
- Корректное переключение на другой канал (разрыв соединений по старому каналу?) | |||
Версия от 07:22, 9 января 2024
Производительность:
- Алгоритм классификации пакетов (перебор правил) https://codilime.com/blog/network-acl-processing-algorithms-optimizing-firewall-performance/
- Ограничение по количеству правил (не хватает стека?)
- Переход на ringbuffer
- Подписка вместо опроса (docker, devices, info)
- ip адреса передавать как числа (можно ли тип number в JS?)
- Формат передачи статистики (не HTTP?) (перехода на Push режим в части данных)
Баги:
- bpf_skb_pull_data (загрузка всего пакета) Проверить, что skb->len равно размеру всего пакета
- перехватывать панику во всех горутинах, иначе программа падает и не отписывается
- Добавлять неизвестные(неразобранные) пакеты в статистику (есть потеря части информации)
- Корректное завершение при сбоях (освобождение ресурсов)
Распределенная система / надежность:
- Обрабатывать потерю связи HA с внешними сервисами (сейчас возможно зависание всего цикла отправки из-за недоступности http)
- Агент в оффлайне
- Формирование отказоустойчивый модели зукипепов - возможно распределенной
- Запуск на старом ядре с контролем его версии. При стром ядре запускаем анент, но кернел спейс запуститься не моожет. Пусть юзер часть запустится и отрапартнует пакетом на сервер о старом ядре
- деградация функций
Качество кода и сборки:
- Один репозиторий на ha, blocker и winHA
- be типы для bigendian
- использовать go context для завершения программы (пример https://github.com/pouriyajamshidi/flat)
Администрирование (наблюдаемость, управляемость):
- Логирование сервисов под linux и windows (отдельный лог файл, текст сообщений хранить в отдельном файле, логировать коды https://learn.microsoft.com/en-us/windows/win32/eventlog/message-files, так же использовать категории, изучить best practice) , syslog
- контроль агентом утилизации ресурсов
- доставка конфигурации до host agenta
Безопасность:
- Размер IP, TCP, UDP(?) заголовков не фиксирован. Возможны опциональные поля. Это надо учитывать. Особенно для firewall и bloccker.
- Защищенный Канал до агента
- Валидация агента плюс его этп
Сырое (не разобранное):
SD-WAN:
- Редирект пакетов, VPN
- Корректное переключение на другой канал (разрыв соединений по старому каналу?)