免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3988 | 回复: 8
打印 上一主题 下一主题

[网络管理] (分享)linux中数据包的详细行程图(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-04 17:13 |只看该作者 |倒序浏览
本帖最后由 zhoutao0712 于 2010-02-04 17:15 编辑

学习iptables必须搞明白数据包在linux中的行程,不然会出现思路混乱 ,不明白什么样的规则
在哪个链中做。
下面的情形很典型:
1.为什么我的规则不起作用?
经过检查,这鸟人是用linux做一台web服务器,却把规则写在FORWARD链上。
2.为什么我的NAT网关的上传流量控制完全没效果?
经过检查,该鸟人使用的是HTB,tc的filter是u32分类器,却把流控规则写在WAN网卡上。
解释:HTB是egress(出口)类型的QOS算法,只能控制网卡发送数据包的速度。如果把QOS做在WAN网卡上,这时候
数据包已经“出”了WAN网卡(进了QOS队列),已经经过了POSTROUTING链的NAT,源地址已经变为公网地址了。
3.为什么内网访问telnet(或ssh)我的linux的NAT网关非常慢?上面的共享文件速度非常慢?
原来这个linux不仅充当NAT,也用作samba共享文件访问。使用iptables+tc做了QOS流量控制,上行做在mangle PREROUTING,
下载做在mangle POSTROUTING。但是,没有把内网访问该PC的数据包分出来不限制,这样会限制内网对该PC的访问。
解释:在mangle,PREROUTING可以拦截发送到本机网卡的数据包,POSTROUTING可以拦截本机网卡发送出去的数据包。
当然,这里的数据包是指iptables有能力控制的数据包,一些特殊协议的数据包iptables是拦截不到的。

下面是一张Kernel Packet Traveling Diagram。
从网上转来的:http://www.docum.org/docum.org/kptd/
大家一起学吸前辈牛人流下的精华吧
                         Network
                    -----------+-----------
                               |
                  +--------------------------+
          +-------+-------+        +---------+---------+
          |    IPCHAINS   |        |      IPTABLES     |
          |     INPUT     |        |     PREROUTING    |
          +-------+-------+        | +-------+-------+ |
                  |                | |   conntrack   | |
                  |                | +-------+-------+ |
                  |                | |    mangle     | | <- MARK WRITE  
                  |                | +-------+-------+ |
                  |                | |      IMQ      | |
                  |                | +-------+-------+ |
                  |                | |      nat      | | <- DEST REWRITE
                  |                | +-------+-------+ |     DNAT or REDIRECT or DE-MASQUERADE
                  |                +---------+---------+
                  +------------+-------------+
                               |
                       +-------+-------+
                       |      QOS      |
                       |    INGRESS    |
                       +-------+-------+
                               |
         packet is for +-------+-------+ packet is for
          this machine |     INPUT     | another address
        +--------------+    ROUTING    +--------------+
        |              |    + PDBB     |              |
        |              +---------------+              |
+-------+-------+                                     |
|   IPTABLES    |                                     |
|     INPUT     |                                     |
| +-----+-----+ |                                     |
| |   mangle  | |                                     |
| +-----+-----+ |                                     |
| |   filter  | |                                     |
| +-----+-----+ |                                     |
+-------+-------+                                     |
        |                               +---------------------------+
+-------+-------+                       |                           |
|     Local     |               +-------+-------+           +-------+-------+
|    Process    |               |    IPCHAINS   |           |    IPTABLES   |
+-------+-------+               |    FORWARD    |           |    FORWARD    |
        |                       +-------+-------+           | +-----+-----+ |
+-------+-------+                       |                   | |  mangle   | | <- MARK WRITE
|    OUTPUT     |                       |                   | +-----+-----+ |
|    ROUTING    |                       |                   | |  filter   | |
+-------+-------+                       |                   | +-----+-----+ |
        |                               |                   +-------+-------+
+-------+-------+                       |                           |
|    IPTABLES   |                       +---------------------------+
|     OUTPUT    |                                     |
| +-----------+ |                                     |
| | conntrack | |                                     |
| +-----+-----+ |                                     |
| |   mangle  | | <- MARK WRITE                       |
| +-----+-----+ |                                     |
| |    nat    | | <-DEST REWRITE                      |
| +-----+-----+ |     DNAT or REDIRECT                |
| |   filter  | |                                     |
| +-----+-----+ |                                     |
+-------+-------+                                     |
        |                                             |
        +----------------------+----------------------+
                               |
                  +------------+------------+
                  |                         |
          +-------+-------+       +---------+---------+
          |    IPCHAINS   |       |      IPTABLES     |
          |     OUTPUT    |       |    POSTROUTING    |
          +-------+-------        | +-------+-------+ |
                  |               | |    mangle     | | <- MARK WRITE  
                  |               | +-------+-------+ |
                  |               | |      nat      | | <- SOURCE REWRITE
                  |               | +-------+-------+ |      SNAT or MASQUERADE
                  |               | |      IMQ      | |
                  |               | +-------+-------+ |
                  |               +---------+---------+
                  +------------+------------+
                               |
                        +------+------+
                        |     QOS     |
                        |    EGRESS   |
                        +------+------+
                               |
                    -----------+-----------
                            Network

论坛徽章:
0
2 [报告]
发表于 2010-02-04 19:44 |只看该作者
好东东,先收下了,我也是分得不是很清楚,呵呵

论坛徽章:
0
3 [报告]
发表于 2010-02-05 10:16 |只看该作者
牛人的笔记。。

论坛徽章:
0
4 [报告]
发表于 2010-02-05 10:27 |只看该作者
我要是你老板,肯定要批评你,谁看得懂?
还不如直接放链接或者直接贴截图呢
排版反映出一个人的责任心

论坛徽章:
0
5 [报告]
发表于 2010-02-05 16:04 |只看该作者
回复 5# cocke


    有点不清楚,有没有大图的,看着太累

论坛徽章:
0
6 [报告]
发表于 2010-02-05 17:18 |只看该作者
回复 5# bigboy
刚才换了一个大图,不过帖子找不到了,再来一次吧

论坛徽章:
0
7 [报告]
发表于 2010-02-05 17:57 |只看该作者
本帖最后由 zhoutao0712 于 2010-02-05 17:59 编辑

我也搞了个大图



原文地址是
http://www.docum.org/docum.org/kptd/

论坛徽章:
0
8 [报告]
发表于 2010-02-05 18:35 |只看该作者
这样看着舒服多了。

论坛徽章:
0
9 [报告]
发表于 2010-02-07 23:15 |只看该作者
o(∩_∩)o...哈哈,受用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP