目前我正在使用lxc运行多个容器,并且每个容器都绑定到物理接口;说eth1-c1,eth2-c2,eth3-c3,其中ethX是物理接口,cX是容器;
每个容器都运行一个用户空间应用程序,该应用程序使用NetLink注册到Linux内核;现在当一些数据包进入接口时说eth2然后我需要通过NetLink将该数据包发送到在c2中运行的用户空间应用程序,因为eth2现在绑定到c2。
如果eth4与c3绑定,那么内核在eth4上收到的数据包应该通过netlink将数据包发送到在c3上运行的用户空间应用程序。
我们怎样才能做到这一点?我知道skb_buff包含dev名称(skb_buff-> dev-> name),这将帮助我获取接口名称(比如eth2或eth3),但是如何将其重定向到容器中运行的注册用户应用程序,因为我没有其他来自用户应用程序的详细信息,然后是pid号。