【测试】在测试中构造指定源IP请求的一种方式
在测试中,有时会遇到这样一种情况,被测系统根据访问的源IP产生不同的处理(例如:基于源地址的负载均衡、根据源IP地区返回不同的响应等),这要求我们在测试时测试使用指定IP访问系统的场景。
当被测系统和测试工具(执行机)所在组网环境比较复杂时,无法要求执行机的IP地址刚好是测试要求的源IP,此时需要我们在执行机上构造这种请求
前提条件:
被测系统和测试工具(执行机)在一个二层网络中,如果二层网络中有IP伪造校验机制(例如Openstack的安全组),需要关闭。
步骤1、
在执行机上创建1个新的回环端口:
cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:1
配置该配置文件:
vim/etc/sysconfig/network-scripts/ifcfg-lo:1
实例配置如下
DEVICE=lo:1 IPADDR=171.84.0.2 NETMASK=255.255.255.255 #Ifyou'rehavingproblemswithgatedmaking127.0.0.0/8amartian, #youcanchangethistosomethingelse(255.255.255.255,forexample) ONBOOT=yes NAME=loopback:1
其中IPADDR为要构造的源IP
保存后启动该端口:
ifup lo:1
使用ifconfig可以看到该IP已配置上:
至此,已经可以在执行机上使用需要的源IP进行请求,如果使用的工具有指定请求源IP的功能,可以直接进行请求
但是此时还有一个问题,就是被测系统回复的包无法回到执行机上而是会发去网关,为了能收到回包,还需要一个步骤:
步骤2、在被测系统上添加路由:
在被测系统上使用如下命令添加路由:
route add -host 171.84.0.2 gw 172.25.1.36 dev bond1
其中171.84.0.2为构造的源IP,172.25.1.36为执行机实际与被测系统通信的IP(即网卡上的IP),bond1 为被测系统和执行机通信的网卡名
注意1:配置此路由后,被测系统将无法正常与真正的171.84.0.2通信,配置前请评估好是否存在对系统的影响
注意2:此法配置的路由在系统重启时会被丢失
测试完成成后,使用如下命令删除添加的路由:
route del -host 171.84.0.2
- 点赞
- 收藏
- 关注作者
评论(0)