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  
抓包比较 lvs /nat dr_包
 
查看下ipvsadm的配置

抓包比较 lvs /nat dr_包_02
 
看到这里是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地址的配置

抓包比较 lvs /nat dr_包_03
 
这里再提供下第二台realserver的网卡信息,后面验证数据传送查看mac地址时要用到

抓包比较 lvs /nat dr_包_04
 
查看下路由表

抓包比较 lvs /nat dr_包_05
 
OK 配置都已经完成,在客户机上打开浏览器验证(浏览过程中用抓包工具抓取VMnet8网卡的数据)
多次刷新,发现每次返回的内容是不一样的

抓包比较 lvs /nat dr_包_06

抓包比较 lvs /nat dr_包_07
 
再到director上看下连接数,发现连接进来了
 
抓包比较 lvs /nat dr_包_08
 
然后抓包看看
首先看下本地主机VMnet8的mac地址
 
抓包比较 lvs /nat dr_包_09

抓包比较 lvs /nat dr_包_10
 
这个包是本地主机发往director的包,具体每台虚拟机和主机的mac地址可以看前文中查看IP地址的显示结果  www.2cto.com  抓包比较 lvs /nat dr_包_11
 
这个包是director发到realserver上的,源IP和目的IP都没变,director只改变了目的mac地址

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