- 实验环境:
LB(负载调度器) |
eth0:192.168.1.105(外网) eth1:192.168.254.254(内网) |
RS1 |
|
RS2 |
|
在RS1和RS2上分别安装httpd软件,并创建各自的测试网页
RS1
yum install httpd -y
cd /var/www/html/
echo "<h1>this is RS1 Server</h1>"> index.html
service httpd start
chkconfig httpd on
RS2
yum install httpd -y
cd /var/www/html/
echo "<h1>this is RS2 Server</h1>"> index.html
service httpd start
chkconfig httpd on
- 安装ipvsadm软件包,进行配置
- 加载ip_vs模块,并查看。默认是不加载
方法一:
modprobe ip_vs
cat/proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
->RemoteAddress:Port Forward Weight ActiveConn InActConn
方法二:直接执行ipvsadm 前提是已经安装了ipvsadm软件
ipvsadm
lsmod | grep ip_vs
ip_vs 115643 0
libcrc32c 1246 1 ip_vs
- 2. 安装ipvsadm,并配置负载策略(可以使用源代码包编译安装和yum直接安装,
本实验采用yum直接安装,源码包编译安装方式请看DR模式实验)
yum install ipvsadm -y
ipvsadm -A -t 192.168.1.105:80 -s rr
ipvsadm -a -t 192.168.1.105:80 -r 192.168.254.251:80 -m-w 1
ipvsadm -a -t 192.168.1.105:80 -r 192.168.254.253:80 -m-w 1
service ipvsadmsave
service ipvsadmstart
chkconfig ipvsadmon
解释:-A表示添加一个主负载调度器 -t指定ip地址和端口 -s指定算法
-a 表示添加一个服务器节点RS,-r 指定节点RS的ip地址 -m 表示用NAT模式(-g DR模式,-i TUN模式) -w 指定权重
- 3. 配置SNAT转发策略,并开启路由转发
service iptables start
iptables-F
iptables-t nat -I POSTROUTING -s 192.168.254.0/24 -o eth0 -j SNAT --to-source192.168.1.105
serviceiptables save
serviceiptables restart
chkconfigiptables on
echo"1">/proc/sys/net/ipv4/ip_forward
具体的防火墙策略需要根据实际情况进行配置,这个是最基本的策略
- 每个RS服务器需要把网关指向LB服务器。配置完之后,测试
用客户端直接访问http://192.168.1.105 多次刷新查看结果
第一次访问:
刷新后:
查看LB的转发信息
- 附:ipvsadm工具的用法
- 添加虚拟服务器
ipvsadm -A -t 192.168.1.105:80 -s rr
2.删除虚拟服务器
ipvsadm -D -t 192.168.1.105:80
3.添加服务器节点
ipvsadm-a -t 192.168.1.105:80 -r 192.168.254.253:80 -m -w 1
-m 表示用NAT模式(-g DR模式,-i TUN模式) -w 指定权重(可以根据服务器性能进行设置,数越大,被分配的请求频率越高) -p 指定保持连接时间,在连接时间内访问,节点不变
4.删除服务器节点
ipvsadm -d -t 192.168.1.105:80 -r 192.168.254.253:80
5.清空整个配置
ipvsadm-C
6.其他参数
-A--add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也
就是增加一台新的虚拟服务器。
-E--edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D--delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C--clear 清除内核虚拟服务器表中的所有记录。
-R--restore 恢复虚拟服务器规则
-S--save 保存虚拟服务器规则,输出为-R 选项可读的格式
-a--add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器
记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e--edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d--delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l--list 显示内核虚拟服务器表
-Z--zero 虚拟服务表计数器清零(清空当前的连接数量等)
--settcp tcpfin udp 设置连接超时值
--start-daemon启动同步守护进程。他后面可以是master 或backup,用来说
明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的
VRRP功能。
--stop-daemon停止同步守护进程
-h--help 显示帮助信息