wfp 转发指定进程到接口_基于进程的流量分发

f77efd22d94623861f565e66d386e13a.png

在 Linux 环境中,当我们从多网口的主机向外发出流量时,我们可以使用 路由表 ( route ),策略路由 ( ip rule ), 以及 iptables 来控制报文的流向。这些方法既可以根据 IP 五元组(source IP, dest IP, source port, dest port, TCP/UDP),也可以根据网卡接口(eth0 ~ ethx)来设置报文的发送规则。或是,创建 socket 后,将基绑定在 eth接 口 上。

但是,如果要求指定的业务进程产生,或处理的流量通过指定的网卡接口进行收发。那么就意味着,需要基于报文的进程特征来确定分发路径。IP 报文中显然是不可能带有这样的信息。解决的方案有很多种, 一种很意思的方案是 netns.

netns 是 docker 的网络虚拟化支持技术。 虽然,docker是最近开始流行的轻量级虚拟化技术,但是 netns 是很早就被引入到了 Linux 中。事实上, netns 是 namespace (命名空间)技术的网络部分。 namespace 是 linux 内核在 task_struct中对进程组管理的基础机制。进程可以在任意的命名空间里被创建, 也可以被任意的换入换出。 这个功能的实现,是通过在 task_struct 结构中(可以视为操作系统课程中的 PCB 概念),保存了进程所处的 namespace 来实现了。本质上,namespace 是一个虚拟的概念

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值