Задачи (на проработку): различия между версиями

Материал из EWiki
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
SD-WAN:  
'''Производительность:'''


- Редирект пакетов, VPN
- Алгоритм классификации пакетов (перебор правил) <nowiki>https://codilime.com/blog/network-acl-processing-algorithms-optimizing-firewall-performance/</nowiki>


- Алгоритм классификации пакетов (перебор правил) <nowiki>https://codilime.com/blog/network-acl-processing-algorithms-optimizing-firewall-performance/</nowiki>
- Ограничение по количеству правил (не хватает стека?)  


- Ограничение по количеству правил (не хватает стека?)
- Переход на ringbuffer


- connection tracking?
- Подписка вместо опроса (docker, devices, info)


- ip адреса передавать как числа (можно ли тип number в JS?)


Рефакторинг:
- Формат передачи статистики (не HTTP?) (перехода на Push режим в части данных) 


Один репозиторий на ha, blocker и winHA
'''Баги:'''


Переход на ringbuffer
- bpf_skb_pull_data (загрузка всего пакета) Проверить, что skb->len равно размеру всего пакета


bpf_skb_pull_data (загрузка всего пакета) Проверить, что skb->len равно размеру всего пакета
- перехватывать панику во всех горутинах, иначе программа падает и не отписывается


be для bigendian
- Добавлять неизвестные(неразобранные) пакеты в статистику (есть потеря части информации)


разделять broadcast, multicast, unicast
- Корректное завершение при сбоях (освобождение ресурсов) 


использовать go context для завершения программы
'''Распределенная система / надежность:'''


перехватывать панику во всех горутинах, иначе программа падает и не отписывается
- Обрабатывать потерю связи HA с внешними сервисами (сейчас возможно зависание всего цикла отправки из-за недоступности http)


Логирование сервисов под linux и windows (отдельный лог файл, текст сообщений хранить в отдельном файле, логировать коды https://learn.microsoft.com/en-us/windows/win32/eventlog/message-files, так же использовать категории, изучить best practice)
- Агент в оффлайне


Обрабатывать потерю связи HA с внешними сервисами (сейчас возможно зависание всего цикла отправки из-за недоступности http)
- Формирование отказоустойчивый модели зукипепов - возможно распределенной


Сбор информации по докеру: (не создавать соединение при каждом сборе информации, а держать одно соединение; подписываться на появление новых контейнеров)
- Запуск на старом ядре с контролем его версии. При стром ядре запускаем анент, но кернел спейс запуститься не моожет. Пусть юзер часть запустится и отрапартнует пакетом на сервер о старом ядре


Также попдисывать на остальную osInfo и появление новых сетевых интерфейсов
- деградация функций 


Поддержка ipv6, добавлять неизвестные(неразобранные) пакеты в статистику
'''Качество кода и сборки:'''


ip адресса передавать как числа (можно ли тип number в JS?)
- Один репозиторий на ha, blocker и winHA


контроль соответствия userspace и kernelspace. Не давать возможность подключатся к нашему ebpf из чужой программы
- be типы для bigendian


Размер IP, TCP, UDP(?) заголовков не фиксирован. Возможны опциональные поля. Это надо учитывать. Особенно для firewall и bloccker.
- использовать go context для завершения программы (пример https://github.com/pouriyajamshidi/flat)


Формат передачи статистики (не HTTP?)


Алексей:
'''Администрирование (наблюдаемость, управляемость):'''


1. Защищенный Канал до агента
- Логирование сервисов под linux и windows (отдельный лог файл, текст сообщений хранить в отдельном файле, логировать коды https://learn.microsoft.com/en-us/windows/win32/eventlog/message-files, так же использовать категории, изучить best practice) , syslog


2. Валидация агента плюс его этп
- контроль агентом утилизации ресурсов


3. Формирование отказоустойчивый модели зукипепов - возможно распределенной
- доставка конфигурации до host agenta


4. Агент в оффлайне


5. Сислог + стандарты легирования
'''Безопасность:'''


6. Принципы аварийного отключения и корректная отписка от эбпф
- Размер IP, TCP, UDP(?) заголовков не фиксирован. Возможны опциональные поля. Это надо учитывать. Особенно для firewall и bloccker.


7. Работа при наличии эбпф и падении юзерспейса
- Защищенный Канал до агента


- Валидация агента плюс его этп


1) компиляция по частям (часть сборок будут обадать более опасными функциями, которые надо в определенных сборках исключать физиески)
== '''Сырое (не разобранное):''' ==
----


2) контроль версионности и сборки как Юзер, так и кеонел спейс модуля


3) вопрос протоколов и перехода на Push режим в части данных
SD-WAN:


4) Запуск на старом ядре с контролем его версии. При стром ядре запускаем анент, но кернел спейс запуститься не моожет. Пусть юзер часть запустится и отрапартнует пакетом на сервер о старом ядре ...
- Редирект пакетов, VPN


5) контроль агентом утилизации ресурсов и потенциальная деградация функций при его перегрузки
- Корректное переключение на другой канал (разрыв соединений по старому каналу?)

Версия от 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

- Корректное переключение на другой канал (разрыв соединений по старому каналу?)