当前位置:文档之家› linux系统主机双网卡环回测试要点

linux系统主机双网卡环回测试要点

Linux下双网卡主机的回环测试
一、设计任务及要求
路由器测试早期采用“回绕测试法”(Loop-back Test Method,LTM),即测试器将测试数据的目的IP地址指定为测试系统(SUT)自身的IP地址,测试器发出的测试数据将被路由器的输入单元直接返回测试系统。

单台主机多网卡的测试系统也可以进行回绕测试,在RFC2544文档中有相关描述,本实验的任务就是在linux下的双网卡主机进行回绕测试,也可叫做环回测试,待测设备可以是路由器或者交换机,主机的双网卡分别和交换机或路由器的两个接口相连,数据由一个网卡出来经过待测设备之后再从另外一个网卡回来,这就是整个实验测试的任务。

实验要求:网卡之间能够进行ICMP报文和TCP或UDP报文的传输。

二、实验的解决思路
Linux的内核对从一个网络地址发往另一个网络地址的数据包,如果这两个网络地址同属一个host,则这个数据包会直接在内部转发,根本不会放到网络设备上,本实验的解决思路是在主机上制定两个不属于任何主机的ip,再将网卡的IP地址进行绑定,增加两条相关的路由,用防火墙进行ip 地址转换。

三、实验操作
实验场景如图所示:
图1:双网卡主机测试环境如图所示
其ip地址分别为192.168.1.108(有线网卡),另一个的IP地址为192.168.1.101(无线网卡),有线网卡通过一台路由器进行连接,路由器的网关是192.168.1.1,有线网卡和无线网卡通过路由器的Dhcp自动获得分配的IP,可以连接外网。

其配置如下图所示:
图2:linux下主机的网络配置图
在主机上增加两条路由,route add 192.168.1.11 dev eth0;
route add 192.168.1.22 dev wlan0;
上面的两个ip地址是不属于任何主机,目的地址为192.168.1.11的数据包由eth0转发,目的地址为192.168.1.22的数据包由wlan0转发。

网关都是0.0.0.0,其配置如下所示:
图3:主机路由表
给这两个不属于任何主机的ip地址绑上主机网卡的MAC地址,即设置两条静态arp项。

arp -i eth0 –s 192.168.1.11 00:1B:77:07:78:F6
arp –i wlan0 –s 192.168.1.22 00:1B:24:1C:0B:B4
添加mac地址如下图所示:
图4:主机mac地址表
下面是iptables的地址转换配置:
iptables –t nat -F
iptables -t nat -A POSTROUTING -s 192.168.1.108 -d 192.168.1.11 -j SNA T
--to-source 192.168.1.22
iptables -t nat -A PREROUTING -s 192.168.1.22 -d 192.168.1.11 -j DNAT
--to-destination 192.168.1.101
iptables -t nat -A POSTROUTING -s 192.168.1.101 -d 192.168.1.22 -j SNAT
--to-source 192.168.1.11
iptables -t nat -A PREROUTING -s 192.168.1.11 -d 192.168.1.22 -j DNA T
--to-destination 192.168.1.108
这是iptables的SNAT和DNA T转换,也是本实验的关键所在。

第一行是将从192.168.1.108出去的包的源地址改为192.168.1.22;
第二行是将目的地址为192.1686.1.11的包改为192.168.1.101;
第三行是将从192.168.1.101出去的包的源地址改为192.168.1.11;
第四行是将到192.168.1.11的目的地址的包改为192.168.1.108;
Ping –I 192.168.1.108 192.168.1.11 即源地址为192.168.1.108,目的地址为192.168.1.11,发ICMP报文,下面是抓到的图
图5:目的地址为192.168.1.11的ping包
上面的ICMP报文是环回了还是内部转发了,用抓包工具进行了抓包,可以验证,ICMP报文已经在外部进行环回,抓图如下:
图6:网卡ICMP抓包显示图
抓包显示如下,从图中可以看出,源ip地址192.168.1.108转换成了191.168.1.22
图7:报文ip显示
Ping –I 192.168.1.101 192.168.1.22 即源地址为192.168.1.101,目的地址为192.168.1.22,发ICMP报文,下面是抓到的图
图8:ICMPping包图
下面是抓包工具网卡上显示的报文数,可验证报文已经在外部环回,不是内核的lo转发,如下图所示:
图9:网卡ICMP包显示图
上面是ICMP报文的环回测试,下面是TCP报文环回测试的验证。

图10:服务器的ip地址绑定
服务器绑定有线网卡108的地址,然后客户端用无线网卡101地址绑定,如下图所示:
图11:客户端的ip地址绑定
由上图可以看出,客户端是和198.168.1.22通讯,报文从无线网卡出去,而iptables则将.22的地址转换为.108的目的地址,刚好是服务器的ip地址。

上图可知,已经建立连接,并开始传输报文,报文是不是外部环回呢,由下图抓包显示,报文不是从lo转发的。

图12:网卡上TCP报文流量
抓包的源ip和目的ip如下图所示:
图13:tcp报文的抓包显示
由上图显示,从101网卡出来的报文被转换成了.11的ip地址从而在外面进行环回。

相关主题