linux ifb是什么网络设备,怎么配置?

ifb是Linux内核专为流量控制设计的虚拟网络设备,它通过重定向数据包让原本只能进行出站整形的tc能够对入站流量施加精确管控,是流量整形、带宽限制和流量监控的核心组件。

Linux IFB有什么用?核心价值与工作原理

如果你用过Linux上的流量控制(tc),一定遇到过这种尴尬:你拼命研究HTB、SFQ,熟练地在eth0上配置了一大堆规则,但所有这些只能在数据包出去时生效,当大量流量涌入你的服务器时,你只能眼巴巴地看着抢不到控制权,Linux的标准ingress qdisc除了丢包和打标记,几乎做不了精细整形,这个问题在云服务器和网关场景下尤为突出。

每天一个Linux命令-chown
加载中
每天一个Linux命令-chown

从尴尬到解决:IFB的设计初衷

IFB(Intermediate Functional Block) 自Linux 2.6.27开始引入(据Linux内核官方文档),它本质上是一个虚拟网络接口,但它不像tun/tap那样负责收发数据,它的唯一使命是:提供一个可以挂载egress qdisc的容器,让来自其他接口的入口流量“绕道”经过这里,数据包进入eth0后,你通过tc的mirred动作(类似数据包“镜像重定向”)将它们全部扔进ifb0的发送队列,ifb0上挂着一个完整的egress qdisc(比如HTB),于是原本的入站流量就被当作ifb0的出站流量来处理了,这样,所有你熟悉的整形算法、分类器通通可以用到入站方向。

行业共识认为,ifb是目前在Linux上实现双向带宽管理最通用的方法。

IFB vs 直接使用ingress qdisc

直接使用ingress qdisc(parent ffff:)能做的操作很少:只能通过filter决定是丢弃还是继续转发,而ifb把流量重定向后,你可以应用任何egress qdisc,包括多层级分类器、限速、优先级队列等,换句话说,ingress qdisc是一把指甲刀,ifb是一座完整的工具房。

Linux IFB配置实战:从模块加载到流量整形

这部分我们直接上手操作,我假设你有root权限,运行的是较新的Linux发行版(内核3.0以上都支持)。

加载内核模块并创建IFB接口

modprobe ifb  numifbs=1
ip link set ifb0 up

numifbs参数指定创建几个ifb设备,默认值为2,你也可以不指定参数,之后通过ip link单独添加,现在你有了一个叫ifb0的虚拟接口,它的状态是UP的。

linux ifb是什么网络设备,怎么配置?

流量重定向的核心:tc mirred动作

要让实际流量进入ifb0,需要在数据的原始入口添加一个filter,使用mirred动作将数据包重定向(redirect)到ifb0,关键命令:

tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip prio 1 matchall action mirred egress redirect dev ifb0

这两行先在eth0上启用ingress qdisc(parent ffff:相当于入口),然后添加一个filter(matchall匹配所有IP流量),动作是mirred egress redirect dev ifb0,意思是把数据包“当成eth0的egress流量”重定向到ifb0,注意mirred有两个模式:redirect(完全接管,数据包不会再走原始路径)和mirror(复制一份,原始数据包继续走),我们这里用redirect,让所有入站流量都经ifb0处理。

在IFB上做限速:限制入口带宽为10Mbps

现在ifb0上挂一个HTB队列,限制总带宽为10M:

tc qdisc add dev ifb0 root handle 1: htb default 30
tc class add dev ifb0 parent 1: classid 1:1 htb rate 10mbit
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 10mbit

然后你可以再添加filter对特定IP做子类限制,流量重定向到ifb0后,所有整形规则立即生效,如果你用iptrafnload查看eth0的入站流量,会发现它已经被压制到10Mbps左右。

永久化配置建议

上面的命令重启后会丢失,在生产环境,建议将命令封装成shell脚本放在/etc/network/if-up.d/或使用systemd network钩子,定义ifb接口的网络配置文件(如/etc/network/interfacesifcfg-ifb0)根据发行版不同略有差异,核心是保证模块加载和接口UP。

IFB在真实场景中的流量整形应用

场景是提升文章粘性的关键,我们来看几个常见的实际用例。

云端虚拟机入带宽限制

你在一台宿主机上跑多台KVM虚拟机,每台虚拟机的虚拟网卡是Linux网桥的一个端口,你想限制每个虚拟机的入站流量(即宿主机发送给虚拟机的流量),直接限制桥端口的egress流量只能限制从虚拟机外发的流量,而限制入站则需要ifb,你可以将桥接网络上的每个端口对应一个ifb接口,流量重定向后做分别限速,这是一些公有云厂商底层虚拟化中常用到的手法。

linux ifb是什么网络设备,怎么配置?

企业网关上双向QoS

如果Linux扮演路由器的角色,连接内网和外网,你需要对外网接口的incoming(入站)和outgoing(出站)流量都施加规则,出站万用tc直接挂在外网接口;入站则用ifb接收WAN接口的入口流量,然后在ifb上按内网IP做分级限速(比如限制视频流量优先级),业内专家指出,配合ifb和tc的多级分类器,可以在一个板卡上实现企业级的双向带宽分配。

