tcpprep 对IPV6的支持
在采用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的支持的更多相关文章
- IOS 支付、性能调试、IPv6兼容支持等
微信支付 支付宝支付 性能调试 IPv6兼容支持 APP引导页框架
- VC++ IPv6的支持
最近根据项目需要,要在产品中添加对IpV6的支持,因此研究了一下IPV6的相关内容,Ipv6 与原来最直观的改变就是地址结构的改变,IP地址由原来的32位扩展为128,这样原来的地址结构肯定就不够用了 ...
- 成功扩展live555支持ipv6,同时支持RTSPServer & RTSPClient
live555对ipv6的扩展 从live555的官网看live555的发展历史,实在是历史悠久,保守估计已经发展了至少16年以上了,同时,这也导致了live555在很多架构和考虑上面不能满足现代化的 ...
- iOS IPv6兼容支持和IPv6审核被拒收集整理
最近遇到一个大坑:IPv6审核被拒问题,于是广寻解决方案,先把一些可以用资料文档收集起来备用.也希望同行能用得着. 官方文档说明:Supporting IPv6 DNS64/NAT64 Network ...
- iOS应用支持IPV6,就那点事儿
原文连接 果然是苹果打个哈欠,iOS行业内就得起一次风暴呀.自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6 ...
- iOS应用支持IPV6
一.IPV6-Only支持是啥? 首先IPV6,是对IPV4地址空间的扩充.目前当我们用iOS设备连接上Wifi.4G.3G等网络时,设备被分配的地址均是IPV4地址,但是随着运营商和企业逐渐部署IP ...
- nginx支持ipv6
今天碰到的问题是nginx对于ipv6的请求没有日志,顺便查了一下,nginx对ipv6的支持. nginx -v查看nginx是否支持ipv6,出现--with-ipv6,则是支持nginx的,否则 ...
- Azure Load Balancer : 支持 IPv6
越来越多的网站开始支持 IPv6,即使是哪些只提供 api 服务的站点也需要支持 IPv6,比如苹果应用商店中的 app 早就强制要求服务器端支持 IPv6 了.笔者在前文<Azure Load ...
- 配置阿里云ECS支持IPv6,解决苹果app审核失败问题
前几天iOS的App提交给苹果审核没通过,给出的原因是:该应用在 IPv6 的环境下无法使用.检查发现:阿里云优化过的系统没有启用IPv6协议,需要配置启用一下,但是只单独启用IPv6也是无法直接提供 ...
随机推荐
- php 常用的好函数(持续更新)
parse_url parse_url $url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/&qu ...
- Git基本命令和GitFlow工作流
本篇博客讲解了git的一些基本的团队协作命令,和GitFlow工作流指南 git 团队协作的一些命令 1.开分支 git branch 新分支名 例如,在master分支下,新开一个开发分支: git ...
- Servlet & JSP - Cookie
关于 Cookie 的内容,参考 HTTP - Cookie 机制 获取来自客户端的 cookie request.getCookies 方法可以获取来自 HTTP 请求的 cookie,返回的是 j ...
- Spring(3.2.3) - Beans(7): 延迟实例化
默认情况下,Spring IoC 容器启动后,在初始化过程中,会以单例模式创建并配置所有使用 singleton 定义的 Bean 的实例.通常情况下,提前实例化 Bean 是可取的,因为这样在配置中 ...
- Android 命令行编译、打包生成apk文件
一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1. ...
- asp.net中Repeater控件用法笔记
大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...
- Objective-C 【关于导入类(@class 和 #import的区别)】
之前我们分析过 #include 和 #import 的区别,#import不会引起交叉编译,#import 确定一个文件只能被导入一次,使在递归包含中不会出现问题. 那么 #import 和 @cl ...
- 【知识分享】UIButton setTitle 设置为空 失效
今天开发练习超级猜图,但是碰到了一个奇怪的问题 困扰我一个晚上,低效的夜晚 可恨~ 示例说明1 [button setTitle:@"" forState:UIControlSta ...
- 指针与strncpy---内存
指针的形式的赋值和strncpy的赋值 e.SetAttr("Amt", ToString(dAmt) ); e.SetAttr("Amt", sAm ...
- Poj OpenJudge 1068 Parencodings
1.Link: http://poj.org/problem?id=1068 http://bailian.openjudge.cn/practice/1068 2.Content: Parencod ...