Netfilter
概念
- iptables
- nftables
- xtables
- nf_tables
- conntrack
- netfilter hook
- Ingress: Linux kernel 4.2 加入
- PREROUTING
- INPUT
- OUTPUT
- FORWARD
- POSTROUTING
- Egress: Linux kernel 4.2 加入
- NAT
- CT (Connection Tracking)
-
网络协议栈
- 表 (Table): (优先级 raw > mangle > nat > filter)
- raw: 决定数据包是否被状态跟踪机制处理
- Chains: OUTPUT、PREROUTING
- 内核模块: iptable_raw
- mangle: 修改数据包的信息
- Chains: PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
- 内核模块: iptable_mangle
- nat: 用于网络地址转换(IP、端口)
- Chains: PREROUTING、POSTROUTING、OUTPUT
- 内核模块: iptable_nat
- filter: 过滤数据包
- Chains: INPUT、FORWARD、OUTPUT
- 内核模块: iptables_filter.
- raw: 决定数据包是否被状态跟踪机制处理
- 链 (Chain)
- PREROUTING: 处理刚进入系统路由前的数据包,可进行 DNAT
- INPUT: 处理输入本地的数据包
- OUTPUT: 处理本地输出的数据包
- FORWARD: 处理转发到其他机器的数据包
- POSTROUTING: 处理从系统出去路由后的数据包,可进行 SNAT
- 规则 (Rule)