Таким образом, BPF
программы являются объектами ядра, поскольку они выполняются в пространстве ядра. С другой стороны, пространства имен Linux, также известные как контейнеры, обеспечивают изоляцию на уровне приложений, и в этом случае все они совместно используют ядро хоста, модули ядра и т. д.
Так что я думаю, что нет смысла загружать программу bpf
для каждого контейнера, так как она также станет видимой на хосте?
Поэтому я предполагаю, что bpf
программы будут загружаться на хост и монитор/мангл/и т.д. пакеты в/из пространств имен. Учитывая, что struct sock
имеет информацию об идентификаторе пространства имен, я думаю, что только определенные типы программ bpf
смогут это сделать?