Linux网络架构: XDP, iptables/netfilter和iproute2/tc/ip/Qdiscs

说到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

猜你喜欢

转载自blog.csdn.net/meihualing/article/details/130529234