快乐逍遥 发表于 2008-4-2 14:42:46

虚拟IP(IP spoofer)使用经验、教训

在开始做虚拟IP之前,在网上搜猎了不少关于虚拟IP的文章,关于虚拟IP的处理真可谓众说纷纭,但终归还是要自己实践去验证的。

按照<LoadRunner 使用虚拟IP测试流程>介绍,综合了网上一些文章介绍,实践过程大概如下:
1、设置使用ip wizard增加虚拟IP
2、重启计算机
3、在controller中,选择 Scenario -> Enable IP Spoofer,此项设置允许使用IP欺骗
4、在controller中,选择 Tools -> Expert Mode,此项设置允许专家模式。(注:网上多处文章见到有这么说法:设置多IP运行方式必须在Cotroller中设置Expert Mode才能设置多ip方式,在后来的实验中发现,此项不是必须的【5.29更新 关于Expert Mode:Expert Mode是用于给高级用户调整配置的,开启Expert Mode后,点击Tool->Option打开Option选项你会发现多了几个TabPage,其中General页中Multiple IP address mode是设置为每线程/进程分配虚拟IP】
5、按Generators按钮,设置虚拟用户生成器,将虚拟IP地址都添加进去 (注:此步骤经证明也是多余的!而且也不合理!如果有成百上千的虚拟IP,不累死你才怪!)

遇到的问题:一设定"Enable IP Spoofer"就产生大量的27792、27791错误。
Error -27792: Failed to transmit data to network: Connection reset by peer
Error -27791: Server "192.168.10.111" has shut down the connection prematurely
尝试使用抓包工具来捕获数据包,发现没有数据包发送出去。
搜索"loadrunner 27791",看到51testing有贴子说是卡巴引起的问题(http://bbs.51testing.com/thread-84169-2-1.html),关闭卡巴斯基再试,一切OK!这个地方原来有预料到杀毒软件的可能会有影响,但我只是把卡巴斯基设为"暂停保护"而没关闭,超级郁闷!!

一些经验总结:
(1)、IP wizard不是必须的,其实也可以在设置网络连接属性里手工添加IP地址。
(2)、如果使用IP wizard添加IP地址,在网络连接属性中把相关的连接停用再启用即可生效,不用重启计算机!要知道重启是件累人的事!
(3)、网上抄来的:查看脚本执行过程中是否使用了设置的虚拟ip,可以如下设置
在脚本中添加代码:
char * ip=lr_get_vuser_ip();
if(ip)
        lr_vuser_status_message("The ip address is %s",ip);
else
        lr_vuser_status_message("IP spoofing disabled");

在脚本运行过程中点击"Vusers"可以查看得到各个虚拟用户使用的虚拟IP

(4)、要虚拟很多IP的情况:在一台机上虚拟的IP跨网段的处理,可通过在服务器端添加路由来实现。

例:
【服务器】IP:192.168.0.1
【测试机】IP:192.168.0.2
测试机上添加的虚拟IP: 192.168.10.1~254

那么在【服务器】端执行以下命令:
route add 192.168.10.0 mask 255.255.255.0 192.168.0.2
注:【格式: route add 虚拟IP网段号 mask 255.255.255.0 测试机固定IP】

完成后,在【服务器】端ping 一下192.168.10.1,能通即可。

(5)为了检查虚拟IP是否如所想的那样,我采用了以下asp代码作为测试对象,每访问一次都会把访问IP、时间记录到ipinfo.txt文件。
<%
dim IPinfo,FileName
IPinfo = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IPinfo = "" Then IPinfo = Request.ServerVariables("REMOTE_ADDR") '获得访问者IP
IPinfo=IPinfo&"        "&now()
response.write IPinfo
FileName="IPinfo.txt"
'保存IP信息在IPinfo.txt文件中
call SaveTextFile(FileName, IPinfo) '保存

'写文件
Sub SaveTextFile(strFile, strFileInnew)
Dim objFSO, objOutStream, strTestFile
strTestFile = Server.Mappath(strFile)
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objOutStream = objFSO.OpenTextFile(strTestFile,8,True,False)
objOutStream.WriteLine(strFileInnew)
objOutStream.Close
Set objOutStream = Nothing
Set objFSO = Nothing
End Sub
%>

最后,感谢mfktafd的这个贴子:http://bbs.51testing.com/redirect.php?fid=67&tid=35347&goto=nextnewset 给我提供了很好的指引。
其他..待续..

[ 本帖最后由 快乐逍遥 于 2008-5-29 21:54 编辑 ]

iori 发表于 2008-4-2 15:32:11

赞一个

54111 发表于 2008-4-2 15:58:20

在赞一个:lol

小雨不停 发表于 2008-4-2 17:27:01

再再赞一个

发表于 2008-4-7 16:15:47

也来赞一个

423799223 发表于 2008-4-8 16:12:45

真不错支持一下

呵呵

快乐逍遥 发表于 2008-4-8 17:48:22

没有砸砖的么:)
其实写出来也是希望有高手指点一下~

sdusun 发表于 2008-4-9 15:25:06

不错!兄弟

wuyuzimu 发表于 2008-6-13 16:39:28

如果使用IP wizard添加IP地址,在网络连接属性中把相关的连接停用再启用即可生效,不用重启计算机!
这点真实用~~~~~~

mr.bee 发表于 2008-6-13 17:53:09

有时间验证一下楼上的看看

亚瑟王 发表于 2008-6-14 23:24:29

顶一下。分享经验,共同进步

xhz_panda 发表于 2008-9-9 14:01:41

学习下。

songyq521 发表于 2008-9-25 22:26:02

我想问下: 如果我需要使用 load generator

是不是 load generator的机器上也需要装上ip spoofer工具! 是不是每个 load generator机器都需要设置ip spoofer啊!?

songyq521 发表于 2008-9-27 14:14:54

Pls give me a answer! :lol

boymarco 发表于 2008-9-28 10:17:36

总结得很好,学到了增加不同网段的IP,谢谢分享!

Lemon_s 发表于 2008-10-14 11:10:31

总结的太好了,顶起来。

Simatu 发表于 2008-11-6 09:50:11

很好很强大!谢谢楼主分享,鲜花送上:lol

mr.bee 发表于 2008-11-6 13:28:45

好帖
页: [1]
查看完整版本: 虚拟IP(IP spoofer)使用经验、教训