在采用tcpreplay对包实施回放前,需要对包执行预处理,tcpprep就是完成这个任务的。
tcpprep要做的处理就是生成一个cache文件,根据tcpprep wiki的介绍http://tcpreplay.synfin.net/wiki/tcpprep
其作用是将数据包两部分,通俗点讲就是区分下数据包中的服务端和客户端。当tcpreplay采用多网卡进行发送时,也可以采用tcpprep对包进行处理,
以决定回放包时,数据包走那一块网卡。同时,预处理过的数据包在进行发送时,采用tcpprep处理过后,可以以更高的速度回放。

这里主要介绍下回放IPv6数据包时,如何区分实施数据包的tcpprep工作。基本的tcpprep这部分就不具体介绍了。
通过tcpprep的wiki了解到,目前采用tcpprep进行包处理的模式有8种,包括Auto/Bridge、Auto/Router、Auto/Client、Auto/Server、IPv4/v6 matching CIDR、IPv4/v6 matching Regex、TCP/UDP Port、MAC address。

依照wiki上的文档介绍,目前新版本的tcpprep 3.4.2以上才支持IPv6数据包的处理。并且,auto模式(Bridge、Router、Client、Server)还不能够支持IPv6处理。
按照该说明,就依次验证测试下在对IPv6数据包下的处理过程。

1、IPv4/v6 matching CIDR
通过CIDR(无类别域间路由)的方式,通过手工的方式对数据包中的ip地址进行划分。
只要IPv6的CIDR书写的没有问题,tcppre可以按照设定好的路由规则进行数据包分类。
对于IPv6,其CIDR与IPv4比较相似:
比如:tcpprep --cidr=2001:da8:215:833:bce9:8592:cb2f:56be/128 --pcap=pure6-1.pcap --cachefile=pure6-1.cache
数据包就能够以这个IP为标示分成两部分了。
CIDR的IPv6规则条数还是可以有多条的,比如:
tcpprep --cidr=2001:da8:215:833:bce9:8592:cb2f:56be/128 --pcap=pure6-1.pcap --cachefile=pure6-1.cache

2、IPv4/v6 matching Regex
通过IPv6的地址的正则表达式将需要实施IP分类的地址,以正则表达式进行区分。不过在这里,正则表达式只可以有一条。

tcpprep --regex="(2001:da8:215:833:bce9:8592)\:*" --pcap=pure6-1.pcap --cachefile=pure6-1.cache
将以2001:da8:215:833:bce9:8592开头的IP地址作为一类。这里只是比较简单的IP分类,可以按照自己的需要斟酌下正则表达式了。

3、TCP/UDP Port
这里依据的是IP层以上的部分了。只要能够正常解析数据包就可以。

tcpprep  --port --pcap=pure6-1.pcap --cachefile=pure6-1.cache
依照端口划分的依据是一些常用的服务端口是确定的,比如常用的80端口,443端口。1024一下的端口都可以认为是服务端口。依据端口特征就可以区分服务端和客户端了。
在linux上,可以参考下/etc/services中服务端口一些介绍。

4、MAC address
依照MAC的地址进行数据包的分类。因为这是链路层的,与IP层的关系就比较小了,IPv4与IPv6在这种方式下,也就没有什么分别了。
这里示例一个简单的小例子:
tcpprep --mac=c4:ca:d9:a1:22:1f --pcap=pure6-1.pcap --cachefile=pure6-1.cache
这样就可以依照MAC地址的不同,实施数据包回放时的分类了。这里的MAC地址可以指定多个,多个之间以逗号分类就行。

总结下,对与IPv6数据包进行数据包预处理,自动模式是不能够用了。不过可以采用4中方式进行服务、客户端的区分。
具体采用哪一种处理方式,可以依据回放包的特征来选择。从而为tcpreplay的实施做好前期的准备。

