*实验环境:
server2:调度器|需要ipvsadm
server4|server5:后端RS|需要 arptables、httpd
iptables off
selinux disabled
*在RS中
*添加虚拟IP 可以写/etc/rc.local文件
root@server5 ~]# ip addr add 172.25.30.100 dev eth0 #临时添加
[root@server5 ~]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:b1:d4:38 brd ff:ff:ff:ff:ff:ff
inet 172.25.30.5/24 brd 172.25.30.255 scope global eth0
inet 172.25.30.100/32 scope global eth0
inet6 fe80::5054:ff:feb1:d438/64 scope link
valid_lft forever preferred_lft forever
[root@server5 ~]# yum install httpd -y
[root@server5 ~]# vim /var/www/html/index.html
[root@server5 ~]# /etc/init.d/httpd start
[root@server5 ~]# yum install arptables_jf -y
[root@server5 ~]# arptables -A OUT -s 172.25.30.100 -j mangle --mangle-ip-s 172.25.30.5
[root@server5 ~]# arptables -A IN -d 172.25.30.100 -j DROP
参数:
-A:追加规则
-s:源地址
-j:跳到目标
[root@server5 ~]# /etc/init.d/arptables_jf save
[root@server5 ~]# netstat -antlp
[root@server5 ~]# curl localhost
server5
*Server4与server5同步
[root@server4 ~]# yum install httpd -y
[root@server4 ~]# vim /var/www/html/index.html
[root@server4 ~]# /etc/init.d/httpd start
[root@server4 ~]# yum install arptables_jf -y
[root@server4 ~]# ip addr add 172.25.30.100 dev eth0
[root@server4 ~]# /etc/init.d/httpd start
[root@server4 ~]# yum install arptables_jf -y
[root@server4 ~]# arptables -A OUT -s 172.25.30.100 -j mangle --mangle-ip-s 172.25.30.4
[root@server4 ~]# arptables -A IN -d 172.25.30.100 -j DROP
[root@server4 ~]# /etc/init.d/arptables_jf save
*在server2中
[root@server2 ~]# yum install ipvsadm -y
[root@server2 ~]# ipvsadm -A -t 172.25.30.100:80 -s rr
[root@server2 ~]# ipvsadm -a -t 172.25.30.100:80 -r 172.25.30.4:80 -g
参数:
-A:也就是增加一台新的虚拟服务器
-C:清空所有的集群服务
-a:也就是在一个虚拟服务器中增加一台新的真实服务器
-t:说明虚拟服务器提供的是tcp的服务
-s:使用的调度算法,有这样几个选项
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq
-r:真实的服务器
-g:定LVS 的工作模式为直接路由模式
[root@server2 ~]# ipvsadm -a -t 172.25.30.100:80 -r 172.25.30.5:80 -g
[root@server2 ~]# /etc/init.d/ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
[root@server2 ~]# ipvsadm -l #显示内核虚拟服务器表
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.30.100:http rr
-> 172.25.30.4:http Route 1 0 0
-> 172.25.30.5:http Route 1 0 0
[root@server2 ~]#
测试:
在物理及访问虚拟IP
[root@foundation30 Desktop]# curl 172.25.30.100
server4
[root@foundation30 Desktop]# curl 172.25.30.100
server5
[root@foundation30 Desktop]# curl 172.25.30.100
server4
[root@foundation30 Desktop]# curl 172.25.30.100
server5