抓包比较 lvs /nat dr

director
首先配置地址
[root@localhost ~]# ifconfig eth0 10.0.0.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0:1 192.168.92.100 netmask 255.255.255.0 up
然后配置集群服务
[root@localhost ~]# ipvsadm -A -t 192.168.92.100:80 -s rr #创建一个http的集群服务,使用轮询的算法
[root@localhost ~]# ipvsadm -a -t 192.168.92.100:80 -r 10.0.0.1 –g #添加一个realserver,并使用DR模式。可以看到:提供服务的VIP和realserver的RIP并不在一个网段中
[root@localhost ~]# ipvsadm -a -t 192.168.92.100:80 -r 10.0.0.2 –g #同样方法再添加一个realserver
至此director配置完成
查看下IP地址的配置
  www.2cto.com  
BD)$`X4UD[2(19M$GGX55S2
 
查看下ipvsadm的配置

Y7WOI7W6{{O@P{G5[YZ4A)H
 
看到这里是route模式,并在不同网段中
realserver
首先上来先限制arp的广播和应答
[root@ww1 ~]# echo 2  >  /proc/sys/net/ipv4/conf/all/arp_announce
[root@ww1 ~]# echo 2  >  /proc/sys/net/ipv4/conf/lo/arp_announce
[root@ww1 ~]# echo 1  >  /proc/sys/net/ipv4/conf/all/arp_ignore
[root@ww1 ~]# echo 1  >  /proc/sys/net/ipv4/conf/lo/arp_ignore
然后配置地址
[root@ww1 ~]# ifconfig eth0 10.0.0.1 netmask 255.255.255.0
[root@ww1 ~]# ifconfig lo:1 192.168.92.100 netmask 255.255.255.255 broadcast 192.168.92.100 #配置VIP必须不让realserver对外广播
 
接着配置路由
[root@ww1 ~]# route add -host 192.168.92.100 dev lo:1 #请求是VIP的包,以lo:1接口出去,于是源地址还是为VIP,不会导致因为从eth0出去将源地址变为RIP
[root@ww1 ~]# route add default gw 10.0.0.3  #添加默认路由,指向私网的网关,在此实验中是我的客户机
然后启动web服务
[root@ww1 ~]# echo "web1"  >  /var/www/html/index.html #创建网页文件,web1做标示。在realserver2中以web2做标示  www.2cto.com  
[root@ww1 ~]# service httpd start #启动http服务
至此realserver1配置完成,realserver2也同样按照此配置,地址改下,网页文件不同就行
 
查看下IP地址的配置

E8U($S_5PNHFPKP1OK7EPGG
 
这里再提供下第二台realserver的网卡信息,后面验证数据传送查看mac地址时要用到

ZY5FSB`ET~H52${TA8F}P]U
 
查看下路由表

](MRBZY3WQR0M)JN{WEXM@6
 
OK 配置都已经完成,在客户机上打开 浏览器验证(浏览过程中用抓包工具抓取VMnet8网卡的数据)
多次刷新,发现每次返回的内容是不一样的

GZ30WI7K_1E`4X2I}Q_31(8

H{I]}N2~[]L_ZQ9ZML_]5H0
 
再到director上看下连接数,发现连接进来了
 
GCLC$K40VN`@[R%`~N]VU(W
 
然后抓包看看
首先看下本地主机VMnet8的mac地址
 
IE7{QF`CZB972XZ8}CC{`{5

J%R$TD4KSRAO9VO}_B5O3_N
 
这个包是本地主机发往director的包,具体每台 虚拟机和主机的mac地址可以看前文中查看IP地址的显示结果  www.2cto.com   0U24MKL]97MV559DJ17%[NS
 
这个包是director发到realserver上的,源IP和目的IP都没变,director只改变了目的mac地址

3Y__9JC)S`MJ887G6IO%$$2
 
这个包是realserver传给本地客户的包(查看源和目标mac地址可以验证),源地址还是为VIP,目的地址为本机客户。
通过抓包验证了数据的流向。
 
一个公网IP实现LVS/DR是可行的,数据包最终到达客户时,在内部网络中走的是私网的网关,相当于在公司内部饶了一个圈而已,而相比较NAT模式而言,DR模式的效率是NAT所不能比较的,在实际部署LVS中,也应该尽量使用DR模式。
 
 
 

你可能感兴趣的:(包)