Linux主机如何根据iptables、ip rule、ip route来转发数据包

1- 引言

Linux主机在收到和发出数据包时以什么流程查看iptables和ip rule以及ip route进而正确处理数据包流向,这个问题一直让我有些困扰。经过最近的工作积累,写个小笔记。

2- 分析

在这里插入图片描述

根据上图和经验总结以下 :
一 Linux主机发出数据包的check流程为:
1)先检查ip rule和ip route,然后根据策略路由和静态路由将数据包引入iptables;
2)iptables check时,先查看raw:OUTPUT —— mangle:OUTPUT——nat:OUTPUT——filter:OUTPUT,最后看mangle:POSTROUTING——nat:POSTROUTING
二 Linux主机接收数据包的check流程为:
1)先看raw:PREROUTING——mangle:PREROUTING——nat:PREROUTING,然后根据iptables的conntrack或者nat来查看ip rule、ip route;
2)查看路由表之后发现是发给自己的之后会继续check mangle:INPUT——filter:INPUT,最后本机收到数据包;
3)如果查看路由表之后发现是发给别的主机的则会check mangle:FORWARD——filter:FORWARD,最后check出口策略,mangle:POSTROUTING——nat:POSTROUTING。

注意:

1)这个过程中如果匹配到了drop则停止接下来的流程,丢弃数据包;
2)raw表一般应用在那些不需要做nat的情况下,以提高性能。如大量访问的web服务器,可以让80端口不再让iptables做数据包的链接跟踪处理,以提高用户的访问速度。
3)mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。
4) nat表的主要功能是修改数据包中的源、目标IP地址或端口。
5) 如果mangle表中存在修改标志位的策略,则还需查看filter表和ip rule表中是否存在过滤操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值