TCP/IP协议栈之数据包如何穿越各层协议
在172.17.0.2上利用MySQL客户端命令访问172.17.0.3上面的3306服务,如下图: 结果经过长时间等待,最终显示连接不上。 服务器端抓包结果如下: 我们看到第一次握手数据包反复重传。 利用netstat命令,查看有没有相应的TCP状态,结果发现没有,如下图: 正常情况下,没有TCP状态,说明数据包没有进入服务器端TCP,第一次握手数据包在服务器端IP层被干掉了。 利用netstat -s命令,在服务器端TCP/IP统计参数里找线索: 上图服务器端IP层接收到20079个数据包,下图接收到20086个数据包,MySQL客户端登入过程累计增加了7个数据包,正好符合抓包文件显示的7个第一次握手数据包。 在服务器端TCP层,对比上面两张图,数据没有任何变化,说明了服务器端TCP没有收到任何数据包。 实验说明了在服务器端IP层进来的方向干掉数据包,服务器端TCP层不会有任何变化。 (2) 实验 LOCAL_OUT过滤 我们这次实验的目的是查看IP层netfilter LOCAL_OUT情况下的抓包情况。 如下图: 我们设置如下iptables命令:
具体操作如下图: 上述iptables命令设置了OUTPUT参数,意味着在netfilter LOCAL_OUT钩子处会执行上述iptables规则,即IP数据包在IP路由之前,如果匹配上述iptables规则,则会被放入目标QUEUE(默认情况下直接丢弃数据包),不会继续往下走。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |