如何利用pcap接口从数据链路层发包?

本文主要介绍了如何在tcpcopy 1.0系列中利用pcap接口发送请求数据包。首先需要了解该系列的架构,然后在在线系统上编译tcpcopy,并详细说明了tcpcopy的运行命令。关键步骤包括从eth0网卡抓包,通过eth1网卡(地址00:13:21:B2:5E:42)发送,目标网卡地址为00:0F:1F:03:F2:E6。注意事项涉及目的网卡地址与IP的匹配以及解决路由问题。
摘要由CSDN通过智能技术生成

注意,这里讲述的是1.0系列的tcpcopy

首先请先了解1.0系列架构相关内容:

http://blog.csdn.net/wangbin579/article/details/8949315
http://blog.csdn.net/wangbin579/article/details/8950282
 

了解了原理后,我们来讲解一下如何使用pcap接口来发送请求数据包

在在线系统,采用如下方式编译tcpcopy

./configure --pcap-send
代表采用pcap机制来发包,也即避开ip层,从数据链路层发包;
 

tcpcopy运行命令:

sudo ./tcpcopy -x 在线端口号@在线机器的出口网卡地址-测试机器的IP地址:测试机器的端口@下一跳的网卡地址 -s 运行intercept的机器IP地址 -o 出口网卡设备 -i 抓包网卡设备
举例:
sudo ./tcpcopy -x 80@00:13:21:B2:5E:42-122.55.176.148:18080@00:0F:1F:03:F2:E6  -s 10.110.12.162 -o eth1 -i eth0
意思是tcpcopy捕获在线80端口的应用请求到122.55.176.148机器的18080端口中去。

具体地,从网卡设备号eth0上面抓请求数据包,从00:13:21:B2:5E:42网卡地址(相应网卡设备号为eth1)发送出去,被复制的请求数据包的目的网卡地址为00:0F:1F:03:F2:E6(由于是同一网段内,下一跳的mac地址就是测试机器的mac地址),而intercept运行在10.110.12.162机器上,用来捕获路由过来的响应数据包。

注意事项:

1)在线机器的出口网卡地址不仅必须要和-o的出口网卡设备号相匹配,而且最好要和测试机器的IP地址所需要的网卡地址要匹配

2)在同一网段的情况下,测试机器的目的网卡地址最好要和测试机器的IP地址相匹配;不同网段情况下,目的mac地址为下一跳的地址(可以借助于tcpdump手段获取下一跳的mac地址,如果抓包文件没有显示,则只能采用其它手段来获取)

3)需要设置网卡地址的目的是为了解决数据包的路由问题,因为从数据链路层发送数据包,不再享受ip层提供的路由功能,只能自己显式制定

4)评论部分是针对0.9系列的评论,而非1.0系列

5)本文档更新时间为2014.8.25

评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值