当前位置: > 其它学习 > 网络基础 >

LVS相关实验:LVS-NAT和LVS-DR(详细步骤)

时间:2020-01-04 12:52来源:linux.it.net.cn 作者:IT
LVS相关实验:
实验一:LVS-NAT模式案例
实验示意图:

 
实验1.1:rr调度算法:
1,调整好各个实验主机的主机环境,调整IP,关闭防火墙;
2,LVS、RS1和RS2安装net-tools工具,安装http;LVS上安装ipvsadm工具;
3,将RS1和RS2的网卡网关指向LVS的DIP:





 
 
4,开启LVS主机的IP转发功能:

 
使其生效:
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1



 
5,LVS配置定义集群:
1,配置调度算法,工作模式# ipvsadm -A -t 172.16.9.100:80 -s rr 



 
 
2,将后端的RS加入集群:



 
 
[root@lvs ~]# ipvsadm -a -t 172.16.9.100:80 -r 192.168.17.27 -m
[root@lvs ~]# ipvsadm -a -t 172.16.9.100:80 -r 192.168.17.37 -m


 
6,查看配置的结果:# ipvsadm -Ln


 
7,测试:


 
8,查看状态:# ipvsadm -Ln --stats

 
9,查看速率:# ipvsadm -Ln --rate



 
10,循环访问:# while true;do curl 172.16.9.100 ;sleep 1 ;done


 
实验2.2:增加权重:
修改模式为wrr:# ipvsadm -E -t 172.16.9.100:80 -s wrr 



 
增加权重:修改并增加权重:-w:
[root@lvs ~]# ipvsadm -e -t 172.16.9.100:80 -r 192.168.17.27 -m -w 3
[root@lvs ~]# ipvsadm -e -t 172.16.9.100:80 -r 192.168.17.37 -m -w 6



 
测试:# while true;do curl 172.16.9.100 ;sleep 1 ;done


 
实验2.3:实现端口映射:
修改RS的http端口号为8080:
sed -i 's/^Listen 80/Listen 8080/' /etc/httpd/conf/httpd.conf


 
在LVS上将RS1的端口映射修改为8080:


 
先删除该条规则,在添加:
[root@lvs ~]# ipvsadm -d -t 172.16.9.100:80 -r 192.168.17.27
[root@lvs ~]# ipvsadm -a -t 172.16.9.100:80 -r 192.168.17.27:8080 -m -w 6
 







 
测试:



 
实验2.4:使用DH算法,源地址哈希算法
将LVS集群调度算法修改sh:# ipvsadm -E -t 172.16.9.100:80 -s sh


 
测试:只要源地址不变,访问的为固定目标:


 
实验2.5:使用SH算法,目标地址哈希算法
修改LVS的调度算法:# ipvsadm -E -t 172.16.9.100:80 -s dh

 
实验2.6:使用默认动态算法WLC:
修改后,直接为默认算法wlc  :# ipvsadm -E -t 172.16.9.100:80 


 
实验3:RS上安装wordpress,后端增加数据库
实验示意图:

 
实验步骤:
1,在上面实验基础上,RS安装php-fpm,PHP-mysql模块:
PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。php-fastcgi 只是一个cgi程序,只会解析php请求,并且返回结果,不会管理(因此才出现的php-fpm)。

 
2,在192.168.17.47主机上安装数据库:# yum -y install mariadb-server
1,启动服务:# systemctl start mariadb.service 
2,添加wordpress账号:# mysql -e "create database wordpress;grant all on wordpress.* to wordpress@'192.168.17.%' identified by 'hly'"



 
3,RS1设置:
1,启动php-fpm服务:# systemctl start php-fpm.service 

 
2,修改RS1的apache配置文件,使其支持fastcgi程序:# vim /etc/httpd/conf.d/fcgi.conf
addType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1



 
3,修改httpd主页面,使其支持PHP页面:# vim /etc/httpd/conf/httpd.conf 
 


 
4,启动HTTP服务:# systemctl restart httpd.service 

 
5,传入wordpress程序:解压放入/var/www/html目录下:
修改# cp wp-config-sample.php wp-config.php 主配置文件名称;
修改wp-config.php配置文件:# vim /var/www/html/wp-config.php 按照实际数据库信息修改:



 
4,RS2的主机同样设置:
 
5,测试wordpress程序:
浏览器输入VIP的地址:

 
填写相关信息:测试正常
保存ipvsadm规则信息:
[root@lvs ~]# ipvsadm-save > /data/ipvs.log

 
清理规则:ipvsadm -C
恢复规则:ipvsadm-restore <   /data/ipvs.log
ipvsadm服务需要相关配置文件才能起来,需要创建/etc/sysconfig/ipvsadm文件。
将配置规则导入:# ipvsadm-save > /etc/sysconfig/ipvsadm-config 
起来后导入配置后,重启服务,即可。

 
实验二:LVS-DR模型
实验示意图:
 


 
实验过程:
1,准备实验环境:修改相关IP地址:
2,路由器主机192.168.17.57主机IP转发:关闭防火墙:




 
测试:客户端主机进行Ping测试:
修改RS1和RS2的网关,指向Router;


 
3,LVS-DR模型的特点:
(1) Director和各RS都配置有VIP
(2) 确保前端路由器将目标IP为VIP的请求报文发往Director
在RS上修改内核参数以限制arp通告及应答级别
/proc/sys/net/ipv4/conf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce
(3)RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络; RIP的网关不能指向DIP,以确保响应报文不会经由Director
(4)RS和Director要在同一个物理网络
(5)请求报文要经由Director,但响应报文不经由Director,而由RS直接发往 Client
(6)不支持端口映射(端口不能修败)
(7)RS可使用大多数OS系统
 
3,LVS配置VIP:192.168.17.100  :#  ip a a 192.168.17.100/24 dev ens33

 
4,RS1和RS2分别添加VIP,添加内核参数,通过脚本方式添加相关参数:

 
#!/bin/bash#Author:wangxiaochun#Date:2017-08-13vip=192.168.17.100mask='255.255.255.255'dev=lo:1rpm -q httpd &> /dev/null || yum -y install httpd &>/dev/null#service httpd start &> /dev/null && echo "The httpd Server is Ready!"#echo "<h1>`hostname`</h1>" > /var/www/html/index.htmlcase $1 instart)    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore    echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce    echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce​ifconfig $dev $vip netmask $mask #broadcast $vip up    #route add -host $vip dev $dev    echo "The RS Server is Ready!"    ;;stop)    ifconfig $dev down    echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore    echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce    echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce    echo "The RS Server is Canceled!"    ;;*)    echo "Usage: $(basename $0) start|stop"    exit 1    ;;esac

 
5,添加LVS规则:默认不指定为DR模型
[root@lvs ~]# ipvsadm -A -t 192.168.17.100:80 -s rr

 
[root@lvs ~]# ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.27
[root@lvs ~]# ipvsadm -a -t 192.168.17.100:80 -r 192.168.17.37
 


 
6,做测试:# while true;do curl http://192.168.17.100/index.html ;sleep 1 ;done


 
7,网页测试:192.168.17.100/wordpress
 



(责任编辑:IT)
------分隔线----------------------------