群集-lvs-dr_第1张图片

先配置内核参数 再配置vip

1.       配置内核参数

arp_announce :INTEGER 不同取值表示对网络接口上本地IP地址发出的ARP回应作出相应级别的限制:相关代码在 默认为
确定不同程度的限制,宣布对来自本地源IP地址发出Arp请求的接口 
0 - (
默认) 在任意网络接口上的任何本地地址 

1 -
尽量避免不在该网络接口子网段的本地地址. 当发起ARP请求的源IP地址是被设置应该经由路由达到此网络接口的时候很有用.此时会检查来访IP是否为所有接口上的子网段内ip之一.如果该来访IP 不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理
2 -
对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出 访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送;
当内网的机器要发送一个到外部的ip包,那么它就会请求路由器的Mac地址,发送一个arp请求,这个arp请求里面包括了自己的ip地址和Mac地址,而linux默认是使用ip的源ip地址作为arp里面的源ip地址,而不是使用发送设备上面的,如果设置 arp_announce 2,则使用发送设备上的ip
arp_ignore : INTEGER
定义对目标地址为本地IPARP询问不同的应答模式,相关代码在arp_announce 函数中 默认为
0 - (
默认值): 回应任何网络接口上对任何本地IP地址的arp查询请求
1 -
只回答目标IP地址是来访网络接口本地地址的ARP查询请求
2 -
只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内
3 -
不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应(do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied ) 
4-7 -
保留未使用 

8 -不回应所有(本地地址)的arp查询  

[root@server ~]# sysctl -a |grep announce |head -1 >>/etc/sysctl.conf

[root@server ~]# sysctl -a |grep ignore |head -1 >>/etc/sysctl.conf

[root@server ~]# vim /etc/sysctl.conf

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.lo.arp_ignore= 1

net.ipv4.conf.all.arp_ignore=1

--必须先配置内核参数才配置vip

2.配置地址

[root@server ~]# ifconfig lo:0 192.168.2.100 netmask 255.255.255.255

--vip要配置在逻辑端口上

[root@server ~]# route add -host 192.168.2.100 dev lo:0

--针对主机的路由,返回接口是lo:0

[root@server1 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.2.100   .0         255.255.255.255 UH    0      0        0 lo

192.168.2.0     .0         255.255.255.0   U     0      0        0 eth0

192.168.2.0     .0         255.255.255.0   U     0      0        0 eth1

[root@server1 ~]# [root@server ~]#

3.安装apache

[root@server ~]#

[root@server ~]# mount /dev/cdrom /mnt/cdrom

[root@server ~]# cd /mnt/cdrom/Server/

[root@server Server]# rpm -ivh httpd--22.el5.i386.rpm

[root@server Server]# vim /var/www/html/index.html

hello,test lvs-dr page from server1!

~

[root@server Server]# service httpd start

Starting httpd:                                            [  OK  ]

[root@server Server]#

4,。配置server2

[root@server Server]# scp /etc/sysctl.conf 192.168.2.30:/etc

The authenticity of host '192.168.101.10 (192.168.101.10)' can't be established.

RSA key fingerprint is bd:3f:b7:85:6d:1b:df:82:f8:4f:fc:fe:7f:57:4b:06.

Are you sure you want to continue connecting (yes/no)? y

Please type 'yes' or 'no': yes

Warning: Permanently added '192.168.101.10' (RSA) to the list of known hosts.

[email protected]'s password:

sysctl.conf                                   100% 1126     1.1KB/s   00:00   

[root@server Server]#

 

[root@server2 ~]# sysctl –p

--定义限制本地的arp请求的级别

0 默认级别,任何本地地址接口有请求的iprelay

1 在目标子网和接口的地址尽量不回应

2 使用最优的地址回应

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.all.arp_ignore = 1

[root@server2 ~]#

 

[root@server2 ~]# ifconfig lo:0 192.168.2.100 netmask 255.255.255.255

[root@server2 ~]# route  add -host 192.168.2.100 dev lo:0

 

[root@server2 ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

192.168.2.100   .0         255.255.255.255 UH    0      0        0 lo

192.168.2.0     .0         255.255.255.0   U     0      0        0 eth0

[root@server2 ~]# cd /mnt/cdrom/Server/

[root@server2 Server]# rpm -ivh httpd--22.el5.i386.rpm

 

[root@server2 Server]# vim /var/www/html/index.html

hello ,this is test page from server2!

         

[root@server2 Server]# service httpd start

4.配置director

[root@director ~]# ifconfig eth0:0 192.168.2.100 netmask 255.255.255.255

[root@director ~]# mount /dev/cdrom /mnt/cdrom

[root@director ~]# cd /mnt/cdrom/Cluster

[root@director Cluster]# ll ipvs*

-r--r--r-- 93 root root 31359 2007-01-19 ipvsadm-1.24-8.1.i386.rpm

[root@director Cluster]# rpm -ivh ipvsadm-1.24-8.1.i386.rpm

[root@director Cluster]# ipvsadm -Ln

IP Virtual Server version (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@director Cluster]#

--定义虚拟服务

[root@director Cluster]# ipvsadm -A -t 192.168.2.100:80 -s rr

--指定realserver

[root@director Cluster]# ipvsadm -a -t 192.168.2.100:80 -r 192.168.2.20 -g

[root@director Cluster]# ipvsadm -a -t 192.168.2.100:80 -r 192.168.2.30 -g

[root@director Cluster]#

[root@director Cluster]# ipvsadm -Ln

IP Virtual Server version (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.2.100:80 rr

  -> 192.168.2.30:80              Route   1      0          0        

  -> 192.168.2.20:80              Route   1      0          0         

[root@director Cluster]#

[root@director Cluster]# ipvsadm -Ln

IP Virtual Server version (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.2.100:80 rr

  -> 192.168.2.30:80              Route   1      0          4        

  -> 192.168.2.20:80              Route   1      0          4        

[root@director Cluster]#

 

群集-lvs-dr_第2张图片