Linux网络架构: XDP, iptables/netfilter和iproute2/tc/ip/Qdiscs
说到Linux的网络架构,就离不开谈。。。这些东西。这几个概念很容易混淆起来,但如果仔细去看,就会发现这个Linux的网络架构的设计其实是非常简洁清晰的。
·
说到Linux的网络架构,就离不开谈。。。这些东西。这几个概念很容易混淆起来,但如果仔细去看,就会发现这个Linux的网络架构的设计其实是非常简洁清晰的。
1、架构框图
首先我们先来看一张图:packet flow in Netfilter and General Networking,这个图来源于netfilter项目的官方网站。
2、网络架构分成三大块
- XDP
- netfilter
- Qdisc
| 网络架构部分名称 | 主要功能 | 说明 |
|---|---|---|
| XDP | 报文快速转发通道 | 图中绿圈圈出来的部分,可以简单的理解为工作在内核的DPDK |
| Qdisc | 流量控制, QoS | 图中红圈圈出来的部分,工作在Linux的TCP/IP协议前,主要功能就是流量分类,限速,流量整形,乱序,延时,丢包,模拟错误等,绑定在网卡 |
| Netfilter | 图中带颜色的部分,指向TCP/IP协议栈,主要用于进行IP报文处理,包括过滤,重定向,丢弃,修改等功能,可以用于构建防火墙,NAT路由等功能 | 主要由所谓的5表4链,借用table/chain/rule三级结构,在TCP/IP协议栈的各处对进出Linux TCP/IP协议栈的报文进行处理 |
3、网络架构-----对应的配置工具-----对应的原理与概念
| 层级 | 名称 | 名称 | 名称 |
| Linux架构 | XDP | Netfilter | Qdisc |
| 对应的Linux命令与工具 | iptables | iproute2, ip, tc | |
| 对应的原理与概念 | Qdisc | tables: nat, mangle, raw, filter | |
| filter | chains: INPUT, OUTPUT, PREROUTING, POST ROUTING, FORWARD | ||
| class | rules&action: masquerade, accept, reject, drop, log, mark, redirect, snat, dnat | ||
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)