码迷,mamicode.com
首页 > 其他好文 > 详细

数据包进入主机后的处理流程

时间:2017-10-05 16:14:12      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:nbsp   font   处理   并发   class   共享上网   资源   .post   ble   

 

当数据包到达主机后,开始检查路由表之前,会匹配防火nat的PREROUTING链,可以在这个链子里面

设置DNAT,修改数据包的目的IP地址,当然也可以不修改。

     在路由检查时,判断路由的性质,目的是否是本机

     -------如果目的主机就是本机,那么进入filer-INPUT链----》获取服务资源后=====>返回响应===》路由表判断=====>nat-OUTPUT====>filter-OUTPUT====>nat-POSTROUTING--数据包送出

     -------如果目的主机不是本机,那么就会按照修改后目的IP来检查路由表,向目的网络或主机转发数据包,===》filer-FORWARD===>nat.POSTROUTING==>发出数据包。


1)如果当前的设置对象是一台出口主机,作为IP共享器,有两个网卡,一个内网网卡,一个外网网卡。

     当有来自内网的数据包到达时,路由表检查后在从端口输出数据包时,会检查nat-POSTROUTING链,可以在这个链里面

     定义SNAT或IP地址伪装,以达到内网共享上网的目的。

     iptables -t nat -A/I POSTROUTING -s 192.168.4.0/24 ! -d 192.168.4.0/24 -o w3len0 -j  MASQUERADE 对于来自内网的数据包,目的非内网的数据包,从端口w3len0发出的数据包,

     //不使用伪装

     iptables -t nat -A/I POSTROUTING -s 192.168.4.0/24 ! -d 192.168.4.0/24 -o w3len0 -j  SNAT --to-source 192.168.4.111

    需要对IP的来源地址进行改写,改写为发出端口的IP地址,从而达到网访问外网的目的。

2)如果是内网的主机暴露服务,可以在出口网关设置DNAT,在nat_PREROUTING中进行设置,因为这是在路由判断之前发生的,可以作端口映射。

     iptables -t nat -A/I PREROUTING   -i eth0   -p tcp --dport 80    -j  DNAT --to-destination 192.168.4.10:80

    对于目标端口是80的tcp数据包,在路由检查前修改为目标地址192.168.4.10:80,路由检查时,会按照路由表进行匹配,并发送到内网内的某台主机

 

 

    

 

数据包进入主机后的处理流程

标签:nbsp   font   处理   并发   class   共享上网   资源   .post   ble   

原文地址:http://www.cnblogs.com/justart/p/7629250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!