流量复制用于安全监控

与端口镜像类似,你可以把网络接口的入口流量复制到ifb上,然后在这个ifb上挂载一个sfq或pfifo队列,再配合抓包工具分析流量,而不影响主线业务,使用mirror而非redirect,原始数据包继续正常路由,而复制的一份被ifb捕获。

IFB与其他虚拟设备对比

在Linux网络堆栈中,与ifb功能相似的设备常被混淆,这里做个清理。

IFB vs veth pair

veth pair是成对的虚拟以太网接口,常用于容器网络命名空间和网桥之间的连接,它们是完全意义上的网卡,有MAC地址,能收发数据,ifb则不具备通信能力,它不出现在路由表中,也不处理ARP,veth的流量重定向可以通过TC动作或网络栈自然转发,而ifb完全是一个挂载qdisc的“空壳”。一句话:veth用于连通,ifb用于整形。

IFB vs Linux Bridge

Linux Bridge是二层交换设备,将多个接口桥接成一个广播域,IFB无法桥接流量,也不参与二层转发,但你可以把ifb接口加入网桥,不过通常没这个必要,当你需要“把某个物理口的入站流量过滤后丢到一个队列”时,ifb是首选,网桥帮不上忙。

IFB vs Tunnel(如GRE、VXLAN)

隧道设备用于封装包,像一张虚拟网卡连接远端网络,IFB不负责封装,它只负责重定向,如果做隧道带宽限制,你有两种路线:在物理出口上限速,或在隧道设备上限速,但隧道设备出站很容易,入站依然需要ifb来接管远端发来的隧道流量限制。

从上述对比可以看出,ifb在流量控制中的定位非常专一:它就是个承载eress qdisc的踏板,不掺和路由、桥接或封装。

使用IFB的注意事项与性能开销

linux ifb是什么网络设备,怎么配置?

CPU与性能开销

重定向动作消耗少量CPU,因为每个数据包要在ingress qdisc处被decoding并发送一次mirred动作,在高吞吐场景(10Gbps以上)可能成为瓶颈,如果你追求极致性能,可以尝试多队列与RPS/RFS协同,将流量分发到多个CPU核上,避免在ifb上使用过于复杂的qdisc层级。

与iptables的交互

数据包重定向到ifb后,ifb作为一个虚拟接口,iptables规则同样可以应用在它上面,但要注意流方向,重定向动作发生在iptables之前还是之后?ingress qdisc的hook点在netfilter的NF_HOOK中处于较低优先级,通常数据包先经过nf的ingress hook,然后到ifb重定向,重定向后的包再走ifb的协议栈,这意味着你在ifb上可以做iptables过滤,但原始接口上的规则已经执行过一次,要仔细规划规则顺序,避免重复过滤或跳过。

多队列与多核系统的配合

现代网卡支持多队列(RSS),每队列对应一个CPU,ifb本身不提供多队列支持,但你可以为每个物理队列创建一个ifb接口,一一对应,这比较复杂,需要结合ethtool与tc分流,在千兆环境下,单个队列通常够用,万兆及以上才需要考虑拆分。

Q&A:关于linux ifb的常见疑问解答

问:ifb只能处理入口流量吗?我可以把egress流量也重定向到ifb吗?

可以,但没必要,egress流量原本就可以在物理接口上直接整形,ifb的价值在于解决ingress方向,你强行把egress流量重定向到ifb再做一次,只会增加CPU开销和延迟,只有极少数特殊拓扑(如需要叠加多层队列)才会使用。

问:我在eth0上做了ingress重定向到ifb0,eth0自己的iptables规则还生效吗?

生效,数据包进入eth0时会先经过netfilter的PREROUTING链(ip层),然后才进入ingress qdisc,重定向到ifb0后,数据包在ifb0上会再次经过协议栈,包括iptables的FORWARD或INPUT链,注意两次处理可能带来意外过滤,建议先验证规则是否符合预期。

问:用ifb限速能实现每IP入带宽控制吗?

能,在ifb上挂HTB或CBQ,创建多个class,然后通过u32分类器按源IP(对入口来说源IP是发送端)匹配数据包,将其归类到不同class,配合ifb后,效果是对外网IP入带宽限制变得和出站同样灵活。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/497620.html

(0)
linux pads是什么软件,怎么安装?
上一篇 2026年7月15日 22:10
佛山建网站的公司哪家服务最靠谱?,口碑评价如何
下一篇 2026年7月15日 22:13