tcpprep 对IPV6的支持的更多相关文章

  1. IOS 支付、性能调试、IPv6兼容支持等

    微信支付 支付宝支付 性能调试 IPv6兼容支持 APP引导页框架

  2. VC++ IPv6的支持

    最近根据项目需要,要在产品中添加对IpV6的支持,因此研究了一下IPV6的相关内容,Ipv6 与原来最直观的改变就是地址结构的改变,IP地址由原来的32位扩展为128,这样原来的地址结构肯定就不够用了 ...

  3. 成功扩展live555支持ipv6,同时支持RTSPServer & RTSPClient

    live555对ipv6的扩展 从live555的官网看live555的发展历史,实在是历史悠久,保守估计已经发展了至少16年以上了,同时,这也导致了live555在很多架构和考虑上面不能满足现代化的 ...

  4. iOS IPv6兼容支持和IPv6审核被拒收集整理

    最近遇到一个大坑:IPv6审核被拒问题,于是广寻解决方案,先把一些可以用资料文档收集起来备用.也希望同行能用得着. 官方文档说明:Supporting IPv6 DNS64/NAT64 Network ...

  5. iOS应用支持IPV6,就那点事儿

    原文连接   果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6 ...

  6. iOS应用支持IPV6

    一.IPV6-Only支持是啥? 首先IPV6,是对IPV4地址空间的扩充.目前当我们用iOS设备连接上Wifi.4G.3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IP ...

  7. nginx支持ipv6

    今天碰到的问题是nginx对于ipv6的请求没有日志,顺便查了一下,nginx对ipv6的支持. nginx -v查看nginx是否支持ipv6,出现--with-ipv6,则是支持nginx的,否则 ...

  8. Azure Load Balancer : 支持 IPv6

    越来越多的网站开始支持 IPv6,即使是哪些只提供 api 服务的站点也需要支持 IPv6,比如苹果应用商店中的 app 早就强制要求服务器端支持 IPv6 了.笔者在前文<Azure Load ...

  9. 配置阿里云ECS支持IPv6,解决苹果app审核失败问题

    前几天iOS的App提交给苹果审核没通过,给出的原因是:该应用在 IPv6 的环境下无法使用.检查发现:阿里云优化过的系统没有启用IPv6协议,需要配置启用一下,但是只单独启用IPv6也是无法直接提供 ...

随机推荐

  1. 封装SqliteHelper类--Sqlite数据库

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  2. 如何使用CSS实现小三角形效果

    如何使用CSS实现小三角形效果:建议:尽可能的手写代码,可以有效的提高学习效率和深度.在众多的网页效果中,都有小三角形效果的应用,能够增加特定应用的美观度,下面就给出一段实例代码,里面介绍了两种实现小 ...

  3. Java Concurrency - Condition

    Condition 将 Object 监视器方法(wait.notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待池(wa ...

  4. Slickflow.NET 开源工作流引擎基础介绍(一) -- 引擎基本服务接口API介绍

    1. 工作流术语图示                                              图1 流程图形的BPMN图形元素表示 1) 流程模型定义说明流程(Process):是企 ...

  5. HDOJ2024C语言合法标识符

    C语言合法标识符 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Su ...

  6. Entity Framework问题:ReferentialConstraint 中的依赖属性映射由存储生成的列

    原文:Entity Framework问题:ReferentialConstraint 中的依赖属性映射由存储生成的列 今天在采用Entity Framework 的Database First反向以 ...

  7. orcale 循环插入 测试数据

    以前开发一直用的是sql server   定义临时变量 循环插入数据到表中已经成为一种固定的模式,本来想orcale应该也一样吧 都是数据库.. 结果被现实无情的打击到了.在网上找办法,求大神 最后 ...

  8. TransparentBlt函数的使用注意事项

    今天客户需要在软件上需要添加一个自己公司的Logo,要求使用镂空透明的形式展现,本来以为很简单的工作没想到在MFC下这么复杂.Logo为BMP格式,白色背景. 以为和在按钮上显示控件差不多,先导入BI ...

  9. 菜鸟级asp.net 与ms sql server数据库打交道的简单总结

    using System.Data.SqlClient;using System.Data; 上面是必须的 下面说的都是用存储过程 首先是webconfig里面的连接字符串: <connecti ...

  10. 译文:Javascript-function's return

    个人理解+google翻译.如有错误,请指正.原文来自MDN:return 概要 由function返回指定值. 版本信息 实现: JavaScript 1.0, NES 2.0(NES:游戏机在欧洲 ...