02.neuvector之Enforcer容器功能介绍

本文详细介绍了Enforcer容器在neuvector系统中的角色,包括网络策略执行、数据采集上报、与controller的通信机制,以及agent和dp进程间的socket通信过程。
摘要由CSDN通过智能技术生成

原文链接

一、功能介绍

Enforcer容器在neuvector中主要负责网络与DLP/WAF的规则策略的实现以及网络数据的采集上报;

以DaemonSet的方式运行,主要有三个进程monitor、agent、dp;进程分别主要职责如下:

  1. monitor:负责监控其他进程是否正常运行以及资源消耗等;
  2. agent:负责与controller容器进行交互,通过grpc与consul实现数据上报与策略下发,其中进程与文件的策略学习与防护由agent做,网络相关具体实现由dp进程实现;
  3. dp:负责网络的数据采集上报,网络拦截告警等相关功能;

二、进程间通信

dp/ctrl.c中的dp_ctrl_loop方法与agent/dp/dp.go中的listenDP和connectDP方法监(“/tmp/dp_listen.sock"和”/tmp/ctrl_listen.sock")两个socket以实现agent与dp侧数据通信。

相关的通信图如下:

image.png

具体代码如下:
1.agent侧

1.1通过listenDP方法监听socket = “/tmp/ctrl_listen.sock” 从ctrl.c:dp_ctrl_loop获取对应的信息,然后更新威胁日志、域名转换ip、网络连
接、应用的mac地址更新

image.png

1.2 通过monitorDP方法监听 DPServer string = “/tmp/dp_listen.sock”, agent侧在service.go中可以通过dp侧获取到相关数据转化成
CLUSDatapathCounter、CLUSMetry、CLUSSessionCounter、CLUSSession、CLUSMeter等数据, Controller侧通过grpc的方法调用
service的方法获取到上述数据信息。

image.png

2.dp侧

2.1.dp/ctrl.c中的dp_ctrl_loop方法通过与agent监听socket(/tmp/dp_listen.soc)实现从agent侧获取对应的数据。(agent侧最终会将对应key的数据通过dpSendMsgExSilent等方法传输给socket)。

image.png

2.2 dp_ctrl_loop方法收到socket侧的数据后调用dp_ctrl_handler(g_ctrl_fd)函数进行遍历处理,通过识别对应的key采取对应的措施。

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天一个秃顶小技巧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值