相关推荐

  • 腾讯云双11服务器首年58元是真的吗?2021年云服务器优惠活动

    腾讯云2021双11期间,1核2G6M轻量应用服务器首年低至58元,CVM 1核2G1M或轻量2核4G8M新购续费同价70元/年,这是当前性价比极高的入门级云资源方案,在云计算市场竞争日益激烈的背景下,腾讯云在2021年双11推出的“11.11智慧云集”预热活动,不仅展示了其在轻量级应用领域的深耕,更通过极具竞……

    2026年7月3日
    8500
  • TabbyCloud周年庆七夕八折是真的吗?云服务器优惠怎么买

    TabbyCloud周年庆叠加七夕节推出全场八折、特惠补货及充值返利10%活动,这是年度最佳入手时机,建议立即锁定优惠并规划长期存储预算,在这个充满浪漫气息的七夕节点,TabbyCloud选择用实实在在的让利来回应用户,对于许多依赖云端服务的企业和个人创作者而言,这不仅仅是一次促销,更是一次优化IT成本结构的绝……

    2026年6月30日
    1900
  • 安全宝cdn注册地址是什么,安全宝cdn注册中心地址错误怎么办

    遇到“安全宝cdn注册地址_注册中心地址错误”提示时,核心原因通常归结为三个方面:用户输入的域名格式不规范、DNS解析状态未生效、或浏览器本地缓存冲突,解决这一问题的关键在于“先验证域名归属权,后刷新解析状态”,通过系统化的排查流程,99%的注册地址错误均能在10分钟内自行解决,无需等待客服介入,这不仅关乎技术……

    2026年3月19日
    9800
  • 云数据库RDS支持跨AZ高可用吗,adodb如何实现跨数据库操作

    云数据库RDS完全支持跨可用区(AZ)的高可用架构,这是保障业务连续性与数据安全性的核心机制,通过主备实例部署在不同可用区,RDS能够实现机房级别的故障容灾,确保在单一数据中心发生断电、火灾或网络中断等极端情况下,数据库服务能够快速切换,最大程度降低业务停机时间,跨AZ高可用的核心架构原理物理隔离保障不同的可用……

    2026年3月28日
    8900
  • asp如何读取数字证书?asp读取数字证书实例教程

    在ASP经典开发环境中,读取客户端数字证书是实现高安全性身份认证的核心环节,通过ServerVariables集合获取证书主体信息,并结合组件解析证书链,能够构建出严密的信任验证体系,这是解决B2B或政务类系统安全登录问题的最佳实践方案,核心结论:数字证书读取的本质是信任链验证ASP读取数字证书并非简单的字符串……

    2026年3月27日
    8800
  • FTL超云618云服务器低至15元值得买吗,香港美国服务器租用价格

    FTL超云618促销期间,香港、韩国、美国及国内节点云服务器低至15元/月,独立服务器低至399元/月,且标配CN2+BGP+DDoS高防,是追求高性价比与网络稳定性的理想选择,在云计算市场竞争日益白热化的当下,寻找既便宜又稳定的服务器并非易事,许多用户常在价格与性能之间纠结,担心低价意味着低质,而高价又超出预……

    行业资讯 2026年7月12日
    7300
  • PC和手搓是啥意思,游戏里PC和手搓有什么区别?

    在互联网文化、游戏开发及数字内容创作领域,这两个词汇代表了两种截然不同的生产模式与思维方式,核心结论在于:PC通常指代“个人电脑”作为生产工具,或指代“玩家角色”这一身份属性;而“手搓”则是一种网络俚语,形象地比喻为不依赖自动化工具、预设代码或生成式AI,完全依靠个人原始能力从零开始构建内容或编写代码的过程……

    2026年2月21日
    18500
  • Akamai9亿美元收购Linode,CDN巨头布局IaaS有何深意

    Akamai斥资约9亿美元收购Linode,标志着CDN巨头向全栈基础设施即服务(IaaS)领域的关键跨越,旨在通过整合边缘计算与云原生能力,为企业提供更高效、低延迟的混合云解决方案,这场交易并非简单的资本合并,而是云计算基础设施格局的一次深度重构,Akamai作为全球领先的边缘计算平台,拥有遍布全球的庞大节点……

    2026年7月7日
    17200
  • 小鹿云香港双程cn2首月6折是真的吗?2026年高性价比云服务器推荐

    小鹿云近期推出的香港CN2双程6折、美国高防8元/月及香港独服666元/月促销,是测试低延迟业务、低成本高防需求及高性能独立服务器场景的高性价比选择,在服务器租赁市场,价格波动与线路质量往往是用户最纠结的两个点,小鹿云此次促销动作迅速,直接切中了当前中小企业出海、游戏搭建及数据备份的核心痛点,对于正在寻找稳定线……

    2026年6月27日
    3100
  • 音创服务器年费多少?一年租用价格贵不贵

    音创服务器一年费用根据配置和部署方式差异较大,云服务器方案年费约2400元起,物理服务器托管年费约9000元起,具体取决于存储容量、带宽峰值及服务商资质,影响价格的核心因素包括硬件租用成本、带宽消耗以及维护服务等级,以下从成本构成、场景预算、部署对比和服务商选择四个维度展开,帮助你在2026年做出合理决策,音创……

    2026年8月24日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注